00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef OSDL_CD_ROM_DRIVE_HANDLER_H_
00028 #define OSDL_CD_ROM_DRIVE_HANDLER_H_
00029
00030
00031 #include "OSDLException.h"
00032
00033 #include "Ceylan.h"
00034
00035
00036 #include <string>
00037 #include <map>
00038
00039
00040
00041 namespace OSDL
00042 {
00043
00044
00045
00047 class OSDL_DLL CDROMDriveException: public OSDL::Exception
00048 {
00049
00050 public:
00051
00052 CDROMDriveException( const std::string & message ) ;
00053 virtual ~CDROMDriveException() throw() ;
00054
00055 } ;
00056
00057
00058
00059
00065 typedef Ceylan::Count CDROMDriveNumber ;
00066
00067
00068
00069
00070 class CDROMDrive ;
00071
00072
00073
00080 class OSDL_DLL CDROMDriveHandler: public Ceylan::Object
00081 {
00082
00083
00084 public:
00085
00086
00087
00096 CDROMDriveHandler() ;
00097
00098
00099
00100
00101 virtual ~CDROMDriveHandler() throw() ;
00102
00103
00104
00112 static CDROMDriveNumber GetAvailableCDROMDrivesCount() ;
00113
00114
00115
00133 CDROMDrive & getCDROMDrive( CDROMDriveNumber number = 0 ) ;
00134
00135
00136
00148 virtual const std::string toString(
00149 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00150
00151
00152
00153
00154 private:
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164 #pragma warning( push )
00165 #pragma warning( disable: 4251 )
00166
00172 std::map<CDROMDriveNumber, CDROMDrive *> _drives ;
00173
00174 #pragma warning( pop )
00175
00176
00177
00186 explicit CDROMDriveHandler( const CDROMDriveHandler & source ) ;
00187
00188
00189
00198 CDROMDriveHandler & operator = ( const CDROMDriveHandler & source );
00199
00200
00201
00202 } ;
00203
00204
00205
00206 }
00207
00208
00209
00210 #endif // OSDL_CD_ROM_DRIVE_HANDLER_H_
00211