apt
0.9.15
|
An item that is responsible for fetching client-merge patches {{{ that need to be applied to a given package index file. More...
#include <acquire-item.h>
Public Member Functions | |
virtual void | Failed (std::string Message, pkgAcquire::MethodConfig *Cnf) |
Called when the patch file failed to be downloaded. More... | |
virtual void | Done (std::string Message, unsigned long long Size, std::string Md5Hash, pkgAcquire::MethodConfig *Cnf) |
Invoked by the acquire worker when the object was fetched successfully. More... | |
virtual std::string | DescURI () |
A "descriptive" URI-like string. More... | |
pkgAcqIndexMergeDiffs (pkgAcquire *Owner, std::string const &URI, std::string const &URIDesc, std::string const &ShortDesc, HashString const &ExpectedHash, DiffInfo const &patch, std::vector< pkgAcqIndexMergeDiffs * > const *const allPatches) | |
Create an index merge-diff item. More... | |
![]() | |
virtual void | Start (std::string Message, unsigned long long Size) |
Invoked when the worker starts to fetch this object. More... | |
virtual std::string | Custom600Headers () |
Custom headers to be sent to the fetch process. More... | |
virtual std::string | ShortDesc () |
Short item description. More... | |
virtual void | Finished () |
Invoked by the worker when the download is completely done. | |
virtual std::string | HashSum () |
HashSum. More... | |
pkgAcquire * | GetOwner () |
virtual bool | IsTrusted () |
void | ReportMirrorFailure (std::string FailCode) |
Report mirror problem. More... | |
Item (pkgAcquire *Owner) | |
Initialize an item. More... | |
virtual | ~Item () |
Remove this item from its owner's queue by invoking pkgAcquire::Remove. | |
![]() | |
void | AddWeakPointer (WeakPointable **weakptr) |
void | RemoveWeakPointer (WeakPointable **weakptr) |
~WeakPointable () | |
Protected Types | |
enum | DiffState { StateFetchDiff, StateApplyDiff, StateDoneDiff, StateErrorDiff } |
![]() | |
enum | RenameOnErrorState { HashSumMismatch, SizeMismatch, InvalidFormat } |
Protected Attributes | |
bool | Debug |
If true, debugging output will be written to std::clog. | |
pkgAcquire::ItemDesc | Desc |
description of the item that is currently being downloaded. | |
std::string | RealURI |
URI of the package index file that is being reconstructed. | |
HashString | ExpectedHash |
HashSum of the package index file that is being reconstructed. | |
std::string | Description |
description of the file being downloaded. | |
struct DiffInfo const | patch |
information about the current patch | |
std::vector < pkgAcqIndexMergeDiffs * > const *const | allPatches |
list of all download items for the patches | |
enum pkgAcqIndexMergeDiffs::DiffState | State |
![]() | |
pkgAcquire * | Owner |
The acquire object with which this item is associated. | |
Additional Inherited Members | |
![]() | |
enum | ItemState { StatIdle, StatFetching, StatDone, StatError, StatAuthError, StatTransientNetworkError } |
The current status of this item. More... | |
![]() | |
enum pkgAcquire::Item::ItemState | Status |
std::string | ErrorText |
Contains a textual description of the error encountered if #Status is StatError or StatAuthError. | |
unsigned long long | FileSize |
The size of the object to fetch. | |
unsigned long long | PartialSize |
How much of the object was already fetched. | |
const char * | Mode |
If not NULL, contains the name of a subprocess that is operating on this object (for instance, "gzip" or "gpgv"). | |
unsigned long | ID |
A client-supplied unique identifier. More... | |
bool | Complete |
If true, the entire object has been successfully fetched. More... | |
bool | Local |
If true, the URI of this object is "local". More... | |
std::string | UsedMirror |
unsigned int | QueueCounter |
The number of fetch queues into which this item has been inserted. More... | |
std::string | DestFile |
The name of the file into which the retrieved object will be written. | |
![]() | |
void | QueueURI (ItemDesc &Item) |
Insert this item into its owner's queue. More... | |
void | Dequeue () |
Remove this item from its owner's queue. | |
void | Rename (std::string From, std::string To) |
Rename a file without modifying its timestamp. More... | |
bool | RenameOnError (RenameOnErrorState const state) |
Rename failed file and set error. More... | |
An item that is responsible for fetching client-merge patches {{{ that need to be applied to a given package index file.
Instead of downloading and applying each patch one by one like its sister pkgAcqIndexDiffs this class will download all patches at once and call rred with all the patches downloaded once. Rred will then merge and apply them in one go, which should be a lot faster – but is incompatible with server-based merges of patches like reprepro can do.
|
protected |
pkgAcqIndexMergeDiffs | ( | pkgAcquire * | Owner, |
std::string const & | URI, | ||
std::string const & | URIDesc, | ||
std::string const & | ShortDesc, | ||
HashString const & | ExpectedHash, | ||
DiffInfo const & | patch, | ||
std::vector< pkgAcqIndexMergeDiffs * > const *const | allPatches | ||
) |
Create an index merge-diff item.
Owner | The pkgAcquire object that owns this item. |
URI | The URI of the package index file being reconstructed. |
URIDesc | A long description of this item. |
ShortDesc | A brief description of this item. |
ExpectedHash | The expected md5sum of the completely reconstructed package index file; the index file will be tested against this value when it is entirely reconstructed. |
patch | contains infos about the patch this item is supposed to download which were read from the index |
allPatches | contains all related items so that each item can check if it was the last one to complete the download step |
References Debug, Desc, pkgAcquire::ItemDesc::Description, Description, pkgAcquire::Item::DestFile, DiffInfo::file, pkgAcquire::ItemDesc::Owner, pkgAcquire::Item::QueueURI(), RealURI, pkgAcquire::Item::ShortDesc(), pkgAcquire::ItemDesc::ShortDesc, and pkgAcquire::ItemDesc::URI.
|
inlinevirtual |
A "descriptive" URI-like string.
Implements pkgAcquire::Item.
References RealURI.
|
virtual |
Invoked by the acquire worker when the object was fetched successfully.
Note that the object might not have been written to DestFile; check for the presence of an Alt-Filename entry in Message to find the file to which it was really written.
Done is often used to switch from one stage of the processing to the next (e.g. fetching, unpacking, copying). It is one branch of the continuation of the fetch process.
Message | Data from the acquire method. Use LookupTag() to parse it. |
Size | The size of the object that was fetched. |
Hash | The HashSum of the object that was fetched. |
Cnf | The method via which the object was fetched. |
Reimplemented from pkgAcquire::Item.
References allPatches, pkgAcquire::Item::Complete, Debug, Desc, pkgAcquire::Item::DestFile, ExpectedHash, DiffInfo::file, pkgAcquire::Item::Local, pkgAcquire::Item::Mode, patch, pkgAcquire::Item::QueueURI(), RealURI, pkgAcquire::Item::Rename(), pkgAcquire::Item::RenameOnError(), StateApplyDiff, StateDoneDiff, StateFetchDiff, and pkgAcquire::ItemDesc::URI.
|
virtual |
Called when the patch file failed to be downloaded.
This method will fall back to downloading the whole index file outright; its arguments are ignored.
Reimplemented from pkgAcquire::Item.
References allPatches, pkgAcquire::Item::Complete, Debug, pkgAcquire::Item::Dequeue(), Desc, Description, ExpectedHash, pkgAcquire::Item::Owner, RealURI, pkgAcquire::ItemDesc::ShortDesc, pkgAcquire::Item::StatDone, StateDoneDiff, StateErrorDiff, and pkgAcquire::ItemDesc::URI.