h5cpp 0.7
A modern C++ wrapper for the HDF5 C library
Loading...
Searching...
No Matches
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#include <memory>
28
29
30//
31// Forward declaration of property lists
32//
33namespace hdf5
34{
35namespace property
36{
37class FileAccessList;
38} // namespace property
39} // namespace hdf5
40
41namespace hdf5
42{
43namespace file
44{
45
49enum class DriverID : unsigned
50{
51 Custom = 0,
52 Posix = 1,
53 Direct = 2,
54 Memory = 3,
55 MPI = 4
56};
57
66#ifdef __clang__
67#pragma clang diagnostic push
68#pragma clang diagnostic ignored "-Wweak-vtables"
69#endif
71{
72 public:
76 using UniquePointer = std::unique_ptr<Driver>;
77
78 virtual ~Driver()
79 {}
80
86 virtual void operator()(const hdf5::property::FileAccessList& fapl) const = 0;
87
92 //1
93 virtual DriverID id() const noexcept = 0;
94};
95#ifdef __clang__
96#pragma clang diagnostic pop
97#endif
98
99} // namespace file
100} // namespace hdf5
abstract class for file drivers
Definition driver.hpp:71
std::unique_ptr< Driver > UniquePointer
unique pointer type
Definition driver.hpp:76
virtual DriverID id() const noexcept=0
get driver ID
virtual void operator()(const hdf5::property::FileAccessList &fapl) const =0
set a driver
virtual ~Driver()
Definition driver.hpp:78
file access property list
Definition file_access.hpp:78
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