zypp::parser::susetags::RepoParser::Impl Class Reference

RepoParser implementation. More...

List of all members.

Public Member Functions

 Impl (const data::RecordId &repositoryId_r, data::ResolvableDataConsumer &consumer_r, const ProgressData::ReceiverFnc &fnc_r)
void parse (const Pathname &reporoot_r)
 Main entry to parser.
void fixVendor (const data::ResObject_Ptr &data_r)
 Use products vendor if vendor was not specified.
void fixLocationPath (const data::Packagebase_Ptr &data_r)
 Prepend location with 'datadir'.
void resolveSharedDataTag (const data::Packagebase_Ptr &data_r)
 Resolve shared data tag.
Pathname assertMandatoryFile (const Pathname &file_r, bool lookgz=true) const
 Throw ParseException if a required file is not available below _reporoot on disk.
Pathname getOptionalFile (const Pathname &file_r, bool lookgz=true) const
 Print a warning if an optional file is not available below _reporoot on disk.
bool isPatternFile (const std::string &name_r) const
bool haveLocale (const Locale &locale_r) const
 Test for packages.lang in _repoIndex.
void parseLocaleIf (const Locale &locale_r)
 Take care translations for locale_r or an appropriate fallback were parsed.
FileReader callbacks delivering data.
void consumeIndex (const RepoIndex_Ptr &data_r)
void consumeProd (const data::Product_Ptr &data_r)
void consumePkg (const data::Package_Ptr &data_r)
void consumeSrcPkg (const data::SrcPackage_Ptr &data_r)
void consumePkgLang (const data::Package_Ptr &data_r)
void consumeSrcPkgLang (const data::SrcPackage_Ptr &data_r)
void consumePkgDu (const data::Package_Ptr &data_r)
void consumeSrcPkgDu (const data::SrcPackage_Ptr &data_r)
void consumePat (const data::Pattern_Ptr &data_r)

Private Member Functions

void idMapAdd (const std::string &key_r, data::RecordId value_r)
data::RecordId idMapGet (const std::string &key_r)

Private Attributes

data::RecordId _repositoryId
data::ResolvableDataConsumer_consumer
ProgressData _ticks
RepoIndex_Ptr _repoIndex
data::Product_Ptr _prodData
std::string _defaultVendor
Pathname _reporoot
Pathname _descrdir
Pathname _datadir
std::set< Locale_parsedLocales
 Translations processed by parseLocaleIf so far.
std::map
< std::string,
data::RecordId
_idMap
 Remember the record ids of created packages and soucepackages.
Stats _stats

Classes

struct  Stats


Detailed Description

RepoParser implementation.

Todo:
Clean data on exeption.

Definition at line 53 of file RepoParser.cc.


Constructor & Destructor Documentation

zypp::parser::susetags::RepoParser::Impl::Impl ( const data::RecordId repositoryId_r,
data::ResolvableDataConsumer consumer_r,
const ProgressData::ReceiverFnc fnc_r 
) [inline]

Definition at line 56 of file RepoParser.cc.

References _ticks, and zypp::ProgressData::sendTo().


Member Function Documentation

void zypp::parser::susetags::RepoParser::Impl::parse ( const Pathname &  reporoot_r  ) 

Main entry to parser.

Definition at line 403 of file RepoParser.cc.

References _datadir, _defaultVendor, _descrdir, _parsedLocales, _prodData, _repoIndex, _reporoot, _stats, _ticks, assertMandatoryFile(), zypp::Arch::compatibleWith(), consumeIndex(), consumePat(), consumePkg(), consumePkgDu(), consumeProd(), consumeSrcPkg(), consumeSrcPkgDu(), DBG, getOptionalFile(), zypp::ZConfig::instance(), isPatternFile(), MIL, zypp::ProgressData::name(), zypp::parser::susetags::RepoParser::Impl::Stats::pack, zypp::parser::TagParser::parse(), zypp::parser::susetags::ContentFileReader::parse(), parseLocaleIf(), zypp::parser::susetags::RepoParser::Impl::Stats::patt, zypp::parser::susetags::RepoParser::Impl::Stats::prod, zypp::ProgressData::range(), zypp::parser::susetags::PatternFileReader::setConsumer(), zypp::parser::susetags::PackagesDuFileReader::setPkgConsumer(), zypp::parser::susetags::PackagesFileReader::setPkgConsumer(), zypp::parser::susetags::ContentFileReader::setProductConsumer(), zypp::parser::susetags::ContentFileReader::setRepoIndexConsumer(), zypp::parser::susetags::PackagesDuFileReader::setSrcPkgConsumer(), zypp::parser::susetags::PackagesFileReader::setSrcPkgConsumer(), zypp::url::split(), zypp::parser::susetags::RepoParser::Impl::Stats::srcp, zypp::ZConfig::systemArchitecture(), zypp::ProgressData::toMax(), zypp::ProgressData::toMin(), WAR, and ZYPP_THROW.

void zypp::parser::susetags::RepoParser::Impl::consumeIndex ( const RepoIndex_Ptr &  data_r  )  [inline]

Definition at line 71 of file RepoParser.cc.

