apt @VERSION@
Public Member Functions | Public Attributes | Protected Attributes

pkgAcquireStatus Class Reference

A monitor object for downloads controlled by the pkgAcquire class. {{{. More...

#include <acquire.h>

List of all members.

Public Member Functions

virtual void Fetched (unsigned long Size, unsigned long ResumePoint)
 Invoked when a local or remote file has been completely fetched.
virtual bool MediaChange (string Media, string Drive)=0
 Invoked when the user should be prompted to change the inserted removable media.
virtual void IMSHit (pkgAcquire::ItemDesc &)
 Invoked when an item is confirmed to be up-to-date.
virtual void Fetch (pkgAcquire::ItemDesc &)
 Invoked when some of an item's data is fetched.
virtual void Done (pkgAcquire::ItemDesc &)
 Invoked when an item is successfully and completely fetched.
virtual void Fail (pkgAcquire::ItemDesc &)
 Invoked when the process of fetching an item encounters a fatal error.
virtual bool Pulse (pkgAcquire *Owner)
 Periodically invoked while the Acquire process is underway.
virtual void Start ()
 Invoked when the Acquire process starts running.
virtual void Stop ()
 Invoked when the Acquire process stops running.
 pkgAcquireStatus ()
 Initialize all counters to 0 and the time to the current time.

Public Attributes

bool Update
 If true, the download scheduler should call Pulse() at the next available opportunity.
bool MorePulses
 If true, extra Pulse() invocations will be performed.

Protected Attributes

struct timeval Time
 The last time at which this monitor object was updated.
struct timeval StartTime
 The time at which the download started.
double LastBytes
 The number of bytes fetched as of the previous call to pkgAcquireStatus::Pulse, including local items.
double CurrentCPS
 The current rate of download as of the most recent call to pkgAcquireStatus::Pulse, in bytes per second.
double CurrentBytes
 The number of bytes fetched as of the most recent call to pkgAcquireStatus::Pulse, including local items.
double TotalBytes
 The total number of bytes that need to be fetched.
double FetchedBytes
 The total number of bytes accounted for by items that were successfully fetched.
unsigned long ElapsedTime
 The amount of time that has elapsed since the download started.
unsigned long TotalItems
 The total number of items that need to be fetched.
unsigned long CurrentItems
 The number of items that have been successfully downloaded.

Detailed Description

A monitor object for downloads controlled by the pkgAcquire class. {{{.

Todo:
Why protected members?
Todo:
Should the double members be uint64_t?

Member Function Documentation

void Fetched ( unsigned long  Size,
unsigned long  ResumePoint 
) [virtual]

Invoked when a local or remote file has been completely fetched.

Parameters:
SizeThe size of the file fetched.
ResumePointHow much of the file was already fetched.

References FetchedBytes.

virtual void IMSHit ( pkgAcquire::ItemDesc ) [inline, virtual]

Invoked when an item is confirmed to be up-to-date.

For instance, when an HTTP download is informed that the file on the server was not modified.

Referenced by pkgAcquire::Worker::RunMessages().

bool MediaChange ( string  Media,
string  Drive 
) [pure virtual]

Invoked when the user should be prompted to change the inserted removable media.

This method should not return until the user has confirmed to the user interface that the media change is complete.

Parameters:
MediaThe name of the media type that should be changed.
DriveThe identifying name of the drive whose media should be changed.
Returns:
true if the user confirms the media change, false if it is cancelled.
Todo:
This is a horrible blocking monster; it should be CPSed with prejudice.

References pkgAcquire::Debug, pkgAcquire::Log, and MediaChange().

Referenced by MediaChange().

bool Pulse ( pkgAcquire Owner) [virtual]

Periodically invoked while the Acquire process is underway.

Subclasses should first call pkgAcquireStatus::Pulse(), then update their status output. The download process is blocked while Pulse() is being called.

Returns:
false if the user asked to cancel the whole Acquire process.
See also:
pkgAcquire::Run

References CurrentBytes, CurrentCPS, CurrentItems, ElapsedTime, pkgAcquire::ItemsBegin(), pkgAcquire::ItemsEnd(), LastBytes, pkgAcquire::Item::StatDone, Time, TotalBytes, TotalItems, pkgAcquire::WorkersBegin(), and pkgAcquire::WorkerStep().

Referenced by pkgAcquire::Run(), and pkgAcquire::Worker::RunMessages().


Member Data Documentation

bool MorePulses

If true, extra Pulse() invocations will be performed.

With this option set, Pulse() will be called every time that a download item starts downloading, finishes downloading, or terminates with an error.

Referenced by pkgAcquire::Worker::RunMessages().

double TotalBytes [protected]

The total number of bytes that need to be fetched.

Warning:
This member is inaccurate, as new items might be enqueued while the download is in progress!

Referenced by Pulse().

unsigned long TotalItems [protected]

The total number of items that need to be fetched.

Warning:
This member is inaccurate, as new items might be enqueued while the download is in progress!

Referenced by Pulse().


The documentation for this class was generated from the following files: