]> git.saurik.com Git - apt.git/blobdiff - apt-inst/deb/debfile.h
DebFile: Refactor ExtractTarMember() out from ExtractArchive()
[apt.git] / apt-inst / deb / debfile.h
index 6b9f8ffc84772a23c6d4276119a8904b36433626..ecef71d2187c455afc47aeebe3f4c1664d79a514 100644 (file)
 
 
 #include <apt-pkg/arfile.h>
-#include <apt-pkg/database.h>
 #include <apt-pkg/dirstream.h>
 #include <apt-pkg/tagfile.h>
+#include <apt-pkg/pkgcache.h>
+
+#ifndef APT_8_CLEANER_HEADERS
+#include <apt-pkg/md5.h>
+#endif
+
+class FileFd;
 
 class debDebFile
 {
@@ -39,13 +45,11 @@ class debDebFile
    bool CheckMember(const char *Name);
    
    public:
-
    class ControlExtract;
    class MemControlExtract;
-   
-   bool ExtractControl(pkgDataBase &DB);
+
+   bool ExtractTarMember(pkgDirStream &Stream, const char *Name);
    bool ExtractArchive(pkgDirStream &Stream);
-   pkgCache::VerIterator MergeControl(pkgDataBase &DB);
    const ARArchive::Member *GotoMember(const char *Name);
    inline FileFd &GetFile() {return File;};
    
@@ -68,7 +72,7 @@ class debDebFile::MemControlExtract : public pkgDirStream
    char *Control;
    pkgTagSection Section;
    unsigned long Length;
-   string Member;
+   std::string Member;
    
    // Members from DirStream
    virtual bool DoItem(Item &Itm,int &Fd);
@@ -81,7 +85,7 @@ class debDebFile::MemControlExtract : public pkgDirStream
    bool TakeControl(const void *Data,unsigned long Size);
       
    MemControlExtract() : IsControl(false), Control(0), Length(0), Member("control") {};
-   MemControlExtract(string Member) : IsControl(false), Control(0), Length(0), Member(Member) {};
+   MemControlExtract(std::string Member) : IsControl(false), Control(0), Length(0), Member(Member) {};
    ~MemControlExtract() {delete [] Control;};   
 };
                                                                        /*}}}*/