MediaCD.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00012 #ifndef ZYPP_MEDIA_MEDIACD_H
00013 #define ZYPP_MEDIA_MEDIACD_H
00014
00015 #include "zypp/media/MediaHandler.h"
00016 #include "zypp/media/MediaManager.h"
00017
00018 namespace zypp {
00019 namespace media {
00020
00022
00023
00028 class MediaCD : public MediaHandler {
00029
00030 private:
00031
00032 typedef std::list<MediaSource> DeviceList;
00034 DeviceList _devices;
00035
00037 int _lastdev;
00038 int _lastdev_tried;
00039
00040 static bool openTray( const std::string & device_r );
00041 static bool closeTray( const std::string & device_r );
00042
00043 DeviceList detectDevices(bool supportingDVD) const;
00044
00045 protected:
00046
00047 virtual void attachTo (bool next = false);
00048 virtual void releaseFrom( const std::string & ejectDev );
00049 virtual void getFile( const Pathname & filename ) const;
00050 virtual void getDir( const Pathname & dirname, bool recurse_r ) const;
00051 virtual void getDirInfo( std::list<std::string> & retlist,
00052 const Pathname & dirname, bool dots = true ) const;
00053 virtual void getDirInfo( filesystem::DirContent & retlist,
00054 const Pathname & dirname, bool dots = true ) const;
00055 virtual bool getDoesFileExist( const Pathname & filename ) const;
00056
00057 virtual void forceEject(const std::string & ejectDev);
00058
00059 virtual bool hasMoreDevices();
00060
00061 virtual void
00062 getDetectedDevices(std::vector<std::string> & devices,
00063 unsigned int & index) const;
00064
00065 public:
00066
00067 MediaCD( const Url & url_r,
00068 const Pathname & attach_point_hint_r );
00069
00070 virtual ~MediaCD() { try { release(); } catch(...) {} }
00071
00072 virtual bool isAttached() const;
00073 };
00074
00076 }
00077 }
00078 #endif // ZYPP_MEDIA_MEDIACD_H