00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkArchetypeSeriesFileNames_h
00018 #define __itkArchetypeSeriesFileNames_h
00019
00020 #ifdef _MSC_VER
00021 #pragma warning ( disable : 4786 )
00022 #endif
00023
00024 #include "itkObject.h"
00025 #include "itkObjectFactory.h"
00026 #include <vector>
00027 #include <string>
00028
00029
00030
00031 namespace itk
00032 {
00071 class ITK_EXPORT ArchetypeSeriesFileNames : public Object
00072 {
00073 public:
00075 typedef ArchetypeSeriesFileNames Self;
00076 typedef Object Superclass;
00077 typedef SmartPointer<Self> Pointer;
00078
00080 itkNewMacro(Self);
00081
00083 itkTypeMacro(ArchetypeSeriesFileNames, Object);
00084
00085
00086
00087
00088
00089 void SetArchetype(const std::string &archetype);
00090 itkGetStringMacro(Archetype);
00091
00092 typedef size_t VectorSizeType;
00093
00095 VectorSizeType GetNumberOfGroupings();
00096
00098 typedef std::vector < int > IntVectorType;
00099 typedef std::vector < std::string > StringVectorType;
00100
00104 const StringVectorType &GetFileNames ( VectorSizeType group = 0);
00105
00106
00107 protected:
00108 ArchetypeSeriesFileNames();
00109 ~ArchetypeSeriesFileNames() {};
00110 void PrintSelf(std::ostream& os, Indent indent) const;
00111
00113 void Scan();
00114
00115 private:
00116 ArchetypeSeriesFileNames(const Self&);
00117 void operator=(const Self&);
00118
00120 std::string m_Archetype;
00121
00122 std::vector< StringVectorType > m_Groupings;
00123 StringVectorType m_FileNames;
00124
00125 TimeStamp m_ArchetypeMTime;
00126 TimeStamp m_ScanTime;
00127
00128 };
00129
00130 }
00131
00132 #endif // __itkArchetypeSeriesFileNames_h
00133