00001
00006 #ifndef __BGDNetDrive_h__
00007 #define __BGDNetDrive_h__
00008
00009 #include "BGDNetConfig.h"
00010
00011 #include "BGDNetString.h"
00012 #include "BGDNetException.h"
00013 #include "BGDNetShare.h"
00014 #include "BGDNetCollection.h"
00015
00016 namespace BGDNet
00017 {
00018
00019 class Server;
00020 class Volume;
00021 class Directory;
00022
00029 class BGDNET_API NetworkDrive : public Share
00030 {
00031 public:
00032
00033 explicit NetworkDrive( char drv )
00034 throw(Exception);
00040 ~NetworkDrive( void );
00045 char drvLetter( void ) const;
00050 Directory* mappedDir( void );
00057 const Directory* mappedDir( void ) const;
00064 private:
00065
00066 void getMappedDir( void );
00071 const char m_drvLetter;
00076 Server* m_pSrv;
00081 Volume* m_pVol;
00086 Directory* m_pDir;
00090 };
00091
00092
00093
00094
00095 #ifdef _MSC_VER
00096 # pragma warning(disable:4231)
00097 #endif
00098
00099 BGDNET_TEMPLATE(SharePtr<NetworkDrive>);
00100 BGDNET_TEMPLATE(Collection<SharePtr<NetworkDrive> >);
00101
00102 #ifdef _MSC_VER
00103 # pragma warning(default:4231)
00104 #endif
00105
00106
00107
00108
00116 class BGDNET_API NetworkDrives
00117 {
00118 public:
00119
00120 NetworkDrives( void )
00121 throw(Exception);
00126 int count( void ) const;
00132 NetworkDrive* operator []( int n );
00139 const NetworkDrive* operator []( int n ) const;
00146 private:
00147
00148 Collection<SharePtr<NetworkDrive> > m_drives;
00152 };
00153
00154 }
00155
00156 #endif //__BGDNetDrive_h__