From 0118833a3b3e65ad7296863aa7d49574eb615f83 Mon Sep 17 00:00:00 2001 From: Arch Librarian Date: Mon, 20 Sep 2004 16:51:04 +0000 Subject: Devel acquire module Author: jgg Date: 1998-10-15 06:59:59 GMT Devel acquire module --- apt-pkg/acquire.h | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 apt-pkg/acquire.h (limited to 'apt-pkg/acquire.h') diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h new file mode 100644 index 000000000..b728d2133 --- /dev/null +++ b/apt-pkg/acquire.h @@ -0,0 +1,97 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: acquire.h,v 1.1 1998/10/15 06:59:59 jgg Exp $ +/* ###################################################################### + + Acquire - File Acquiration + + This module contians the Acquire system. It is responsible for bringing + files into the local pathname space. It deals with URIs for files and + URI handlers responsible for downloading or finding the URIs. + + Each file to download is represented by an Acquire::Item class subclassed + into a specialization. The Item class can add itself to several URI + acquire queues each prioritized by the download scheduler. When the + system is run the proper URI handlers are spawned and the the acquire + queues are fed into the handlers by the schedular until the queues are + empty. This allows for an Item to be downloaded from an alternate source + if the first try turns out to fail. It also alows concurrent downloading + of multiple items from multiple sources as well as dynamic balancing + of load between the sources. + + Schedualing of downloads is done on a first ask first get basis. This + preserves the order of the download as much as possible. And means the + fastest source will tend to process the largest number of files. + + Internal methods and queues for performing gzip decompression, + md5sum hashing and file copying are provided to allow items to apply + a number of transformations to the data files they are working with. + + ##################################################################### */ + /*}}}*/ +#ifndef PKGLIB_ACQUIRE_H +#define PKGLIB_ACQUIRE_H + +#include +#include + +#ifdef __GNUG__ +#pragma interface "apt-pkg/acquire.h" +#endif + +class pkgAcquire +{ + public: + + class Item; + class Queue; + class Worker; + struct MethodConfig; + friend Item; + + protected: + + vector Items; + Queue *Queues; + MethodConfig *Configs; + + void Add(Item *Item); + void Remove(Item *Item); + void Enqueue(Item *Item,string URI); + + public: + + pkgAcquire(); + ~pkgAcquire(); +}; + +// List of possible items queued for download. +class pkgAcquire::Queue +{ + friend pkgAcquire; + Queue *Next; + + protected: + + string Access; + string URIMatch; + + vector Items; + + public: +}; + +// Configuration information from each method +struct pkgAcquire::MethodConfig +{ + string Access; + + string Version; + bool SingleInstance; + bool PreScan; + + MethodConfig(); + ~MethodConfig(); +}; + +#endif -- cgit v1.2.3-70-g09d2