Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef GDCMDIRECTORY_H
00016 #define GDCMDIRECTORY_H
00017
00018 #include "gdcmTypes.h"
00019
00020 #include <string>
00021 #include <vector>
00022 #include <iostream>
00023 #include <assert.h>
00024
00025 namespace gdcm
00026 {
00042
00043 class GDCM_EXPORT Directory
00044 {
00045 friend std::ostream& operator<<(std::ostream &_os, const Directory &d);
00046 public :
00047 Directory() {}
00048 ~Directory() {}
00049 typedef std::string FilenameType;
00050 typedef std::vector<FilenameType> FilenamesType;
00051
00053 void Print(std::ostream &os = std::cout) const;
00054
00056 FilenameType const &GetToplevel() const { return Toplevel; }
00057
00059 FilenamesType const &GetFilenames() const {
00060 assert( !(Toplevel.empty()) && "Need to call Explore first" );
00061 return Filenames; }
00062
00064 FilenamesType const &GetDirectories() const { return Directories; }
00065
00068 unsigned int Load(FilenameType const &name, bool recursive = false) {
00069 Filenames.clear();
00070 Directories.clear();
00071 Toplevel = name;
00072 return Explore( Toplevel, recursive );
00073 }
00074
00075
00076
00077
00078
00079
00080 protected:
00082 unsigned int Explore(FilenameType const &name, bool recursive);
00083
00084 private :
00086 FilenamesType Filenames;
00087 FilenamesType Directories;
00088
00090 FilenameType Toplevel;
00091 };
00092
00093 inline std::ostream& operator<<(std::ostream &os, const Directory &d)
00094 {
00095 d.Print( os );
00096 return os;
00097 }
00098
00099 }
00100
00101 #endif //GDCMDIRECTORY_H