]>
git.saurik.com Git - apt.git/blob - apt-pkg/contrib/progress.h
f7fbc9ccf8470ee37b6e33410f80b115d0b6702c
   1 // -*- mode: cpp; mode: fold -*- 
   3 // $Id: progress.h,v 1.6 2001/05/07 05:06:52 jgg Exp $ 
   4 /* ###################################################################### 
   6    OpProgress - Operation Progress 
   8    This class allows lengthy operations to communicate their progress  
   9    to the GUI. The progress model is simple and is not designed to handle 
  10    the complex case of the multi-activity acquire class. 
  12    The model is based on the concept of an overall operation consisting 
  13    of a series of small sub operations. Each sub operation has it's own 
  14    completion status and the overall operation has it's completion status. 
  15    The units of the two are not mixed and are completely independent. 
  17    The UI is expected to subclass this to provide the visuals to the user. 
  19    ##################################################################### */ 
  21 #ifndef PKGLIB_PROGRESS_H 
  22 #define PKGLIB_PROGRESS_H 
  28 #ifndef APT_8_CLEANER_HEADERS 
  35    unsigned long long Current
; 
  36    unsigned long long Total
; 
  37    unsigned long long Size
; 
  38    unsigned long long SubTotal
; 
  41    // Change reduction code 
  42    struct timeval LastTime
; 
  44    std::string LastSubOp
; 
  54    bool CheckChange(float Interval 
= 0.7);                   
  55    virtual void Update() {}; 
  59    void Progress(unsigned long long Current
); 
  60    void SubProgress(unsigned long long SubTotal
, const std::string 
&Op 
= "", float const Percent 
= -1); 
  61    void OverallProgress(unsigned long long Current
,unsigned long long Total
, 
  62                         unsigned long long Size
,const std::string 
&Op
); 
  63    virtual void Done() {}; 
  66    virtual ~OpProgress() {}; 
  69 class OpTextProgress 
: public OpProgress
 
  76    unsigned long LastLen
; 
  77    virtual void Update(); 
  78    void Write(const char *S
); 
  84    OpTextProgress(bool NoUpdate 
= false) : NoUpdate(NoUpdate
),  
  85                 NoDisplay(false), LastLen(0) {}; 
  86    OpTextProgress(Configuration 
&Config
); 
  87    virtual ~OpTextProgress() {Done();};