]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/pkgsystem.h
implement generic config fallback for methods
[apt.git] / apt-pkg / pkgsystem.h
index 5b31457e0bf8c71303b9b996d2a816c662eee3ef..affaa5c9af9bb86261d3447b053a663c66c5d4f3 100644 (file)
@@ -51,6 +51,7 @@ class pkgVersioningSystem;
 class Configuration;
 class pkgIndexFile;
 
+class pkgSystemPrivate;
 class pkgSystem
 {
    public:
@@ -92,10 +93,35 @@ class pkgSystem
       return 0;
    };
 
+   //FIXME: these methods should be virtual
+   /** does this system has support for MultiArch?
+    *
+    * Systems supporting only single arch (not systems which are single arch)
+    * are considered legacy systems and support for it will likely degrade over
+    * time.
+    *
+    * The default implementation returns always \b true.
+    *
+    * @return \b true if the system supports MultiArch, \b false if not.
+    */
+   bool MultiArchSupported() const;
+   /** architectures supported by this system
+    *
+    * A MultiArch capable system might be configured to use
+    * this capability.
+    *
+    * @return a list of all architectures (native + foreign) configured
+    * for on this system (aka: which can be installed without force)
+    */
+   std::vector<std::string> ArchitecturesSupported() const;
+
+   APT_HIDDEN void SetVersionMapping(map_id_t const in, map_id_t const out);
+   APT_HIDDEN map_id_t GetVersionMapping(map_id_t const in) const;
+
    pkgSystem(char const * const Label, pkgVersioningSystem * const VS);
    virtual ~pkgSystem();
    private:
-   void * const d;
+   pkgSystemPrivate * const d;
 };
 
 // The environment we are operating in.