Zserio C++ runtime library  1.2.0
Built for Zserio 2.16.0
zserio::RecursiveTypeInfo< ALLOC > Class Template Reference

#include <TypeInfo.h>

Inheritance diagram for zserio::RecursiveTypeInfo< ALLOC >:
Collaboration diagram for zserio::RecursiveTypeInfo< ALLOC >:

Public Types

using TypeInfoFunc = const IBasicTypeInfo< ALLOC > &(*)()
 

Public Member Functions

 RecursiveTypeInfo (TypeInfoFunc typeInfoFunc)
 
 ~RecursiveTypeInfo () override=default
 
StringView getSchemaName () const override
 
SchemaType getSchemaType () const override
 
CppType getCppType () const override
 
uint8_t getBitSize () const override
 
Span< const BasicFieldInfo< ALLOC > > getFields () const override
 
Span< const BasicParameterInfo< ALLOC > > getParameters () const override
 
Span< const BasicFunctionInfo< ALLOC > > getFunctions () const override
 
StringView getSelector () const override
 
Span< const BasicCaseInfo< ALLOC > > getCases () const override
 
const IBasicTypeInfo< ALLOC > & getUnderlyingType () const override
 
Span< const StringViewgetUnderlyingTypeArguments () const override
 
Span< const ItemInfogetEnumItems () const override
 
Span< const ItemInfogetBitmaskValues () const override
 
Span< const BasicColumnInfo< ALLOC > > getColumns () const override
 
StringView getSqlConstraint () const override
 
StringView getVirtualTableUsing () const override
 
bool isWithoutRowId () const override
 
Span< const BasicTableInfo< ALLOC > > getTables () const override
 
StringView getTemplateName () const override
 
Span< const BasicTemplateArgumentInfo< ALLOC > > getTemplateArguments () const override
 
Span< const BasicMessageInfo< ALLOC > > getMessages () const override
 
Span< const BasicMethodInfo< ALLOC > > getMethods () const override
 
IBasicReflectablePtr< ALLOC > createInstance (const ALLOC &allocator) const override
 
IBasicReflectablePtr< ALLOC > createInstance () const override
 
 RecursiveTypeInfo (const RecursiveTypeInfo &)=delete
 
RecursiveTypeInfooperator= (const RecursiveTypeInfo &)=delete
 
 RecursiveTypeInfo (const RecursiveTypeInfo &&)=delete
 
RecursiveTypeInfooperator= (const RecursiveTypeInfo &&)=delete
 
- Public Member Functions inherited from zserio::IBasicTypeInfo< ALLOC >
virtual ~IBasicTypeInfo ()=default
 

Detailed Description

template<typename ALLOC>
class zserio::RecursiveTypeInfo< ALLOC >

Type info for recursive types used as a wrapper around generated static typeInfo method to prevent infinite recursion in type info definition.

Definition at line 784 of file TypeInfo.h.

Member Typedef Documentation

◆ TypeInfoFunc

template<typename ALLOC >
using zserio::RecursiveTypeInfo< ALLOC >::TypeInfoFunc = const IBasicTypeInfo<ALLOC>& (*)()

Typedef to pointer to static typeInfo method on generated objects.

Definition at line 788 of file TypeInfo.h.

Constructor & Destructor Documentation

◆ RecursiveTypeInfo() [1/3]

template<typename ALLOC >
zserio::RecursiveTypeInfo< ALLOC >::RecursiveTypeInfo ( TypeInfoFunc  typeInfoFunc)
inlineexplicit

Constructor.

Parameters
typeInfoFuncPointer to static typeInfo method.

Definition at line 795 of file TypeInfo.h.

◆ ~RecursiveTypeInfo()

template<typename ALLOC >
zserio::RecursiveTypeInfo< ALLOC >::~RecursiveTypeInfo ( )
overridedefault

◆ RecursiveTypeInfo() [2/3]

template<typename ALLOC >
zserio::RecursiveTypeInfo< ALLOC >::RecursiveTypeInfo ( const RecursiveTypeInfo< ALLOC > &  )
delete

Copying and moving is disallowed!

◆ RecursiveTypeInfo() [3/3]

template<typename ALLOC >
zserio::RecursiveTypeInfo< ALLOC >::RecursiveTypeInfo ( const RecursiveTypeInfo< ALLOC > &&  )
delete

Copying and moving is disallowed!

Member Function Documentation

◆ createInstance() [1/2]

template<typename ALLOC >
IBasicReflectablePtr< ALLOC > zserio::RecursiveTypeInfo< ALLOC >::createInstance
overridevirtual

Creates new instance of the zserio compound type.

