h5gt 0.2.0
C++ wrapper for HDF5 library (based on HighFive project)
Loading...
Searching...
No Matches
H5Slice_traits.hpp
1/*
2 * Copyright (c), 2017, Adrien Devresse <adrien.devresse@epfl.ch>
3 *
4 * Distributed under the Boost Software License, Version 1.0.
5 * (See accompanying file LICENSE_1_0.txt or copy at
6 * http://www.boost.org/LICENSE_1_0.txt)
7 *
8 */
9#ifndef H5SLICE_TRAITS_HPP
10#define H5SLICE_TRAITS_HPP
11
12#include <cstdlib>
13#include <vector>
14
15#include "H5_definitions.hpp"
16#include "H5Utils.hpp"
17
18namespace h5gt {
19
21public:
27 explicit ElementSet(std::initializer_list<std::size_t> list);
32 explicit ElementSet(std::initializer_list<std::vector<std::size_t>> list);
38 explicit ElementSet(const std::vector<std::size_t>& element_ids);
43 explicit ElementSet(const std::vector<std::vector<std::size_t>>& element_ids);
44
45private:
46 std::vector<std::size_t> _ids;
47
48 template <typename Derivate>
49 friend class SliceTraits;
50};
51
52
53template <typename Derivate>
55public:
61 Selection select(const std::vector<size_t>& offset,
62 const std::vector<size_t>& count,
63 const std::vector<size_t>& stride = std::vector<size_t>(),
64 const std::vector<size_t>& block = std::vector<size_t>()) const;
65
67 Selection select(const ElementSet& elements) const;
68
75 Selection select_rows(const std::vector<size_t>& ind, size_t offset = 0, size_t count = 0) const;
76
83 Selection select_cols(const std::vector<size_t>& ind, size_t offset = 0, size_t count = 0) const;
84
92 template <typename T>
93 void read(T& array) const;
94
101 template <typename T>
102 void read(T* array, const DataType& dtype = DataType()) const;
103
109 template <typename T>
110 void write(const T& buffer);
111
119 template <typename T>
120 void write_raw(const T* buffer, const DataType& dtype = DataType());
121
122};
123
124} // namespace h5gt
125
126#endif // H5SLICE_TRAITS_HPP
HDF5 Data Type.
Definition H5DataType.hpp:48
Definition H5Slice_traits.hpp:20
ElementSet(std::initializer_list< std::size_t > list)
Create a list of points of N-dimension for selection.
Definition H5Slice_traits_misc.hpp:59
Selection: represent a view on a slice/part of a dataset.
Definition H5Selection.hpp:23
Definition H5Slice_traits.hpp:54
Selection select_rows(const std::vector< size_t > &ind, size_t offset=0, size_t count=0) const
Select a set of rows in the first dimension of this dataset. NOTE: Selection is done in memory layout...
Definition H5Slice_traits_misc.hpp:144
void write(const T &buffer)
Definition H5Slice_traits_misc.hpp:275
void write_raw(const T *buffer, const DataType &dtype=DataType())
Definition H5Slice_traits_misc.hpp:293
void read(T &array) const
Definition H5Slice_traits_misc.hpp:224
Selection select_cols(const std::vector< size_t > &ind, size_t offset=0, size_t count=0) const
Select a set of columns in the last dimension of this dataset. NOTE: Selection is done in memory layo...
Definition H5Slice_traits_misc.hpp:183
Selection select(const std::vector< size_t > &offset, const std::vector< size_t > &count, const std::vector< size_t > &stride=std::vector< size_t >(), const std::vector< size_t > &block=std::vector< size_t >()) const
Select a region in the current Slice/Dataset of count points at offset separated by stride....
Definition H5Slice_traits_misc.hpp:76