1 #ifndef ZSERIO_I_INTROSPECTABLE_VIEW_INC
2 #define ZSERIO_I_INTROSPECTABLE_VIEW_INC
20 template <
typename ALLOC = std::allocator<u
int8_t>>
76 template <
typename ALLOC = std::allocator<u
int8_t>>
88 template <
typename T,
typename ALLOC>
89 struct Introspectable;
102 template <
typename T,
typename ALLOC =
typename T::allocator_type>
105 return detail::Introspectable<T, ALLOC>::create(view, allocator);
108 template <
typename T,
typename ALLOC = std::allocator<u
int8_t>,
109 std::enable_if_t<std::is_enum_v<T> || is_bitmask_v<T>,
int> = 0>
112 return detail::Introspectable<T, ALLOC>::create(value, allocator);
virtual BasicBitBuffer< ALLOC > serialize() const =0
virtual BasicBitBuffer< ALLOC > serialize(const ALLOC &allocator) const =0
~IBasicIntrospectableView() override=default
virtual ConstPtr getParameter(std::string_view name) const =0
virtual ConstPtr callFunction(std::string_view name) const =0
typename IIntrospectableData< IBasicIntrospectableView< ALLOC >, ALLOC >::ConstPtr ConstPtr
IBasicIntrospectableViewConstPtr< ALLOC > introspectable(const View< T > &view, const ALLOC &allocator=ALLOC())
typename IBasicIntrospectableView< ALLOC >::ConstPtr IBasicIntrospectableViewConstPtr
IBasicIntrospectableViewConstPtr<> IIntrospectableViewConstPtr