HighFive 2.7.1
HighFive - Header-only C++ HDF5 interface
Loading...
Searching...
No Matches
H5DataSpace.hpp
Go to the documentation of this file.
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#pragma once
10
11#include <vector>
12#include <array>
13#include <cstdint>
14#include <type_traits>
15#include <initializer_list>
16
17#include "H5Object.hpp"
19
20namespace HighFive {
21
25class DataSpace: public Object {
26 public:
28
29 static const size_t UNLIMITED = SIZE_MAX;
30
35 // simple dataspace are handle directly from their dimensions
36 };
37
43 explicit DataSpace(const std::vector<size_t>& dims);
44
45 // create a dataspace of N-dimensions
46 template <size_t N>
47 explicit DataSpace(const std::array<size_t, N>& dims);
48
52 DataSpace(const std::initializer_list<size_t>& items);
53
56 template <typename... Args>
57 explicit DataSpace(size_t dim1, Args... dims);
58
62 template <typename IT,
63 typename = typename std::enable_if<!std::is_integral<IT>::value, IT>::type>
64 DataSpace(const IT begin, const IT end);
65
69 explicit DataSpace(const std::vector<size_t>& dims, const std::vector<size_t>& maxdims);
70
74 explicit DataSpace(DataspaceType dtype);
75
78 DataSpace clone() const;
79
84 size_t getNumberDimensions() const;
85
89 std::vector<size_t> getDimensions() const;
90
93 size_t getElementCount() const;
94
98 std::vector<size_t> getMaxDimensions() const;
99
101 template <typename T>
102 static DataSpace From(const T& value);
103
104 template <std::size_t N, std::size_t Width>
105 static DataSpace FromCharArrayStrings(const char (&)[N][Width]);
106
107 protected:
108 DataSpace() = default;
109
110 friend class Attribute;
111 friend class File;
112 friend class DataSet;
113};
114
115} // namespace HighFive
116
117// We include bits right away since DataSpace is user-constructible
Class representing an attribute of a dataset or group.
Definition H5Attribute.hpp:46
Class representing a dataset.
Definition H5DataSet.hpp:30
Class representing the space (dimensions) of a dataset.
Definition H5DataSpace.hpp:25
static DataSpace FromCharArrayStrings(const char(&)[N][Width])
Definition H5Dataspace_misc.hpp:137
static const ObjectType type
Definition H5DataSpace.hpp:27
static DataSpace From(const T &value)
Create a dataspace matching a type accepted by details::inspector.
Definition H5Dataspace_misc.hpp:131
size_t getNumberDimensions() const
getNumberDimensions
Definition H5Dataspace_misc.hpp:93
std::vector< size_t > getMaxDimensions() const
getMaxDimensions
Definition H5Dataspace_misc.hpp:117
DataspaceType
dataspace type
Definition H5DataSpace.hpp:32
@ dataspace_scalar
Definition H5DataSpace.hpp:33
@ dataspace_null
Definition H5DataSpace.hpp:34
size_t getElementCount() const
getElementCount
Definition H5Dataspace_misc.hpp:112
std::vector< size_t > getDimensions() const
getDimensions
Definition H5Dataspace_misc.hpp:102
DataSpace clone() const
Definition H5Dataspace_misc.hpp:85
static const size_t UNLIMITED
Definition H5DataSpace.hpp:29
File class.
Definition H5File.hpp:24
Definition H5Object.hpp:54
Definition H5_definitions.hpp:15
ObjectType
Enum of the types of objects (H5O api)
Definition H5Object.hpp:24