References _repoIndex.

Referenced by parse().

void zypp::parser::susetags::RepoParser::Impl::consumeProd ( const data::Product_Ptr &  data_r  )  [inline]

Definition at line 78 of file RepoParser.cc.

References _consumer, _defaultVendor, _prodData, _repositoryId, _stats, zypp::data::ResolvableDataConsumer::consumeProduct(), MIL, and zypp::parser::susetags::RepoParser::Impl::Stats::prod.

Referenced by parse().

void zypp::parser::susetags::RepoParser::Impl::consumePkg ( const data::Package_Ptr &  data_r  )  [inline]

Definition at line 88 of file RepoParser.cc.

References _consumer, _repositoryId, _stats, zypp::data::ResolvableDataConsumer::consumePackage(), fixLocationPath(), fixVendor(), idMapAdd(), zypp::parser::susetags::makeSharedIdent(), zypp::parser::susetags::RepoParser::Impl::Stats::pack, and resolveSharedDataTag().

Referenced by parse().

void zypp::parser::susetags::RepoParser::Impl::consumeSrcPkg ( const data::SrcPackage_Ptr &  data_r  )  [inline]

Definition at line 106 of file RepoParser.cc.

References _consumer, _repositoryId, _stats, zypp::data::ResolvableDataConsumer::consumeSourcePackage(), fixLocationPath(), fixVendor(), idMapAdd(), zypp::parser::susetags::makeSharedIdent(), resolveSharedDataTag(), and zypp::parser::susetags::RepoParser::Impl::Stats::srcp.

Referenced by parse().

void zypp::parser::susetags::RepoParser::Impl::consumePkgLang ( const data::Package_Ptr &  data_r  )  [inline]

Definition at line 124 of file RepoParser.cc.

References _consumer, idMapGet(), zypp::parser::susetags::makeSharedIdent(), zypp::data::noRecordId, and zypp::data::ResolvableDataConsumer::updatePackageLang().

Referenced by parseLocaleIf().

void zypp::parser::susetags::RepoParser::Impl::consumeSrcPkgLang ( const data::SrcPackage_Ptr &  data_r  )  [inline]

Definition at line 137 of file RepoParser.cc.

References _consumer, idMapGet(), zypp::parser::susetags::makeSharedIdent(), zypp::data::noRecordId, and zypp::data::ResolvableDataConsumer::updatePackageLang().

Referenced by parseLocaleIf().

void zypp::parser::susetags::RepoParser::Impl::consumePkgDu ( const data::Package_Ptr &  data_r  )  [inline]

Definition at line 150 of file RepoParser.cc.

References _consumer, zypp::data::ResolvableDataConsumer::consumeDiskUsage(), idMapGet(), zypp::parser::susetags::makeSharedIdent(), and zypp::data::noRecordId.

Referenced by parse().

void zypp::parser::susetags::RepoParser::Impl::consumeSrcPkgDu ( const data::SrcPackage_Ptr &  data_r  )  [inline]

Definition at line 163 of file RepoParser.cc.

References _consumer, zypp::data::ResolvableDataConsumer::consumeDiskUsage(), idMapGet(), zypp::parser::susetags::makeSharedIdent(), and zypp::data::noRecordId.

Referenced by parse().

void zypp::parser::susetags::RepoParser::Impl::consumePat ( const data::Pattern_Ptr &  data_r  )  [inline]

Definition at line 176 of file RepoParser.cc.

References _consumer, _repositoryId, _stats, zypp::data::ResolvableDataConsumer::consumePattern(), fixVendor(), and zypp::parser::susetags::RepoParser::Impl::Stats::patt.

Referenced by parse().

void zypp::parser::susetags::RepoParser::Impl::fixVendor ( const data::ResObject_Ptr &  data_r  )  [inline]

Use products vendor if vendor was not specified.

Definition at line 187 of file RepoParser.cc.

References _defaultVendor.

Referenced by consumePat(), consumePkg(), and consumeSrcPkg().

void zypp::parser::susetags::RepoParser::Impl::fixLocationPath ( const data::Packagebase_Ptr &  data_r  )  [inline]

Prepend location with 'datadir'.

Definition at line 196 of file RepoParser.cc.

References _datadir.

Referenced by consumePkg(), and consumeSrcPkg().

void zypp::parser::susetags::RepoParser::Impl::resolveSharedDataTag ( const data::Packagebase_Ptr &  data_r  )  [inline]

Resolve shared data tag.

Definition at line 203 of file RepoParser.cc.

References idMapGet().

Referenced by consumePkg(), and consumeSrcPkg().

Pathname zypp::parser::susetags::RepoParser::Impl::assertMandatoryFile ( const Pathname &  file_r,
bool  lookgz = true 
) const [inline]

Throw ParseException if a required file is not available below _reporoot on disk.

Definition at line 215 of file RepoParser.cc.

References _, _reporoot, WAR, and ZYPP_THROW.

Referenced by parse().

Pathname zypp::parser::susetags::RepoParser::Impl::getOptionalFile ( const Pathname &  file_r,
bool  lookgz = true 
) const [inline]

Print a warning if an optional file is not available below _reporoot on disk.

