ITK  6.0.0
Insight Toolkit
itkArchetypeSeriesFileNames.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef itkArchetypeSeriesFileNames_h
19#define itkArchetypeSeriesFileNames_h
20#include "ITKIOImageBaseExport.h"
21
22
23#include "itkObject.h"
24#include "itkObjectFactory.h"
25#include <vector>
26#include <string>
27
28namespace itk
29{
68class ITKIOImageBase_EXPORT ArchetypeSeriesFileNames : public Object
69{
70public:
71 ITK_DISALLOW_COPY_AND_MOVE(ArchetypeSeriesFileNames);
72
77
79 itkNewMacro(Self);
80
82 itkOverrideGetNameOfClassMacro(ArchetypeSeriesFileNames);
83
84 /* -------- Define the API for ArchetypeSeriesFileNames ----------- */
85
86 // The archetypical filename from which to generate the regular
87 // expressions
88 void
89 SetArchetype(const std::string & archetype);
90
91 itkGetStringMacro(Archetype);
92
93 using VectorSizeType = size_t;
94
98
100 using IntVectorType = std::vector<int>;
101 using StringVectorType = std::vector<std::string>;
102
106 const StringVectorType &
108
109protected:
111 ~ArchetypeSeriesFileNames() override = default;
112 void
113 PrintSelf(std::ostream & os, Indent indent) const override;
114
116 void
118
119private:
121 std::string m_Archetype{};
122
123 std::vector<StringVectorType> m_Groupings{};
124 StringVectorType m_FileNames{}; // ivar for returning by
125 // reference
126
127 TimeStamp m_ArchetypeMTime{};
128 TimeStamp m_ScanTime{};
129};
130} // namespace itk
131
132#endif // itkArchetypeSeriesFileNames_h
Generate an ordered sequence of filenames.
void SetArchetype(const std::string &archetype)
void PrintSelf(std::ostream &os, Indent indent) const override
std::vector< std::string > StringVectorType
const StringVectorType & GetFileNames(VectorSizeType group=0)
~ArchetypeSeriesFileNames() override=default
VectorSizeType GetNumberOfGroupings()
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
Base class for most ITK classes.
Definition: itkObject.h:62
Generate a unique, increasing time value.
Definition: itkTimeStamp.h:61
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....