]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/deb/debsystem.h
ensure FileFd doesn't try to open /dev/null as atomic and co
[apt.git] / apt-pkg / deb / debsystem.h
index 84e57e74a762c8fa9dd4dffd25f77409f0628160..5185c92d8912ee32586776cc9081b34d67f3e83d 100644 (file)
 #ifndef PKGLIB_DEBSYSTEM_H
 #define PKGLIB_DEBSYSTEM_H
 
-#ifdef __GNUG__
-#pragma interface "apt-pkg/debsystem.h"
-#endif
-
 #include <apt-pkg/pkgsystem.h>
+#include <apt-pkg/pkgcache.h>
+#include <apt-pkg/cacheiterators.h>
+
+#include <vector>
+class Configuration;
+class pkgIndexFile;
+class pkgPackageManager;
+class debSystemPrivate;
+class pkgDepCache;
 
+#ifndef APT_10_CLEANER_HEADERS
 class debStatusIndex;
+#endif
+
 class debSystem : public pkgSystem
 {
-   // For locking support
-   int LockFD;
-   unsigned LockCount;
-   bool CheckUpdates();
-   
-   debStatusIndex *StatusFile;
-   
+   // private d-pointer
+   debSystemPrivate * const d;
+   APT_HIDDEN bool CheckUpdates();
+
    public:
 
-   virtual bool Lock();
-   virtual bool UnLock(bool NoErrors = false);   
-   virtual pkgPackageManager *CreatePM(pkgDepCache *Cache) const;
-   virtual bool Initialize(Configuration &Cnf);
-   virtual bool ArchiveSupported(const char *Type);
-   virtual signed Score(Configuration const &Cnf);
-   virtual bool AddStatusFiles(std::vector<pkgIndexFile *> &List);
+   virtual bool Lock() APT_OVERRIDE;
+   virtual bool UnLock(bool NoErrors = false) APT_OVERRIDE;
+   virtual pkgPackageManager *CreatePM(pkgDepCache *Cache) const APT_OVERRIDE;
+   virtual bool Initialize(Configuration &Cnf) APT_OVERRIDE;
+   virtual bool ArchiveSupported(const char *Type) APT_OVERRIDE;
+   virtual signed Score(Configuration const &Cnf) APT_OVERRIDE;
+   virtual bool AddStatusFiles(std::vector<pkgIndexFile *> &List) APT_OVERRIDE;
    virtual bool FindIndex(pkgCache::PkgFileIterator File,
-                         pkgIndexFile *&Found) const;
+                         pkgIndexFile *&Found) const APT_OVERRIDE;
 
    debSystem();
-   ~debSystem();
+   virtual ~debSystem();
+
+   APT_HIDDEN static std::string GetDpkgExecutable();
+   APT_HIDDEN static std::vector<std::string> GetDpkgBaseCommand();
+   APT_HIDDEN static void DpkgChrootDirectory();
+   APT_HIDDEN static pid_t ExecDpkg(std::vector<std::string> const &sArgs, int * const inputFd, int * const outputFd, bool const DiscardOutput);
+   APT_HIDDEN static bool SupportsMultiArch();
+   APT_HIDDEN static std::vector<std::string> SupportedArchitectures();
 };
 
 extern debSystem debSys;