libzypp  17.25.3
MediaCD.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_MEDIA_MEDIACD_H
13 #define ZYPP_MEDIA_MEDIACD_H
14 
17 
18 namespace zypp {
19  namespace media {
20 
22  //
23  // CLASS NAME : MediaCD
28  class MediaCD : public MediaHandler {
29 
30  private:
31  typedef std::list<MediaSource> DeviceList;
34 
36  int _lastdev;
38 
39  static bool openTray( const std::string & device_r );
40  static bool closeTray( const std::string & device_r );
41 
42  DeviceList detectDevices(bool supportingDVD) const;
43 
44  protected:
45 
46  virtual void attachTo (bool next = false) override;
47  virtual void releaseFrom( const std::string & ejectDev ) override;
48  virtual void getFile(const Pathname & filename, const ByteCount &expectedFileSize_r ) const override;
49  virtual void getDir( const Pathname & dirname, bool recurse_r ) const override;
50  virtual void getDirInfo( std::list<std::string> & retlist,
51  const Pathname & dirname, bool dots = true ) const override;
52  virtual void getDirInfo( filesystem::DirContent & retlist,
53  const Pathname & dirname, bool dots = true ) const override;
54  virtual bool getDoesFileExist( const Pathname & filename ) const override;
55 
56  virtual void forceEject(const std::string & ejectDev) override;
57 
58  virtual bool hasMoreDevices() override;
59 
60  virtual void
61  getDetectedDevices(std::vector<std::string> & devices,
62  unsigned int & index) const override;
63 
64  public:
65 
66  MediaCD( const Url & url_r,
67  const Pathname & attach_point_hint_r );
68 
69  virtual ~MediaCD() override { try { release(); } catch(...) {} }
70 
71  virtual bool isAttached() const override;
72  };
73 
75  } // namespace media
76 } // namespace zypp
77 #endif // ZYPP_MEDIA_MEDIACD_H
zypp::media::MediaCD::hasMoreDevices
virtual bool hasMoreDevices() override
Check if the media has one more device available for attach(true).
Definition: MediaCD.cc:707
zypp::media::MediaCD::getDoesFileExist
virtual bool getDoesFileExist(const Pathname &filename) const override
check if a file exists
Definition: MediaCD.cc:701
zypp::media::MediaCD::~MediaCD
virtual ~MediaCD() override
Definition: MediaCD.h:69
zypp::media::MediaCD::detectDevices
DeviceList detectDevices(bool supportingDVD) const
Definition: MediaCD.cc:260
zypp::media::MediaCD::_lastdev_tried
int _lastdev_tried
Definition: MediaCD.h:37
zypp::media::MediaCD::MediaCD
MediaCD(const Url &url_r, const Pathname &attach_point_hint_r)
Definition: MediaCD.cc:136
zypp::media::MediaCD::attachTo
virtual void attachTo(bool next=false) override
Call concrete handler to attach the media.
Definition: MediaCD.cc:336
MediaHandler.h
zypp::media::MediaCD::_lastdev
int _lastdev
number of last successful mounted device in list
Definition: MediaCD.h:36
zypp::media::MediaCD::getDetectedDevices
virtual void getDetectedDevices(std::vector< std::string > &devices, unsigned int &index) const override
Fill in a vector of detected ejectable devices and the index of the currently attached device within ...
Definition: MediaCD.cc:718
zypp::media::MediaHandler
Abstract base class for 'physical' MediaHandler like MediaCD, etc.
Definition: MediaHandler.h:45
zypp::media::MediaCD::closeTray
static bool closeTray(const std::string &device_r)
Definition: MediaCD.cc:242
zypp::media::MediaCD::forceEject
virtual void forceEject(const std::string &ejectDev) override
Call concrete handler to physically eject the media (i.e.
Definition: MediaCD.cc:587
zypp::media::MediaCD::getFile
virtual void getFile(const Pathname &filename, const ByteCount &expectedFileSize_r) const override
Call concrete handler to provide file below attach point.
Definition: MediaCD.cc:656
MediaManager.h
zypp::media::MediaCD::getDirInfo
virtual void getDirInfo(std::list< std::string > &retlist, const Pathname &dirname, bool dots=true) const override
Call concrete handler to provide a content list of directory on media via retlist.
Definition: MediaCD.cc:681
zypp::media::MediaCD
Implementation class for CD/DVD MediaHandler.
Definition: MediaCD.h:28
zypp::ByteCount
Store and operate with byte count.
Definition: ByteCount.h:31
zypp::media::MediaCD::openTray
static bool openTray(const std::string &device_r)
Definition: MediaCD.cc:183
zypp::media::MediaCD::isAttached
virtual bool isAttached() const override
True if media is attached.
Definition: MediaCD.cc:644
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
zypp::media::MediaCD::getDir
virtual void getDir(const Pathname &dirname, bool recurse_r) const override
Call concrete handler to provide directory content (not recursive!) below attach point.
Definition: MediaCD.cc:668
zypp::filesystem::DirContent
std::list< DirEntry > DirContent
Returned by readdir.
Definition: PathInfo.h:547
zypp::media::MediaCD::_devices
DeviceList _devices
list of devices to try to mount
Definition: MediaCD.h:33
zypp::media::MediaCD::DeviceList
std::list< MediaSource > DeviceList
Definition: MediaCD.h:31
zypp::media::MediaCD::releaseFrom
virtual void releaseFrom(const std::string &ejectDev) override
Call concrete handler to release the media.
Definition: MediaCD.cc:545
zypp::filesystem::Pathname
Pathname.
Definition: Pathname.h:45
zypp::media::MediaHandler::release
void release(const std::string &ejectDev="")
Use concrete handler to release the media.
Definition: MediaHandler.cc:740
zypp::Url
Url manipulation class.
Definition: Url.h:92