00001 #ifndef SAMPLE_HANDLER__DISK_LIST_H
00002 #define SAMPLE_HANDLER__DISK_LIST_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include <SampleHandler/Global.h>
00015
00016 #include <string>
00017
00018 namespace SH
00019 {
00027 class DiskList
00028 {
00029
00030
00031
00032
00037 public:
00038 void testInvariant () const;
00039
00040
00047 public:
00048 virtual ~DiskList ();
00049
00050
00058 public:
00059 bool next ();
00060
00061
00069 public:
00070 std::string path () const;
00071
00072
00081 public:
00082 std::string fileName () const;
00083
00084
00094 public:
00095 DiskList *openDir () const;
00096
00097
00103 public:
00104 std::string dirname () const;
00105
00106
00107
00108
00109
00110
00111
00118 protected:
00119 DiskList ();
00120
00121
00122
00123
00124
00125
00126
00130 protected:
00131 virtual bool getNext () = 0;
00132
00133
00137 protected:
00138 virtual std::string getPath () const = 0;
00139
00140
00144 protected:
00145 virtual DiskList *doOpenDir () const = 0;
00146
00147
00151 protected:
00152 virtual std::string getDirname () const = 0;
00153
00154
00155
00156
00157
00158
00159
00161 private:
00162 enum State
00163 {
00164 S_BLANK,
00165 S_VALID,
00166 S_DONE,
00167 S_BROKEN
00168 };
00170 State m_state;
00171 };
00172 }
00173
00174 #endif