libzypp 17.31.23
MediaInfoDownloader.cc
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
9
10#include <fstream>
11#include <zypp/base/String.h>
12#include <zypp/base/Logger.h>
13#include <zypp/base/Function.h>
14
15#include "MediaInfoDownloader.h"
16#include <zypp-core/base/UserRequestException>
17
18
19namespace zypp
20{
21namespace repo
22{
23
24void downloadMediaInfo( const Pathname &dest_dir,
25 MediaSetAccess &media,
26 const ProgressData::ReceiverFnc & progressrcv )
27{
28 Fetcher fetcher;
29
30 //hardcode the max filesize to 20MB, to prevent unlimited data downloads but this limit will
31 //never be reached in a sane setup
32 fetcher.enqueue( OnMediaLocation("/media.1/media").setOptional(true).setDownloadSize( ByteCount(20, ByteCount::MB ) ) );
33 fetcher.start( dest_dir, media, progressrcv );
34 // ready, go!
35 fetcher.reset();
36}
37
38}// ns repo
39} // ns zypp
40
41
42
Store and operate with byte count.
Definition: ByteCount.h:31
static const Unit MB
1000^2 Byte
Definition: ByteCount.h:60
This class allows to retrieve a group of files in a confortable way, providing some smartness that do...
Definition: Fetcher.h:106
void start(const Pathname &dest_dir, const ProgressData::ReceiverFnc &progress=ProgressData::ReceiverFnc())
start the transfer to a destination directory dest_dir The media has to be provides with setMediaSetA...
Definition: Fetcher.cc:908
void reset()
Reset the transfer (jobs) list.
Definition: Fetcher.cc:898
void enqueue(const OnMediaLocation &resource, const FileChecker &checker=FileChecker())
Enqueue a object for transferal, they will not be transferred until start() is called.
Definition: Fetcher.cc:887
Media access layer responsible for handling files distributed on a set of media with media change and...
Describes a resource file located on a medium.
function< bool(const ProgressData &)> ReceiverFnc
Most simple version of progress reporting The percentage in most cases.
Definition: progressdata.h:140
void downloadMediaInfo(const Pathname &dest_dir, MediaSetAccess &media, const ProgressData::ReceiverFnc &progressrcv)
Downloads the media info (/media.1) to a local directory.
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2