apt: pkgAcqTransactionItem Class Reference

apt 3.2.0 commandline package manager

Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Friends | List of all members
pkgAcqTransactionItem Class Reference
Acquire system {{{

baseclass for the indexes files to manage them all together More...

`#include <apt-pkg/acquire-item.h>`

Inheritance diagram for pkgAcqTransactionItem:

## Public Types
enum | TransactionStates { TransactionStarted , TransactionCommit , TransactionAbort }
Public Types inherited from pkgAcquire::Item
enum | ItemState { StatIdle , StatFetching , StatDone , StatError , StatAuthError , StatTransientNetworkError }
| The current status of this item. More...

## Public Member Functions
virtual bool | TransactionState (TransactionStates const state)
std::string | DescURI () const override
| A "descriptive" URI-like string.
HashStringList | GetExpectedHashes () const override
virtual std::string | GetMetaKey () const
bool | HashesRequired () const override
virtual bool | AcquireByHash () const
| pkgAcqTransactionItem (pkgAcquire *const Owner, pkgAcqMetaClearSig *const TransactionManager, IndexTarget const &Target) APT_NONNULL(2
Public Member Functions inherited from pkgAcquire::Item
virtual void | Failed (std::string const &Message, pkgAcquire::MethodConfig const *const Cnf)
| Invoked by the acquire worker when the object couldn't be fetched.
APT_HIDDEN void | FailMessage (std::string const &Message)
virtual bool | VerifyDone (std::string const &Message, pkgAcquire::MethodConfig const *const Cnf)
| Invoked by the acquire worker to check if the successfully fetched object is also the objected we wanted to have.
virtual void | Done (std::string const &Message, HashStringList const &Hashes, pkgAcquire::MethodConfig const *const Cnf)
| Invoked by the acquire worker when the object was fetched successfully.
virtual void | Start (std::string const &Message, unsigned long long const Size)
| Invoked when the worker starts to fetch this object.
virtual std::string | Custom600Headers () const
| Custom headers to be sent to the fetch process.
APT_HIDDEN std::unordered_map< std::string, std::string > & | ModifyCustomFields ()
APT_HIDDEN bool | PopAlternativeURI (std::string &NewURI)
APT_HIDDEN bool | IsGoodAlternativeURI (std::string const &AltUri) const
APT_HIDDEN void | PushAlternativeURI (std::string &&NewURI, std::unordered_map< std::string, std::string > &&fields, bool const at_the_back)
APT_HIDDEN void | RemoveAlternativeSite (std::string const &AltUri)
virtual std::string | ShortDesc () const
| Short item description.
virtual void | Finished ()
| Invoked by the worker when the download is completely done.
std::string | HashSum () const
pkgAcquire * | GetOwner () const
pkgAcquire::ItemDesc & | GetItemDesc ()
virtual bool | IsTrusted () const
void | SetActiveSubprocess (std::string const &subprocess)
| Set the name of the current active subprocess.
| Item (pkgAcquire *const Owner)
| Initialize an item.
virtual | ~Item ()
| Remove this item from its owner's queue by invoking pkgAcquire::Remove.
bool APT_HIDDEN | IsRedirectionLoop (std::string const &NewURI)
int APT_HIDDEN | Priority ()
| The priority of the item, used for queuing.
void APT_HIDDEN | FetchAfter (time_point FetchAfter)
| internal clock definitions to avoid typing all that all over the place
time_point APT_HIDDEN | FetchAfter ()
Public Member Functions inherited from WeakPointable
void | AddWeakPointer (WeakPointable **weakptr)
void | RemoveWeakPointer (WeakPointable **weakptr)
| ~WeakPointable ()

## Public Attributes
IndexTarget const | Target
std::string | PartialFile
| storge name until a transaction is finished
pkgAcqMetaClearSig *const | TransactionManager
| TransactionManager.
Public Attributes inherited from pkgAcquire::Item
enum pkgAcquire::Item::ItemState | Status
std::string | ErrorText
| Contains a textual description of the error encountered if ItemState 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.
std::string | ActiveSubprocess
| contains the name of the subprocess that is operating on this object (for instance, "gzip", "rred" or "gpgv"). This is obsoleting #Mode from above as it can manage the lifetime of included string properly.
unsigned long | ID
| A client-supplied unique identifier.
bool | Complete
| If true, the entire object has been successfully fetched.
bool | Local
| If true, the URI of this object is "local".
std::string | UsedMirror
unsigned int | QueueCounter
| The number of fetch queues into which this item has been inserted.
unsigned int | ExpectedAdditionalItems
| The number of additional fetch items that are expected once this item is done.
std::string | DestFile
| The name of the file into which the retrieved object will be written.
unsigned int | Retries
| Number of retries.

## Protected Member Functions
HashStringList | GetExpectedHashesFor (std::string const &MetaKey) const
bool | QueueURI (pkgAcquire::ItemDesc &Item) override
| Insert this item into its owner's queue.
Protected Member Functions inherited from pkgAcquire::Item
bool | RenameOnError (RenameOnErrorState const state)
| Rename failed file and set error.
void | Dequeue ()
| Remove this item from its owner's queue.
bool | Rename (std::string const &From, std::string const &To)
| Rename a file without modifying its timestamp.
virtual std::string | GetFinalFilename () const
| Get the full pathname of the final file for the current URI.

## Friends
class | pkgAcqMetaBase
class | pkgAcqMetaClearSig

## Additional Inherited Members
Protected Types inherited from pkgAcquire::Item
enum | RenameOnErrorState { HashSumMismatch , SizeMismatch , InvalidFormat , SignatureError , NotClearsigned , MaximumSizeExceeded , PDiffError }
Protected Attributes inherited from pkgAcquire::Item
pkgAcquire *const | Owner
| The acquire object with which this item is associated.
pkgAcquire::ItemDesc | Desc
| The item that is currently being downloaded.

## Detailed Description

baseclass for the indexes files to manage them all together

## Member Function Documentation

## ◆ DescURI()

std::string DescURI | ( |  | ) | const
| inlinenodiscardoverridevirtual

A "descriptive" URI-like string.

Returns
  a URI that should be used to describe what is being fetched.

Implements pkgAcquire::Item.

## ◆ GetExpectedHashes()

HashStringList GetExpectedHashes | ( |  | ) | const
| nodiscardoverridevirtual

Returns
  HashSums the DestFile is supposed to have in this stage

Implements pkgAcquire::Item.

Referenced by pkgAcqIndex::Failed(), HashesRequired(), and QueueURI().

## ◆ HashesRequired()

APT_PURE bool HashesRequired | ( |  | ) | const
| nodiscardoverridevirtual

Returns
  if having no hashes is a hard failure or not

Idealy this is always true for every subclass, but thanks to historical grow we don't have hashes for all files in all cases in all steps, so it is slightly more complicated than it should be.

Reimplemented from pkgAcquire::Item.

References GetExpectedHashes(), and TransactionManager.

## ◆ QueueURI()

bool QueueURI | ( | pkgAcquire::ItemDesc & | Item | ) |
| overrideprotectedvirtual

Insert this item into its owner's queue.

The method is designed to check if the request would end in an IMSHit and if it determines that it would, it isn't queueing the Item and instead sets it to completion instantly.

Parameters

  Item | Metadata about this item (its URI and description).

Returns
  true if the item was inserted, false if IMSHit was detected

Reimplemented from pkgAcquire::Item.

References pkgAcquire::Item::DestFile, GetExpectedHashes(), pkgAcquire::Item::GetFinalFilename(), pkgAcquire::Item::Item(), PartialFile, pkgAcquire::Item::QueueURI(), pkgAcquire::Item::StatDone, and TransactionManager.

Referenced by pkgAcqIndexDiffs::Done(), pkgAcqIndexMergeDiffs::Done(), pkgAcqIndexMergeDiffs::pkgAcqIndexMergeDiffs(), pkgAcqMetaSig::pkgAcqMetaSig(), pkgAcqDiffIndex::QueueURI(), and pkgAcqIndex::StageDownloadDone().

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

- apt-pkg/acquire-item.h
- apt-pkg/acquire-item.cc