]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/pkgsystem.h
test framework: Correctly generate new paths in noopchroot
[apt.git] / apt-pkg / pkgsystem.h
index 3a447da8bc318510597bae233f016856f249b83d..55bdeec708c02c53f4b07268314cc5568a45cdd8 100644 (file)
@@ -52,7 +52,7 @@ class Configuration;
 class pkgIndexFile;
 
 class pkgSystem
 class pkgIndexFile;
 
 class pkgSystem
-{   
+{
    public:
 
    // Global list of supported systems
    public:
 
    // Global list of supported systems
@@ -60,8 +60,8 @@ class pkgSystem
    static unsigned long GlobalListLen;
    static pkgSystem *GetSystem(const char *Label);
    
    static unsigned long GlobalListLen;
    static pkgSystem *GetSystem(const char *Label);
    
-   const char *Label;
-   pkgVersioningSystem *VS;
+   const char * const Label;
+   pkgVersioningSystem * const VS;
    
    /* Prevent other programs from touching shared data not covered by
       other locks (cache or state locks) */
    
    /* Prevent other programs from touching shared data not covered by
       other locks (cache or state locks) */
@@ -81,7 +81,8 @@ class pkgSystem
    virtual bool ArchiveSupported(const char *Type) = 0;
 
    // Return a list of system index files..
    virtual bool ArchiveSupported(const char *Type) = 0;
 
    // Return a list of system index files..
-   virtual bool AddStatusFiles(std::vector<pkgIndexFile *> &List) = 0;   
+   virtual bool AddStatusFiles(std::vector<pkgIndexFile *> &List) = 0;
+
    virtual bool FindIndex(pkgCache::PkgFileIterator File,
                          pkgIndexFile *&Found) const = 0;
 
    virtual bool FindIndex(pkgCache::PkgFileIterator File,
                          pkgIndexFile *&Found) const = 0;
 
@@ -90,11 +91,33 @@ class pkgSystem
    virtual signed Score(Configuration const &/*Cnf*/) {
       return 0;
    };
    virtual signed Score(Configuration const &/*Cnf*/) {
       return 0;
    };
-   
-   pkgSystem();
+
+   //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;
+
+   pkgSystem(char const * const Label, pkgVersioningSystem * const VS);
    virtual ~pkgSystem();
    private:
    virtual ~pkgSystem();
    private:
-   void *d;
+   void * const d;
 };
 
 // The environment we are operating in.
 };
 
 // The environment we are operating in.