]> git.saurik.com Git - apt.git/blobdiff - ftparchive/multicompress.h
Support large files in the complete toolset. Indexes of this
[apt.git] / ftparchive / multicompress.h
index 3ac3b8fb28640c60f952879d025378876dd170be..4839af47dba312dd9139ca05a36d65746bddc6bc 100644 (file)
 
 #include <string>
 #include <apt-pkg/fileutl.h>
 
 #include <string>
 #include <apt-pkg/fileutl.h>
+#include <apt-pkg/aptconfiguration.h>
 #include <stdio.h>
 #include <sys/types.h>
     
 class MultiCompress
 {
 #include <stdio.h>
 #include <sys/types.h>
     
 class MultiCompress
 {
-   // Enumeration of all supported compressors
-   struct CompType
-   {
-      const char *Name;
-      const char *Extension;
-      const char *Binary;
-      const char *CompArgs;
-      const char *UnCompArgs;
-      unsigned char Cost;
-   };
-
    // An output file
    struct Files
    {
       string Output;
    // An output file
    struct Files
    {
       string Output;
-      const CompType *CompressProg;
-      Files *Next;      
+      APT::Configuration::Compressor CompressProg;
+      Files *Next;
       FileFd TmpFile;
       pid_t CompressProc;
       time_t OldMTime;
       FileFd TmpFile;
       pid_t CompressProc;
       time_t OldMTime;
@@ -51,10 +41,9 @@ class MultiCompress
    Files *Outputs;
    pid_t Outputter;
    mode_t Permissions;
    Files *Outputs;
    pid_t Outputter;
    mode_t Permissions;
-   static const CompType Compressors[];
 
 
-   bool OpenCompress(const CompType *Prog,pid_t &Pid,int const &FileFd,
-                    int &OutFd,bool const &Comp);
+   bool OpenCompress(APT::Configuration::Compressor const &Prog,
+                    pid_t &Pid,int const &FileFd, int &OutFd,bool const &Comp);
    bool Child(int const &Fd);
    bool Start();
    bool Die();
    bool Child(int const &Fd);
    bool Start();
    bool Die();
@@ -65,7 +54,7 @@ class MultiCompress
    FILE *Input;
    unsigned long UpdateMTime;
    
    FILE *Input;
    unsigned long UpdateMTime;
    
-   bool Finalize(unsigned long &OutSize);
+   bool Finalize(unsigned long long &OutSize);
    bool OpenOld(int &Fd,pid_t &Proc);
    bool CloseOld(int Fd,pid_t Proc);
    static bool GetStat(string const &Output,string const &Compress,struct stat &St);
    bool OpenOld(int &Fd,pid_t &Proc);
    bool CloseOld(int Fd,pid_t Proc);
    static bool GetStat(string const &Output,string const &Compress,struct stat &St);