ContRap-Core
Public Member Functions | Data Fields | Protected Attributes | Friends

crp::MetaInfo Class Reference

Class MetaInfo contains objects meta-information. More...

#include <pointer.h>

Public Member Functions

 MetaInfo ()
 Default constructor.
 MetaInfo (const std::string &type_name, size_t size, const std::type_info *type_info, const std::type_info *base_info, ConstructorFunction constructor_function, CopyFunction copy_function, CastFunction cast_function, DestructorFunction destructor_function)
 Constructs a meta info from essential parameters.
 ~MetaInfo ()
 Destructor unregisters the meta info object.
 MetaInfo (const MetaInfo &meta_info)
 Copy constructor.
void invalidate ()
 Invalidates the data.
bool is_valid () const
 Returns true if the MetaInfo object is valid.
void create (void *object)
 Applies the constructor.
bool copy (const void *rvalue, void *lvalue) const
 Applies the copy operator.
void destructor (void *object)
 Applies the destructor.
bool cast (const void *object) const
 Applies the cast function.
bool has_constructor () const
 Returns true if the meta info has a constructor.
bool has_destructor () const
 Returns true if the meta info has a destructor.
bool can_cast () const
 Returns true if the meta info can cast.
bool can_copy () const
 Returns true if the meta info can copy.
bool in_hierarchy (const MetaInfo *object) const
 Returns true if the object is in the same object hierarchy as the current meta info.

Data Fields

std::string type_name
 Real type name.
std::string type_id
 Mangled type name.
size_t size
 Size of an object instance.
const std::type_info * type_info
 Type info.
const std::type_info * base_info
 Base type info.
std::string library_name
 Library name.

Protected Attributes

ConstructorFunction constructor_function
 Constructor operator.
CopyFunction copy_function
 Copy operator.
CastFunction cast_function
 Type cast to this object.
DestructorFunction destructor_function
 Destructor function.

Friends

class ObjectFactory

Detailed Description

Class MetaInfo contains objects meta-information.


Constructor & Destructor Documentation

crp::MetaInfo::MetaInfo ( ) [inline]

Default constructor.

crp::MetaInfo::MetaInfo ( const std::string &  type_name,
size_t  size,
const std::type_info *  type_info,
const std::type_info *  base_info,
ConstructorFunction  constructor_function,
CopyFunction  copy_function,
CastFunction  cast_function,
DestructorFunction  destructor_function 
)

Constructs a meta info from essential parameters.

Do not create instances of this class!

There is never the need for the ContRap user to do so.

Parameters:
type_nameReal name of the type
type_infoType info object of the class
base_infoType info object of the base class
constructor_functionConstructor function
copy_functionCopy function
cast_functionCast function
destructor_functionDestructor function
crp::MetaInfo::~MetaInfo ( )

Destructor unregisters the meta info object.

crp::MetaInfo::MetaInfo ( const MetaInfo meta_info) [inline]

Copy constructor.

Parameters:
meta_infoOther meta info instance

Member Function Documentation

bool crp::MetaInfo::can_cast ( ) const [inline]

Returns true if the meta info can cast.

Returns:
True if the meta info can cast
bool crp::MetaInfo::can_copy ( ) const [inline]

Returns true if the meta info can copy.

Returns:
True if the meta info can copy
bool crp::MetaInfo::cast ( const void *  object) const [inline]

Applies the cast function.

Parameters:
objectObject to cast to the given type
Returns:
True if pointer cast is possible
bool crp::MetaInfo::copy ( const void *  rvalue,
void *  lvalue 
) const [inline]

Applies the copy operator.

Parameters:
rvalueValue which is assigned
lvalueValue which is overwritten
Returns:
True if assign was successful
void crp::MetaInfo::create ( void *  object) [inline]

Applies the constructor.

Parameters:
Pointerto the object on which should be created
void crp::MetaInfo::destructor ( void *  object) [inline]

Applies the destructor.

Parameters:
Pointerto the object on which delete is called
bool crp::MetaInfo::has_constructor ( ) const [inline]

Returns true if the meta info has a constructor.

Returns:
True if the meta info has a valid constructor
bool crp::MetaInfo::has_destructor ( ) const [inline]

Returns true if the meta info has a destructor.

Returns:
True if the meta info has a valid destructor
bool crp::MetaInfo::in_hierarchy ( const MetaInfo object) const [inline]

Returns true if the object is in the same object hierarchy as the current meta info.

If this method returns true, you can call the cast function.

Parameters:
objectDifferent object
void crp::MetaInfo::invalidate ( ) [inline]

Invalidates the data.

bool crp::MetaInfo::is_valid ( ) const [inline]

Returns true if the MetaInfo object is valid.

A meta info object is valid, if it has valid type information. Check the ability of a MetaInfo object to cast, destroy, etc. with corresponding methods.

Returns:
True if the object is valid

Friends And Related Function Documentation

friend class ObjectFactory [friend]

Field Documentation

const std::type_info* crp::MetaInfo::base_info

Base type info.

Type cast to this object.

Constructor operator.

Copy operator.

Destructor function.

Parameters:
Pointerto the object on which delete is called

Library name.

Size of an object instance.

Mangled type name.

const std::type_info* crp::MetaInfo::type_info

Type info.

Real type name.


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