]> git.saurik.com Git - apt.git/blobdiff - ftparchive/contents.h
Correctly report write errors when flushing buffered writer
[apt.git] / ftparchive / contents.h
index f549ce17fce7b407ffa47eecde2705ee0ba30609..bc691d473fa684d903cfe2dc157277ae29fae839 100644 (file)
@@ -9,12 +9,16 @@
                                                                        /*}}}*/
 #ifndef CONTENTS_H
 #define CONTENTS_H
-    
-#include <stdlib.h>
-#include <stdio.h>
-#include <apt-pkg/debfile.h>
+
 #include <apt-pkg/dirstream.h>
 
+#include <stddef.h>
+#include <stdio.h>
+#include <string>
+
+class debDebFile;
+class FileFd;
+
 class GenContents
 {
    struct Node
@@ -51,14 +55,14 @@ class GenContents
    unsigned long NodeLeft;
    
    Node *Grab(Node *Top,const char *Name,const char *Package);
-   void WriteSpace(FILE *Out,unsigned int Current,unsigned int Target);
-   void DoPrint(FILE *Out,Node *Top, char *Buf);
+   void WriteSpace(std::string &out, size_t Current, size_t Target);
+   void DoPrint(FileFd &Out,Node *Top, char *Buf);
    
    public:
    
    char *Mystrdup(const char *From);
    void Add(const char *Dir,const char *Package);   
-   void Print(FILE *Out);
+   void Print(FileFd &Out);
 
    GenContents() : BlockList(0), StrPool(0), StrLeft(0), 
                    NodePool(0), NodeLeft(0) {};
@@ -77,13 +81,13 @@ class ContentsExtract : public pkgDirStream
    
    bool Read(debDebFile &Deb);
    
-   virtual bool DoItem(Item &Itm,int &Fd);      
+   virtual bool DoItem(Item &Itm,int &Fd) APT_OVERRIDE;      
    void Reset() {CurSize = 0;};
    bool TakeContents(const void *Data,unsigned long long Length);
-   void Add(GenContents &Contents,string const &Package);
+   void Add(GenContents &Contents,std::string const &Package);
    
-   ContentsExtract() : Data(0), MaxSize(0), CurSize(0) {};
-   virtual ~ContentsExtract() {delete [] Data;};
+   ContentsExtract();
+   virtual ~ContentsExtract();
 };
 
 #endif