Imported Upstream version 14.47.1
[platform/upstream/libzypp.git] / zypp / sat / detail / PoolMember.h
index 0cd0fdc..6819e51 100644 (file)
@@ -12,6 +12,8 @@
 #ifndef ZYPP_SAT_DETAIL_POOLMEMBER_H
 #define ZYPP_SAT_DETAIL_POOLMEMBER_H
 
+#include <solv/solvversion.h>
+
 #include "zypp/base/Tr1hash.h"
 #include "zypp/base/Iterator.h"
 #include "zypp/base/String.h"
 
 extern "C"
 {
-struct _Solvable;
-struct _Repo;
-struct _Pool;
+  // Those _Type names are exposed as sat::detail::CType below!
+#if ( LIBSOLV_VERSION >= 700 )
+  struct s_Dataiterator;
+  struct s_Datamatcher;
+  struct s_Map;
+  struct s_Pool;
+  struct s_Queue;
+  struct s_Repo;
+  struct s_Solvable;
+  struct s_Solver;
+  struct s_Transaction;
+#else
+  struct _Dataiterator;
+  struct _Datamatcher;
+  struct _Map;
+  struct _Pool;
+  struct _Queue;
+  struct _Repo;
+  struct _Solvable;
+  struct _Solver;
+  struct _Transaction;
+#endif
 }
 
 ///////////////////////////////////////////////////////////////////
@@ -45,6 +66,33 @@ namespace zypp
   namespace sat
   { /////////////////////////////////////////////////////////////////
 
+    ///////////////////////////////////////////////////////////////////
+    namespace detail
+    {
+#if ( LIBSOLV_VERSION >= 700 )
+      typedef ::s_Dataiterator CDataiterator;  ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::s_Datamatcher  CDatamatcher;   ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::s_Map          CMap;           ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::s_Pool         CPool;          ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::s_Queue                CQueue;         ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::s_Repo         CRepo;          ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::s_Solvable     CSolvable;      ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::s_Solver       CSolver;        ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::s_Transaction  CTransaction;   ///< Wrapped libsolv C data type exposed as backdoor
+#else
+      typedef ::_Dataiterator  CDataiterator;  ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::_Datamatcher   CDatamatcher;   ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::_Map           CMap;           ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::_Pool          CPool;          ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::_Queue         CQueue;         ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::_Repo          CRepo;          ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::_Solvable      CSolvable;      ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::_Solver                CSolver;        ///< Wrapped libsolv C data type exposed as backdoor
+      typedef ::_Transaction   CTransaction;   ///< Wrapped libsolv C data type exposed as backdoor
+#endif
+    } // namespace detail
+    ///////////////////////////////////////////////////////////////////
+
     class Pool;
     class Solvable;
 
@@ -103,7 +151,7 @@ namespace zypp
       static const SolvableIdType systemSolvableId( 1 );
 
       /** Id type to connect \ref Repo and sat-repo. */
-      typedef ::_Repo * RepoIdType;
+      typedef CRepo * RepoIdType;
       /** Id to denote \ref Repo::noRepository. */
       static const RepoIdType noRepoId( 0 );