00001
00006 #ifndef __BGDNetDirectory_h__
00007 #define __BGDNetDirectory_h__
00008
00009 #include "BGDNetConfig.h"
00010
00011 #include "BGDNetFile.h"
00012 #include "BGDNetDirectory.h"
00013 #include "BGDNetCollection.h"
00014 #include "BGDNetPath.h"
00015 #include "BGDNetException.h"
00016
00017 namespace BGDNet
00018 {
00019
00020 class Volume;
00021
00022 #ifdef _MSC_VER
00023 # pragma warning(disable:4231)
00024 #endif
00025
00026 BGDNET_TEMPLATE(SharePtr<Directory>);
00027 BGDNET_TEMPLATE(SharePtr<File>);
00028 BGDNET_TEMPLATE(Collection<SharePtr<Directory> >);
00029 BGDNET_TEMPLATE(Collection<SharePtr<File> >);
00030
00031 #ifdef _MSC_VER
00032 # pragma warning(default:4231)
00033 #endif
00034
00035 typedef Collection<SharePtr<Directory> > Directories;
00036 typedef Collection<SharePtr<File> > Files;
00037
00038
00039
00040
00047 class BGDNET_API Directory : public DirEntry
00048 {
00049 public:
00050
00051 Directory( const Volume* pVol, const Path& relPath )
00052 throw(Exception);
00059 Directory( const Directory* pParent, const Path& subdirName )
00060 throw(Exception);
00067 void getSubdirs( Directories* pColl ) const
00068 throw(Exception);
00075 void getFiles( Files* pColl ) const
00076 throw(Exception);
00083 virtual nuint32 ownerId( void ) const;
00089 virtual void ownerId( nuint32 id );
00095 private:
00096
00097 Directory( const Directory& );
00102 Directory& operator =( const Directory& );
00106 };
00107
00108 }
00109
00110 #endif //__BGDNetDirectory_h__