libzypp
13.10.6
|
This class allows to retrieve a group of files in a confortable way, providing some smartness that does not belong to the media layer like: More...
#include <Fetcher.h>
Classes | |
class | Impl |
Fetcher implementation. More... | |
Public Types | |
enum | Option { AutoAddContentFileIndexes = 0x0001, AutoAddChecksumsIndexes = 0x0002, AutoAddIndexes = AutoAddContentFileIndexes | AutoAddChecksumsIndexes } |
Various option flags to change behavior. More... | |
Public Member Functions | |
ZYPP_DECLARE_FLAGS (Options, Option) | |
Fetcher () | |
Default ctor. More... | |
virtual | ~Fetcher () |
Dtor. More... | |
void | setOptions (Options options) |
Set the Fetcher options. More... | |
Options | options () const |
Get current options. More... | |
void | addIndex (const OnMediaLocation &resource) |
Adds an index containing metadata (for example checksums ) that will be retrieved and read before the job processing starts. More... | |
void | enqueue (const OnMediaLocation &resource, const FileChecker &checker=FileChecker()) |
Enqueue a object for transferal, they will not be transfered until start() is called. More... | |
void | enqueueDigested (const OnMediaLocation &resource, const FileChecker &checker=FileChecker(), const Pathname &deltafile=Pathname()) |
Enqueue a object for transferal, they will not be transfered until start() is called. More... | |
void | enqueueDir (const OnMediaLocation &resource, bool recursive=false, const FileChecker &checker=FileChecker()) |
Enqueue a directory. More... | |
void | enqueueDigestedDir (const OnMediaLocation &resource, bool recursive=false, const FileChecker &checker=FileChecker()) |
Enqueue a directory and always check for checksums. More... | |
void | addCachePath (const Pathname &cache_dir) |
adds a directory to the list of directories where to look for cached files More... | |
void | reset () |
Reset the transfer (jobs) list. More... | |
void | start (const Pathname &dest_dir, MediaSetAccess &media, const ProgressData::ReceiverFnc &progress=ProgressData::ReceiverFnc()) |
start the transfer to a destination directory dest_dir You have to provde a media set access media to get the files from The file tree will be replicated inside this directory More... | |
Private Attributes | |
RWCOW_pointer< Impl > | _pimpl |
Pointer to implementation. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &str, const Fetcher &obj) |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &str, const Fetcher &obj) |
This class allows to retrieve a group of files in a confortable way, providing some smartness that does not belong to the media layer like:
To use the checkers. just create a functor implementing bool operator()(const Pathname &file)
If you need to use more than one checker
Additionally, you can automatically enqueue a job with a checksum checker by using enqueueDigested which will use the OnMediaLocation checksum automatically.
Additionally, Fetcher supports checking the downloaded content by using signed indexes on the remote side.
Indexes are supported in CHECKSUMS format (simple text file) with checksum and file name, or content file, whith HASH SHA1 line entries.
zypp::Fetcher::Fetcher | ( | ) |
Default ctor.
Definition at line 854 of file Fetcher.cc.
|
virtual |
Dtor.
Definition at line 858 of file Fetcher.cc.
zypp::Fetcher::ZYPP_DECLARE_FLAGS | ( | Options | , |
Option | |||
) |
void zypp::Fetcher::setOptions | ( | Options | options | ) |
Fetcher::Options zypp::Fetcher::options | ( | ) | const |
void zypp::Fetcher::addIndex | ( | const OnMediaLocation & | resource | ) |
Adds an index containing metadata (for example checksums ) that will be retrieved and read before the job processing starts.
Nothing will be transfered or checked until start() is called.
The index is relative to the media path, and the listed files too.
Indexes in the SHA1SUM format, and YaST content file
The file has to be signed or the user will be warned that the file is unsigned. You can place the signature next to the file adding the .asc extension.
If you expect the key to not to be in the target system, then you can place it next to the index using adding the .key extension.
Definition at line 891 of file Fetcher.cc.
void zypp::Fetcher::enqueue | ( | const OnMediaLocation & | resource, |
const FileChecker & | checker = FileChecker() |
||
) |
Enqueue a object for transferal, they will not be transfered until start() is called.
Definition at line 897 of file Fetcher.cc.
void zypp::Fetcher::enqueueDigested | ( | const OnMediaLocation & | resource, |
const FileChecker & | checker = FileChecker() , |
||
const Pathname & | deltafile = Pathname() |
||
) |
Enqueue a object for transferal, they will not be transfered until start() is called.
the optional deltafile argument describes a file that can be used for delta download algorithms. Usable files are uncompressed files or files compressed with gzip –rsyncable. Other files like rpms do not work, as the compression breaks the delta algorithm.
Definition at line 871 of file Fetcher.cc.
void zypp::Fetcher::enqueueDir | ( | const OnMediaLocation & | resource, |
bool | recursive = false , |
||
const FileChecker & | checker = FileChecker() |
||
) |
Enqueue a directory.
As the files to be enqueued are not known in advance, all files whose checksum can be found in some index are enqueued with checksum checking. Otherwise they are not.
Some index may provide the checksums, either by addIndex or using AutoAddIndexes flag.
Files are checked by providing a CHECKSUMS or content file listing <checksum> filename and a respective CHECKSUMS.asc/content.asc which has the signature for the checksums.
If you expect the user to not have the key of the signature either in the trusted or untrusted keyring, you can offer it as CHECKSUMS.key (or content.key)
recursive | True if the complete tree should be enqueued. |
Definition at line 876 of file Fetcher.cc.
void zypp::Fetcher::enqueueDigestedDir | ( | const OnMediaLocation & | resource, |
bool | recursive = false , |
||
const FileChecker & | checker = FileChecker() |
||
) |
Enqueue a directory and always check for checksums.
As the files to be enqueued are not known in advance, all files are enqueued with checksum checking. If the checksum of some file is not in some index, then there will be a verification warning ( DigestReport ).
Therefore some index will need to provide the checksums, either by addIndex or using AutoAddIndexes flag.
Files are checked by providing a CHECKSUMS or content file listing <checksum> filename and a respective CHECKSUMS.asc/content.asc which has the signature for the checksums.
If you expect the user to not have the key of the signature either in the trusted or untrusted keyring, you can offer it as CHECKSUMS.key (or content.key)
recursive | True if the complete tree should be enqueued. |
Definition at line 883 of file Fetcher.cc.
void zypp::Fetcher::addCachePath | ( | const Pathname & | cache_dir | ) |
adds a directory to the list of directories where to look for cached files
Definition at line 902 of file Fetcher.cc.
void zypp::Fetcher::reset | ( | ) |
Reset the transfer (jobs) list.
Definition at line 907 of file Fetcher.cc.
void zypp::Fetcher::start | ( | const Pathname & | dest_dir, |
MediaSetAccess & | media, | ||
const ProgressData::ReceiverFnc & | progress = ProgressData::ReceiverFnc() |
||
) |
start the transfer to a destination directory dest_dir You have to provde a media set access media to get the files from The file tree will be replicated inside this directory
Definition at line 912 of file Fetcher.cc.
|
friend |
Definition at line 919 of file Fetcher.cc.
|
related |
Stream output
Definition at line 919 of file Fetcher.cc.
|
private |