libzypp
10.5.0
|
Implementation class for CD/DVD MediaHandler. More...
#include <MediaCD.h>
Public Member Functions | |
MediaCD (const Url &url_r, const Pathname &attach_point_hint_r) | |
virtual | ~MediaCD () |
virtual bool | isAttached () const |
True if media is attached. | |
Protected Member Functions | |
virtual void | attachTo (bool next=false) |
Call concrete handler to attach the media. | |
virtual void | releaseFrom (const std::string &ejectDev) |
Call concrete handler to release the media. | |
virtual void | getFile (const Pathname &filename) const |
Call concrete handler to provide file below attach point. | |
virtual void | getDir (const Pathname &dirname, bool recurse_r) const |
Call concrete handler to provide directory content (not recursive!) below attach point. | |
virtual void | getDirInfo (std::list< std::string > &retlist, const Pathname &dirname, bool dots=true) const |
Call concrete handler to provide a content list of directory on media via retlist. | |
virtual void | getDirInfo (filesystem::DirContent &retlist, const Pathname &dirname, bool dots=true) const |
Basically the same as getDirInfo above. | |
virtual bool | getDoesFileExist (const Pathname &filename) const |
check if a file exists | |
virtual void | forceEject (const std::string &ejectDev) |
Call concrete handler to physically eject the media (i.e. | |
virtual bool | hasMoreDevices () |
Check if the media has one more device available for attach(true). | |
virtual void | getDetectedDevices (std::vector< std::string > &devices, unsigned int &index) const |
Fill in a vector of detected ejectable devices and the index of the currently attached device within the vector. | |
Private Types | |
typedef std::list< MediaSource > | DeviceList |
Private Member Functions | |
DeviceList | detectDevices (bool supportingDVD) const |
Static Private Member Functions | |
static bool | openTray (const std::string &device_r) |
static bool | closeTray (const std::string &device_r) |
Private Attributes | |
DeviceList | _devices |
list of devices to try to mount | |
int | _lastdev |
number of last successful mounted device in list | |
int | _lastdev_tried |
Implementation class for CD/DVD MediaHandler.
typedef std::list<MediaSource> zypp::media::MediaCD::DeviceList [private] |
zypp::media::MediaCD::MediaCD | ( | const Url & | url_r, |
const Pathname & | attach_point_hint_r | ||
) |
Definition at line 203 of file MediaCD.cc.
virtual zypp::media::MediaCD::~MediaCD | ( | ) | [inline, virtual] |
bool zypp::media::MediaCD::openTray | ( | const std::string & | device_r | ) | [static, private] |
Definition at line 250 of file MediaCD.cc.
bool zypp::media::MediaCD::closeTray | ( | const std::string & | device_r | ) | [static, private] |
Definition at line 309 of file MediaCD.cc.
MediaCD::DeviceList zypp::media::MediaCD::detectDevices | ( | bool | supportingDVD | ) | const [private] |
Definition at line 327 of file MediaCD.cc.
void zypp::media::MediaCD::attachTo | ( | bool | next = false | ) | [protected, virtual] |
Call concrete handler to attach the media.
Asserted that not already attached, and attachPoint is a directory.
next | try next available device in turn until end of device list is reached (for media which are accessible through multiple devices like cdroms). |
MediaException |
Implements zypp::media::MediaHandler.
Definition at line 403 of file MediaCD.cc.
void zypp::media::MediaCD::releaseFrom | ( | const std::string & | ejectDev | ) | [protected, virtual] |
Call concrete handler to release the media.
If eject is true, and the media is used in one handler instance only, physically eject the media (i.e. CD-ROM).
Asserted that media is attached.
ejectDev | Device to eject. None if empty. |
MediaException |
Implements zypp::media::MediaHandler.
Definition at line 616 of file MediaCD.cc.
void zypp::media::MediaCD::getFile | ( | const Pathname & | filename | ) | const [protected, virtual] |
Call concrete handler to provide file below attach point.
Default implementation provided, that returns whether a file is located at 'localRoot + filename'.
Asserted that media is attached.
MediaException |
Implements zypp::media::MediaHandler.
Definition at line 723 of file MediaCD.cc.
void zypp::media::MediaCD::getDir | ( | const Pathname & | dirname, |
bool | recurse_r | ||
) | const [protected, virtual] |
Call concrete handler to provide directory content (not recursive!) below attach point.
Return E_not_supported_by_media if media does not support retrieval of directory content.
Default implementation provided, that returns whether a directory is located at 'localRoot + dirname'.
Asserted that media is attached.
MediaException |
Implements zypp::media::MediaHandler.
Definition at line 735 of file MediaCD.cc.
void zypp::media::MediaCD::getDirInfo | ( | std::list< std::string > & | retlist, |
const Pathname & | dirname, | ||
bool | dots = true |
||
) | const [protected, virtual] |
Call concrete handler to provide a content list of directory on media via retlist.
If dots is false entries starting with '.' are not reported.
Return E_not_supported_by_media if media does not support retrieval of directory content.
Default implementation provided, that returns the content of a directory at 'localRoot + dirnname' retrieved via 'readdir'.
Asserted that media is attached and retlist is empty.
MediaException |
Implements zypp::media::MediaHandler.
Definition at line 748 of file MediaCD.cc.
void zypp::media::MediaCD::getDirInfo | ( | filesystem::DirContent & | retlist, |
const Pathname & | dirname, | ||
bool | dots = true |
||
) | const [protected, virtual] |
Basically the same as getDirInfo above.
The content list is returned as filesystem::DirContent, which includes name and filetype of each directory entry. Retrieving the filetype usg. requires an additional ::stat call for each entry, thus it's more expensive than a simple readdir.
Asserted that media is attached and retlist is empty.
MediaException |
Implements zypp::media::MediaHandler.
Definition at line 762 of file MediaCD.cc.
bool zypp::media::MediaCD::getDoesFileExist | ( | const Pathname & | filename | ) | const [protected, virtual] |
check if a file exists
Asserted that url is a file and not a dir.
MediaException |
Implements zypp::media::MediaHandler.
Definition at line 768 of file MediaCD.cc.
void zypp::media::MediaCD::forceEject | ( | const std::string & | device | ) | [protected, virtual] |
Call concrete handler to physically eject the media (i.e.
CD-ROM) in case the media is not attached..
Asserted that media is not attached.
Reimplemented from zypp::media::MediaHandler.
Definition at line 658 of file MediaCD.cc.
bool zypp::media::MediaCD::hasMoreDevices | ( | ) | [protected, virtual] |
Check if the media has one more device available for attach(true).
Reimplemented from zypp::media::MediaHandler.
Definition at line 774 of file MediaCD.cc.
void zypp::media::MediaCD::getDetectedDevices | ( | std::vector< std::string > & | devices, |
unsigned int & | index | ||
) | const [protected, virtual] |
Fill in a vector of detected ejectable devices and the index of the currently attached device within the vector.
The contents of the vector are the device names (/dev/cdrom and such).
devices | vector to load with the device names |
index | index of the currently used device in the devices vector |
Reimplemented from zypp::media::MediaHandler.
Definition at line 785 of file MediaCD.cc.
bool zypp::media::MediaCD::isAttached | ( | ) | const [virtual] |
True if media is attached.
Reimplemented from zypp::media::MediaHandler.
Definition at line 711 of file MediaCD.cc.
DeviceList zypp::media::MediaCD::_devices [mutable, private] |
int zypp::media::MediaCD::_lastdev [private] |
int zypp::media::MediaCD::_lastdev_tried [private] |