1 #ifndef ZSERIO_I_TYPE_INFO_INC_H
2 #define ZSERIO_I_TYPE_INFO_INC_H
204 template <
typename ALLOC>
205 struct BasicFieldInfo;
206 template <
typename ALLOC>
207 struct BasicParameterInfo;
208 template <
typename ALLOC>
209 struct BasicFunctionInfo;
210 template <
typename ALLOC>
211 struct BasicCaseInfo;
212 template <
typename ALLOC>
213 struct BasicColumnInfo;
214 template <
typename ALLOC>
215 struct BasicTableInfo;
217 template <
typename ALLOC>
218 struct BasicTemplateArgumentInfo;
219 template <
typename ALLOC>
220 struct BasicMessageInfo;
221 template <
typename ALLOC>
222 struct BasicMethodInfo;
233 template <
typename ALLOC = std::allocator<u
int8_t>>
469 template <
typename ALLOC = std::allocator<u
int8_t>>
474 std::string_view offset_, std::string_view initializer_,
bool isOptional_,
475 std::string_view optionalCondition_, std::string_view constraint_,
bool isArray_,
476 std::string_view arrayLength_,
bool isPacked_,
bool isImplicit_) :
512 template <
typename ALLOC = std::allocator<u
int8_t>>
522 template <
typename ALLOC = std::allocator<u
int8_t>>
533 template <
typename ALLOC = std::allocator<u
int8_t>>
545 ItemInfo(std::string_view schemaName_, uint64_t value_,
bool isDeprecated_,
bool isRemoved_) :
561 template <
typename ALLOC = std::allocator<u
int8_t>>
566 std::string_view sqlConstraint_,
bool isVirtual_) :
586 template <
typename ALLOC = std::allocator<u
int8_t>>
596 template <
typename ALLOC = std::allocator<u
int8_t>>
605 template <
typename ALLOC = std::allocator<u
int8_t>>
609 bool isSubscribed_, std::string_view topic_) :
627 template <
typename ALLOC = std::allocator<u
int8_t>>
642 template <
typename T,
typename ALLOC>
645 template <
typename T,
typename V =
void>
646 struct type_info_default_alloc
648 using type = std::allocator<uint8_t>;
651 template <
typename T>
652 struct type_info_default_alloc<T,
std::enable_if_t<has_allocator_v<T>>>
654 using type = RebindAlloc<typename T::allocator_type, uint8_t>;
657 template <
typename T,
typename V =
void>
658 using type_info_default_alloc_t =
typename type_info_default_alloc<T, V>::type;
667 template <
typename T,
typename ALLOC = detail::type_info_default_alloc_t<T>>
virtual Span< const BasicMethodInfo< ALLOC > > getMethods() const =0
virtual Span< const BasicTemplateArgumentInfo< ALLOC > > getTemplateArguments() const =0
virtual Span< const BasicCaseInfo< ALLOC > > getCases() const =0
virtual ~IBasicTypeInfo()=default
virtual Span< const BasicFieldInfo< ALLOC > > getFields() const =0
virtual std::string_view getVirtualTableUsing() const =0
virtual uint8_t getBitSize() const =0
virtual bool isWithoutRowId() const =0
virtual Span< const BasicParameterInfo< ALLOC > > getParameters() const =0
virtual IBasicReflectableDataPtr< ALLOC > createInstance(const ALLOC &allocator) const =0
virtual const IBasicTypeInfo< ALLOC > & getUnderlyingType() const =0
virtual std::string_view getSqlConstraint() const =0
virtual Span< const BasicMessageInfo< ALLOC > > getMessages() const =0
virtual Span< const BasicTableInfo< ALLOC > > getTables() const =0
virtual std::string_view getTemplateName() const =0
virtual Span< const BasicFunctionInfo< ALLOC > > getFunctions() const =0
virtual IBasicReflectableDataPtr< ALLOC > createInstance() const =0
virtual Span< const BasicColumnInfo< ALLOC > > getColumns() const =0
virtual CppType getCppType() const =0
virtual Span< const ItemInfo > getEnumItems() const =0
virtual SchemaType getSchemaType() const =0
virtual std::string_view getSelector() const =0
virtual Span< const ItemInfo > getBitmaskValues() const =0
virtual std::string_view getSchemaName() const =0
typename IBasicReflectableData< ALLOC >::Ptr IBasicReflectableDataPtr
decltype(auto) get(BasicVariant< ALLOC, INDEX, T... > &var)
@ DYNAMIC_UNSIGNED_BITFIELD
@ DYNAMIC_SIGNED_BITFIELD
const IBasicTypeInfo< ALLOC > & typeInfo()
const BasicFieldInfo< ALLOC > * field
Span< const std::string_view > caseExpressions
std::string_view schemaName
Span< const std::string_view > typeArguments
const IBasicTypeInfo< ALLOC > & typeInfo
std::string_view sqlConstraint
BasicColumnInfo(std::string_view schemaName_, const IBasicTypeInfo< ALLOC > &typeInfo_, Span< const std::string_view > typeArguments_, std::string_view sqlTypeName_, std::string_view sqlConstraint_, bool isVirtual_)
std::string_view sqlTypeName
std::string_view arrayLength
std::string_view constraint
BasicFieldInfo(std::string_view schemaName_, const IBasicTypeInfo< ALLOC > &typeInfo_, Span< const std::string_view > typeArguments_, bool isExtended_, std::string_view alignment_, std::string_view offset_, std::string_view initializer_, bool isOptional_, std::string_view optionalCondition_, std::string_view constraint_, bool isArray_, std::string_view arrayLength_, bool isPacked_, bool isImplicit_)
std::string_view schemaName
std::string_view initializer
Span< const std::string_view > typeArguments
std::string_view optionalCondition
std::string_view alignment
const IBasicTypeInfo< ALLOC > & typeInfo
const IBasicTypeInfo< ALLOC > & typeInfo
std::string_view schemaName
std::string_view functionResult
std::string_view schemaName
BasicMessageInfo(std::string_view schemaName_, const IBasicTypeInfo< ALLOC > &typeInfo_, bool isPublished_, bool isSubscribed_, std::string_view topic_)
const IBasicTypeInfo< ALLOC > & typeInfo
std::string_view schemaName
const IBasicTypeInfo< ALLOC > & requestTypeInfo
const IBasicTypeInfo< ALLOC > & responseTypeInfo
std::string_view schemaName
const IBasicTypeInfo< ALLOC > & typeInfo
std::string_view schemaName
const IBasicTypeInfo< ALLOC > & typeInfo
const IBasicTypeInfo< ALLOC > & typeInfo
ItemInfo(std::string_view schemaName_, uint64_t value_, bool isDeprecated_, bool isRemoved_)
std::string_view schemaName