h5cpp 0.7.0
A modern C++ wrapper for the HDF5 C library
filter.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
30
31namespace hdf5 {
32namespace filter {
33
41#ifdef __clang__
42#pragma clang diagnostic push
43#pragma clang diagnostic ignored "-Wpadded"
44#endif
46{
47 public:
55 Filter(const Filter&) = default;
56 virtual ~Filter();
57
68 virtual void operator()(const property::DatasetCreationList &dcpl,
69 Availability flag = Availability::Mandatory) const = 0;
70
78 FilterID id() const noexcept;
79
85 virtual bool is_encoding_enabled() const;
86
92 virtual bool is_decoding_enabled() const;
93
94 protected:
103
104 private:
105 FilterID id_;
106};
107#ifdef __clang__
108#pragma clang diagnostic pop
109#endif
110
111
112} // namespace filter
113} // namespace hdf5
abstract filter class
Definition: filter.hpp:46
FilterID id() const noexcept
get the ID of the filter
Filter()
default constructor
Filter(const Filter &)=default
virtual void operator()(const property::DatasetCreationList &dcpl, Availability flag=Availability::Mandatory) const =0
apply filter
dataset creation property list
Definition: dataset_creation.hpp:111
Availability
availability requirement of a filter
Definition: types.hpp:48
H5Z_filter_t FilterID
Definition: types.hpp:33
top-level namespace of the entire library
Definition: attribute.hpp:45
#define DLL_EXPORT
Definition: windows.hpp:29