Definition at line 240 of file RepoParser.cc.

References _reporoot.

Referenced by parse(), and parseLocaleIf().

bool zypp::parser::susetags::RepoParser::Impl::isPatternFile ( const std::string &  name_r  )  const [inline]

Definition at line 263 of file RepoParser.cc.

Referenced by parse().

bool zypp::parser::susetags::RepoParser::Impl::haveLocale ( const Locale locale_r  )  const [inline]

Test for packages.lang in _repoIndex.

Definition at line 272 of file RepoParser.cc.

References _descrdir, _repoIndex, _reporoot, zypp::Locale::code(), and WAR.

Referenced by parseLocaleIf().

void zypp::parser::susetags::RepoParser::Impl::parseLocaleIf ( const Locale locale_r  )  [inline]

Take care translations for locale_r or an appropriate fallback were parsed.

Definition at line 308 of file RepoParser.cc.

References _descrdir, _parsedLocales, _ticks, zypp::Locale::code(), consumePkgLang(), consumeSrcPkgLang(), zypp::Locale::fallback(), getOptionalFile(), haveLocale(), zypp::ProgressData::incr(), zypp::Locale::noCode, zypp::parser::TagParser::parse(), zypp::parser::susetags::PackagesLangFileReader::setLocale(), zypp::parser::susetags::PackagesLangFileReader::setPkgConsumer(), zypp::parser::susetags::PackagesLangFileReader::setSrcPkgConsumer(), WAR, and ZYPP_THROW.

Referenced by parse().

void zypp::parser::susetags::RepoParser::Impl::idMapAdd ( const std::string &  key_r,
data::RecordId  value_r 
) [inline, private]

Definition at line 349 of file RepoParser.cc.

References _idMap, zypp::data::noRecordId, and WAR.

Referenced by consumePkg(), and consumeSrcPkg().

data::RecordId zypp::parser::susetags::RepoParser::Impl::idMapGet ( const std::string &  key_r  )  [inline, private]

Definition at line 359 of file RepoParser.cc.

References _idMap, and zypp::data::noRecordId.

Referenced by consumePkgDu(), consumePkgLang(), consumeSrcPkgDu(), consumeSrcPkgLang(), and resolveSharedDataTag().


Member Data Documentation

data::RecordId zypp::parser::susetags::RepoParser::Impl::_repositoryId [private]

Definition at line 370 of file RepoParser.cc.

Referenced by consumePat(), consumePkg(), consumeProd(), and consumeSrcPkg().

data::ResolvableDataConsumer& zypp::parser::susetags::RepoParser::Impl::_consumer [private]

Definition at line 371 of file RepoParser.cc.

Referenced by consumePat(), consumePkg(), consumePkgDu(), consumePkgLang(), consumeProd(), consumeSrcPkg(), consumeSrcPkgDu(), and consumeSrcPkgLang().

ProgressData zypp::parser::susetags::RepoParser::Impl::_ticks [private]

Definition at line 372 of file RepoParser.cc.

Referenced by Impl(), parse(), and parseLocaleIf().

RepoIndex_Ptr zypp::parser::susetags::RepoParser::Impl::_repoIndex [private]

Definition at line 375 of file RepoParser.cc.

Referenced by consumeIndex(), haveLocale(), and parse().

data::Product_Ptr zypp::parser::susetags::RepoParser::Impl::_prodData [private]

Definition at line 376 of file RepoParser.cc.

Referenced by consumeProd(), and parse().

std::string zypp::parser::susetags::RepoParser::Impl::_defaultVendor [private]

Definition at line 377 of file RepoParser.cc.

Referenced by consumeProd(), fixVendor(), and parse().

Pathname zypp::parser::susetags::RepoParser::Impl::_reporoot [private]

Definition at line 378 of file RepoParser.cc.

Referenced by assertMandatoryFile(), getOptionalFile(), haveLocale(), and parse().

Pathname zypp::parser::susetags::RepoParser::Impl::_descrdir [private]

Definition at line 379 of file RepoParser.cc.

Referenced by haveLocale(), parse(), and parseLocaleIf().

Pathname zypp::parser::susetags::RepoParser::Impl::_datadir [private]

Definition at line 380 of file RepoParser.cc.

Referenced by fixLocationPath(), and parse().

std::set<Locale> zypp::parser::susetags::RepoParser::Impl::_parsedLocales [private]

Translations processed by parseLocaleIf so far.

Definition at line 383 of file RepoParser.cc.

Referenced by parse(), and parseLocaleIf().

std::map<std::string,data::RecordId> zypp::parser::susetags::RepoParser::Impl::_idMap [private]

Remember the record ids of created packages and soucepackages.

Definition at line 386 of file RepoParser.cc.

Referenced by idMapAdd(), and idMapGet().

Stats zypp::parser::susetags::RepoParser::Impl::_stats [private]

Definition at line 394 of file RepoParser.cc.

Referenced by consumePat(), consumePkg(), consumeProd(), consumeSrcPkg(), and parse().


The documentation for this class was generated from the following file:
Generated on Tue Sep 25 19:23:23 2007 for libzypp by  doxygen 1.5.3