h5cpp 0.7.1
A modern C++ wrapper for the HDF5 C library
direct_driver.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// Author: Eugen Wintersberger <eugen.wintersberger@desy.de>
23// Created on: Nov 6, 2017
24//
25#pragma once
26
27#include <h5cpp/file/driver.hpp>
28
29#if ( defined(_DOXYGEN_) || defined(H5_HAVE_DIRECT) )
30namespace hdf5 {
31namespace file {
32
37{
38 public:
43
47 DirectDriver(size_t alignment,size_t block_size,size_t copy_buffer_size);
48
52 DirectDriver(const DirectDriver &) = default;
53
57 size_t alignment() const noexcept;
58
65 void alignment(size_t value);
66
70 size_t block_size() const noexcept;
71
77 void block_size(size_t value);
78
82 size_t copy_buffer_size() const noexcept;
83
90 void copy_buffer_size(size_t value);
91
92 virtual void operator()(const property::FileAccessList &fapl) const;
93 virtual DriverID id() const noexcept;
94
95 private:
96 size_t alignment_;
97 size_t block_size_;
98 size_t copy_buffer_size_;
99
100};
101
102
103
104} // namespace file
105} // namespace hdf5
106#endif
direct write without buffering (for hdf5 compiled with H5_HAVE_DIRECT)
Definition: direct_driver.hpp:37
DirectDriver()
default constructor
size_t alignment() const noexcept
get alignment value
DirectDriver(size_t alignment, size_t block_size, size_t copy_buffer_size)
constructor
DirectDriver(const DirectDriver &)=default
copy constructor
abstract class for file drivers
Definition: driver.hpp:71
DriverID
enumeration to determine the file driver
Definition: driver.hpp:50
top-level namespace of the entire library
Definition: attribute.hpp:45
#define DLL_EXPORT
Definition: windows.hpp:29