Use libsolv includes and adjust documentation
[platform/upstream/libzypp.git] / zypp / sat / SolvAttr.cc
index 3a5f360..8a030e2 100644 (file)
@@ -11,7 +11,7 @@
 */
 extern "C"
 {
-#include <satsolver/knownid.h>
+#include <solv/knownid.h>
 }
 
 #include <iostream>
@@ -31,17 +31,28 @@ namespace sat
   const SolvAttr SolvAttr::noAttr;
 
 #warning STILL ATTRIBUTES HERE WHICH ARE NOT PROVIDED BY SOLV FILES
-// At least the ones that do nat have a satsolver/knownid.
+// At least the ones that do nat have a solv/knownid.
 
   const SolvAttr SolvAttr::name         ( SOLVABLE_NAME );
   const SolvAttr SolvAttr::edition      ( SOLVABLE_EVR );
   const SolvAttr SolvAttr::arch         ( SOLVABLE_ARCH );
+  const SolvAttr SolvAttr::vendor      ( SOLVABLE_VENDOR );
+
+  const SolvAttr SolvAttr::provides    ( SOLVABLE_PROVIDES );
+  const SolvAttr SolvAttr::obsoletes   ( SOLVABLE_OBSOLETES );
+  const SolvAttr SolvAttr::conflicts   ( SOLVABLE_CONFLICTS );
+  const SolvAttr SolvAttr::requires    ( SOLVABLE_REQUIRES );
+  const SolvAttr SolvAttr::recommends  ( SOLVABLE_RECOMMENDS );
+  const SolvAttr SolvAttr::suggests    ( SOLVABLE_SUGGESTS );
+  const SolvAttr SolvAttr::supplements ( SOLVABLE_SUPPLEMENTS );
+  const SolvAttr SolvAttr::enhances    ( SOLVABLE_ENHANCES );
 
   const SolvAttr SolvAttr::summary      ( SOLVABLE_SUMMARY );       // translated
   const SolvAttr SolvAttr::description  ( SOLVABLE_DESCRIPTION );   // translated
   const SolvAttr SolvAttr::insnotify    ( SOLVABLE_MESSAGEINS );    // translated
   const SolvAttr SolvAttr::delnotify    ( SOLVABLE_MESSAGEDEL );    // translated
   const SolvAttr SolvAttr::eula                ( SOLVABLE_EULA );          // translated
+  const SolvAttr SolvAttr::cpeid        ( SOLVABLE_CPEID );
   const SolvAttr SolvAttr::installtime  ( SOLVABLE_INSTALLTIME );
   const SolvAttr SolvAttr::buildtime    ( SOLVABLE_BUILDTIME );
   const SolvAttr SolvAttr::installsize  ( SOLVABLE_INSTALLSIZE );
@@ -62,7 +73,6 @@ namespace sat
   const SolvAttr SolvAttr::keywords     ( SOLVABLE_KEYWORDS );
   const SolvAttr SolvAttr::sourcesize   ( "sourcesize" );
   const SolvAttr SolvAttr::authors      ( SOLVABLE_AUTHORS );
-  const SolvAttr SolvAttr::filenames    ( "filenames" );
   const SolvAttr SolvAttr::filelist     ( SOLVABLE_FILELIST );
   const SolvAttr SolvAttr::sourcearch   ( SOLVABLE_SOURCEARCH );
   const SolvAttr SolvAttr::sourcename   ( SOLVABLE_SOURCENAME );
@@ -76,11 +86,13 @@ namespace sat
   const SolvAttr SolvAttr::restartSuggested         ( UPDATE_RESTART );
   const SolvAttr SolvAttr::reloginSuggested         ( UPDATE_RELOGIN );
   const SolvAttr SolvAttr::message                  ( UPDATE_MESSAGE );
+  const SolvAttr SolvAttr::updateCollection         ( UPDATE_COLLECTION );
   const SolvAttr SolvAttr::updateCollectionName     ( UPDATE_COLLECTION_NAME );
   const SolvAttr SolvAttr::updateCollectionEvr      ( UPDATE_COLLECTION_EVR );
   const SolvAttr SolvAttr::updateCollectionArch     ( UPDATE_COLLECTION_ARCH );
   const SolvAttr SolvAttr::updateCollectionFilename ( UPDATE_COLLECTION_FILENAME );
   const SolvAttr SolvAttr::updateCollectionFlags    ( UPDATE_COLLECTION_FLAGS );
+  const SolvAttr SolvAttr::updateReference          ( UPDATE_REFERENCE );
   const SolvAttr SolvAttr::updateReferenceType      ( UPDATE_REFERENCE_TYPE );
   const SolvAttr SolvAttr::updateReferenceHref      ( UPDATE_REFERENCE_HREF );
   const SolvAttr SolvAttr::updateReferenceId        ( UPDATE_REFERENCE_ID );
@@ -97,23 +109,58 @@ namespace sat
   const SolvAttr SolvAttr::extends      ( SOLVABLE_EXTENDS );
 
   // product
