h5cpp
0.5.0
A modern C++ wrapper for the HDF5 C library
compound.hpp
Go to the documentation of this file.
1
//
2
// (c) Copyright 2017 DESY,ESS
3
//
4
// This file is part of h5cpp.
5
//
6
// This library is free software; you can redistribute it and/or modify it
7
// under the terms of the GNU Lesser General Public License as published
8
// by the Free Software Foundation; either version 2.1 of the License, or
9
// (at your option) any later version.
10
//
11
// This library is distributed in the hope that it will be useful, but
12
// WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY
13
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14
// License for more details.
15
//
16
// You should have received a copy of the GNU Lesser General Public License
17
// along with this library; if not, write to the
18
// Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor
19
// Boston, MA 02110-1301 USA
20
// ===========================================================================
21
//
22
// Authors:
23
// Eugen Wintersberger <eugen.wintersberger@desy.de>
24
// Martin Shetty <martin.shetty@esss.se>
25
// Created on: Oct 5, 2017
26
//
27
#pragma once
28
29
#include <
h5cpp/datatype/datatype.hpp
>
30
31
namespace
hdf5
{
32
namespace
datatype {
33
40
#ifdef __clang__
41
#pragma clang diagnostic push
42
#pragma clang diagnostic ignored "-Wweak-vtables"
43
#endif
44
class
DLL_EXPORT
Compound
:
public
Datatype
{
45
public
:
49
Compound
() =
default
;
50
54
Compound
(
ObjectHandle
&&handle);
55
59
Compound
(
const
Datatype
&type);
60
64
static
Compound
create
(
size_t
size);
65
69
Datatype
operator[](
size_t
index)
const
;
70
74
Datatype
operator[](
const
std::string &name)
const
;
75
79
size_t
field_index(
const
std::string &name)
const
;
80
81
std::string field_name(
size_t
index)
const
;
82
83
size_t
field_offset(
const
std::string &name)
const
;
84
size_t
field_offset(
size_t
index)
const
;
85
86
Class
field_class(
const
std::string &name)
const
;
87
Class
field_class(
size_t
index)
const
;
88
92
size_t
number_of_fields()
const
;
93
94
void
insert(
const
std::string &name,
size_t
offset,
const
Datatype
&type)
const
;
95
96
void
pack()
const
;
97
98
};
99
#ifdef __clang__
100
#pragma clang diagnostic pop
101
#endif
102
103
}
// namespace datatype
104
}
// namespace hdf5
hdf5::datatype::Compound
compound data type
Definition:
compound.hpp:44
datatype.hpp
hdf5::datatype::Class
Class
Definition:
types.hpp:52
hdf5::datatype::create
TypeTrait< typename std::remove_const< T >::type >::TypeClass create(const T &v=T())
factory function for creating data types
Definition:
factory.hpp:39
hdf5::ObjectHandle
Wrapper for hid_t object identifiers.
Definition:
object_handle.hpp:66
DLL_EXPORT
#define DLL_EXPORT
Definition:
windows.hpp:29
hdf5::datatype::Datatype
base class for all data types
Definition:
datatype.hpp:41
hdf5
top-level namespace of the entire library
Definition:
attribute.hpp:45
h5cpp
src
h5cpp
datatype
compound.hpp
Generated on Mon May 2 2022 08:20:20 for h5cpp by
1.8.17