libzypp 17.25.7
MediaSetAccess.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
9
10#ifndef ZYPP_MediaSetAccess_H
11#define ZYPP_MediaSetAccess_H
12
13#include <iosfwd>
14#include <string>
15#include <vector>
16#include <zypp/base/Function.h>
17
20#include <zypp/base/Flags.h>
21#include <zypp/base/PtrTypes.h>
23#include <zypp/Pathname.h>
24#include <zypp/CheckSum.h>
26#include <zypp/ManagedFile.h>
27
29namespace zypp
30{
31
33
35 //
36 // CLASS NAME : MediaSetAccess
37 //
81 {
82 friend std::ostream & operator<<( std::ostream & str, const MediaSetAccess & obj );
83
84 public:
92 MediaSetAccess( const Url &url, const Pathname & prefered_attach_point = "" );
94 MediaSetAccess( const std::string & label_r, const Url &url, const Pathname & prefered_attach_point = "" );
96
100 void setVerifier( unsigned media_nr, media::MediaVerifierRef verifier );
101
105 const std::string & label() const
106 { return _label; }
107
111 void setLabel( const std::string & label_r )
112 { _label = label_r; }
113
115 {
121 };
123
151 Pathname provideFile( const OnMediaLocation & resource, ProvideFileOptions options = PROVIDE_DEFAULT, const Pathname &deltafile = Pathname() );
152
173 Pathname provideFile(const Pathname & file, unsigned media_nr = 1, ProvideFileOptions options = PROVIDE_DEFAULT );
174
182 Pathname provideOptionalFile( const Pathname & file, unsigned media_nr = 1 );
183
201 static ManagedFile provideFileFromUrl( const Url & file_url, ProvideFileOptions options = PROVIDE_DEFAULT );
202
210 static ManagedFile provideOptionalFileFromUrl( const Url & file_url );
211
218 void releaseFile( const OnMediaLocation &resource );
219
220
228 void releaseFile(const Pathname & file, unsigned media_nr = 1 );
229
246 {
250 : _media( media_r )
251 , _loc( loc_r )
252 {}
254 { _media.releaseFile( _loc ); }
255 private:
258 };
259
277 Pathname provideDir(const Pathname & dir, bool recursive, unsigned media_nr = 1, ProvideFileOptions options = PROVIDE_DEFAULT );
278
293 bool doesFileExist(const Pathname & file, unsigned media_nr = 1 );
294
298 void dirInfo( filesystem::DirContent &retlist, const Pathname &dirname,
299 bool dots = true, unsigned media_nr = 1 );
300
306 void release();
307
322 static Url rewriteUrl (const Url & url_r, const media::MediaNr medianr);
323
324 protected:
340 Pathname provideFileInternal( const OnMediaLocation &resource, ProvideFileOptions options );
341
342 typedef function<void( media::MediaAccessId, const Pathname & )> ProvideOperation;
343
344 void provide( ProvideOperation op, const OnMediaLocation &resource, ProvideFileOptions options, const Pathname &deltafile );
345
347 virtual std::ostream & dumpOn( std::ostream & str ) const;
348
349 private:
352
360
361 std::string _label;
362
363 typedef std::map<media::MediaNr, media::MediaAccessId> MediaMap;
364 typedef std::map<media::MediaNr, media::MediaVerifierRef > VerifierMap;
365
370 };
372 ZYPP_DECLARE_OPERATORS_FOR_FLAGS(MediaSetAccess::ProvideFileOptions);
373
375 inline std::ostream & operator<<( std::ostream & str, const MediaSetAccess & obj )
376 { return obj.dumpOn( str ); }
377
378
379} // namespace zypp
381#endif // ZYPP_SOURCE_MediaSetAccess_H
Url url
Definition: MediaCurl.cc:66
MediaVerifierRef verifier
Reference counted access to a Tp object calling a custom Dispose function when the last AutoDispose h...
Definition: AutoDispose.h:93
Media access layer responsible for handling files distributed on a set of media with media change and...
Pathname provideFile(const OnMediaLocation &resource, ProvideFileOptions options=PROVIDE_DEFAULT, const Pathname &deltafile=Pathname())
Provides a file from a media location.
ZYPP_DECLARE_FLAGS(ProvideFileOptions, ProvideFileOption)
VerifierMap _verifiers
Mapping between media number and corespondent verifier.
media::MediaAccessId getMediaAccessId(media::MediaNr medianr)
Pathname provideDir(const Pathname &dir, bool recursive, unsigned media_nr=1, ProvideFileOptions options=PROVIDE_DEFAULT)
Provides direcotry dir from media number media_nr.
MediaMap _medias
Mapping between media number and Media Access ID.
virtual std::ostream & dumpOn(std::ostream &str) const
Overload to realize std::ostream & operator<<.
friend std::ostream & operator<<(std::ostream &str, const MediaSetAccess &obj)
std::map< media::MediaNr, media::MediaAccessId > MediaMap
static ManagedFile provideFileFromUrl(const Url &file_url, ProvideFileOptions options=PROVIDE_DEFAULT)
Provides file from url.
@ PROVIDE_DEFAULT
The user is not asked anything, and the error exception is just propagated.
void setLabel(const std::string &label_r)
Set the label identifing this media set and to be sent in a media change request.
function< void(media::MediaAccessId, const Pathname &)> ProvideOperation
Pathname provideOptionalFile(const Pathname &file, unsigned media_nr=1)
Provides an optional file from media media_nr.
static ManagedFile provideOptionalFileFromUrl(const Url &file_url)
Provides an optional file from url.
void setVerifier(unsigned media_nr, media::MediaVerifierRef verifier)
Sets a MediaVerifier verifier for given media number.
bool doesFileExist(const Pathname &file, unsigned media_nr=1)
Checks if a file exists on the specified media, with user callbacks.
void dirInfo(filesystem::DirContent &retlist, const Pathname &dirname, bool dots=true, unsigned media_nr=1)
Fills retlist with directory information.
std::map< media::MediaNr, media::MediaVerifierRef > VerifierMap
MediaSetAccess(const Url &url, const Pathname &prefered_attach_point="")
Creates a callback enabled media access for specified url.
void release()
Release all attached media of this set.
Pathname _prefAttachPoint
Prefered mount point.
Pathname provideFileInternal(const OnMediaLocation &resource, ProvideFileOptions options)
Provides the file from medium number media_nr and returns its local path.
void provide(ProvideOperation op, const OnMediaLocation &resource, ProvideFileOptions options, const Pathname &deltafile)
static Url rewriteUrl(const Url &url_r, const media::MediaNr medianr)
Replaces media number in specified url with given medianr.
Url _url
Media or media set URL.
const std::string & label() const
The label identifing this media set and to be sent in a media change request.
void releaseFile(const OnMediaLocation &resource)
Release file from media.
Describes a resource file located on a medium.
Url manipulation class.
Definition: Url.h:92
Base class for reference counted objects.
String related utilities and Regular expression matching.
boost::noncopyable NonCopyable
Ensure derived classes cannot be copied.
Definition: NonCopyable.h:26
std::list< DirEntry > DirContent
Returned by readdir.
Definition: PathInfo.h:547
unsigned int MediaNr
Definition: MediaManager.h:40
unsigned int MediaAccessId
Media manager access Id type.
Definition: MediaSource.h:29
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
DEFINE_PTR_TYPE(Application)
ZYPP_DECLARE_OPERATORS_FOR_FLAGS(DiskUsageCounter::MountPoint::HintFlags)
ReleaseFileGuard(MediaSetAccess &media_r, const OnMediaLocation &loc_r)
Wrapper for const correct access via Smart pointer types.
Definition: PtrTypes.h:286