-  const SolvAttr SolvAttr::productShortlabel   ( PRODUCT_SHORTLABEL );
-  const SolvAttr SolvAttr::productDistproduct  ( PRODUCT_DISTPRODUCT );
-  const SolvAttr SolvAttr::productDistversion  ( PRODUCT_DISTVERSION );
-  const SolvAttr SolvAttr::productType         ( PRODUCT_TYPE );
-  const SolvAttr SolvAttr::productRelnotesurl  ( PRODUCT_RELNOTESURL );
-  const SolvAttr SolvAttr::productUpdateurls   ( PRODUCT_UPDATEURLS );
-  const SolvAttr SolvAttr::productExtraurls    ( PRODUCT_EXTRAURLS );
-  const SolvAttr SolvAttr::productOptionalurls ( PRODUCT_OPTIONALURLS );
-  const SolvAttr SolvAttr::productFlags        ( PRODUCT_FLAGS );
-  const SolvAttr SolvAttr::productFlavor       ( PRODUCT_FLAVOR );
-  const SolvAttr SolvAttr::productReferences   ( PRODUCT_REFERENCES );
-  const SolvAttr SolvAttr::productUpdaterepoKey( PRODUCT_UPDATEREPOKEY );
+  const SolvAttr SolvAttr::productReferenceFile  ( PRODUCT_REFERENCEFILE );
+  const SolvAttr SolvAttr::productProductLine    ( PRODUCT_PRODUCTLINE );
+  const SolvAttr SolvAttr::productShortlabel     ( PRODUCT_SHORTLABEL );
+  const SolvAttr SolvAttr::productDistproduct    ( PRODUCT_DISTPRODUCT );
+  const SolvAttr SolvAttr::productDistversion    ( PRODUCT_DISTVERSION );
+  const SolvAttr SolvAttr::productType           ( PRODUCT_TYPE );
+  const SolvAttr SolvAttr::productFlags          ( PRODUCT_FLAGS );
+  const SolvAttr SolvAttr::productRegisterTarget ( PRODUCT_REGISTER_TARGET );
+  const SolvAttr SolvAttr::productRegisterRelease( PRODUCT_REGISTER_RELEASE );
+  const SolvAttr SolvAttr::productUrl            ( PRODUCT_URL );
+  const SolvAttr SolvAttr::productUrlType        ( PRODUCT_URL_TYPE );
 
   // repository
-  const SolvAttr SolvAttr::repositoryTimestamp ( REPOSITORY_TIMESTAMP );
-  const SolvAttr SolvAttr::repositoryExpire ( REPOSITORY_EXPIRE );
-  const SolvAttr SolvAttr::repositoryUpdates ( REPOSITORY_UPDATES );
+  const SolvAttr SolvAttr::repositoryTimestamp   ( REPOSITORY_TIMESTAMP );
+  const SolvAttr SolvAttr::repositoryExpire      ( REPOSITORY_EXPIRE );
+  /** array of repositoryProductLabel repositoryProductCpeid pairs */
+  const SolvAttr SolvAttr::repositoryUpdates     ( REPOSITORY_UPDATES );
+  /** array of repositoryProductLabel repositoryProductCpeid pairs */
+  const SolvAttr SolvAttr::repositoryDistros     ( REPOSITORY_DISTROS );
+  const SolvAttr SolvAttr::repositoryProductLabel( REPOSITORY_PRODUCT_LABEL );
+  const SolvAttr SolvAttr::repositoryProductCpeid( REPOSITORY_PRODUCT_CPEID );
+  const SolvAttr SolvAttr::repositoryKeywords    ( REPOSITORY_KEYWORDS );
+
+  const SolvAttr SolvAttr::repositoryAddedFileProvides( REPOSITORY_ADDEDFILEPROVIDES );
+  const SolvAttr SolvAttr::repositoryRpmDbCookie      ( REPOSITORY_RPMDBCOOKIE );
+  const SolvAttr SolvAttr::repositoryDeltaInfo        ( REPOSITORY_DELTAINFO );
+
+  const SolvAttr SolvAttr::repositoryToolVersion       ( REPOSITORY_TOOLVERSION );
+
+  /////////////////////////////////////////////////////////////////
+
+  SolvAttr SolvAttr::parent() const
+  {
+    switch( id() )
+    {
+      case UPDATE_COLLECTION_NAME:
+      case UPDATE_COLLECTION_EVR:
+      case UPDATE_COLLECTION_ARCH:
+      case UPDATE_COLLECTION_FILENAME:
+      case UPDATE_COLLECTION_FLAGS:
+        return updateCollection;
+        break;
+
+      case UPDATE_REFERENCE_TYPE:
+      case UPDATE_REFERENCE_HREF:
+      case UPDATE_REFERENCE_ID:
+      case UPDATE_REFERENCE_TITLE:
+        return updateReference;
+        break;
+    }
+    return noAttr;
+  }
 
 } // namespace sat
   /////////////////////////////////////////////////////////////////