acedia::MetaClass Struct Reference

MetaClass holds informations about data types. More...

#include <metaclass.hpp>

Inherited by acedia::details::MetaClassImpl< T >, acedia::details::MetaClassImpl< Unit >, and acedia::details::MetaClassImpl< void >.

List of all members.

Public Member Functions

virtual ~MetaClass ()
 Destructor.
virtual unsigned int tupleLenght () const
 Returns the size of the tuple.
virtual bool isCaseTuple () const
 Returns true if this class was announced by ACEDIA_DECLARE_CASE_TUPLE. The default implementation returns false.
virtual const Stringname () const =0
 Get the registered name of this type.
virtual details::AnyVal * deserialize (boost::archive::text_iarchive &ar) const =0
 Deserialize an object of the internal type from ar.

Detailed Description

MetaClass holds informations about data types.

MetaClass manages named types for the message passing system and Any. To register a new type use the macro ACEDIA_ANNOUNCE.

Definition at line 50 of file metaclass.hpp.


Member Function Documentation

virtual details::AnyVal* acedia::MetaClass::deserialize ( boost::archive::text_iarchive &  ar  )  const [pure virtual]

Deserialize an object of the internal type from ar.

Returns:
the deserialized object stored in an instance of AnyVal
bool acedia::MetaClass::isCaseTuple (  )  const [virtual]

Returns true if this class was announced by ACEDIA_DECLARE_CASE_TUPLE. The default implementation returns false.

Returns:
true if this meta class describes a case tuple; otherwise false

Definition at line 72 of file metaclass.cpp.

virtual const String& acedia::MetaClass::name (  )  const [pure virtual]

Get the registered name of this type.

Returns:
the type name as string
unsigned int acedia::MetaClass::tupleLenght (  )  const [virtual]

Returns the size of the tuple.

Note:
this value is only > 0 if isCaseTuple() is true
Returns:
the length of the tuple

Definition at line 50 of file metaclass.cpp.


The documentation for this struct was generated from the following files:

Generated by  doxygen 1.6.2