aqnwb 0.1.0
Loading...
Searching...
No Matches
HDF5ArrayDataSetConfig.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
5#include <H5Ppublic.h>
6
7#include "io/BaseIO.hpp"
8
14{
15
24{
25public:
32 HDF5FilterConfig(H5Z_filter_t filter_id,
33 const std::vector<unsigned int>& cd_values);
34
35 // The ID of the filter
36 H5Z_filter_t filter_id;
37 // The client data array
38 std::vector<unsigned int> cd_values;
39
45 static HDF5FilterConfig createGzipFilter(unsigned int level = 4);
46
52
58
64};
65
73{
74public:
83 const SizeArray& shape,
84 const SizeArray& chunking);
85
91 void addFilter(H5Z_filter_t filter_id,
92 const std::vector<unsigned int>& cd_values);
93
99 void addFilter(const HDF5FilterConfig& filter);
100
106 void addFilters(const std::vector<HDF5FilterConfig>& filters);
107
112 const std::vector<HDF5FilterConfig>& getFilters() const;
113
114private:
115 // The filters of the dataset
116 std::vector<HDF5FilterConfig> m_filters;
117};
118
119} // namespace AQNWB::IO::HDF5
AQNWB::Types::SizeArray SizeArray
Definition BaseIO.hpp:23
ArrayDataSetConfig(const BaseDataType &type, const SizeArray &shape, const SizeArray &chunking)
Constructs an ArrayDataSetConfig object with the specified type, shape, and chunking.
Definition BaseIO.cpp:34
Represents a base data type.
Definition BaseIO.hpp:43
std::vector< HDF5FilterConfig > m_filters
Definition HDF5ArrayDataSetConfig.hpp:116
HDF5ArrayDataSetConfig(const BaseDataType &type, const SizeArray &shape, const SizeArray &chunking)
Constructs an HDF5ArrayDataSetConfig object with the specified type, shape, and chunking.
Definition HDF5ArrayDataSetConfig.cpp:38
void addFilter(H5Z_filter_t filter_id, const std::vector< unsigned int > &cd_values)
Adds a filter to the dataset configuration.
Definition HDF5ArrayDataSetConfig.cpp:45
const std::vector< HDF5FilterConfig > & getFilters() const
Returns the filters of the dataset.
Definition HDF5ArrayDataSetConfig.cpp:62
void addFilters(const std::vector< HDF5FilterConfig > &filters)
Adds multiple filters to the dataset configuration using a vector of HDF5FilterConfig objects.
Definition HDF5ArrayDataSetConfig.cpp:56
The configuration for an HDF5 filter.
Definition HDF5ArrayDataSetConfig.hpp:24
static HDF5FilterConfig createNbitFilter()
Creates an N-Bit filter configuration.
Definition HDF5ArrayDataSetConfig.cpp:31
static HDF5FilterConfig createFletcher32Filter()
Creates a Fletcher32 checksum filter configuration.
Definition HDF5ArrayDataSetConfig.cpp:26
H5Z_filter_t filter_id
Definition HDF5ArrayDataSetConfig.hpp:36
static HDF5FilterConfig createShuffleFilter()
Creates a Shuffle filter configuration.
Definition HDF5ArrayDataSetConfig.cpp:21
std::vector< unsigned int > cd_values
Definition HDF5ArrayDataSetConfig.hpp:38
HDF5FilterConfig(H5Z_filter_t filter_id, const std::vector< unsigned int > &cd_values)
Constructs an HDF5FilterConfig object with the specified filter ID and client data array.
Definition HDF5ArrayDataSetConfig.cpp:7
static HDF5FilterConfig createGzipFilter(unsigned int level=4)
Creates a GZIP (DEFLATE) filter configuration.
Definition HDF5ArrayDataSetConfig.cpp:16
Definition HDF5ArrayDataSetConfig.hpp:14