Note
Default constructed allocator is used for allocation of new instance.
Returns
New instance of zserio compound type.
Exceptions
CppRuntimeExceptionIf the zserio type is not compound type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1898 of file TypeInfo.h.

◆ createInstance() [2/2]

template<typename ALLOC >
IBasicReflectablePtr< ALLOC > zserio::RecursiveTypeInfo< ALLOC >::createInstance ( const ALLOC &  allocator) const
overridevirtual

Creates new instance of the zserio compound type.

Parameters
allocatorAllocator to use for allocation of new instance.
Returns
New instance of zserio compound type.
Exceptions
CppRuntimeExceptionIf the zserio type is not compound type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1892 of file TypeInfo.h.

◆ getBitmaskValues()

template<typename ALLOC >
Span< const ItemInfo > zserio::RecursiveTypeInfo< ALLOC >::getBitmaskValues
overridevirtual

Gets the type information for bitmask type values.

Returns
Sequence of type information for bitmask type values.
Exceptions
CppRuntimeExceptionIf the zserio type is not bitmask type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1832 of file TypeInfo.h.

◆ getBitSize()

template<typename ALLOC >
uint8_t zserio::RecursiveTypeInfo< ALLOC >::getBitSize
overridevirtual

Gets the bit size of the fixed size integral schema type.

Returns
The bit size of zserio type.
Exceptions
CppRuntimeExceptionIf the zserio type is not fixed size integral (e.g. varint).

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1778 of file TypeInfo.h.

◆ getCases()

template<typename ALLOC >
Span< const BasicCaseInfo< ALLOC > > zserio::RecursiveTypeInfo< ALLOC >::getCases
overridevirtual

Gets the type information for choice type cases.

Returns
Sequence of type information for choice type cases.
Exceptions
CppRuntimeExceptionIf the zserio type is not choice type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1808 of file TypeInfo.h.

◆ getColumns()

template<typename ALLOC >
Span< const BasicColumnInfo< ALLOC > > zserio::RecursiveTypeInfo< ALLOC >::getColumns
overridevirtual

Gets the type information for SQL table columns.

Returns
Sequence of type information for SQL table columns.
Exceptions
CppRuntimeExceptionIf the zserio type is not SQL table type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1838 of file TypeInfo.h.

◆ getCppType()

template<typename ALLOC >
CppType zserio::RecursiveTypeInfo< ALLOC >::getCppType
overridevirtual

Gets the C++ type.

Returns
The C++ type to which zserio type is mapped.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1772 of file TypeInfo.h.

◆ getEnumItems()

template<typename ALLOC >
Span< const ItemInfo > zserio::RecursiveTypeInfo< ALLOC >::getEnumItems
overridevirtual

Gets the type information for enumeration type items.

Returns
Sequence of type information for enumeration type items.
Exceptions
CppRuntimeExceptionIf the zserio type is not enumeration type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1826 of file TypeInfo.h.

◆ getFields()

template<typename ALLOC >
Span< const BasicFieldInfo< ALLOC > > zserio::RecursiveTypeInfo< ALLOC >::getFields
overridevirtual

Gets the type information for compound type fields.

Returns
Sequence of type information for fields.
Exceptions
CppRuntimeExceptionIf the zserio type is not compound type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1784 of file TypeInfo.h.

◆ getFunctions()

template<typename ALLOC >
Span< const BasicFunctionInfo< ALLOC > > zserio::RecursiveTypeInfo< ALLOC >::getFunctions
overridevirtual

Gets the type information for compound type functions.

Returns
Sequence of type information for functions.
Exceptions
CppRuntimeExceptionIf the zserio type is not compound type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1796 of file TypeInfo.h.

◆ getMessages()

template<typename ALLOC >
Span< const BasicMessageInfo< ALLOC > > zserio::RecursiveTypeInfo< ALLOC >::getMessages
overridevirtual

Gets the type information for pubsub messages.

Returns
Sequence of type information for pubsub messages.
Exceptions
CppRuntimeExceptionIf the zserio type is not pubsub type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1880 of file TypeInfo.h.

◆ getMethods()

template<typename ALLOC >
Span< const BasicMethodInfo< ALLOC > > zserio::RecursiveTypeInfo< ALLOC >::getMethods
overridevirtual

Gets the type information for service methods.

Returns
Sequence of type information for service methods.
Exceptions
CppRuntimeExceptionIf the zserio type is not service type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1886 of file TypeInfo.h.

◆ getParameters()

template<typename ALLOC >
Span< const BasicParameterInfo< ALLOC > > zserio::RecursiveTypeInfo< ALLOC >::getParameters
overridevirtual

Gets the type information for compound type parameters.

