38 #ifndef __SAMPLE_DATA_H
39 #define __SAMPLE_DATA_H
41 #include "CommonTypes.h"
42 #include "HDF5Utils.h"
43 #include "Representer.h"
55 typedef typename RepresenterType::DatasetPointerType DatasetPointerType;
60 static DataItem* Create(
const RepresenterType* representer,
const std::string& URI,
const VectorType& sampleVector) {
61 return new DataItem(representer, URI, sampleVector);
67 virtual ~DataItem() {}
72 static DataItem* Load(
const RepresenterType* representer,
const H5::Group& dsGroup);
76 virtual void Save(
const H5::Group& dsGroup)
const;
81 std::string GetDatasetURI()
const {
95 const VectorType& GetSampleVector()
const {
96 return m_sampleVector;
103 const DatasetPointerType GetSample()
const {
104 return m_representer->SampleVectorToSample(m_sampleVector);
109 DataItem(
const RepresenterType* representer,
const std::string& URI,
const VectorType& sampleVector)
110 : m_representer(representer), m_URI(URI), m_sampleVector(sampleVector) {
113 DataItem(
const RepresenterType* representer) : m_representer(representer) {
117 virtual void LoadInternal(
const H5::Group& dsGroup) {
123 virtual void SaveInternal(
const H5::Group& dsGroup)
const {
131 VectorType m_sampleVector;
147 template <
typename T>
148 class DataItemWithSurrogates :
public DataItem<T> {
149 friend class DataItem<T>;
160 typedef std::vector<SurrogateType> SurrogateTypeVectorType;
165 static DataItemWithSurrogates* Create(
const RepresenterType* representer,
166 const std::string& datasetURI,
167 const VectorType& sampleVector,
168 const std::string& surrogateFilename,
169 const VectorType& surrogateVector) {
170 return new DataItemWithSurrogates(representer, datasetURI, sampleVector, surrogateFilename, surrogateVector);
176 virtual ~DataItemWithSurrogates() {}
178 const VectorType& GetSurrogateVector()
const {
179 return m_surrogateVector;
181 const std::string& GetSurrogateFilename()
const {
182 return m_surrogateFilename;
188 const std::string& datasetURI,
189 const VectorType& sampleVector,
190 const std::string& surrogateFilename,
191 const VectorType& surrogateVector)
192 : DataItem<T>(representer, datasetURI, sampleVector),
193 m_surrogateFilename(surrogateFilename),
194 m_surrogateVector(surrogateVector) {
200 virtual void LoadInternal(
const H5::Group& dsGroup) {
201 DataItem<T>::LoadInternal(dsGroup);
207 virtual void SaveInternal(
const H5::Group& dsGroup)
const {
208 DataItem<T>::SaveInternal(dsGroup);
213 std::string m_surrogateFilename;
214 VectorType m_surrogateVector;
220 #include "DataItem.hxx"
222 #endif // __SAMPLE_DATA_H
A trivial representer, that does no representation at all, but works directly with vectorial data...
Definition: TrivialVectorialRepresenter.h:83
static std::string readString(const H5::CommonFG &fg, const char *name)
Definition: HDF5Utils.hxx:379
static H5::DataSet writeString(const H5::CommonFG &fg, const char *name, const std::string &s)
Definition: HDF5Utils.hxx:369
static void readVector(const H5::CommonFG &fg, const char *name, unsigned nElements, VectorType &vector)
Definition: HDF5Utils.hxx:296
static H5::DataSet writeVector(const H5::CommonFG &fg, const char *name, const VectorType &vector)
Definition: HDF5Utils.hxx:363