libapt-pkg-dev  v0.9.7.5ubuntu5.4
Debian+Ubuntu APT Package Management
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acquire system {{{

The Acquire system is responsible for retrieving files from local or remote URIs and postprocessing them (for instance, verifying their authenticity). More...

Files

file  acquire-item.h
 
file  acquire-method.h
 
file  acquire-worker.h
 
file  acquire.h
 

Classes

struct  DiffInfo
 Information about an index patch (aka diff). More...
 
class  IndexTarget
 Information about an index file. More...
 
class  OptionalIndexTarget
 Information about an optional index file. More...
 
class  OptionalSubIndexTarget
 Information about an subindex index file. More...
 
class  pkgAcqArchive
 An item that is responsible for fetching a package file. More...
 
class  pkgAcqDiffIndex
 An item that is responsible for fetching an index file of {{{ package list diffs and starting the package list's download. More...
 
class  pkgAcqFile
 Retrieve an arbitrary file to the current directory. More...
 
class  pkgAcqIndex
 An acquire item that is responsible for fetching an index {{{ file (e.g., Packages or Sources). More...
 
class  pkgAcqIndexDiffs
 An item that is responsible for fetching all the patches {{{ that need to be applied to a given package index file. More...
 
class  pkgAcqIndexTrans
 An acquire item that is responsible for fetching a {{{ translated index file. More...
 
class  pkgAcqMetaClearSig
 An item repsonsible for downloading clearsigned metaindexes {{{. More...
 
class  pkgAcqMetaIndex
 An item that is responsible for downloading the meta-index {{{ file (i.e., Release) itself and verifying its signature. More...
 
class  pkgAcqMetaSig
 An acquire item that downloads the detached signature {{{ of a meta-index (Release) file, then queues up the release file itself. More...
 
class  pkgAcqMethod
 
class  pkgAcqSubIndex
 An item that is responsible for fetching a SubIndex {{{. More...
 
class  pkgAcquire
 The core download scheduler. More...
 
class  pkgAcquire::Item
 Represents the process by which a pkgAcquire object should {{{ retrieve a file or a collection of files. More...
 
struct  pkgAcquire::ItemDesc
 Represents a single download source from which an item should be downloaded. More...
 
struct  pkgAcquire::MethodConfig
 Information about the properties of a single acquire method. More...
 
class  pkgAcquire::Queue
 A single download queue in a pkgAcquire object. More...
 
class  pkgAcquire::UriIterator
 Iterates over all the URIs being fetched by a pkgAcquire object. More...
 
class  pkgAcquire::Worker
 A fetch subprocess. More...
 
class  pkgAcquireStatus
 A monitor object for downloads controlled by the pkgAcquire class. More...
 
class  SubIndexTarget
 Information about an subindex index file. More...
 

Detailed Description

The Acquire system is responsible for retrieving files from local or remote URIs and postprocessing them (for instance, verifying their authenticity).

The core class in this system is pkgAcquire, which is responsible for managing the download queues during the download. There is at least one download queue for each supported protocol; protocols such as http may provide one queue per host.

Each file to download is represented by a subclass of pkgAcquire::Item. The files add themselves to the download queue(s) by providing their URI information to pkgAcquire::Item::QueueURI, which calls pkgAcquire::Enqueue.

Once the system is set up, the Run method will spawn subprocesses to handle the enqueued URIs; the scheduler will then take items from the queues and feed them into the handlers until the queues are empty.

Todo:
Acquire supports inserting an object into several queues at once, but it is not clear what its behavior in this case is, and no subclass of pkgAcquire::Item seems to actually use this capability.