Zserio C++ runtime library  1.1.0
Built for Zserio 2.15.0
zserio::IntegralReflectableBase< ALLOC, T > Class Template Reference

#include <Reflectable.h>

Inheritance diagram for zserio::IntegralReflectableBase< ALLOC, T >:
Collaboration diagram for zserio::IntegralReflectableBase< ALLOC, T >:

Public Member Functions

 IntegralReflectableBase (const IBasicTypeInfo< ALLOC > &typeInfo, T value)
 
double toDouble () const override
 
string< ALLOC > toString (const ALLOC &allocator) const override
 
- Public Member Functions inherited from zserio::BuiltinReflectableBase< ALLOC, T, typename >
AnyHolder< ALLOC > getAnyValue (const ALLOC &allocator) const override
 
AnyHolder< ALLOC > getAnyValue (const ALLOC &allocator) override
 
- Public Member Functions inherited from zserio::ReflectableBase< ALLOC >
 ReflectableBase (const IBasicTypeInfo< ALLOC > &typeInfo)
 
 ~ReflectableBase () override=0
 
const IBasicTypeInfo< ALLOC > & getTypeInfo () const override
 
bool isArray () const override
 
void initializeChildren () override
 
void initialize (const vector< AnyHolder< ALLOC >, ALLOC > &typeArguments) override
 
size_t initializeOffsets (size_t bitPosition) override
 
size_t initializeOffsets () override
 
size_t bitSizeOf (size_t bitPosition) const override
 
size_t bitSizeOf () const override
 
void write (BitStreamWriter &writer) const override
 
IBasicReflectableConstPtr< ALLOC > getField (StringView name) const override
 
IBasicReflectablePtr< ALLOC > getField (StringView name) override
 
IBasicReflectablePtr< ALLOC > createField (StringView name) override
 
void setField (StringView name, const AnyHolder< ALLOC > &value) override
 
IBasicReflectableConstPtr< ALLOC > getParameter (StringView name) const override
 
IBasicReflectablePtr< ALLOC > getParameter (StringView name) override
 
IBasicReflectableConstPtr< ALLOC > callFunction (StringView name) const override
 
IBasicReflectablePtr< ALLOC > callFunction (StringView name) override
 
StringView getChoice () const override
 
IBasicReflectableConstPtr< ALLOC > find (StringView path) const override
 
IBasicReflectablePtr< ALLOC > find (StringView path) override
 
IBasicReflectableConstPtr< ALLOC > operator[] (StringView path) const override
 
IBasicReflectablePtr< ALLOC > operator[] (StringView path) override
 
size_t size () const override
 
void resize (size_t size) override
 
IBasicReflectableConstPtr< ALLOC > at (size_t index) const override
 
IBasicReflectablePtr< ALLOC > at (size_t index) override
 
IBasicReflectableConstPtr< ALLOC > operator[] (size_t index) const override
 
IBasicReflectablePtr< ALLOC > operator[] (size_t index) override
 
void setAt (const AnyHolder< ALLOC > &value, size_t index) override
 
void append (const AnyHolder< ALLOC > &value) override
 
AnyHolder< ALLOC > getAnyValue () const override
 
AnyHolder< ALLOC > getAnyValue () override
 
bool getBool () const override
 
int8_t getInt8 () const override
 
int16_t getInt16 () const override
 
int32_t getInt32 () const override
 
int64_t getInt64 () const override
 
uint8_t getUInt8 () const override
 
uint16_t getUInt16 () const override
 
uint32_t getUInt32 () const override
 
uint64_t getUInt64 () const override
 
float getFloat () const override
 
double getDouble () const override
 
Span< const uint8_t > getBytes () const override
 
StringView getStringView () const override
 
const BasicBitBuffer< ALLOC > & getBitBuffer () const override
 
int64_t toInt () const override
 
uint64_t toUInt () const override
 
string< ALLOC > toString () const override
 
const ParsingInfoparsingInfo () const override
 
 ReflectableBase (const ReflectableBase &)=delete
 
ReflectableBaseoperator= (const ReflectableBase &)=delete
 
 ReflectableBase (const ReflectableBase &&)=delete
 
ReflectableBaseoperator= (const ReflectableBase &&)=delete
 
- Public Member Functions inherited from zserio::IBasicReflectable< ALLOC >
virtual ~IBasicReflectable ()=default
 

Protected Types

using Base = BuiltinReflectableBase< ALLOC, T >
 

Additional Inherited Members

- Public Types inherited from zserio::IBasicReflectable< ALLOC >
using Ptr = std::shared_ptr< IBasicReflectable >
 
using ConstPtr = std::shared_ptr< const IBasicReflectable >
 
- Protected Member Functions inherited from zserio::BuiltinReflectableBase< ALLOC, T, typename >
 BuiltinReflectableBase (const IBasicTypeInfo< ALLOC > &typeInfo, const T &value)
 
const T & getValue () const
 

Detailed Description

template<typename ALLOC, typename T>
class zserio::IntegralReflectableBase< ALLOC, T >

Base class for integral reflectables.

Implements toString() and toDouble() conversions, implements write() for all integral builtin types.

Hold dynamic bit size even though it has sense only for dynamic bit fields (otherwise it's always set to 0). This solution was chosen for simplicity.

Definition at line 207 of file Reflectable.h.

Member Typedef Documentation

◆ Base

template<typename ALLOC , typename T >
using zserio::IntegralReflectableBase< ALLOC, T >::Base = BuiltinReflectableBase<ALLOC, T>
protected

Definition at line 212 of file Reflectable.h.

Constructor & Destructor Documentation

◆ IntegralReflectableBase()

template<typename ALLOC , typename T >
zserio::IntegralReflectableBase< ALLOC, T >::IntegralReflectableBase ( const IBasicTypeInfo< ALLOC > &  typeInfo,
value 
)
inline

Definition at line 215 of file Reflectable.h.

Member Function Documentation

◆ toDouble()

template<typename ALLOC , typename T >
double zserio::IntegralReflectableBase< ALLOC, T >::toDouble ( ) const
inlineoverridevirtual

Converts any numeric value to double.

Works also for bitmask and enum types.

Returns
Double value.
Exceptions
CppRuntimeExceptionWhen the reflected object cannot be converted to double.

Reimplemented from zserio::ReflectableBase< ALLOC >.

Definition at line 219 of file Reflectable.h.

◆ toString()

template<typename ALLOC , typename T >
string<ALLOC> zserio::IntegralReflectableBase< ALLOC, T >::toString ( const ALLOC &  allocator) const
inlineoverridevirtual

Converts an reflected object to string.

Works for all integral types including bool, bitmask and enum types and for string types.

Note
Floating point types are not currently supported!
The conversion to string can be implemented for more types in future versions.
Overload without parameter use default constructed allocator.
Parameters
allocatorAllocator to use for the string allocation.
Returns
String value representing the reflected object.

Reimplemented from zserio::ReflectableBase< ALLOC >.

Definition at line 224 of file Reflectable.h.


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