BALL::Embeddable Class Reference
[Miscellaneous]

#include <BALL/CONCEPT/embeddable.h>

Inheritance diagram for BALL::Embeddable:
Inheritance graph
[legend]

List of all members.

Public Types

Type definitions

typedef std::vector< Embeddable * > EmbeddableVector

Public Member Functions

virtual void dump (std::ostream &s=std::cout, Size depth=0) const
Constructors and Destructors

 Embeddable (const String &identifier="<Embeddable>")
 Embeddable (const Embeddable &embeddable)
virtual ~Embeddable ()
Accessors

void setIdentifier (const String &identifier)
const StringgetIdentifier () const
void unregisterThis ()
virtual void registerThis ()

Static Protected Member Functions

static void registerInstance_ (const std::type_info &type, const Embeddable *instance)
static void unregisterInstance_ (const Embeddable *instance)
static Size countInstances_ (const std::type_info &type)
static EmbeddablegetInstance_ (const std::type_info &type, Position index)
static EmbeddablegetInstance_ (const std::type_info &type, const String &identifier)

Private Attributes

String identifier_

Static Private Attributes

static StringHashMap
< EmbeddableVector
instance_vectors_
static HashMap< Embeddable
*, string > 
instance_to_type_map_

Detailed Description

Python Embedding Base Class. This class defines a common interface for all classes that have to be accessible from an embedded Python interpreter. Each instance of a class derived from embeddable can be registered by calling registerThis() of the instance and is then accessible through the static methods of the class (e.g. getInstance).

See also:
PyInterpreter
MainControl
ModularWidget

Definition at line 81 of file embeddable.h.


Member Typedef Documentation

Definition at line 88 of file embeddable.h.


Constructor & Destructor Documentation

BALL::Embeddable::Embeddable ( const String identifier = "<Embeddable>"  ) 

Default constructor

BALL::Embeddable::Embeddable ( const Embeddable embeddable  ) 

Copy constructor

virtual BALL::Embeddable::~Embeddable (  )  [virtual]

Member Function Documentation

static Size BALL::Embeddable::countInstances_ ( const std::type_info &  type  )  [static, protected]

Return the number of instances of a certain type

virtual void BALL::Embeddable::dump ( std::ostream &  s = std::cout,
Size  depth = 0 
) const [virtual]

Internal value dump. Dump the current state to the output ostream s with dumping depth depth.

Parameters:
s output stream where to output the state
depth the dumping depth

Reimplemented in BALL::VIEW::MainControl, BALL::VIEW::ModularWidget, BALL::VIEW::ServerWidget, BALL::VIEW::PyWidget, and BALL::VIEW::Scene.

const String& BALL::Embeddable::getIdentifier (  )  const

Assign a new identifier

static Embeddable* BALL::Embeddable::getInstance_ ( const std::type_info &  type,
const String identifier 
) [static, protected]

Return an instance of a registered type by its identifier. If the identifier does not exist, a null pointer is returned

static Embeddable* BALL::Embeddable::getInstance_ ( const std::type_info &  type,
Position  index 
) [static, protected]

Return an instance of a registered type by its index. If the index is out of bounds or the position is invalid, a null pointer is returned

static void BALL::Embeddable::registerInstance_ ( const std::type_info &  type,
const Embeddable instance 
) [static, protected]
virtual void BALL::Embeddable::registerThis (  )  [virtual]

Register the instance. DO NOT IMPLEMENT THIS METHOD! It is automatically implemented correctly when putting the BALL_EMBEDDABLE macro in a class definition.

See also:
getInstanceVector
void BALL::Embeddable::setIdentifier ( const String identifier  ) 

Return the instance identifier

static void BALL::Embeddable::unregisterInstance_ ( const Embeddable instance  )  [static, protected]
void BALL::Embeddable::unregisterThis (  ) 

Unregister the instance.


Member Data Documentation

An identifier for the class

Definition at line 183 of file embeddable.h.

A hash map to retrieve the class ID for each instance.

Definition at line 191 of file embeddable.h.

The instance vectors

Definition at line 187 of file embeddable.h.

Generated by  doxygen 1.6.3