libzypp  10.5.0
zypp::media::MediaCD Class Reference

Implementation class for CD/DVD MediaHandler. More...

#include <MediaCD.h>

Inheritance diagram for zypp::media::MediaCD:

List of all members.

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< MediaSourceDeviceList

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

Detailed Description

Implementation class for CD/DVD MediaHandler.

See also:
MediaHandler

Definition at line 28 of file MediaCD.h.


Member Typedef Documentation

typedef std::list<MediaSource> zypp::media::MediaCD::DeviceList [private]

Definition at line 31 of file MediaCD.h.


Constructor & Destructor Documentation

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]

Definition at line 69 of file MediaCD.h.


Member Function Documentation

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.

Parameters:
nexttry next available device in turn until end of device list is reached (for media which are accessible through multiple devices like cdroms).
Exceptions:
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.

Parameters:
ejectDevDevice to eject. None if empty.
Exceptions:
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.

Exceptions:
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.

Exceptions:
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.

Exceptions:
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.

Exceptions:
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.

Exceptions:
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).

Parameters:
devicesvector to load with the device names
indexindex 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.


Member Data Documentation

list of devices to try to mount

Definition at line 33 of file MediaCD.h.

number of last successful mounted device in list

Definition at line 36 of file MediaCD.h.

Definition at line 37 of file MediaCD.h.


The documentation for this class was generated from the following files: