00001 // $Id: SLDirectory.hpp,v 1.4 2004/04/15 00:04:52 mr_lex Exp $ 00002 #ifndef SL_DIRECTORY_HPP 00003 #define SL_DIRECTORY_HPP 00004 00005 #include <boost/shared_ptr.hpp> 00006 00007 #include "segusoland.hpp" 00008 #include "SLFile.hpp" 00009 #include "SLFileList.hpp" 00010 #include "SLDirectoryList.hpp" 00011 #include "SLString.hpp" 00012 #include "SLIOException.hpp" 00013 00014 SL_NAMESPACE_BEGIN 00015 00016 // This is to please mr g++ 00017 class SLDirectoryList; 00018 00027 class SLDirectory : public SLFile { 00028 public: 00032 class IOException : public SLIOException { 00033 public: 00035 IOException(const SLString &message) 00036 : 00037 SLIOException(message) { } 00038 }; 00039 00040 00047 SLDirectory(const char *path); 00048 00059 const SLFileList &getFiles() throw(IOException); 00060 00071 SLDirectoryList &getDirectories() throw(IOException); 00072 00073 protected: 00077 class DirData; 00078 00082 boost::shared_ptr<DirData> _dir_shared_ptr; 00083 00087 void scanDir() throw(IOException); 00088 00089 }; // class SLDirectory 00090 00091 SL_NAMESPACE_END 00092 #endif // #ifndef SL_DIRECTORY_HPP 00093 // $Log: SLDirectory.hpp,v $ 00094 // Revision 1.4 2004/04/15 00:04:52 mr_lex 00095 // NEW: files plugin + autotools up to date 00096 // 00097 // Revision 1.3 2004/04/03 15:07:34 mr_lex 00098 // NEW: plugin system and toolkit nearly mature 00099 // 00100 // Revision 1.2 2004/04/01 19:05:48 mr_lex 00101 // cosmetic changes 00102 // 00103 // Revision 1.1 2004/04/01 13:02:40 mr_lex 00104 // NEW: added SLFileExt SLDirectory SLDirectoryList 00105 // 00106