43 #ifndef BLITZHDF5LIGHT_HH 44 #define BLITZHDF5LIGHT_HH 59 #include <blitz/array.h> 113 template<
typename DataT>
123 std::string
const &
str()
const;
132 char const *
what()
const throw();
136 std::string _message;
145 enum FileMode { ReadOnly, Write, Replace, New, WriteOrNew };
191 throw BlitzH5Error() <<
"Invalid file id. The file is not open.";
202 std::string
const &
name()
const 222 static std::string simplifyGroupDescriptor(std::string
const& group);
233 bool existsDataset(std::string
const &name)
const;
245 std::vector<hsize_t> getDatasetShape(std::string
const &name)
const;
257 std::vector<std::string>
258 allDatasets(std::string
const &startGroup =
"/")
const;
270 hid_t getDatasetType(std::string
const &name)
const;
287 template<
typename FixedNumericT>
288 void readDataset(FixedNumericT &data, std::string
const &name)
const;
305 template<
typename DataT>
307 std::vector<DataT> &data, std::string
const &name)
const;
325 template<
typename DataT,
int Rank>
327 blitz::Array<DataT,Rank> &data, std::string
const &name,
345 std::string &data, std::string
const &name,
362 template<
typename DataT>
363 void writeDataset(DataT
const &data, std::string
const &name);
385 template<
typename DataT,
int Rank>
387 blitz::Array<DataT,Rank>
const &data, std::string
const &name,
408 std::string
const &data, std::string
const &name,
428 void deleteDataset(std::string
const &name);
441 bool existsAttribute(
442 std::string
const &attName, std::string
const &objectName =
"/")
const;
455 std::vector<hsize_t> getAttributeShape(
456 std::string
const &attName, std::string
const &objectName =
"/")
const;
468 hid_t getAttributeType(
469 const std::string& attName,
const std::string& objectName =
"/")
const;
480 template<
typename DataT>
482 DataT &data, std::string
const &attName,
483 std::string
const &objectName =
"/")
const;
494 template<
typename DataT,
int Dim>
496 blitz::TinyVector<DataT,Dim> &data, std::string
const &attName,
497 std::string
const &objectName =
"/")
const;
508 template<
typename DataT,
int NRows,
int NCols>
510 blitz::TinyMatrix<DataT,NRows,NCols> &data, std::string
const &attName,
511 std::string
const &objectName =
"/")
const;
522 template<
typename DataT>
524 std::vector<DataT> &data, std::string
const &attName,
525 std::string
const &objectName =
"/")
const;
537 std::string &data, std::string
const &attName,
538 std::string
const &objectName =
"/")
const;
549 template<
typename DataT>
551 DataT
const &in, std::string
const &attName,
552 std::string
const &objectName =
"/");
564 std::string
const &in, std::string
const &attName,
565 std::string
const &objectName =
"/");
575 void deleteAttribute(
576 std::string
const &attName, std::string
const &objectName =
"/");
588 std::vector<std::string> getObjects(std::string
const &groupName =
"/")
const;
599 std::vector<std::string> getGroups(std::string
const &groupName =
"/")
const;
611 std::vector<std::string> getAttributes(std::string
const &objectName =
"/")
623 bool existsGroup(std::string
const &groupName)
const;
634 void createGroup(std::string
const &groupName);
644 void deleteGroup(std::string
const &groupName);
660 std::string
const &objectName,
BlitzH5File &outFile,
661 int compression = -1);
665 void _copyAttribute(hid_t attributeId, hid_t targetId);
667 template<
typename SourceT,
typename DestT>
668 void _loadAttribute(hid_t attributeId, DestT *target)
const;
670 template<
typename SourceT,
typename DestT>
671 void _loadChunkedDataset(
672 hid_t datasetId, std::vector<hsize_t>
const &datasetDims,
673 std::vector<hsize_t>
const &chunkDims, DestT *target,
676 template<
typename SourceT,
typename DestT>
677 void _loadContiguousDataset(hid_t datasetId, DestT *target)
const;
679 std::string _fileName;
685 #include "BlitzHdf5Light.icc" BlitzH5Error & operator<<(DataT const &data)
Appends the given data to the message string.
std::string const & name() const
Get the file name.
The main error class for the BlitzHDF5 interface.
void readDataset(blitz::Array< DataT, Dim > &data, blitz::TinyVector< ElSizeT, Dim > &elSize, std::string const &fileName, std::string const &dsName, bool throwErrors=false, iRoCS::ProgressReporter *pr=NULL)
Read a scalar n-dimensional dataset with element size.
char const * what() const
Returns the error message as c-string.
~BlitzH5Error()
Default destructor.
void writeDataset(blitz::Array< blitz::TinyVector< DataT, InnerDim >, OuterDim > const &data, blitz::TinyVector< ElSizeT, OuterDim > const &elSize, std::string const &fileName, std::string const &dsName, DataT displayMin, DataT displayMax, bool throwErrors=false, int compression=0, iRoCS::ProgressReporter *pr=NULL, std::string const &dim_interpretation="")
Write a vectorial n-dimensional dataset with element size and additional meta-information for dataset...
std::string const & str() const
Returns the error message.
BlitzH5Error()
Default constructor.
hid_t id()
Get HDF5 id for this file.