#include <BALL/CONCEPT/embeddable.h>
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 String & | getIdentifier () 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 Embeddable * | getInstance_ (const std::type_info &type, Position index) |
static Embeddable * | getInstance_ (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_ |
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).
MainControl
ModularWidget
typedef std::vector<Embeddable*> BALL::Embeddable::EmbeddableVector |
BALL::Embeddable::Embeddable | ( | const String & | identifier = "<Embeddable>" |
) |
Default constructor
BALL::Embeddable::Embeddable | ( | const Embeddable & | embeddable | ) |
Copy constructor
virtual BALL::Embeddable::~Embeddable | ( | ) | [virtual] |
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.
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.
Referenced by main().
void BALL::Embeddable::setIdentifier | ( | const String & | identifier | ) |
Return the instance identifier
Referenced by main().
static void BALL::Embeddable::unregisterInstance_ | ( | const Embeddable * | instance | ) | [static, protected] |
void BALL::Embeddable::unregisterThis | ( | ) |
Unregister the instance.
String BALL::Embeddable::identifier_ [private] |
An identifier for the class
HashMap<Embeddable*, string> BALL::Embeddable::instance_to_type_map_ [static, private] |
A hash map to retrieve the class ID for each instance.
StringHashMap<EmbeddableVector> BALL::Embeddable::instance_vectors_ [static, private] |
The instance vectors