X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/3b5421b4c75f5c85b48cbb61bf22642ff52a6352..5e972bffae68a75aafc9f9b639e82e252fde3b8b:/apt-pkg/acquire-worker.h diff --git a/apt-pkg/acquire-worker.h b/apt-pkg/acquire-worker.h index 28072373f..6e1952202 100644 --- a/apt-pkg/acquire-worker.h +++ b/apt-pkg/acquire-worker.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: acquire-worker.h,v 1.2 1998/10/20 02:39:14 jgg Exp $ +// $Id: acquire-worker.h,v 1.12 2001/02/20 07:03:17 jgg Exp $ /* ###################################################################### Acquire Worker - Worker process manager @@ -21,41 +21,67 @@ // Interfacing to the method process class pkgAcquire::Worker { + friend class pkgAcquire; + protected: - friend Queue; + friend class Queue; - Worker *Next; + /* Linked list starting at a Queue and a linked list starting + at Acquire */ + Worker *NextQueue; + Worker *NextAcquire; // The access association Queue *OwnerQ; + pkgAcquireStatus *Log; MethodConfig *Config; string Access; - + // This is the subprocess IPC setup pid_t Process; int InFd; int OutFd; + bool InReady; + bool OutReady; // Various internal things bool Debug; vector MessageQueue; - + string OutQueue; + // Private constructor helper void Construct(); // Message handling things bool ReadMessages(); bool RunMessages(); + bool InFdReady(); + bool OutFdReady(); // The message handlers bool Capabilities(string Message); + bool SendConfiguration(); + bool MediaChange(string Message); + + bool MethodFailure(); + void ItemDone(); public: + // The curent method state + pkgAcquire::Queue::QItem *CurrentItem; + string Status; + unsigned long CurrentSize; + unsigned long TotalSize; + unsigned long ResumePoint; + // Load the method and do the startup - bool Start(); + bool QueueItem(pkgAcquire::Queue::QItem *Item); + bool Start(); + void Pulse(); + inline const MethodConfig *GetConf() const {return Config;}; - Worker(Queue *OwnerQ,string Access); + Worker(Queue *OwnerQ,MethodConfig *Config,pkgAcquireStatus *Log); Worker(MethodConfig *Config); ~Worker(); };