Returns
Sequence of type information for parameters.
Exceptions
CppRuntimeExceptionIf the zserio type is not compound type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1790 of file TypeInfo.h.

◆ getSchemaName()

template<typename ALLOC >
StringView zserio::RecursiveTypeInfo< ALLOC >::getSchemaName
overridevirtual

Gets the schema name.

Returns
The zserio full name stored in schema.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1760 of file TypeInfo.h.

◆ getSchemaType()

template<typename ALLOC >
SchemaType zserio::RecursiveTypeInfo< ALLOC >::getSchemaType
overridevirtual

Gets the schema type.

Returns
The zserio type stored in schema.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1766 of file TypeInfo.h.

◆ getSelector()

template<typename ALLOC >
StringView zserio::RecursiveTypeInfo< ALLOC >::getSelector
overridevirtual

Gets the selector for choice type.

Returns
Selector expression of choice type.
Exceptions
CppRuntimeExceptionIf the zserio type is not choice type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1802 of file TypeInfo.h.

◆ getSqlConstraint()

template<typename ALLOC >
StringView zserio::RecursiveTypeInfo< ALLOC >::getSqlConstraint
overridevirtual

Gets the SQL table constraint.

Returns
The SQL table constraint.
Exceptions
CppRuntimeExceptionIf the zserio type is not SQL table type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1844 of file TypeInfo.h.

◆ getTables()

template<typename ALLOC >
Span< const BasicTableInfo< ALLOC > > zserio::RecursiveTypeInfo< ALLOC >::getTables
overridevirtual

Gets the type information for SQL database tables.

Returns
Sequence of type information for SQL database tables.
Exceptions
CppRuntimeExceptionIf the zserio type is not SQL database type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1862 of file TypeInfo.h.

◆ getTemplateArguments()

template<typename ALLOC >
Span< const BasicTemplateArgumentInfo< ALLOC > > zserio::RecursiveTypeInfo< ALLOC >::getTemplateArguments
overridevirtual

Gets the type information for template arguments.

Returns
Sequence of type information for template arguments.
Exceptions
CppRuntimeExceptionIf the zserio type is not templatable.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1874 of file TypeInfo.h.

◆ getTemplateName()

template<typename ALLOC >
StringView zserio::RecursiveTypeInfo< ALLOC >::getTemplateName
overridevirtual

Gets the full schema template name.

Returns
The full schema template name.
Exceptions
CppRuntimeExceptionIf the zserio type is not templatable.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1868 of file TypeInfo.h.

◆ getUnderlyingType()

template<typename ALLOC >
const IBasicTypeInfo< ALLOC > & zserio::RecursiveTypeInfo< ALLOC >::getUnderlyingType
overridevirtual

Gets the reference to type information of underlying zserio type.

Returns
Reference to type information of underlying zserio type.
Exceptions
CppRuntimeExceptionIf the zserio type is not enumeration or bitmask type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1814 of file TypeInfo.h.

◆ getUnderlyingTypeArguments()

template<typename ALLOC >
Span< const StringView > zserio::RecursiveTypeInfo< ALLOC >::getUnderlyingTypeArguments
overridevirtual

Gets the reference to type information of underlying zserio type arguments.

Returns
Underlying zserio type arguments.
Exceptions
CppRuntimeExceptionIf the zserio type is not enumeration or bitmask type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1820 of file TypeInfo.h.

◆ getVirtualTableUsing()

template<typename ALLOC >
StringView zserio::RecursiveTypeInfo< ALLOC >::getVirtualTableUsing
overridevirtual

Gets the SQL virtual table using specification.

Returns
The SQL virtual table using specification.
Exceptions
CppRuntimeExceptionIf the zserio type is not SQL table type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1850 of file TypeInfo.h.

◆ isWithoutRowId()

template<typename ALLOC >
bool zserio::RecursiveTypeInfo< ALLOC >::isWithoutRowId
overridevirtual

Checks if SQL table is without row id table.

Returns
true if SQL table is without row id table, otherwise false.
Exceptions
CppRuntimeExceptionIf the zserio type is not SQL table type.

Implements zserio::IBasicTypeInfo< ALLOC >.

Definition at line 1856 of file TypeInfo.h.

◆ operator=() [1/2]

template<typename ALLOC >
RecursiveTypeInfo& zserio::RecursiveTypeInfo< ALLOC >::operator= ( const RecursiveTypeInfo< ALLOC > &&  )
delete

Copying and moving is disallowed!

◆ operator=() [2/2]

template<typename ALLOC >
RecursiveTypeInfo& zserio::RecursiveTypeInfo< ALLOC >::operator= ( const RecursiveTypeInfo< ALLOC > &  )
delete

Copying and moving is disallowed!


The documentation for this class was generated from the following file: