Template Class BaseIO

Nested Relationships

Nested Types

Inheritance Relationships

Base Types

  • public std::enable_shared_from_this< BaseIO< SchemaPtrT, Features... > >

  • public Features< BaseIO< SchemaPtrT, Features... > >

Class Documentation

template<typename SchemaPtrT, template<typename> typename ...Features>
class BaseIO : public std::enable_shared_from_this<BaseIO<SchemaPtrT, Features...>>, public Features<BaseIO<SchemaPtrT, Features...>>

Manager Class for all BaseIO components located in hdf5 directory.

Public Types

using features = std::tuple<Features<BaseIO<SchemaPtrT, Features...>>...>
template<template<typename> typename ...F>
using AddFeatures = typename add_features_with_deps<F...>::type
template<typename OTHER>
using Merge = typename OTHER::template add_features<Features...>::type

Public Functions

inline BaseIO(const FileKernelPtr inKernel, const SchemaPtrT inDesc, const bool load_data = false)
inline virtual ~BaseIO()
template<template<typename> typename F>
bool has()
template<template<typename> typename F>
F<BaseIO> *scast()
template<template<typename> typename F>
F<BaseIO> *dcast()

Public Members

const FileKernelPtr m_kernel
const SchemaPtrT m_description
const bool m_load_data

Public Static Attributes

static constexpr std::size_t N = sizeof...(Features)
template<template<typename> typename F>
static constexpr bool HasFeature = has_feature<F>::value

USE ONLY THESE METHODS IN APPLICATION ///.

template<template<typename> typename F>
struct add_feature

Public Types

using type = typename add_features<F>::type
template<template<typename> typename F, template<typename> typename ...Fs>
struct add_features

Public Types

using type = typename add_features<F>::type::template add_features<Fs...>::type
template<template<typename> typename F>
struct add_features<F>

Public Types

using type = typename std::conditional<BaseIO<SchemaPtrT, Features...>::has_feature<F>::value, BaseIO<SchemaPtrT, Features...>, BaseIO<SchemaPtrT, Features..., F>>::type
template<template<typename> typename F, template<typename> typename ...Fs>
struct add_features_with_deps

Public Types

using type = typename add_features_with_deps<F>::type::template add_features_with_deps<Fs...>::type
template<template<typename> typename F>
struct add_features_with_deps<F>

Public Types

using type = typename FeatureConstruct<F, BaseIO<SchemaPtrT, Features...>>::type
template<template<typename> typename F>
struct has_feature

Public Static Attributes

static constexpr bool value = has_type<F<BaseIO>, features>::type::value
template<typename T, typename Tuple>
struct has_type

Subclassed by lvr2::baseio::BaseIO< SchemaPtrT, Features >::has_type< T, std::tuple< U, Ts… > >

template<typename T, typename ...Ts>
struct has_type<T, std::tuple<T, Ts...>> : public std::true_type
template<typename T, typename U, typename ...Ts>
struct has_type<T, std::tuple<U, Ts...>> : public lvr2::baseio::BaseIO<T, std::tuple<Ts...>>::has_type
template<typename T>
struct has_type<T, std::tuple<>> : public std::false_type