YUMParserData.cc

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00015 #include <zypp/parser/yum/YUMParserData.h>
00016 
00017 using namespace std;
00018 namespace zypp {
00019   namespace parser {
00020     namespace yum {
00021 
00022       YUMDependency::YUMDependency()
00023       { }
00024 
00025       YUMDependency::YUMDependency(const std::string& kind,
00026                                    const std::string& name,
00027                                    const std::string& flags,
00028                                    const std::string& epoch,
00029                                    const std::string& ver,
00030                                    const std::string& rel,
00031                                    const std::string& pre)
00032       : kind(kind),
00033       name(name),
00034       flags(flags),
00035       epoch(epoch),
00036       ver(ver),
00037       rel(rel),
00038       pre(pre)
00039       { };
00040 
00041       YUMDependency::YUMDependency(const std::string& kind,
00042                                    const std::string& encoded)
00043       : kind(kind),
00044       encoded(encoded)
00045       { };
00046 
00047       bool YUMDependency::isEncoded() const
00048       {
00049         return !encoded.empty();
00050       }
00051 
00052       YUMDirSize::YUMDirSize()
00053       { }
00054 
00055       YUMDirSize::YUMDirSize(const std::string& path,
00056                              const std::string& sizeKByte,
00057                              const std::string& fileCount)
00058       : path(path), sizeKByte(sizeKByte), fileCount(fileCount)
00059       { }
00060 
00061       YUMRepomdData::YUMRepomdData()
00062       { }
00063 
00064       YUMPrimaryData::YUMPrimaryData()
00065         : installOnly( false )
00066       { }
00067 
00068       FileData::FileData()
00069       { }
00070 
00071       YUMPatchData::YUMPatchData()
00072         : rebootNeeded( false )
00073         , packageManager( false )
00074       { }
00075 
00076       FileData::FileData(const std::string &name,
00077                          const std::string &type)
00078       : name(name), type(type)
00079       { }
00080 
00081 
00082       YUMGroupData::YUMGroupData()
00083       { }
00084 
00085       YUMPatternData::YUMPatternData()
00086       { }
00087 
00088       MetaPkg::MetaPkg()
00089       { }
00090 
00091       MetaPkg::MetaPkg(const std::string& type,
00092                        const std::string& name)
00093       : type(type), name(name)
00094       { }
00095 
00096       PackageReq::PackageReq()
00097       { }
00098 
00099       PackageReq::PackageReq(const std::string& type,
00100                              const std::string& epoch,
00101                              const std::string& ver,
00102                              const std::string& rel,
00103                              const std::string& name)
00104       : type(type), epoch(epoch), ver(ver), rel(rel), name(name)
00105       { }
00106 
00107       ChangelogEntry::ChangelogEntry()
00108       { }
00109 
00110       ChangelogEntry::ChangelogEntry(const std::string& author,
00111                                      const std::string& date,
00112                                      const std::string& entry)
00113       : author(author), date(date), entry(entry)
00114       { }
00115 
00116 
00117       YUMFileListData::YUMFileListData()
00118       { }
00119 
00120       YUMOtherData::YUMOtherData()
00121       { }
00122 
00123 
00124       /* Define pointer classes */
00125 
00126       IMPL_PTR_TYPE(YUMRepomdData);
00127       IMPL_PTR_TYPE(YUMPrimaryData);
00128       IMPL_PTR_TYPE(YUMGroupData);
00129       IMPL_PTR_TYPE(YUMPatternData);
00130       IMPL_PTR_TYPE(YUMFileListData);
00131       IMPL_PTR_TYPE(YUMOtherData);
00132       IMPL_PTR_TYPE(YUMPatchData);
00133       IMPL_PTR_TYPE(YUMPatchesData);
00134       IMPL_PTR_TYPE(YUMProductData);
00135       IMPL_PTR_TYPE(YUMPatchPackage);
00136       IMPL_PTR_TYPE(YUMPatchScript);
00137       IMPL_PTR_TYPE(YUMPatchMessage);
00138 
00139       /* output operators */
00140 
00141       namespace {
00148         template<class T>
00149         ostream& operator<<(ostream &out, const list<T>& aList)
00150         {
00151           typedef typename list<T>::const_iterator IterType;
00152           for (IterType iter = aList.begin();
00153               iter != aList.end();
00154               ++iter) {
00155                 if (iter != aList.begin())
00156                   out << endl;
00157                 operator<<(out,*iter);
00158               }
00159           return out;
00160         }
00161       }
00162 
00169       string join(const list<string>& aList,
00170                   const string& joiner)
00171       {
00172         string res;
00173         for (list<string>::const_iterator iter = aList.begin();
00174             iter != aList.end();
00175             ++ iter) {
00176               if (iter != aList.begin())
00177                 res += joiner;
00178               res += *iter;
00179             }
00180         return res;
00181       }
00182 
00183       ostream& operator<<(ostream &out, const YUMDependency& data)
00184       {
00185         if (! data.kind.empty())
00186           out << "[" << data.kind << "] ";
00187         out << data.name << " " << data.flags << " ";
00188         if (! data.epoch.empty())
00189           out << data.epoch << "-";
00190         out << data.ver << "-" << data.rel ;
00191         if (! data.pre.empty() && data.pre != "0")
00192           out << " (pre=" << data.pre << ")";
00193         return out;
00194       }
00195 
00196       ostream& operator<<(ostream &out, const YUMDirSize& data)
00197       {
00198         out << data.path
00199           << ": " << data.sizeKByte << " kByte, "
00200           << data.fileCount << " files";
00201         return out;
00202       }
00203 
00204       ostream& operator<<(ostream &out, const FileData& data)
00205       {
00206         out << data.name;
00207         if (! data.type.empty()) {
00208           out << ": " << data.type;
00209         }
00210         return out;
00211       }
00212 
00213       ostream& operator<<(ostream &out, const MetaPkg& data)
00214       {
00215         out << "type: " << data.type
00216           << ", name: " << data.name;
00217         return out;
00218       }
00219 
00220       ostream& operator<<(ostream &out, const PackageReq& data)
00221       {
00222         out << "[" << data.type << "] "
00223           << data.name
00224           << " " << data.epoch
00225           << "-" << data.ver
00226           << "-" << data.rel;
00227         return out;
00228       }
00229 
00230       ostream& operator<<(ostream &out, const ChangelogEntry& data)
00231       {
00232         out << data.date
00233           << " - " << data.author << endl
00234           << data.entry;
00235         return out;
00236       }
00237 
00238       ostream& operator<<(ostream &out, const YUMRepomdData& data)
00239       {
00240         out << "Repomd Data: " << endl
00241           << "  type: '" << data.type << "'" << endl
00242           << "  location: '" << data.location << "'" <<endl
00243           << "  checksumType: '" << data.checksumType << "'" << endl
00244           << "  checksum: '" << data.checksum << "'" << endl
00245           << "  timestamp: '" << data.timestamp << "'" << endl
00246           << "  openChecksumType: '" << data.openChecksumType << "'" << endl
00247           << "  openChecksum: '" << data.openChecksum << "'" << endl;
00248         return out;
00249       }
00250 
00251       ostream& operator<<(ostream &out, const YUMPrimaryData& data)
00252       {
00253         out << "-------------------------------------------------" << endl
00254           << "Primary Data: " << endl
00255           << "name: '" << data.name << "'" << endl
00256           << "type: '" << data.type << "'" << endl
00257           << " arch: '" << data.arch << "'" << endl
00258           << " ver: '" << data.ver << "'" << endl
00259           << "checksumType: '" << data.checksumType << "'" << endl
00260           << "checksumPkgid: '" << data.checksumPkgid << "'" << endl
00261           << "checksum: '" << data.checksum << "'" << endl
00262           << "summary: '" << data.summary << "'" << endl
00263           << "description: '" << data.description << "'" << endl
00264           << "packager: '" << data.packager << "'" << endl
00265           << "url: '" << data.url << "'" << endl
00266           << "timeFile: '" << data.timeFile << "'" << endl
00267           << "timeBuild: '" << data.timeBuild << "'" << endl
00268           << "sizePackage: '" << data.sizePackage << "'" << endl
00269           << "sizeInstalled: '" << data.sizeInstalled << "'" << endl
00270           << "sizeArchive: '" << data.sizeArchive << "'" << endl
00271           << "location: '" << data.location << "'" << endl
00272           << "license: '" << data.license << "'" << endl
00273           << "vendor: '" << data.vendor << "'" << endl
00274           << "group: '" << data.group << "'" << endl
00275           << "buildhost: '" << data.buildhost << "'" << endl
00276           << "sourcerpm: '" << data.sourcerpm << "'" << endl
00277           << "headerStart: '" << data.headerStart << "'" << endl
00278           << "headerEnd: '" << data.headerEnd << "'" << endl
00279           << "provides:" << endl
00280           << data.provides << endl
00281           << "conflicts:" << endl
00282           << data.conflicts << endl
00283           << "obsoletes:" << endl
00284           << data.obsoletes << endl
00285           << "requires:" << endl
00286           << data.requires << endl
00287           << "recommends:" << endl
00288           << data.recommends << endl
00289           << "suggests:" << endl
00290           << data.suggests << endl
00291           << "supplements:" << endl
00292           << data.supplements << endl
00293           << "enhances:" << endl
00294           << data.enhances << endl
00295           << "files:" << endl
00296           << data.files << endl
00297           << "authors: " << join(data.authors,", ") << endl
00298           << "keywords: " << join(data.keywords,", ") << endl
00299           << "media: " << data.media << endl
00300           << "dirsizes: " << endl
00301           << data.dirSizes << endl
00302           << "freshens: " << endl
00303           << data.freshens << endl
00304           << "install-only: '" << data.installOnly << "'" << endl
00305           << "License to confirm:" << endl
00306           << data.license_to_confirm << endl;
00307         return out;
00308       }
00309 
00310       ostream& operator<<(ostream &out, const YUMGroupData& data)
00311       {
00312         out << "-------------------------------------------------" << endl
00313           << "Group Data: " << endl
00314           << "group-id: '" << data.groupId << "'" << endl
00315           << "name:" << endl
00316           << data.name << endl
00317           << "default: '" << data.default_  << "'" << endl
00318           << "user-visible: '" << data.userVisible  << "'" << endl
00319           << "description:" << endl
00320           << data.description << endl
00321           << "grouplist:" << endl
00322           << data.grouplist << endl
00323           << "packageList:" << endl
00324           << data.packageList << endl;
00325         return out;
00326       }
00327 
00328       ostream& operator<<(ostream &out, const YUMPatternData& data)
00329       {
00330         out << "-------------------------------------------------" << endl
00331           << "Pattern Data: " << endl
00332           << "name:" << data.name << endl
00333           << "summary: '" << data.summary << "'" << endl
00334           << "default: '" << data.default_  << "'" << endl
00335           << "user-visible: '" << data.userVisible  << "'" << endl
00336           << "description:" << endl << data.description << endl
00337           << "category: " << data.category << endl
00338           << "icon: " << data.icon << endl
00339           << "script: " << data.script << endl
00340           << "provides:" << endl << data.provides << endl
00341           << "conflicts:" << endl << data.conflicts << endl
00342           << "obsoletes:" << endl << data.obsoletes << endl
00343           << "requires:" << endl << data.requires << endl
00344           << "recommends:" << endl << data.recommends << endl
00345           << "suggests:" << endl << data.suggests << endl
00346           << "supplements:" << endl << data.supplements << endl
00347           << "enhances:" << endl << data.enhances << endl
00348           << "freshens: " << endl << data.freshens << endl;
00349         return out;
00350       }
00351 
00352       ostream& operator<<(ostream &out, const YUMFileListData& data)
00353       {
00354         out << "-------------------------------------------------" << endl
00355           << "File List: " << endl
00356           << "pkgid: " << data.pkgId << endl
00357           << "package: " << data.name << " "
00358           << data.epoch << "-" << data.ver << "-" << data.rel << endl
00359           << "files:" << endl
00360           << data.files << endl;
00361         return out;
00362       }
00363 
00364       ostream& operator<<(ostream& out, const YUMOtherData& data)
00365       {
00366         out << "-------------------------------------------------" << endl
00367           << "Other: " << endl
00368           << "pkgid: " << data.pkgId
00369           << "package: " << data.name << " "
00370           << data.epoch << "-" << data.ver << "-" << data.rel << endl
00371           << "Changelog:" << endl
00372           << data.changelog << endl;
00373         return out;
00374       }
00375 
00376       ostream& operator<<(ostream &out, const YUMPatchData& data)
00377       {
00378         out << "-------------------------------------------------" << endl
00379           << "Patch Data: " << endl
00380           << "  patch ID: " << data.patchId << endl
00381           << "  timestamp: '" << data.timestamp << "'" << endl
00382           << "  engine: '" << data.engine << "'" << endl
00383           << "  name: " << data.name << endl
00384           << "  summary: " << data.summary << endl
00385           << "  description: " << data.description << endl
00386           << "  license to confirm:" << endl
00387           << data.license_to_confirm << endl
00388           << "  epoch: " << data.epoch << endl
00389           << "  version: " << data.ver << endl
00390           << "  release: " << data.rel << endl
00391           << "  architecture: " << data.arch << endl
00392           << "  provides: " << data.provides << endl
00393           << "  conflicts: " << data.conflicts << endl
00394           << "  obsoletes: " << data.obsoletes << endl
00395           << "  freshens: " << data.freshens << endl
00396           << "  requires: " << data.requires << endl
00397           << "  recommends:" << endl << data.recommends << endl
00398           << "  suggests:" << endl << data.suggests << endl
00399           << "  supplements:" << endl << data.supplements << endl
00400           << "  enhances:" << endl << data.enhances << endl
00401           << "  category: " << data.category << endl
00402           << "  reboot needed: " << data.rebootNeeded << endl
00403           << "  affects package manager: " << data.packageManager << endl
00404           << "  update script: " << data.updateScript << endl
00405           << "  atoms:" << endl
00406           << data.atoms;
00407         return out;
00408       }
00409 
00410       ostream& operator<<(ostream &out, const YUMPatchesData& data)
00411       {
00412         out << "-------------------------------------------------" << endl
00413           << "Patches Entry Data: " << endl
00414           << "  patch ID: " << data.id << endl
00415           << "  location: " << data.location << endl
00416           << "  checksumType: '" << data.checksumType << "'" << endl
00417           << "  checksum: '" << data.checksum << "'" << endl;
00418         return out;
00419       }
00420 
00421       ostream& operator<<(ostream &out, const YUMProductData& data)
00422       {
00423         out << "-------------------------------------------------" << endl
00424           << "Product Data: " << endl
00425           << "  type: " << data.type << endl
00426           << "  vendor: " << data.vendor << endl
00427           << "  name: " << data.name << endl
00428           << "  display name: " << data.summary << endl
00429           << "  short name: " << data.short_name << endl
00430           << "  description: " << data.description << endl
00431           << "  epoch: " << data.epoch << endl
00432           << "  version: " << data.ver << endl
00433           << "  release: " << data.rel << endl
00434           << "  provides: " << data.provides << endl
00435           << "  conflicts: " << data.conflicts << endl
00436           << "  obsoletes: " << data.obsoletes << endl
00437           << "  freshens: " << data.freshens << endl
00438           << "  requires: " << data.requires << endl
00439           << "  recommends:" << endl << data.recommends << endl
00440           << "  suggests:" << endl << data.suggests << endl
00441           << "  supplements:" << endl << data.supplements << endl
00442           << "  enhances:" << endl << data.enhances << endl;
00443         return out;
00444       }
00445 
00446       std::ostream& operator<<(std::ostream& out, const zypp::shared_ptr<YUMPatchAtom> data)
00447       {
00448         out << "Atom data" << endl;
00449         switch (data->atomType())
00450         {
00451           case YUMPatchAtom::Package:
00452             out << "  atom type: " << "package" << endl
00453               << *zypp::dynamic_pointer_cast<YUMPatchPackage>(data);
00454             break;
00455           case YUMPatchAtom::Message:
00456             out << "  atom type: " << "message" << endl
00457               << *zypp::dynamic_pointer_cast<YUMPatchMessage>(data);
00458             break;
00459           case YUMPatchAtom::Script:
00460             out << "  atom type: " << "script" << endl
00461               << *zypp::dynamic_pointer_cast<YUMPatchScript>(data);
00462             break;
00463           default:
00464             out << "Unknown atom type" << endl;
00465         }
00466         return out;
00467       }
00468 
00469       std::ostream& operator<<(std::ostream& out, const YUMPatchMessage& data)
00470       {
00471         out << "Message Data: " << endl
00472           << "  name: " << data.name << endl
00473           << "  epoch: " << data.epoch << endl
00474           << "  version: " << data.ver << endl
00475           << "  release: " << data.rel << endl
00476           << "  provides: " << data.provides << endl
00477           << "  conflicts: " << data.conflicts << endl
00478           << "  obsoletes: " << data.obsoletes << endl
00479           << "  freshens: " << data.freshens << endl
00480           << "  requires: " << data.requires << endl
00481           << "  recommends:" << endl << data.recommends << endl
00482           << "  suggests:" << endl << data.suggests << endl
00483           << "  supplements:" << endl << data.supplements << endl
00484           << "  enhances:" << endl << data.enhances << endl
00485           << "  text: " << data.text << endl;
00486         return out;
00487       }
00488 
00489       std::ostream& operator<<(std::ostream& out, const YUMPatchScript& data)
00490       {
00491         out << "Script Data: " << endl
00492           << "  name: " << data.name << endl
00493           << "  epoch: " << data.epoch << endl
00494           << "  version: " << data.ver << endl
00495           << "  release: " << data.rel << endl
00496           << "  provides: " << data.provides << endl
00497           << "  conflicts: " << data.conflicts << endl
00498           << "  obsoletes: " << data.obsoletes << endl
00499           << "  freshens: " << data.freshens << endl
00500           << "  requires: " << data.requires << endl
00501           << "  recommends:" << endl << data.recommends << endl
00502           << "  suggests:" << endl << data.suggests << endl
00503           << "  supplements:" << endl << data.supplements << endl
00504           << "  enhances:" << endl << data.enhances << endl
00505           << "  do script: " << data.do_script << endl
00506           << "  undo script: " << data.undo_script << endl
00507           << "  do script location: " << data.do_location << endl
00508           << "  undo script location: " << data.undo_location << endl
00509           << "  do script media: " << data.do_media << endl
00510           << "  undo script media: " << data.undo_media << endl
00511           << "  do checksum type: " << data.do_checksum_type << endl
00512           << "  do checksum: " << data.do_checksum << endl
00513           << "  undo checksum type: " << data.undo_checksum_type << endl
00514           << "  undo checksum: " << data.undo_checksum << endl;
00515         return out;
00516       }
00517 
00518       std::ostream& operator<<(std::ostream& out, const YUMPatchPackage& data)
00519       {
00520         out << "Package Data: " << endl
00521           << "  name: '" << data.name << "'" << endl
00522           << "  type: '" << data.type << "'" << endl
00523           << "   arch: '" << data.arch << "'" << endl
00524           << "   ver: '" << data.ver << "'" << endl
00525           << "  checksumType: '" << data.checksumType << "'" << endl
00526           << "  checksumPkgid: '" << data.checksumPkgid << "'" << endl
00527           << "  checksum: '" << data.checksum << "'" << endl
00528           << "  summary: '" << data.summary << "'" << endl
00529           << "  description: '" << data.description << "'" << endl
00530           << "  packager: '" << data.packager << "'" << endl
00531           << "  url: '" << data.url << "'" << endl
00532           << "  timeFile: '" << data.timeFile << "'" << endl
00533           << "  timeBuild: '" << data.timeBuild << "'" << endl
00534           << "  sizePackage: '" << data.sizePackage << "'" << endl
00535           << "  sizeInstalled: '" << data.sizeInstalled << "'" << endl
00536           << "  sizeArchive: '" << data.sizeArchive << "'" << endl
00537           << "  location: '" << data.location << "'" << endl
00538           << "  license: '" << data.license << "'" << endl
00539           << "  license to confirm:" << endl
00540           << data.license_to_confirm << endl
00541           << "  vendor: '" << data.vendor << "'" << endl
00542           << "  group: '" << data.group << "'" << endl
00543           << "  buildhost: '" << data.buildhost << "'" << endl
00544           << "  sourcerpm: '" << data.sourcerpm << "'" << endl
00545           << "  headerStart: '" << data.headerStart << "'" << endl
00546           << "  headerEnd: '" << data.headerEnd << "'" << endl
00547           << "  provides:" << endl
00548           << data.provides << endl
00549           << "  conflicts:" << endl
00550           << data.conflicts << endl
00551           << "  obsoletes:" << endl
00552           << data.obsoletes << endl
00553           << "  requires:" << endl
00554           << data.requires << endl
00555           << "  recommends:" << endl
00556           << data.recommends << endl
00557           << "  suggests:" << endl
00558           << data.suggests << endl
00559           << "  supplements:" << endl
00560           << data.supplements << endl
00561           << "  enhances:" << endl
00562           << data.enhances << endl
00563           << "  files:" << endl
00564           << data.files << endl
00565           << "  authors: " << join(data.authors,", ") << endl
00566           << "  keywords: " << join(data.keywords,", ") << endl
00567           << "  media: " << data.media << endl
00568           << "  dirsizes: " << endl
00569           << data.dirSizes << endl
00570           << "  freshens: " << endl
00571           << data.freshens << endl
00572           << "  install-only: '" << data.installOnly << "'" << endl
00573           << "  files:" << endl
00574           << data.files << endl
00575           << "  Changelog:" << endl
00576           << data.changelog << endl
00577           << data.plainRpms
00578           << data.patchRpms
00579           << data.deltaRpms;
00580         return out;
00581       }
00582 
00583       std::ostream& operator<<(std::ostream& out, const YUMBaseVersion& data)
00584       {
00585         out << "    Base version:" << endl
00586           << "      epoch: " << data.epoch << endl
00587           << "      version: " << data.ver << endl
00588           << "      release: " << data.rel << endl
00589           << "      MD5: " << data.md5sum << endl
00590           << "      build time: " << data.buildtime << endl
00591           << "      source info: " << data.source_info << endl;
00592         return out;
00593       }
00594 
00595       std::ostream& operator<<(std::ostream& out, const YUMPlainRpm& data)
00596       {
00597         out << "  Plain RPM:" << endl
00598           << "    arch: " << data.arch << endl
00599           << "    filename: " << data.filename << endl
00600           << "    download size: " << data.downloadsize << endl
00601           << "    MD5: " << data.md5sum << endl
00602           << "    build time: " << data.buildtime << endl;
00603         return out;
00604       }
00605 
00606       std::ostream& operator<<(std::ostream& out, const YUMPatchRpm& data)
00607       {
00608         out << "  Patch RPM:" << endl
00609           << "    arch: " << data.arch << endl
00610           << "    filename: " << data.filename << endl
00611           << "    location: '" << data.location << "'" <<endl
00612           << "    media: " << data.media << endl
00613           << "    checksumType: '" << data.checksumType << "'" << endl
00614           << "    checksum: '" << data.checksum << "'" << endl
00615           << "    download size: " << data.downloadsize << endl
00616           << "    MD5: " << data.md5sum << endl
00617           << "    build time: " << data.buildtime << endl
00618           << data.baseVersions;
00619         return out;
00620       }
00621 
00622       std::ostream& operator<<(std::ostream& out, const YUMDeltaRpm& data)
00623       {
00624         out << "  Delta RPM:" << endl
00625           << "    arch: " << data.arch << endl
00626           << "    filename: " << data.filename << endl
00627           << "    location: '" << data.location << "'" <<endl
00628           << "    media: " << data.media << endl
00629           << "    checksumType: '" << data.checksumType << "'" << endl
00630           << "    checksum: '" << data.checksum << "'" << endl
00631           << "    download size: " << data.downloadsize << endl
00632           << "    MD5: " << data.md5sum << endl
00633           << "    build time: " << data.buildtime << endl
00634           << data.baseVersion << endl;
00635         return out;
00636       }
00637 
00638     } // namespace yum
00639   } // namespace parser
00640 } // namespace zypp

Generated on Thu Jul 6 00:07:21 2006 for zypp by  doxygen 1.4.6