openPMD-api
 
Loading...
Searching...
No Matches
HDF5Auxiliary.hpp
1/* Copyright 2017-2025 Fabian Koller, Felix Schmitt, Axel Huebl, Luca Fedeli
2 *
3 * This file is part of openPMD-api.
4 *
5 * openPMD-api is free software: you can redistribute it and/or modify
6 * it under the terms of of either the GNU General Public License or
7 * the GNU Lesser General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * openPMD-api is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License and the GNU Lesser General Public License
15 * for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * and the GNU Lesser General Public License along with openPMD-api.
19 * If not, see <http://www.gnu.org/licenses/>.
20 */
21#pragma once
22
23#include "openPMD/backend/Attribute.hpp"
24#include "openPMD/backend/Writable.hpp"
25#include "openPMD/config.hpp"
26
27#include <hdf5.h>
28
29#include <map>
30#include <string>
31#include <unordered_map>
32#include <utility>
33
34namespace openPMD
35{
36struct GetH5DataType
37{
38 std::unordered_map<std::string, hid_t> m_userTypes;
39
40 GetH5DataType(std::unordered_map<std::string, hid_t> userTypes)
41 : m_userTypes{std::move(userTypes)}
42 {}
43
44 hid_t operator()(Attribute const &att);
45};
46
47hid_t getH5DataSpace(Attribute const &att);
48
49std::string concrete_h5_file_position(Writable *w);
50
64std::vector<hsize_t>
65getOptimalChunkDims(std::vector<hsize_t> const &dims, size_t const typeSize);
66} // namespace openPMD
Definition Attribute.hpp:64
Layer to mirror structure of logical data and persistent data in file.
Definition Writable.hpp:76
Public definitions of openPMD-api.
Definition Date.cpp:29
std::vector< hsize_t > getOptimalChunkDims(std::vector< hsize_t > const &dims, size_t const typeSize)
Computes the chunk dimensions for a dataset.
Definition HDF5Auxiliary.cpp:317