libcppa  Version 0.1
Public Member Functions | Static Public Member Functions | Protected Member Functions
cppa::uniform_type_info Class Reference

#include <uniform_type_info.hpp>

Inheritance diagram for cppa::uniform_type_info:
cppa::util::abstract_uniform_type_info< List > cppa::util::abstract_uniform_type_info< Map > cppa::util::abstract_uniform_type_info< std::pair< T1, T2 > > cppa::util::abstract_uniform_type_info< T >

List of all members.

Public Member Functions

const std::string & name () const
object create () const
object deserialize (deserializer *source) const
virtual bool equals (const std::type_info &tinfo) const =0
virtual bool equals (const void *instance1, const void *instance2) const =0
virtual void serialize (const void *instance, serializer *sink) const =0
virtual void deserialize (void *instance, deserializer *source) const =0

Static Public Member Functions

static uniform_type_infofrom (const std::string &uniform_name)
static const uniform_type_infofrom (const std::type_info &tinfo)
static std::vector
< uniform_type_info * > 
instances ()

Protected Member Functions

virtual void delete_instance (void *instance) const =0
virtual void * new_instance (const void *instance=nullptr) const =0

Detailed Description

Provides a platform independent type name and a (very primitive) kind of reflection in combination with object.

The platform independent name is equal to the "in-sourcecode-name" with a few exceptions:


Member Function Documentation

object cppa::uniform_type_info::create ( ) const

Creates an object of this type.

virtual void cppa::uniform_type_info::delete_instance ( void *  instance) const [protected, pure virtual]
object cppa::uniform_type_info::deserialize ( deserializer source) const

Deserializes an object of this type from source.

virtual void cppa::uniform_type_info::deserialize ( void *  instance,
deserializer source 
) const [pure virtual]

Deserializes instance from source.

Parameters:
instanceInstance of this type.
sinkData source.
Precondition:
instance has the type of this.
virtual bool cppa::uniform_type_info::equals ( const std::type_info &  tinfo) const [pure virtual]
virtual bool cppa::uniform_type_info::equals ( const void *  instance1,
const void *  instance2 
) const [pure virtual]

Compares two instances of this type.

Parameters:
instance1Left hand operand.
instance2Right hand operand.
Returns:
true if *instance1 == *instance2.
Precondition:
instance1 and instance2 have the type of this.

Implemented in cppa::util::abstract_uniform_type_info< T >, cppa::util::abstract_uniform_type_info< Map >, cppa::util::abstract_uniform_type_info< std::pair< first_type, second_type > >, cppa::util::abstract_uniform_type_info< std::pair< T1, T2 > >, and cppa::util::abstract_uniform_type_info< List >.

static uniform_type_info* cppa::uniform_type_info::from ( const std::string &  uniform_name) [static]

Get instance by uniform name.

Parameters:
uniform_nameThe libcppa internal name for a type.
Returns:
The instance associated to uniform_name.
Exceptions:
std::runtime_errorif no type named uniform_name was found.
static const uniform_type_info* cppa::uniform_type_info::from ( const std::type_info &  tinfo) [static]

Get instance by std::type_info.

Parameters:
tinfoA STL RTTI object.
Returns:
An instance describing the same type as tinfo.
Exceptions:
std::runtime_errorif tinfo is not an announced type.
static std::vector<uniform_type_info*> cppa::uniform_type_info::instances ( ) [static]

Get all instances.

Returns:
A vector with all known (announced) instances.
const std::string& cppa::uniform_type_info::name ( ) const

Get the internal libcppa name for this type.

Returns:
A string describing the libcppa internal type name.
virtual void* cppa::uniform_type_info::new_instance ( const void *  instance = nullptr) const [protected, pure virtual]

Creates an instance of this type, either as a copy of instance or initialized with the default constructor if instance == nullptr.

Parameters:
instanceOptional instance of this type.
Returns:
Either a copy of instance or a new instance, initialized with the default constructor.
Precondition:
instance has the type of this or is set to nullptr.

Implemented in cppa::util::abstract_uniform_type_info< T >, cppa::util::abstract_uniform_type_info< Map >, cppa::util::abstract_uniform_type_info< std::pair< first_type, second_type > >, cppa::util::abstract_uniform_type_info< std::pair< T1, T2 > >, and cppa::util::abstract_uniform_type_info< List >.

virtual void cppa::uniform_type_info::serialize ( const void *  instance,
serializer sink 
) const [pure virtual]

Serializes instance to sink.

Parameters:
instanceInstance of this type.
sinkTarget data sink.
Precondition:
instance has the type of this.

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