]> 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 1e27d2cb03d983fed5bbae1c1bfb59a307bcfc42..2c429c3d6839368dbf6957763043bebaa08cea83 100644 (file)
 #include <apt-pkg/cacheiterators.h>
 #include <apt-pkg/pkgcache.h>
 
+#include <memory>
 #include <vector>
 
+#include <apt-pkg/macros.h>
+
 class Configuration;
 class pkgDepCache;
 class pkgIndexFile;
 class pkgPackageManager;
-class edspIndex;
 
-class APT_HIDDEN edspSystem : public pkgSystem
+class APT_HIDDEN edspLikeSystem : public pkgSystem
 {
-   /** \brief dpointer placeholder (for later in case we need it) */
-   void *d;
+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 APT_OVERRIDE;
 
-   edspIndex *StatusFile;
+   edspLikeSystem(char const * const Label);
+   virtual ~edspLikeSystem();
+};
 
-   public:
+class APT_HIDDEN edspSystem : public edspLikeSystem
+{
+   std::string tempDir;
+   std::string tempStatesFile;
+   std::string tempPrefsFile;
 
-   virtual bool Lock() APT_CONST;
-   virtual bool UnLock(bool NoErrors = false) APT_CONST;
-   virtual pkgPackageManager *CreatePM(pkgDepCache *Cache) const APT_CONST;
-   virtual bool Initialize(Configuration &Cnf);
-   virtual bool ArchiveSupported(const char *Type) APT_CONST;
-   virtual signed Score(Configuration const &Cnf);
-   virtual bool AddStatusFiles(std::vector<pkgIndexFile *> &List);
-   virtual bool FindIndex(pkgCache::PkgFileIterator File,
-                         pkgIndexFile *&Found) const;
+public:
+   virtual bool Initialize(Configuration &Cnf) APT_OVERRIDE;
+   virtual bool AddStatusFiles(std::vector<pkgIndexFile *> &List) APT_OVERRIDE;
 
    edspSystem();
    virtual ~edspSystem();