X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/b53c9cea2902572822bbbece5bac236c1bbf846e..30060442025824c491f58887ca7369f3c572fa57:/apt-pkg/pkgsystem.h diff --git a/apt-pkg/pkgsystem.h b/apt-pkg/pkgsystem.h index 5b31457e0..affaa5c9a 100644 --- a/apt-pkg/pkgsystem.h +++ b/apt-pkg/pkgsystem.h @@ -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 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.