]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/pkgsystem.cc
allow all dpkg selections to be set via apt-mark and libapt
[apt.git] / apt-pkg / pkgsystem.cc
index eee19e35c265c2239bb23860883db80adf62b94c..53015022150f51f89231e7a0607607501944d6a0 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
+#include <apt-pkg/debsystem.h>
 #include <apt-pkg/pkgsystem.h>
 #include <apt-pkg/pkgsystem.h>
-#include <apt-pkg/policy.h>
+#include <apt-pkg/macros.h>
+
 #include <cassert>
 #include <cassert>
+#include <cstring>
                                                                        /*}}}*/
 
 pkgSystem *_system = 0;
                                                                        /*}}}*/
 
 pkgSystem *_system = 0;
@@ -23,17 +28,18 @@ unsigned long pkgSystem::GlobalListLen = 0;
 // System::pkgSystem - Constructor                                     /*{{{*/
 // ---------------------------------------------------------------------
 /* Add it to the global list.. */
 // System::pkgSystem - Constructor                                     /*{{{*/
 // ---------------------------------------------------------------------
 /* Add it to the global list.. */
-pkgSystem::pkgSystem()
+pkgSystem::pkgSystem(char const * const label, pkgVersioningSystem * const vs) :
+   Label(label), VS(vs), d(NULL)
 {
    assert(GlobalListLen < sizeof(SysList)/sizeof(*SysList));
    SysList[GlobalListLen] = this;
 {
    assert(GlobalListLen < sizeof(SysList)/sizeof(*SysList));
    SysList[GlobalListLen] = this;
-   GlobalListLen++;
+   ++GlobalListLen;
 }
                                                                        /*}}}*/
 // System::GetSystem - Get the named system                            /*{{{*/
 // ---------------------------------------------------------------------
 /* */
 }
                                                                        /*}}}*/
 // System::GetSystem - Get the named system                            /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-pkgSystem *pkgSystem::GetSystem(const char *Label)
+APT_PURE pkgSystem *pkgSystem::GetSystem(const char *Label)
 {
    for (unsigned I = 0; I != GlobalListLen; I++)
       if (strcmp(SysList[I]->Label,Label) == 0)
 {
    for (unsigned I = 0; I != GlobalListLen; I++)
       if (strcmp(SysList[I]->Label,Label) == 0)
@@ -41,3 +47,21 @@ pkgSystem *pkgSystem::GetSystem(const char *Label)
    return 0;   
 }
                                                                        /*}}}*/
    return 0;   
 }
                                                                        /*}}}*/
+bool pkgSystem::MultiArchSupported() const                             /*{{{*/
+{
+   debSystem const * const deb = dynamic_cast<debSystem const *>(this);
+   if (deb != NULL)
+      return deb->SupportsMultiArch();
+   return true;
+}
+                                                                       /*}}}*/
+std::vector<std::string> pkgSystem::ArchitecturesSupported() const     /*{{{*/
+{
+   debSystem const * const deb = dynamic_cast<debSystem const *>(this);
+   if (deb != NULL)
+      return deb->SupportedArchitectures();
+   return {};
+}
+                                                                       /*}}}*/
+
+pkgSystem::~pkgSystem() {}