descriptions/VariantChannelIO.hpp
Go to the documentation of this file.
1 #pragma once
2 #ifndef LVR2_IO_HDF5_VARIANTCHANNELIO_HPP
3 #define LVR2_IO_HDF5_VARIANTCHANNELIO_HPP
4 
7 
8 // Dependencies
10 
11 
12 namespace lvr2 {
13 
14 
49 struct ConstructType {
50 
51 };
52 
53 template<typename FeatureBase = ConstructType>
55 public:
56 
57  template<typename ...Tp>
58  void save(std::string groupName, std::string datasetName, const VariantChannel<Tp...>& vchannel);
59 
60  template<typename ...Tp>
61  void save(HighFive::Group& group, std::string datasetName, const VariantChannel<Tp...>& vchannel);
62 
63  template<typename VariantChannelT>
64  boost::optional<VariantChannelT> load(std::string groupName, std::string datasetName);
65 
66  template<typename VariantChannelT>
67  boost::optional<VariantChannelT> load(HighFive::Group& group, std::string datasetName);
68 
69  template<typename VariantChannelT>
70  boost::optional<VariantChannelT> loadVariantChannel(std::string groupName, std::string datasetName);
71 
72 protected:
73 
74  template<typename VariantChannelT>
75  boost::optional<VariantChannelT> loadDynamic(HighFive::DataType dtype,
76  HighFive::Group& group,
77  std::string name);
78 
79  template<typename ...Tp>
80  void saveDynamic(HighFive::Group& group,
81  std::string datasetName,
82  const VariantChannel<Tp...>& vchannel
83  );
84 
85  FeatureBase* m_file_access = static_cast<FeatureBase*>(this);
87 };
88 
92 template<typename BaseIO>
94 
95  // DEPS
97 
98  // add actual feature
99  using type = typename deps::template add_features<VariantChannelIO>::type;
100 };
101 
102 
103 } // namespace lvr2
104 
105 #include "VariantChannelIO.tcc"
106 
107 #endif // LVR2_IO_HDF5_VARIANTCHANNELIO_HPP
VariantChannel.hpp
lvr2::Hdf5Construct::type
typename Derived::template add_features< Feature >::type type
Definition: HDF5FeatureBase.hpp:165
HighFive::DataType
HDF5 Data Type.
Definition: H5DataType.hpp:21
lvr2::VariantChannelIO::saveDynamic
void saveDynamic(HighFive::Group &group, std::string datasetName, const VariantChannel< Tp... > &vchannel)
lvr2::VariantChannelIO::m_file_access
FeatureBase * m_file_access
Definition: descriptions/VariantChannelIO.hpp:85
FeatureBase.hpp
lvr2::Hdf5Construct< VariantChannelIO, BaseIO >::deps
typename Hdf5Construct< ChannelIO, BaseIO >::type deps
Definition: descriptions/VariantChannelIO.hpp:96
lvr2::ChannelIO
Definition: descriptions/ChannelIO.hpp:14
lvr2::VariantChannelIO::loadDynamic
boost::optional< VariantChannelT > loadDynamic(HighFive::DataType dtype, HighFive::Group &group, std::string name)
HighFive::Group
Definition: H5Group.hpp:20
lvr2::ConstructType
Definition: descriptions/VariantChannelIO.hpp:49
lvr2::VariantChannelIO::m_channel_io
ChannelIO< FeatureBase > * m_channel_io
Definition: descriptions/VariantChannelIO.hpp:86
lvr2::VariantChannelIO::loadVariantChannel
boost::optional< VariantChannelT > loadVariantChannel(std::string groupName, std::string datasetName)
lvr2
Definition: BaseBufferManipulators.hpp:39
lvr2::VariantChannelIO::load
boost::optional< VariantChannelT > load(std::string groupName, std::string datasetName)
lvr2::VariantChannel
Definition: VariantChannel.hpp:18
ChannelIO.hpp
lvr2::Hdf5Construct< VariantChannelIO, BaseIO >::type
typename deps::template add_features< VariantChannelIO >::type type
Definition: descriptions/VariantChannelIO.hpp:99
lvr2::FeatureBase
Manager Class for all FeatureBase components located in hdf5 directory.
Definition: FeatureBase.hpp:31
lvr2::Hdf5Construct
Helper class how to construct a IO feature with its dependencies.
Definition: HDF5FeatureBase.hpp:27
lvr2::VariantChannelIO::save
void save(std::string groupName, std::string datasetName, const VariantChannel< Tp... > &vchannel)
lvr2::VariantChannelIO
Hdf5IO Feature for handling VariantChannel related IO.
Definition: descriptions/VariantChannelIO.hpp:54
lvr2::BaseIO
Interface specification for low-level io. All read elements are stored in linear arrays.
Definition: BaseIO.hpp:57


lvr2
Author(s): Thomas Wiemann , Sebastian Pütz , Alexander Mock , Lars Kiesow , Lukas Kalbertodt , Tristan Igelbrink , Johan M. von Behren , Dominik Feldschnieders , Alexander Löhr
autogenerated on Wed Mar 2 2022 00:37:25