libzypp
13.10.6
|
Media access layer responsible for handling files distributed on a set of media with media change and abort/retry/ingore user callback handling. More...
#include <MediaSetAccess.h>
Public Types | |
enum | ProvideFileOption { PROVIDE_DEFAULT = 0x0, PROVIDE_NON_INTERACTIVE = 0x1 } |
Public Member Functions | |
MediaSetAccess (const Url &url, const Pathname &prefered_attach_point="") | |
Creates a callback enabled media access for specified url. More... | |
MediaSetAccess (const std::string &label_r, const Url &url, const Pathname &prefered_attach_point="") | |
~MediaSetAccess () | |
void | setVerifier (unsigned media_nr, media::MediaVerifierRef verifier) |
Sets a MediaVerifier verifier for given media number. More... | |
const std::string & | label () const |
The label identifing this media set and to be sent in a media change request. More... | |
void | setLabel (const std::string &label_r) |
Set the label identifing this media set and to be sent in a media change request. More... | |
ZYPP_DECLARE_FLAGS (ProvideFileOptions, ProvideFileOption) | |
Pathname | provideFile (const OnMediaLocation &resource, ProvideFileOptions options=PROVIDE_DEFAULT, const Pathname &deltafile=Pathname()) |
Provides a file from a media location. More... | |
Pathname | provideFile (const Pathname &file, unsigned media_nr=1, ProvideFileOptions options=PROVIDE_DEFAULT) |
Provides file from media media_nr. More... | |
void | releaseFile (const OnMediaLocation &resource) |
Release file from media. More... | |
void | releaseFile (const Pathname &file, unsigned media_nr=1) |
Release file from media. More... | |
Pathname | provideDir (const Pathname &dir, bool recursive, unsigned media_nr=1, ProvideFileOptions options=PROVIDE_DEFAULT) |
Provides direcotry dir from media number media_nr. More... | |
bool | doesFileExist (const Pathname &file, unsigned media_nr=1) |
Checks if a file exists on the specified media, with user callbacks. More... | |
void | dirInfo (filesystem::DirContent &retlist, const Pathname &dirname, bool dots=true, unsigned media_nr=1) |
Fills retlist with directory information. More... | |
void | release () |
Release all attached media of this set. More... | |
Public Member Functions inherited from zypp::base::ReferenceCounted | |
ReferenceCounted () | |
Default ctor. More... | |
ReferenceCounted (const ReferenceCounted &rhs) | |
Copy ctor. More... | |
virtual | ~ReferenceCounted () |
Dtor. More... | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Assignment. More... | |
unsigned | refCount () const |
Return reference counter value. More... | |
void | ref () const |
Add a reference. More... | |
void | unref () const |
Release a reference. More... | |
Static Public Member Functions | |
static Url | rewriteUrl (const Url &url_r, const media::MediaNr medianr) |
Replaces media number in specified url with given medianr. More... | |
Static Public Member Functions inherited from zypp::base::ReferenceCounted | |
static void | add_ref (const ReferenceCounted *ptr_r) |
Called by zypp::intrusive_ptr to add a reference. More... | |
static void | release (const ReferenceCounted *ptr_r) |
Called by zypp::intrusive_ptr to add a reference. More... | |
Protected Types | |
typedef function< void(media::MediaAccessId, const Pathname &)> | ProvideOperation |
Protected Member Functions | |
Pathname | provideFileInternal (const OnMediaLocation &resource, ProvideFileOptions options) |
Provides the file from medium number media_nr and returns its local path. More... | |
void | provide (ProvideOperation op, const OnMediaLocation &resource, ProvideFileOptions options, const Pathname &deltafile) |
media::MediaAccessId | getMediaAccessId (media::MediaNr medianr) |
virtual std::ostream & | dumpOn (std::ostream &str) const |
Overload to realize std::ostream & operator<<. More... | |
Protected Member Functions inherited from zypp::base::ReferenceCounted | |
virtual void | ref_to (unsigned) const |
Trigger derived classes after refCount was increased. More... | |
virtual void | unref_to (unsigned) const |
Trigger derived classes after refCount was decreased. More... | |
Private Types | |
typedef std::map < media::MediaNr, media::MediaAccessId > | MediaMap |
typedef std::map < media::MediaNr, media::MediaVerifierRef > | VerifierMap |
Private Attributes | |
Url | _url |
Media or media set URL. More... | |
Pathname | _prefAttachPoint |
Prefered mount point. More... | |
std::string | _label |
MediaMap | _medias |
Mapping between media number and Media Access ID. More... | |
VerifierMap | _verifiers |
Mapping between media number and corespondent verifier. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &str, const MediaSetAccess &obj) |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &str, const MediaSetAccess &obj) |
Related Functions inherited from zypp::base::ReferenceCounted | |
void | intrusive_ptr_add_ref (const ReferenceCounted *ptr_r) |
void | intrusive_ptr_release (const ReferenceCounted *ptr_r) |
std::ostream & | operator<< (std::ostream &str, const ReferenceCounted &obj) |
Media access layer responsible for handling files distributed on a set of media with media change and abort/retry/ingore user callback handling.
This is provided as a means to handle CD or DVD sets accessible through dir, iso, nfs or other URL schemes other than cd/dvd (see MediaManager for info on different implemented media backends). Currently it handles URLs containing cdN, CDN, dvdN, and DVDN strings, where N is the number of particular media in the set.
Examples:
MediaSetAccess accesses files on desired media by rewriting the original URL, replacing the digit (usually) 1 with requested media number and uses MediaManager to get the files from the new URL.
Additionaly, each media number can be assined a media verifier which checks if the media we are trying to access is the desired one. See MediaVerifierBase for more info.
Code example:
Definition at line 77 of file MediaSetAccess.h.
|
protected |
Definition at line 272 of file MediaSetAccess.h.
|
private |
Definition at line 293 of file MediaSetAccess.h.
|
private |
Definition at line 294 of file MediaSetAccess.h.
Enumerator | |
---|---|
PROVIDE_DEFAULT |
The user is not asked anything, and the error exception is just propagated. |
PROVIDE_NON_INTERACTIVE |
Definition at line 111 of file MediaSetAccess.h.
zypp::MediaSetAccess::MediaSetAccess | ( | const Url & | url, |
const Pathname & | prefered_attach_point = "" |
||
) |
Creates a callback enabled media access for specified url.
url | |
prefered_attach_point | Prefered attach (mount) point. Use, if you want to mount the media to a specific directory. |
Definition at line 31 of file MediaSetAccess.cc.
zypp::MediaSetAccess::MediaSetAccess | ( | const std::string & | label_r, |
const Url & | url, | ||
const Pathname & | prefered_attach_point = "" |
||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 37 of file MediaSetAccess.cc.
zypp::MediaSetAccess::~MediaSetAccess | ( | ) |
Definition at line 45 of file MediaSetAccess.cc.
void zypp::MediaSetAccess::setVerifier | ( | unsigned | media_nr, |
media::MediaVerifierRef | verifier | ||
) |
Sets a MediaVerifier verifier for given media number.
Definition at line 55 of file MediaSetAccess.cc.
|
inline |
The label identifing this media set and to be sent in a media change request.
Definition at line 102 of file MediaSetAccess.h.
|
inline |
Set the label identifing this media set and to be sent in a media change request.
Definition at line 108 of file MediaSetAccess.h.
zypp::MediaSetAccess::ZYPP_DECLARE_FLAGS | ( | ProvideFileOptions | , |
ProvideFileOption | |||
) |
Pathname zypp::MediaSetAccess::provideFile | ( | const OnMediaLocation & | resource, |
ProvideFileOptions | options = PROVIDE_DEFAULT , |
||
const Pathname & | deltafile = Pathname() |
||
) |
Provides a file from a media location.
resource | location of the file on media |
MediaException | if a problem occured and user has chosen to abort the operation. The calling code should take care to quit the current operation. |
SkipRequestException | if a problem occured and user has chosen to skip the current operation. The calling code should continue with the next one, if possible. |
If the resource is marked as optional, no Exception is thrown and Pathname() is returned
the optional deltafile argument describes a file that can be used for delta download algorithms.
Definition at line 157 of file MediaSetAccess.cc.
Pathname zypp::MediaSetAccess::provideFile | ( | const Pathname & | file, |
unsigned | media_nr = 1 , |
||
ProvideFileOptions | options = PROVIDE_DEFAULT |
||
) |
Provides file from media media_nr.
file | path to the file relative to media URL |
media_nr | the media number in the media set |
MediaException | if a problem occured and user has chosen to abort the operation. The calling code should take care to quit the current operation. |
SkipRequestException | if a problem occured and user has chosen to skip the current operation. The calling code should continue with the next one, if possible. |
Definition at line 164 of file MediaSetAccess.cc.
void zypp::MediaSetAccess::releaseFile | ( | const OnMediaLocation & | resource | ) |
Release file from media.
This signal that file is not needed anymore.
resource | location of the file on media |
Definition at line 74 of file MediaSetAccess.cc.
void zypp::MediaSetAccess::releaseFile | ( | const Pathname & | file, |
unsigned | media_nr = 1 |
||
) |
Release file from media.
This signal that file is not needed anymore.
file | path to the file relative to media URL |
media_nr | the media number in the media set |
Definition at line 79 of file MediaSetAccess.cc.
Pathname zypp::MediaSetAccess::provideDir | ( | const Pathname & | dir, |
bool | recursive, | ||
unsigned | media_nr = 1 , |
||
ProvideFileOptions | options = PROVIDE_DEFAULT |
||
) |
Provides direcotry dir from media number media_nr.
dir | path to the directory relative to media URL |
recursive | whether to provide the whole directory subtree |
media_nr | the media number in the media set |
MediaException | if a problem occured and user has chosen to abort the operation. The calling code should take care to quit the current operation. |
Definition at line 332 of file MediaSetAccess.cc.
bool zypp::MediaSetAccess::doesFileExist | ( | const Pathname & | file, |
unsigned | media_nr = 1 |
||
) |
Checks if a file exists on the specified media, with user callbacks.
file | file to check |
media_nr | Media number |
MediaException | if a problem occured and user has chosen to abort the operation. The calling code should take care to quit the current operation. |
SkipRequestException | if a problem occured and user has chosen to skip the current operation. The calling code should continue with the next one, if possible. |
Definition at line 173 of file MediaSetAccess.cc.
void zypp::MediaSetAccess::dirInfo | ( | filesystem::DirContent & | retlist, |
const Pathname & | dirname, | ||
bool | dots = true , |
||
unsigned | media_nr = 1 |
||
) |
Fills retlist with directory information.
Definition at line 94 of file MediaSetAccess.cc.
void zypp::MediaSetAccess::release | ( | ) |
Release all attached media of this set.
MediaNotOpenException | for invalid access IDs. |
Definition at line 432 of file MediaSetAccess.cc.
|
static |
Replaces media number in specified url with given medianr.
Media number in the URL is searched for with regex "^(.*(cd|dvd))([0-9]+)(\\.iso)$"
for iso scheme and with "^(.*(cd|dvd))([0-9]+)(/?)$"
for other schemes.
For cd and dvd scheme it returns the original URL, as well as for URL which do not match the above regexes.
url_r | original URL |
medianr | requested media number |
Definition at line 389 of file MediaSetAccess.cc.
|
protected |
Provides the file from medium number media_nr and returns its local path.
true
.MediaException | checkonly is false and a problem occured and user has chosen to abort the operation. The calling code should take care to quit the current operation. |
SkipRequestException | checkonly is false and a problem occured and user has chosen to skip the current operation. The calling code should continue with the next one, if possible. |
|
protected |
Definition at line 182 of file MediaSetAccess.cc.
|
protected |
Definition at line 350 of file MediaSetAccess.cc.
|
protectedvirtual |
Overload to realize std::ostream & operator<<.
Reimplemented from zypp::base::ReferenceCounted.
Definition at line 440 of file MediaSetAccess.cc.
|
friend |
|
related |
Stream output
Definition at line 305 of file MediaSetAccess.h.
|
private |
Media or media set URL.
Definition at line 281 of file MediaSetAccess.h.
|
private |
Prefered mount point.
Definition at line 289 of file MediaSetAccess.h.
|
private |
Definition at line 291 of file MediaSetAccess.h.
|
private |
Mapping between media number and Media Access ID.
Definition at line 297 of file MediaSetAccess.h.
|
private |
Mapping between media number and corespondent verifier.
Definition at line 299 of file MediaSetAccess.h.