2 #ifndef LVR2_IO_GHDF5IO_HPP 3 #define LVR2_IO_GHDF5IO_HPP 11 #include <H5Tpublic.h> 26 template<
template<
typename>
typename Feature,
typename Derived>
37 template<
template<
typename>
typename ...Features>
38 class Hdf5IO :
public Features<Hdf5IO<Features...> >...
41 template <
typename T,
typename Tuple>
47 template <
typename T,
typename U,
typename... Ts>
50 template <
typename T,
typename... Ts>
51 struct has_type<T, std::tuple<T, Ts...>> : std::true_type {};
54 static constexpr std::size_t
N =
sizeof...(Features);
57 template<
template<
typename>
typename F>
63 template<
typename>
typename F,
64 template<
typename>
typename ...Fs
69 template<
typename>
typename F,
70 template<
typename>
typename ...Fs
77 template<
typename>
typename F
80 using type =
typename std::conditional<
87 template<
template<
typename>
typename F>
93 template<
typename>
typename F,
94 template<
typename>
typename ...Fs
99 template<
typename>
typename F,
100 template<
typename>
typename ...Fs
106 template<
template<
typename>
typename F>
116 template<
template<
typename>
typename F>
119 template<
template<
typename>
typename ...F>
122 template<
typename OTHER>
123 using Merge =
typename OTHER::template add_features<Features...>::type;
126 #if __cplusplus <= 201500L 128 #pragma message("using Tp::save... needs c++17 at least or a newer compiler") 131 using Features<
Hdf5IO<Features...> >::save...;
145 template<
template<
typename>
typename F>
148 template<
template<
typename>
typename F>
151 template<
template<
typename>
typename F>
163 template<
template<
typename>
typename Feature,
typename Derived =
Hdf5IO<> >
168 template<
template<
typename>
typename Feature>
174 #include "HDF5FeatureBase.tcc" 176 #endif // LVR2_IO_GHDF5IO_HPP
void open(std::string filename)
typename Hdf5Construct< F, Hdf5IO< Features... > >::type type
std::shared_ptr< HighFive::File > m_hdf5_file
typename OTHER::template add_features< lvr2::hdf5features::ArrayIO ... >::type Merge
typename std::conditional< Hdf5IO< Features... >::has_feature< F >::value, Hdf5IO< Features... >, Hdf5IO< Features..., F > >::type type
typename add_features_with_deps< F... >::type AddFeatures
typename add_features_with_deps< F >::type::template add_features_with_deps< Fs... >::type type
typename Hdf5Construct< Feature >::type Hdf5Build
static constexpr std::size_t N
Helper class how to construct a IO feature with its dependencies.
typename add_features< F >::type::template add_features< Fs... >::type type
Manager Class for all Hdf5IO components located in hdf5 directory.
static constexpr bool HasFeature
USE ONLY THESE METHODS IN APPLICATION ///.
static constexpr bool value
unsigned int m_previewReductionFactor
std::tuple< lvr2::hdf5features::ArrayIO< Hdf5IO< lvr2::hdf5features::ArrayIO ... > >... > features
typename Derived::template add_features< Feature >::type type
typename add_features< F >::type type