1 #ifndef ZSERIO_I_REFLECTABLE_DATA_H_INC
2 #define ZSERIO_I_REFLECTABLE_DATA_H_INC
18 template <
typename ALLOC = std::allocator<u
int8_t>>
23 using Ptr = std::shared_ptr<IBasicReflectableData>;
181 template <
typename ALLOC = std::allocator<u
int8_t>>
184 template <
typename ALLOC = std::allocator<u
int8_t>>
198 template <
typename T,
typename ALLOC>
212 template <
typename T,
typename ALLOC =
typename T::allocator_type,
213 std::enable_if_t<is_complete_v<View<T>> && has_allocator_v<std::decay_t<T>>,
int> = 0>
216 return detail::Reflectable<T, ALLOC>::create(value, allocator);
219 template <
typename T,
typename ALLOC =
typename T::allocator_type,
220 std::enable_if_t<is_complete_v<View<T>> && has_allocator_v<std::decay_t<T>>,
int> = 0>
223 return detail::Reflectable<T, ALLOC>::create(value, allocator);
226 template <
typename T,
typename ALLOC = std::allocator<u
int8_t>,
227 std::enable_if_t<(std::is_enum_v<T> || is_bitmask_v<T>) && !has_allocator_v<std::decay_t<T>>,
int> = 0>
230 return detail::Reflectable<T, ALLOC>::create(value, allocator);
typename IIntrospectableData< IBasicReflectableData< ALLOC >, ALLOC >::ConstPtr ConstPtr
virtual BasicAny< ALLOC > getAnyValue(const ALLOC &allocator)=0
~IBasicReflectableData() override=default
virtual Ptr createField(std::string_view name)=0
virtual Ptr find(std::string_view path)=0
virtual void append(const BasicAny< ALLOC > &value)=0
virtual Ptr at(size_t index)=0
virtual void setAt(const BasicAny< ALLOC > &value, size_t index)=0
virtual BasicAny< ALLOC > getAnyValue()=0
virtual Ptr operator[](std::string_view path)=0
virtual void resize(size_t size)=0
virtual Ptr operator[](size_t index)=0
std::shared_ptr< IBasicReflectableData > Ptr
virtual void setField(std::string_view name, const BasicAny< ALLOC > &value)=0
virtual Ptr getField(std::string_view name)=0
virtual size_t size() const=0
typename IBasicReflectableData< ALLOC >::ConstPtr IBasicReflectableDataConstPtr
typename IBasicReflectableData< ALLOC >::Ptr IBasicReflectableDataPtr
IBasicReflectableDataConstPtr< ALLOC > reflectable(const T &value, const ALLOC &allocator=ALLOC())
IBasicReflectableDataPtr<> IReflectableDataPtr
IBasicReflectableDataConstPtr<> IReflectableDataConstPtr