libcaf  0.15.0
Public Types | Public Member Functions | Related Functions | List of all members
caf::type_erased_tuple Class Referenceabstract

Represents a tuple of type-erased values. More...

#include <type_erased_tuple.hpp>

Inherited by caf::type_erased_tuple_view< Ts >.

Public Types

using rtti_pair = std::pair< uint16_t, const std::type_info * >
 

Public Member Functions

 type_erased_tuple (const type_erased_tuple &)=default
 
virtual void * get_mutable (size_t pos)=0
 Returns a mutable pointer to the element at position pos.
 
virtual void load (size_t pos, deserializer &source)=0
 Load the content for the element at position pos from source.
 
void load (deserializer &source)
 Load the content for the tuple from source.
 
virtual size_t size () const =0
 Returns the size of this tuple.
 
virtual bool shared () const =0
 Returns whether multiple references to this tuple exist.
 
virtual uint32_t type_token () const =0
 Returns a type hint for the element types.
 
virtual rtti_pair type (size_t pos) const =0
 Returns the type number and std::type_info object for the element at position pos. More...
 
virtual const void * get (size_t pos) const =0
 Returns the element at position pos.
 
virtual std::string stringify (size_t pos) const =0
 Returns a string representation of the element at position pos.
 
virtual type_erased_value_ptr copy (size_t pos) const =0
 Returns a copy of the element at position pos.
 
virtual void save (size_t pos, serializer &sink) const =0
 Saves the element at position pos to sink.
 
bool empty () const
 
std::string stringify () const
 Returns a string representation of the tuple.
 
void save (serializer &sink) const
 Saves the content of the tuple to sink.
 
bool matches (size_t pos, uint16_t tnr, const std::type_info *tinf) const
 Checks whether the type of the stored value matches the type nr and type info object. More...
 
uint16_t type_nr (size_t pos) const
 Returns the type number for the element at position pos.
 
bool matches (size_t pos, const rtti_pair &rtti) const
 Checks whether the type of the stored value matches rtti.
 

Related Functions

(Note that these are not member functions.)

template<class Processor >
std::enable_if< Processor::is_saving::value >::type serialize (Processor &proc, type_erased_tuple &x)
 
template<class Processor >
std::enable_if< Processor::is_loading::value >::type serialize (Processor &proc, type_erased_tuple &x)
 
std::string to_string (const type_erased_tuple &x)
 

Detailed Description

Represents a tuple of type-erased values.

Member Function Documentation

bool caf::type_erased_tuple::matches ( size_t  pos,
uint16_t  tnr,
const std::type_info *  tinf 
) const

Checks whether the type of the stored value matches the type nr and type info object.

virtual rtti_pair caf::type_erased_tuple::type ( size_t  pos) const
pure virtual

Returns the type number and std::type_info object for the element at position pos.

Friends And Related Function Documentation

template<class Processor >
std::enable_if< Processor::is_saving::value >::type serialize ( Processor &  proc,
type_erased_tuple x 
)
related
template<class Processor >
std::enable_if< Processor::is_loading::value >::type serialize ( Processor &  proc,
type_erased_tuple x 
)
related
std::string to_string ( const type_erased_tuple x)
related

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