h5cpp 0.7.0
A modern C++ wrapper for the HDF5 C library
dataset_transfer.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// Jan Kotanski <jan.kotanski@desy.de>
26// Created on: Aug 28, 2017
27//
28#pragma once
29
32
33namespace hdf5 {
34namespace property {
35
36#if (defined(_DOXYGEN_) || defined(H5CPP_WITH_MPI))
37enum class MPITransferMode : std::underlying_type<H5FD_mpio_xfer_t>::type
38{
39 Independent = H5FD_MPIO_INDEPENDENT,
40 Collective = H5FD_MPIO_COLLECTIVE
41};
42
43std::ostream &operator<<(std::ostream &stream,const MPITransferMode &mode);
44
45enum class MPIChunkOption : std::underlying_type<H5FD_mpio_chunk_opt_t>::type
46{
47 OneLinkChunked = H5FD_MPIO_CHUNK_ONE_IO,
48 MultiChunk = H5FD_MPIO_CHUNK_MULTI_IO
49};
50
51std::ostream &operator<<(std::ostream &stream,const MPIChunkOption &option);
52#endif
53
58 public:
67
79 explicit DatasetTransferList(ObjectHandle &&handle, bool do_check=true);
80
88 static const DatasetTransferList &get() {
89 const static DatasetTransferList & dtpl_ = DatasetTransferList(ObjectHandle(H5Pcreate(H5P_DATASET_XFER)), false);
90 return dtpl_;
91 }
92
93#if (defined(_DOXYGEN_) || defined(H5CPP_WITH_MPI) )
97
103
112
113
114#endif
115};
116
117} // namespace property
118} // namespace hdf5
Wrapper for hid_t object identifiers.
Definition: object_handle.hpp:67
class for a dataset transfer property list
Definition: dataset_transfer.hpp:57
MPIChunkOption mpi_chunk_option() const
get mpi chunk option (for hdf5 compiled with MPI)
MPITransferMode mpi_transfer_mode() const
get mpi transfer mode (for hdf5 compiled with MPI)
void mpi_chunk_option(MPIChunkOption option) const
set mpi chunk option (for hdf5 compiled with MPI)
void mpi_transfer_mode(MPITransferMode mode) const
set mpi transfer mode (for hdf5 compiled with MPI)
~DatasetTransferList() override
destructor
static const DatasetTransferList & get()
reference to const static DatasetTransferList object
Definition: dataset_transfer.hpp:88
DatasetTransferList(ObjectHandle &&handle, bool do_check=true)
constructor
base class for property lists
Definition: property_list.hpp:54
std::ostream & operator<<(std::ostream &stream, const VirtualDataView &view)
MPITransferMode
Definition: dataset_transfer.hpp:38
MPIChunkOption
Definition: dataset_transfer.hpp:46
top-level namespace of the entire library
Definition: attribute.hpp:45
#define DLL_EXPORT
Definition: windows.hpp:29