62 virtual std::string
name()
const = 0;
73 std::string
name()
const;
80 const std::function<T()>& func):
117 public std::vector<std::shared_ptr<internal::IVariableFiller> >
126 template <
typename T>
127 void add(
const std::string& name,
const std::function<T()>&);
130 template <
typename T>
132 const std::function<T()>& fun) {
134 this->push_back(std::make_shared<VariableFiller<T> >(name, fun));
156 WriterXd(H5::Group& group,
const std::string& name,
158 std::vector<hsize_t> dataset_dimensions,
159 hsize_t chunk_size = 2048);
164 std::vector<size_t>& indices);
166 size_t index()
const;
void add(const std::string &name, const std::function< T()> &)
Variable add method.
void fillWhileIncrementing(std::vector< size_t > &indices)
VariableFillers m_fillers
WriterXd(H5::Group &group, const std::string &name, VariableFillers fillers, std::vector< hsize_t > dataset_dimensions, hsize_t chunk_size=2048)
std::vector< hsize_t > m_dim_stride
hsize_t buffer_size() const
std::vector< hsize_t > m_max_length
WriterXd & operator=(WriterXd &)=delete
std::vector< internal::data_buffer_t > m_buffer
WriterXd(const WriterXd &)=delete
virtual ~IVariableFiller()
virtual H5::DataType get_type() const =0
virtual data_buffer_t get_buffer() const =0
virtual std::string name() const =0
implementation for variable filler
std::function< T()> m_getter
internal::data_buffer_t get_buffer() const
VariableFiller(const std::string &, const std::function< T()> &)
H5::DataType get_type() const
clssses to add type traits for H5
data_buffer_t get_buffer_from_func(const std::function< T()> &func)
Buffer element harvester.
We have lots of code to get around HDF5's rather weak typing.