1 // -*- mode: cpp; mode: fold -*- 
   3 // $Id: acquire-method.h,v 1.15.2.1 2003/12/24 23:09:17 mdz Exp $ 
   4 /* ###################################################################### 
   6    Acquire Method - Method helper class + functions 
   8    These functions are designed to be used within the method task to 
   9    ease communication with APT. 
  11    ##################################################################### */ 
  14 /** \addtogroup acquire 
  17  *  \file acquire-method.h 
  20 #ifndef PKGLIB_ACQUIRE_METHOD_H 
  21 #define PKGLIB_ACQUIRE_METHOD_H 
  23 #include <apt-pkg/hashes.h> 
  24 #include <apt-pkg/macros.h> 
  32 #ifndef APT_8_CLEANER_HEADERS 
  33 #include <apt-pkg/configuration.h> 
  34 #include <apt-pkg/strutl.h> 
  51       HashStringList ExpectedHashes
; 
  52       // a maximum size we will download, this can be the exact filesize 
  53       // for when we know it or a arbitrary limit when we don't know the 
  54       // filesize (like a InRelease file) 
  55       unsigned long long MaximumSize
; 
  60       HashStringList Hashes
; 
  61       std::vector
<std::string
> GPGVOutput
; 
  65       unsigned long long Size
; 
  66       unsigned long long ResumePoint
; 
  68       void TakeHashes(class Hashes 
&Hash
); 
  73    std::vector
<std::string
> Messages
; 
  76    std::string FailReason
; 
  77    std::string UsedMirror
; 
  80    // Handlers for messages 
  81    virtual bool Configuration(std::string Message
); 
  82    virtual bool Fetch(FetchItem 
* /*Item*/) {return true;}; 
  85    void Fail(bool Transient 
= false); 
  86    inline void Fail(const char *Why
, bool Transient 
= false) {Fail(std::string(Why
),Transient
);}; 
  87    virtual void Fail(std::string Why
, bool Transient 
= false); 
  88    virtual void URIStart(FetchResult 
&Res
); 
  89    virtual void URIDone(FetchResult 
&Res
,FetchResult 
*Alt 
= 0); 
  91    bool MediaFail(std::string Required
,std::string Drive
); 
  92    virtual void Exit() {}; 
  94    void PrintStatus(char const * const header
, const char* Format
, va_list &args
) const; 
  97    enum CnfFlags 
{SingleInstance 
= (1<<0), 
  98                   Pipeline 
= (1<<1), SendConfig 
= (1<<2), 
  99                   LocalOnly 
= (1<<3), NeedsCleanup 
= (1<<4),  
 102    void Log(const char *Format
,...); 
 103    void Status(const char *Format
,...); 
 105    void Redirect(const std::string 
&NewURI
); 
 107    int Run(bool Single 
= false); 
 108    inline void SetFailReason(std::string Msg
) {FailReason 
= Msg
;}; 
 109    inline void SetIP(std::string aIP
) {IP 
= aIP
;}; 
 111    pkgAcqMethod(const char *Ver
,unsigned long Flags 
= 0); 
 112    virtual ~pkgAcqMethod(); 
 113    void DropPrivsOrDie(); 
 115    APT_HIDDEN 
void Dequeue();