home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / live / usr / include / apt-pkg / acquire-method.h < prev    next >
C/C++ Source or Header  |  1999-06-21  |  2KB  |  81 lines

  1. // -*- mode: cpp; mode: fold -*-
  2. // Description                                /*{{{*/
  3. // $Id: acquire-method.h,v 1.10 1999/01/27 02:48:52 jgg Exp $
  4. /* ######################################################################
  5.  
  6.    Acquire Method - Method helper class + functions
  7.    
  8.    These functions are designed to be used within the method task to
  9.    ease communication with APT.
  10.    
  11.    ##################################################################### */
  12.                                     /*}}}*/
  13. #ifndef PKGLIB_ACQUIRE_METHOD_H
  14. #define PKGLIB_ACQUIRE_METHOD_H
  15.  
  16. #include <apt-pkg/configuration.h>
  17. #include <apt-pkg/strutl.h>
  18.  
  19. #ifdef __GNUG__
  20. #pragma interface "apt-pkg/acquire-method.h"
  21. #endif 
  22.  
  23. class pkgAcqMethod
  24. {
  25.    protected:
  26.  
  27.    struct FetchItem
  28.    {
  29.       FetchItem *Next;
  30.  
  31.       string Uri;
  32.       string DestFile;
  33.       time_t LastModified;
  34.       bool IndexFile;
  35.    };
  36.    
  37.    struct FetchResult
  38.    {
  39.       string MD5Sum;
  40.       time_t LastModified;
  41.       bool IMSHit;
  42.       string Filename;
  43.       unsigned long Size;
  44.       unsigned long ResumePoint;      
  45.       FetchResult();
  46.    };
  47.  
  48.    // State
  49.    vector<string> Messages;
  50.    FetchItem *Queue;
  51.    FetchItem *QueueBack;
  52.       
  53.    // Handlers for messages
  54.    virtual bool Configuration(string Message);
  55.    virtual bool Fetch(FetchItem *Item) {return true;};
  56.    
  57.    // Outgoing messages
  58.    void Fail(bool Transient = false);
  59.    inline void Fail(const char *Why, bool Transient = false) {Fail(string(Why),Transient);};
  60.    void Fail(string Why, bool Transient = false);
  61.    void URIStart(FetchResult &Res);
  62.    void URIDone(FetchResult &Res,FetchResult *Alt = 0);
  63.    bool MediaFail(string Required,string Drive);
  64.    
  65.    public:
  66.  
  67.    enum CnfFlags {SingleInstance = (1<<0),
  68.                   Pipeline = (1<<1), SendConfig = (1<<2),
  69.                   LocalOnly = (1<<3)};
  70.  
  71.    void Log(const char *Format,...);
  72.    void Status(const char *Format,...);
  73.    
  74.    int Run(bool Single = false);
  75.    
  76.    pkgAcqMethod(const char *Ver,unsigned long Flags = 0);
  77.    virtual ~pkgAcqMethod() {};
  78. };
  79.  
  80. #endif
  81.