25 #ifndef __itkHDF5ImageIO_h
26 #define __itkHDF5ImageIO_h
45 class MetaDataObjectBase;
46 class MetaDataDictionary;
107 virtual bool CanReadFile(
const char *FileNameToRead);
110 virtual void ReadImageInformation();
113 virtual void Read(
void *buffer);
123 virtual bool CanWriteFile(
const char *FileNameToWrite);
126 virtual void WriteImageInformation();
130 virtual void Write(
const void *buffer);
136 virtual SizeType GetHeaderSize(
void)
const;
138 void PrintSelf(std::ostream & os,
Indent indent)
const;
142 void operator=(
const Self &);
144 void WriteString(
const std::string &path,
145 const std::string &value);
146 void WriteString(
const std::string &path,
148 std::string ReadString(
const std::string &path);
150 void WriteScalar(
const std::string &path,
152 void WriteScalar(
const std::string &path,
154 void WriteScalar(
const std::string &path,
155 const unsigned long &value);
157 template <
typename TScalar>
158 void WriteScalar(
const std::string &path,
159 const TScalar &value);
161 template <
typename TScalar>
162 TScalar ReadScalar(
const std::string &DataSetName);
164 template <
typename TScalar>
165 void WriteVector(
const std::string &path,
166 const std::vector<TScalar> &vec);
168 template <
typename TScalar>
169 std::vector<TScalar> ReadVector(
const std::string &DataSetName);
171 void WriteDirections(
const std::string &path,
172 const std::vector<std::vector<double> > &dir);
174 std::vector<std::vector<double> > ReadDirections(
const std::string &path);
176 template <
typename TType>
177 bool WriteMeta(
const std::string &name,
179 template <
typename TType>
180 bool WriteMetaArray(
const std::string &name,
182 template <
typename TType>
184 const std::string &HDFPath,
185 const std::string &name,
186 unsigned long numElements);
187 void SetupStreaming(H5::DataSpace *imageSpace,
188 H5::DataSpace *slabSpace);
195 #endif // __itkHDF5ImageIO_h