]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/edsp/edspsystem.h
refactor EDSP classes for better internal reuse
[apt.git] / apt-pkg / edsp / edspsystem.h
index ca703fa84824d74e050c58def8420fa932b82d57..2c429c3d6839368dbf6957763043bebaa08cea83 100644 (file)
 #define PKGLIB_EDSPSYSTEM_H
 
 #include <apt-pkg/pkgsystem.h>
+#include <apt-pkg/cacheiterators.h>
+#include <apt-pkg/pkgcache.h>
 
-class edspIndex;
-class edspSystem : public pkgSystem
-{
-   /** \brief dpointer placeholder (for later in case we need it) */
-   void *d;
+#include <memory>
+#include <vector>
 
-   edspIndex *StatusFile;
+#include <apt-pkg/macros.h>
 
-   public:
+class Configuration;
+class pkgDepCache;
+class pkgIndexFile;
+class pkgPackageManager;
 
-   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);
+class APT_HIDDEN edspLikeSystem : public pkgSystem
+{
+protected:
+   std::unique_ptr<pkgIndexFile> StatusFile;
+
+public:
+   virtual bool Lock() APT_OVERRIDE APT_CONST;
+   virtual bool UnLock(bool NoErrors = false) APT_OVERRIDE APT_CONST;
+   virtual pkgPackageManager *CreatePM(pkgDepCache *Cache) const APT_OVERRIDE APT_CONST;
+   virtual bool Initialize(Configuration &Cnf) APT_OVERRIDE;
+   virtual bool ArchiveSupported(const char *Type) APT_OVERRIDE APT_CONST;
+   virtual signed Score(Configuration const &Cnf) APT_OVERRIDE;
    virtual bool FindIndex(pkgCache::PkgFileIterator File,
-                         pkgIndexFile *&Found) const;
+                         pkgIndexFile *&Found) const APT_OVERRIDE;
 
-   edspSystem();
-   ~edspSystem();
+   edspLikeSystem(char const * const Label);
+   virtual ~edspLikeSystem();
 };
 
-extern edspSystem edspSys;
+class APT_HIDDEN edspSystem : public edspLikeSystem
+{
+   std::string tempDir;
+   std::string tempStatesFile;
+   std::string tempPrefsFile;
+
+public:
+   virtual bool Initialize(Configuration &Cnf) APT_OVERRIDE;
+   virtual bool AddStatusFiles(std::vector<pkgIndexFile *> &List) APT_OVERRIDE;
+
+   edspSystem();
+   virtual ~edspSystem();
+};
 
 #endif