libzypp  10.5.0
SolvAttr.cc
Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00012 extern "C"
00013 {
00014 #include <solv/knownid.h>
00015 }
00016 
00017 #include <iostream>
00018 
00019 #include "zypp/base/String.h"
00020 #include "zypp/sat/SolvAttr.h"
00021 
00022 using std::endl;
00023 
00025 namespace zypp
00026 { 
00027 namespace sat
00028 { 
00029 
00030   const SolvAttr SolvAttr::allAttr( detail::noId );
00031   const SolvAttr SolvAttr::noAttr;
00032 
00033 #warning STILL ATTRIBUTES HERE WHICH ARE NOT PROVIDED BY SOLV FILES
00034 // At least the ones that do nat have a solv/knownid.
00035 
00036   const SolvAttr SolvAttr::name         ( SOLVABLE_NAME );
00037   const SolvAttr SolvAttr::edition      ( SOLVABLE_EVR );
00038   const SolvAttr SolvAttr::arch         ( SOLVABLE_ARCH );
00039   const SolvAttr SolvAttr::vendor       ( SOLVABLE_VENDOR );
00040 
00041   const SolvAttr SolvAttr::provides     ( SOLVABLE_PROVIDES );
00042   const SolvAttr SolvAttr::obsoletes    ( SOLVABLE_OBSOLETES );
00043   const SolvAttr SolvAttr::conflicts    ( SOLVABLE_CONFLICTS );
00044   const SolvAttr SolvAttr::requires     ( SOLVABLE_REQUIRES );
00045   const SolvAttr SolvAttr::recommends   ( SOLVABLE_RECOMMENDS );
00046   const SolvAttr SolvAttr::suggests     ( SOLVABLE_SUGGESTS );
00047   const SolvAttr SolvAttr::supplements  ( SOLVABLE_SUPPLEMENTS );
00048   const SolvAttr SolvAttr::enhances     ( SOLVABLE_ENHANCES );
00049 
00050   const SolvAttr SolvAttr::summary      ( SOLVABLE_SUMMARY );       // translated
00051   const SolvAttr SolvAttr::description  ( SOLVABLE_DESCRIPTION );   // translated
00052   const SolvAttr SolvAttr::insnotify    ( SOLVABLE_MESSAGEINS );    // translated
00053   const SolvAttr SolvAttr::delnotify    ( SOLVABLE_MESSAGEDEL );    // translated
00054   const SolvAttr SolvAttr::eula         ( SOLVABLE_EULA );          // translated
00055   const SolvAttr SolvAttr::cpeid        ( SOLVABLE_CPEID );
00056   const SolvAttr SolvAttr::installtime  ( SOLVABLE_INSTALLTIME );
00057   const SolvAttr SolvAttr::buildtime    ( SOLVABLE_BUILDTIME );
00058   const SolvAttr SolvAttr::installsize  ( SOLVABLE_INSTALLSIZE );
00059   const SolvAttr SolvAttr::downloadsize ( SOLVABLE_DOWNLOADSIZE );
00060   const SolvAttr SolvAttr::diskusage    ( SOLVABLE_DISKUSAGE );
00061 
00062   //package
00063   const SolvAttr SolvAttr::checksum     ( SOLVABLE_CHECKSUM );
00064   const SolvAttr SolvAttr::medianr      ( SOLVABLE_MEDIANR );
00065   const SolvAttr SolvAttr::mediafile    ( SOLVABLE_MEDIAFILE );
00066   const SolvAttr SolvAttr::mediadir     ( SOLVABLE_MEDIADIR );
00067   const SolvAttr SolvAttr::changelog    ( "changelog" );
00068   const SolvAttr SolvAttr::buildhost    ( SOLVABLE_BUILDHOST );
00069   const SolvAttr SolvAttr::distribution ( SOLVABLE_DISTRIBUTION );
00070   const SolvAttr SolvAttr::license      ( SOLVABLE_LICENSE );
00071   const SolvAttr SolvAttr::packager     ( SOLVABLE_PACKAGER );
00072   const SolvAttr SolvAttr::group        ( SOLVABLE_GROUP );
00073   const SolvAttr SolvAttr::keywords     ( SOLVABLE_KEYWORDS );
00074   const SolvAttr SolvAttr::sourcesize   ( "sourcesize" );
00075   const SolvAttr SolvAttr::authors      ( SOLVABLE_AUTHORS );
00076   const SolvAttr SolvAttr::filelist     ( SOLVABLE_FILELIST );
00077   const SolvAttr SolvAttr::sourcearch   ( SOLVABLE_SOURCEARCH );
00078   const SolvAttr SolvAttr::sourcename   ( SOLVABLE_SOURCENAME );
00079   const SolvAttr SolvAttr::sourceevr    ( SOLVABLE_SOURCEEVR );
00080   const SolvAttr SolvAttr::headerend    ( SOLVABLE_HEADEREND );
00081   const SolvAttr SolvAttr::url          ( SOLVABLE_URL );
00082 
00083   // patch
00084   const SolvAttr SolvAttr::patchcategory            ( SOLVABLE_PATCHCATEGORY );
00085   const SolvAttr SolvAttr::rebootSuggested          ( UPDATE_REBOOT );
00086   const SolvAttr SolvAttr::restartSuggested         ( UPDATE_RESTART );
00087   const SolvAttr SolvAttr::reloginSuggested         ( UPDATE_RELOGIN );
00088   const SolvAttr SolvAttr::message                  ( UPDATE_MESSAGE );
00089   const SolvAttr SolvAttr::updateCollection         ( UPDATE_COLLECTION );
00090   const SolvAttr SolvAttr::updateCollectionName     ( UPDATE_COLLECTION_NAME );
00091   const SolvAttr SolvAttr::updateCollectionEvr      ( UPDATE_COLLECTION_EVR );
00092   const SolvAttr SolvAttr::updateCollectionArch     ( UPDATE_COLLECTION_ARCH );
00093   const SolvAttr SolvAttr::updateCollectionFilename ( UPDATE_COLLECTION_FILENAME );
00094   const SolvAttr SolvAttr::updateCollectionFlags    ( UPDATE_COLLECTION_FLAGS );
00095   const SolvAttr SolvAttr::updateReference          ( UPDATE_REFERENCE );
00096   const SolvAttr SolvAttr::updateReferenceType      ( UPDATE_REFERENCE_TYPE );
00097   const SolvAttr SolvAttr::updateReferenceHref      ( UPDATE_REFERENCE_HREF );
00098   const SolvAttr SolvAttr::updateReferenceId        ( UPDATE_REFERENCE_ID );
00099   const SolvAttr SolvAttr::updateReferenceTitle     ( UPDATE_REFERENCE_TITLE );
00100 
00101   //pattern
00102   const SolvAttr SolvAttr::isvisible    ( SOLVABLE_ISVISIBLE );
00103   const SolvAttr SolvAttr::icon         ( SOLVABLE_ICON );
00104   const SolvAttr SolvAttr::order        ( SOLVABLE_ORDER );
00105   const SolvAttr SolvAttr::isdefault    ( "isdefault" );
00106   const SolvAttr SolvAttr::category     ( SOLVABLE_CATEGORY );    // translated
00107   const SolvAttr SolvAttr::script       ( "script" );
00108   const SolvAttr SolvAttr::includes     ( SOLVABLE_INCLUDES );
00109   const SolvAttr SolvAttr::extends      ( SOLVABLE_EXTENDS );
00110 
00111   // product
00112   const SolvAttr SolvAttr::productReferenceFile  ( PRODUCT_REFERENCEFILE );
00113   const SolvAttr SolvAttr::productProductLine    ( PRODUCT_PRODUCTLINE );
00114   const SolvAttr SolvAttr::productShortlabel     ( PRODUCT_SHORTLABEL );
00115   const SolvAttr SolvAttr::productDistproduct    ( PRODUCT_DISTPRODUCT );
00116   const SolvAttr SolvAttr::productDistversion    ( PRODUCT_DISTVERSION );
00117   const SolvAttr SolvAttr::productType           ( PRODUCT_TYPE );
00118   const SolvAttr SolvAttr::productFlags          ( PRODUCT_FLAGS );
00119   const SolvAttr SolvAttr::productRegisterTarget ( PRODUCT_REGISTER_TARGET );
00120   const SolvAttr SolvAttr::productRegisterRelease( PRODUCT_REGISTER_RELEASE );
00121   const SolvAttr SolvAttr::productUrl            ( PRODUCT_URL );
00122   const SolvAttr SolvAttr::productUrlType        ( PRODUCT_URL_TYPE );
00123 
00124   // repository
00125   const SolvAttr SolvAttr::repositoryTimestamp   ( REPOSITORY_TIMESTAMP );
00126   const SolvAttr SolvAttr::repositoryExpire      ( REPOSITORY_EXPIRE );
00128   const SolvAttr SolvAttr::repositoryUpdates     ( REPOSITORY_UPDATES );
00130   const SolvAttr SolvAttr::repositoryDistros     ( REPOSITORY_DISTROS );
00131   const SolvAttr SolvAttr::repositoryProductLabel( REPOSITORY_PRODUCT_LABEL );
00132   const SolvAttr SolvAttr::repositoryProductCpeid( REPOSITORY_PRODUCT_CPEID );
00133   const SolvAttr SolvAttr::repositoryKeywords    ( REPOSITORY_KEYWORDS );
00134 
00135   const SolvAttr SolvAttr::repositoryAddedFileProvides( REPOSITORY_ADDEDFILEPROVIDES );
00136   const SolvAttr SolvAttr::repositoryRpmDbCookie      ( REPOSITORY_RPMDBCOOKIE );
00137   const SolvAttr SolvAttr::repositoryDeltaInfo        ( REPOSITORY_DELTAINFO );
00138 
00139   const SolvAttr SolvAttr::repositoryToolVersion        ( REPOSITORY_TOOLVERSION );
00140 
00142 
00143   SolvAttr SolvAttr::parent() const
00144   {
00145     switch( id() )
00146     {
00147       case UPDATE_COLLECTION_NAME:
00148       case UPDATE_COLLECTION_EVR:
00149       case UPDATE_COLLECTION_ARCH:
00150       case UPDATE_COLLECTION_FILENAME:
00151       case UPDATE_COLLECTION_FLAGS:
00152         return updateCollection;
00153         break;
00154 
00155       case UPDATE_REFERENCE_TYPE:
00156       case UPDATE_REFERENCE_HREF:
00157       case UPDATE_REFERENCE_ID:
00158       case UPDATE_REFERENCE_TITLE:
00159         return updateReference;
00160         break;
00161     }
00162     return noAttr;
00163   }
00164 
00165 } // namespace sat
00167 } // namespace zypp