Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

amire::component::Component Class Reference

Inheritance diagram for amire::component::Component:

amire::component::Handler amire::component::ComposedComponent amire::component::FalseComponent amire::component::FrameworkComponent amire::component::LightComponent amire::component::RelayComponent amire::component::TrueComponent amire::component::Visible2DComponent amire::component::Visible3DComponent List of all members.

Public Member Functions

virtual ~Component ()
virtual void reinitializeEngine (MREngine *engine)
virtual void functionalCallback (MREngine *engine)
virtual bool isConnectable (int outSlotId, const osg::ref_ptr< Component > &receiver, int inSlotId) const
void lock () const
void unlock () const
virtual bool isConnected (const std::string &outSlotName, const osg::ref_ptr< Component > &receiver, const std::string &inSlotName)
virtual bool isConnected (int outSlotId, const osg::ref_ptr< Component > &receiver, int inSlotId)
virtual bool isOutSlotConnected (const std::string &outSlotName)
virtual bool isOutSlotConnected (int outSlotId)
virtual bool isInSlotConnected (const std::string &inSlotName)
virtual bool isInSlotConnected (int inSlotId)
virtual osg::ref_ptr< const
amire::property::StructProperty
getConfigurationProperty () const
virtual osg::ref_ptr< amire::property::StructPropertyrequestConfigurationProperty ()
virtual void releaseConfigurationProperty ()
void deleteComponent ()
bool isDeleted ()
bool connect (const std::string &outSlotName, const osg::ref_ptr< Component > &receiver, const std::string &inSlotName, const osg::ref_ptr< const ConnectionFilter > &filter=NULL)
bool connect (int outSlotId, const osg::ref_ptr< Component > &receiver, int inSlotId, const osg::ref_ptr< const ConnectionFilter > &filter=NULL)
void disconnect (const std::string &outSlotName, const osg::ref_ptr< Component > &receiver, const std::string &inSlotName)
void disconnect (int outSlotId, const osg::ref_ptr< Component > &receiver, int inSlotId)
void disconnectInSlots ()
void disconnectOutSlots ()
void disconnect ()
const std::vector< int > & getStateEmissions (const osg::ref_ptr< const ComponentState > &state)
const EmissionMap & getEmissionStates () const
void setStateEmissions (const osg::ref_ptr< const ComponentState > &state, const std::vector< int > &outSlotIds)
void addStateEmission (const osg::ref_ptr< const ComponentState > &state, int outSlotId)
void removeStateEmission (const osg::ref_ptr< const ComponentState > &state, int outSlotId)
void emit (int outSlotId)
void setEmitSynchronized (bool synchronized=false)
bool isEmitSynchronized ()
int numberOfInSlots () const
int numberOfOutSlots () const
const std::vector< std::string > & getInSlotNames ()
const std::vector< std::string > & getOutSlotNames ()
const std::vector< osg::ref_ptr<
const amire::property::PropertyType > > & 
getInSlotPropertyTypes ()
const std::vector< osg::ref_ptr<
const amire::property::PropertyType > > & 
getOutSlotPropertyTypes ()
const std::string & getInSlotName (int inSlotId) const
const std::string & getOutSlotName (int outSlotId) const
const osg::ref_ptr< const
amire::property::PropertyType > & 
getInSlotType (int inSlotId) const
const osg::ref_ptr< const
amire::property::PropertyType > & 
getOutSlotType (int outSlotId) const
int getInSlotId (const std::string &inSlotName) const
int getOutSlotId (const std::string &outSlotName) const
void setState (const osg::ref_ptr< const ComponentState > &state)
const osg::ref_ptr< const
ComponentState > & 
getState () const
const std::string & getPrototypeName () const
int getId () const
const std::vector< std::vector<
osg::ref_ptr< Connection > > > & 
getEmitConnections () const
const std::vector< std::vector<
osg::ref_ptr< const Connection > > > & 
getReceiveConnections () const
ComponentManagergetComponentManager () const
amire::property::PropertyTypeManagergetPropertyTypeManager () const
void setPriority (int priority)
int getPriority () const
void setName (const std::string &name)
const std::string & getName () const
bool isPrototype () const
const osg::ref_ptr< const
amire::common::Category > & 
getCategory () const
osg::ref_ptr< const Component > getProtoype () const
std::vector< std::string > getMetaInformationKeys () const
void setMetaInformation (const std::string &name, const osg::ref_ptr< amire::property::Property > &property)
osg::ref_ptr< amire::property::PropertygetMetaInformation (const std::string &name) const
void setPrototypeMetaInformation (const std::string &name, const osg::ref_ptr< amire::property::Property > &property)
osg::ref_ptr< amire::property::PropertygetPrototypeMetaInformation (const std::string &name) const
const std::string & getLibrary () const
void addEmissionListener (const osg::ref_ptr< EmissionListener > &emissionListener)
void removeEmissionListener (const osg::ref_ptr< EmissionListener > &emissionListener)
std::string getQualifiedName () const

Protected Member Functions

 Component (ComponentManager *componentManager)
virtual osg::ref_ptr< Component > clone (ComponentContext *context) const
virtual osg::ref_ptr< Component > newInstance () const
virtual void receiveInSlotProperty (int inSlotId, const osg::ref_ptr< const amire::property::Property > &property)
virtual osg::ref_ptr< const
amire::property::Property
emitOutSlotProperty (int outSlotId)
virtual void configurationPropertyModified ()=0
virtual void deleted ()
virtual void initPrototypeMetaInformation ()
virtual void initMetaInformation ()
int registerInSlot (const std::string &inSlotName, const osg::ref_ptr< const amire::property::PropertyType > &propertyType)
int registerInSlot (const std::string &inSlotName, const std::string &propertyTypeName)
int registerOutSlot (const std::string &outSlotName, const osg::ref_ptr< const amire::property::PropertyType > &propertyType)
int registerOutSlot (const std::string &outSlotName, const std::string &propertyTypeName)
void clearInSlotRegistration ()
void clearOutSlotRegistration ()
void clearSlotRegistration ()
void setPrototypeName (const std::string &prototypeName)
void setConfigurationProperty (const osg::ref_ptr< amire::property::StructProperty > &property)
void setConfigurationProperty (const std::string &structPropertyTypeName)
void removeInSlot (const std::string &inSlotName)
void removeInSlot (int inSlotId)
void removeOutSlot (const std::string &outSlotName)
void removeOutSlot (int outSlotId)
void renameInSlot (const std::string &inSlotName, const std::string &newInSlotName)
void renameInSlot (int inSlotId, const std::string &newInSlotName)
void renameOutSlot (const std::string &outSlotName, const std::string &outInSlotName)
void renameOutSlot (int outSlotId, const std::string &outInSlotName)
void changeInSlotType (const std::string &inSlotName, const std::string &propertyTypeName)
void changeInSlotType (const std::string &inSlotName, const osg::ref_ptr< const amire::property::PropertyType > &propertyType)
void changeInSlotType (int inSlotId, const osg::ref_ptr< const amire::property::PropertyType > &propertyType)
void changeOutSlotType (const std::string &outSlotName, const std::string &propertyTypeName)
void changeOutSlotType (const std::string &outSlotName, const osg::ref_ptr< const amire::property::PropertyType > &propertyType)
void changeOutSlotType (int outSlotId, const osg::ref_ptr< const amire::property::PropertyType > &propertyType)
virtual void setPrototype ()

Detailed Description

The class Component is the abstract base class of all component implementation classes (to implement your own component you have to extend it and implement the clone method). The integration of slots can be done by implementing the methods receiveInSlotProperty and emitOutSlotProperty and register the slots by using the methods registerInSlot and registerOutSlot. The registration will map the slot names to slot ids, which are faster to compare. The implementation of functionality that must be performed for each frame should be placed in the methods functionalCallback, occluderCallback and displayCallback. These methods of all components are called by the MR engine for each frame. First all functionalCallback methods are called, then all occluderCallback methods and at last all displayCallback methods. This means the MR engine starts with the logical and functional iteration, followed by displaying all real occluders preparing the z-buffer for the augmented geometry and the last iteration displays the augmented geometry.


Constructor & Destructor Documentation

virtual amire::component::Component::~Component  )  [virtual]
 

The destructor of the component deletes the configuration property and all connections between this component and another one.

amire::component::Component::Component ComponentManager componentManager  )  [protected]
 

This constructor initializes the new component for the given component mamager. It is possible to use the runtime wide default component manager by using null as the value for the component manager.


Member Function Documentation

void amire::component::Component::addEmissionListener const osg::ref_ptr< EmissionListener > &  emissionListener  ) 
 

Adds a emission listener to the component. The listener is notified when a out-slot of this component is emitted.

void amire::component::Component::addStateEmission const osg::ref_ptr< const ComponentState > &  state,
int  outSlotId
 

The addStateEmission method adds the specified out-slot to the list of out slots that are emitted when the component state is set to the given state. An assert exception is thrown when the given state is null or when the out-slot does not exist.

void amire::component::Component::changeInSlotType int  inSlotId,
const osg::ref_ptr< const amire::property::PropertyType > &  propertyType
[protected]
 

Changes the property type of the specified in-slot. An exception is thrown if the in-slot is not defined.

void amire::component::Component::changeInSlotType const std::string &  inSlotName,
const osg::ref_ptr< const amire::property::PropertyType > &  propertyType
[protected]
 

Changes the property type of the specified in-slot. An exception is thrown if the in-slot is not defined.

void amire::component::Component::changeInSlotType const std::string &  inSlotName,
const std::string &  propertyTypeName
[protected]
 

Changes the property type of the specified in-slot. An exception is thrown if the in-slot or the property type is not defined.

void amire::component::Component::changeOutSlotType int  outSlotId,
const osg::ref_ptr< const amire::property::PropertyType > &  propertyType
[protected]
 

Changes the property type of the specified out-slot. An exception is thrown if the out-slot is not defined.

void amire::component::Component::changeOutSlotType const std::string &  outSlotName,
const osg::ref_ptr< const amire::property::PropertyType > &  propertyType
[protected]
 

Changes the property type of the specified out-slot. An exception is thrown if the out-slot is not defined.

void amire::component::Component::changeOutSlotType const std::string &  outSlotName,
const std::string &  propertyTypeName
[protected]
 

Changes the property type of the specified out-slot. An exception is thrown if the out-slot or the property type is not defined.

void amire::component::Component::clearInSlotRegistration  )  [protected]
 

Removes all registered in-slots from the in-slot list.

void amire::component::Component::clearOutSlotRegistration  )  [protected]
 

Removes all registered out-slots from the out-slot list.

void amire::component::Component::clearSlotRegistration  )  [protected]
 

Removes all registered in- and out-slots from the in- and out-slot lists.

virtual osg::ref_ptr<Component> amire::component::Component::clone ComponentContext context  )  const [protected, virtual]
 

The clone() method must return a clone of this component. It is used by the component manager to create new component instances out of the component prototype. It is abstract and has to be implemented by each component implementation.

Reimplemented in amire::component::ComposedComponent.

virtual void amire::component::Component::configurationPropertyModified  )  [protected, pure virtual]
 

The configurationPropertyModified method is an abstract method that must be implemented by the component implementation class. It is called each time when the configuration property is released, which implies the possibility of a modified configuration property.

Implemented in amire::component::ComposedComponent, amire::component::RelayComponent, amire::component::FalseComponent, amire::component::FrameworkComponent, amire::component::LightComponent, amire::component::TrueComponent, amire::component::Visible2DComponent, and amire::component::Visible3DComponent.

bool amire::component::Component::connect int  outSlotId,
const osg::ref_ptr< Component > &  receiver,
int  inSlotId,
const osg::ref_ptr< const ConnectionFilter > &  filter = NULL
 

The connect method connects the specified out-slot of this component with the specified in-slot of the given receiver component and returns true when the connection is possible. Otherwise false is returned. A connection can only be established when the method isConnectable returns true. An assert exception is thrown when the specified in- or out-slot is not available, when the given receiver is null or when the isConnectable method of the component implementation throws an exception.

bool amire::component::Component::connect const std::string &  outSlotName,
const osg::ref_ptr< Component > &  receiver,
const std::string &  inSlotName,
const osg::ref_ptr< const ConnectionFilter > &  filter = NULL
 

The connect method connects the specified out-slot of this component with the specified in-slot of the given receiver component and returns true when the connection is possible. Otherwise false is returned. A connection can only be established when the method isConnectable returns true. An assert exception is thrown when the specified in- or out-slot is not available, when the given receiver is null or when the isConnectable method of the component implementation throws an exception.

void amire::component::Component::deleteComponent  ) 
 

Deletes the component from its context. Afterward the use of this component in not allowed. Therfore any kind of using it after the deletion will throw an exception.

virtual void amire::component::Component::deleted  )  [protected, virtual]
 

The deleted method is called after a component has been deleted. To react on this event a component has to implement this method. The default implementation is empty.

void amire::component::Component::disconnect  ) 
 

This method diconnects all connections for all in- and out-slots of this component.

void amire::component::Component::disconnect int  outSlotId,
const osg::ref_ptr< Component > &  receiver,
int  inSlotId
 

The disconnect method disconnects the specified out-slot of this component and the specified in-slot of the given receiver component. An assert exception is thrown when the specified in- or out-slot is not available, when the given receiver is null, or when the specified connection does not exist.

void amire::component::Component::disconnect const std::string &  outSlotName,
const osg::ref_ptr< Component > &  receiver,
const std::string &  inSlotName
 

The disconnect method disconnects the specified out-slot of this component and the specified in-slot of the given receiver component. An assert exception is thrown when the specified in- or out-slot is not available, when the given receiver is null, or when the specified connection does not exist.

void amire::component::Component::disconnectInSlots  ) 
 

This method diconnects all connections for all in-slots of this component.

void amire::component::Component::disconnectOutSlots  ) 
 

This method diconnects all connections for all out-slots of this component.

void amire::component::Component::emit int  outSlotId  ) 
 

The emit method emits the specified out-slot. This method should be used in the receiveInSlotProperty or functionalCallback method to implement the behavior of the component that is visible to other components. An assert exception is thrown when the overwritten method emitOutSlotProperty throws an assert exception.

virtual osg::ref_ptr<const amire::property::Property> amire::component::Component::emitOutSlotProperty int  outSlotId  )  [protected, virtual]
 

The emitOutSlotProperty method must be implemented to integrate out-slots into the component implementation. It is called, when the out-slot specified by the out-slot id is emitted by the component itself or from outside the component. It must provide the property that should be produced for this emit. An assert exception should be thrown for any failure case.

Reimplemented in amire::component::ComposedComponent, amire::component::RelayComponent, amire::component::FalseComponent, amire::component::LightComponent, amire::component::TrueComponent, amire::component::Visible2DComponent, and amire::component::Visible3DComponent.

virtual void amire::component::Component::functionalCallback MREngine engine  )  [virtual]
 

The functionalCallback method must be overwritten by the derived class and provide the functional or logical behaviour of the callback handler. A logical and functionality for example or the setting of a transformation matrix or scene graph at the MR engine for a specific component would be such a functionality. This callback should be used to integrate the functional behaviour into a component. An assert exception should be thrown in any failure case.

Reimplemented in amire::component::ComposedComponent, amire::component::FalseComponent, amire::component::FrameworkComponent, amire::component::LightComponent, amire::component::TrueComponent, amire::component::Visible2DComponent, and amire::component::Visible3DComponent.

const osg::ref_ptr<const amire::common::Category>& amire::component::Component::getCategory  )  const
 

Returns the category of this component.

ComponentManager* amire::component::Component::getComponentManager  )  const
 

The getComponentManager returns the component manager of this component.

virtual osg::ref_ptr<const amire::property::StructProperty> amire::component::Component::getConfigurationProperty  )  const [virtual]
 

The getConfigurationProperty method returns reference pointer of the not modifiable configuration property for this component.

Reimplemented in amire::component::ComposedComponent.

const EmissionMap& amire::component::Component::getEmissionStates  )  const
 

Returns a hash map, which maps component states to out-slots that are emitted when the component states is reached.

const std::vector<std::vector<osg::ref_ptr<Connection> > >& amire::component::Component::getEmitConnections  )  const
 

The getEmitConnections method returns a connection list for all out-slots of this component. The first index specifies the id of the out-slot and addresses the list of its connections.

int amire::component::Component::getId  )  const
 

The getId method returns the id of the component.

int amire::component::Component::getInSlotId const std::string &  inSlotName  )  const
 

The getInSlotId method maps the given in-slot name to the in-slot id. An assert exception is thrown when the specified in-slot does not exist.

const std::string& amire::component::Component::getInSlotName int  inSlotId  )  const
 

The getInSlotName method maps the given in-slot id to the in-slot name. An assert exception is thrown when the specified in-slot does not exist.

const std::vector<std::string>& amire::component::Component::getInSlotNames  ) 
 

The getInSlotName method returns the names of all in-slots sorted by the slot id.

const std::vector<osg::ref_ptr<const amire::property::PropertyType> >& amire::component::Component::getInSlotPropertyTypes  ) 
 

The getInSlotPropertyTypes method returns the property types of all in-slots sorted by the slot id.

const osg::ref_ptr<const amire::property::PropertyType>& amire::component::Component::getInSlotType int  inSlotId  )  const
 

The getInSlotType method returns the property type of the specified in-slot. An assert exception is thrown when the specified in-slot does not exist.

const std::string& amire::component::Component::getLibrary  )  const
 

Returns the library file name of this component.

osg::ref_ptr<amire::property::Property> amire::component::Component::getMetaInformation const std::string &  name  )  const
 

Returns the meta information for the given key name. The request is forwarded to the prototype when no meta information is available for the key in this component. If the prototype also has no meta information for the key then null is returned.

std::vector<std::string> amire::component::Component::getMetaInformationKeys  )  const
 

Returns the keys of all available meta information properties.

const std::string& amire::component::Component::getName  )  const
 

Returns the name of the component.

int amire::component::Component::getOutSlotId const std::string &  outSlotName  )  const
 

The getOutSlotId method maps the given out-slot name to the out-slot id. An assert exception is thrown when the specified out-slot does not exist.

const std::string& amire::component::Component::getOutSlotName int  outSlotId  )  const
 

The getOutSlotName method maps the given out-slot id to the out-slot name. An assert exception is thrown when the specified out-slot does not exist.

const std::vector<std::string>& amire::component::Component::getOutSlotNames  ) 
 

The getOutSlotName method returns the names of all out-slots sorted by the slot id.

const std::vector<osg::ref_ptr<const amire::property::PropertyType> >& amire::component::Component::getOutSlotPropertyTypes  ) 
 

The getOutSlotPropertyTypes method returns the property types of all out-slots sorted by the slot id.

const osg::ref_ptr<const amire::property::PropertyType>& amire::component::Component::getOutSlotType int  outSlotId  )  const
 

The getOutSlotType method returns the property type of the specified out-slot. An assert exception is thrown when the specified out-slot does not exist.

int amire::component::Component::getPriority  )  const
 

Returns the component's priority in its context. The priority determines the call order of the functional callbacks.

amire::property::PropertyTypeManager* amire::component::Component::getPropertyTypeManager  )  const
 

The getPropertyTypeManager returns the property type manager that is part of this components component manager.

osg::ref_ptr<amire::property::Property> amire::component::Component::getPrototypeMetaInformation const std::string &  name  )  const
 

Returns the meta information of the prototype for the given key name. It there is no meta information available, null is returned.

const std::string& amire::component::Component::getPrototypeName  )  const
 

The getPrototypeName method returns the name of the component prototype.

osg::ref_ptr<const Component> amire::component::Component::getProtoype  )  const
 

Returns the component's prototype.

std::string amire::component::Component::getQualifiedName  )  const
 

Returns the fully qualified name of this component. If this component is part of a composed component then the fully qualified name of the composed component is included. The names are seperated by a '.'-character.

const std::vector<std::vector<osg::ref_ptr<const Connection> > >& amire::component::Component::getReceiveConnections  )  const
 

The getReceiveConnections method returns a connection list for all in-slots of this component. The first index specifies the id of the in-slot and addresses the list of its connections.

const osg::ref_ptr<const ComponentState>& amire::component::Component::getState  )  const
 

The getState method returns the current state of the component.

const std::vector<int>& amire::component::Component::getStateEmissions const osg::ref_ptr< const ComponentState > &  state  ) 
 

The getStateEmissions method returns a vector containing the ids of all out-slots that are emitted when the state of the component is set to the given state. An assert exception is thrown when the given state is null.

virtual void amire::component::Component::initMetaInformation  )  [protected, virtual]
 

The initPrototypeMetaInformation is called to initialize the component's meta information. It must be implemented by the derived component class.

Reimplemented in amire::component::ComposedComponent.

virtual void amire::component::Component::initPrototypeMetaInformation  )  [protected, virtual]
 

The initPrototypeMetaInformation is called to initialize the prototype's meta information. It must be implemented by the derived component class.

virtual bool amire::component::Component::isConnectable int  outSlotId,
const osg::ref_ptr< Component > &  receiver,
int  inSlotId
const [virtual]
 

The isConnectable method returns true when the connection between the specified out-slot of this component and the specified in-slot of the receiver component is possible. Otherwise false is returned. The default implementation compares the property types. A connection is only possible when the property types are equal. An assert exception is thrown when the specified in- or out-slot is not available or when the given receiver is null.

virtual bool amire::component::Component::isConnected int  outSlotId,
const osg::ref_ptr< Component > &  receiver,
int  inSlotId
[virtual]
 

Return true, when the given out-slot of this component is connectzed to the given in-slot of the receiver component. An exception is thrown when one of the slots is undefined or the receiver is null.

virtual bool amire::component::Component::isConnected const std::string &  outSlotName,
const osg::ref_ptr< Component > &  receiver,
const std::string &  inSlotName
[virtual]
 

Return true, when the given out-slot of this component is connectzed to the given in-slot of the receiver component. An exception is thrown when one of the slots is undefined or the receiver is null.

bool amire::component::Component::isDeleted  ) 
 

Returns true when the component is deleted. Otherwise false is returned.

bool amire::component::Component::isEmitSynchronized  ) 
 

The isEmitSynchronized method returns the synchronization setting for the out-slot emits of this component. True means for each emit the component is handled as a mutual exclusion area. False means emits on this component can be concurrently processed by several threads.

virtual bool amire::component::Component::isInSlotConnected int  inSlotId  )  [virtual]
 

Returns true when the given in-slot is connected to an out-slot. Otherwise false is returned. An exception is thrown when the in-slot id is undefined.

virtual bool amire::component::Component::isInSlotConnected const std::string &  inSlotName  )  [virtual]
 

Returns true when the given in-slot is connected to an out-slot. Otherwise false is returned. An exception is thrown when the in-slot is undefined.

virtual bool amire::component::Component::isOutSlotConnected int  outSlotId  )  [virtual]
 

Returns true when the given out-slot is connected to an in-slot. Otherwise false is returned. An exception is thrown when the out-slot id is undefined.

virtual bool amire::component::Component::isOutSlotConnected const std::string &  outSlotName  )  [virtual]
 

Returns true when the given out-slot is connected to an in-slot. Otherwise false is returned. An exception is thrown when the out-slot is undefined.

bool amire::component::Component::isPrototype  )  const
 

Returns true, when this component is a prototype. Otherwise false is returned.

void amire::component::Component::lock  )  const
 

The lock method locks this component for the current thread. Only one thread is able to get the lock for a component at the same time. The method blocks if the component is already locked until the lock is released by an unlock. They are managed in a waiting queue by the multithreading library. The lock must be used to mark the begin of a program part that is a mutual exclusion area, which means no concurrent processing is allowed and it has to be atomic for the concurrent threads. An assert exception is thrown when any trouble occurs with the locking of the component. Like the detection of a deadlock for example.

virtual osg::ref_ptr<Component> amire::component::Component::newInstance  )  const [protected, virtual]
 

The newInstance() method must be implemented by a component. It must return a new instance of the component. It must not clone the configuration.

Reimplemented in amire::component::FalseComponent, amire::component::FrameworkComponent, amire::component::LightComponent, and amire::component::TrueComponent.

int amire::component::Component::numberOfInSlots  )  const
 

The numberOfInSlots method returns the number of in-slots that are defined for this component.

int amire::component::Component::numberOfOutSlots  )  const
 

The numberOfOutSlots method returns the number of out-slots that are defined for this component.

virtual void amire::component::Component::receiveInSlotProperty int  inSlotId,
const osg::ref_ptr< const amire::property::Property > &  property
[protected, virtual]
 

The receiveInSlotProperty method must be implemented to integrate in-slots into the component implementation. It is called when the component receives a property at the in-slot specified by its in-slot id. An assert exception should be thrown for any failure case.

Reimplemented in amire::component::ComposedComponent, amire::component::RelayComponent, amire::component::LightComponent, amire::component::Visible2DComponent, and amire::component::Visible3DComponent.

int amire::component::Component::registerInSlot const std::string &  inSlotName,
const std::string &  propertyTypeName
[protected]
 

The registerInSlot method registers the given in-slot name and assigned the given property type for it. It must be used to register the integrated the in-slots into the component implementation. It returns the in-slot id for the given in-slot name. An assert exception is thrown when the given property type is null.

int amire::component::Component::registerInSlot const std::string &  inSlotName,
const osg::ref_ptr< const amire::property::PropertyType > &  propertyType
[protected]
 

The registerInSlot method registers the given in-slot name and assigned the given property type for it. It must be used to register the integrated the in-slots into the component implementation. It returns the in-slot id for the given in-slot name. An assert exception is thrown when the given property type is null.

int amire::component::Component::registerOutSlot const std::string &  outSlotName,
const std::string &  propertyTypeName
[protected]
 

The registerOutSlot method registers the given out-slot name and assigned the given property type for it. It must be used to register the integrated the out-slots into the component implementation. It returns the out-slot id for the given out-slot name. An assert exception is thrown when the given property type is null.

int amire::component::Component::registerOutSlot const std::string &  outSlotName,
const osg::ref_ptr< const amire::property::PropertyType > &  propertyType
[protected]
 

The registerOutSlot method registers the given out-slot name and assigned the given property type for it. It must be used to register the integrated the out-slots into the component implementation. It returns the out-slot id for the given out-slot name. An assert exception is thrown when the given property type is null.

virtual void amire::component::Component::reinitializeEngine MREngine engine  )  [virtual]
 

DEPRECATED: Will be renamed to to reintitialize as soon as possible!!!
The reinitializeEngine method is called by the MR engine to initialize the scene graph of the MR engine. It is called when the component manager of the MR engine has changed. The default implementation does nothing. An assert exception should be thrown in any failure case.

Reimplemented in amire::component::ComposedComponent, amire::component::FalseComponent, amire::component::LightComponent, amire::component::TrueComponent, amire::component::Visible2DComponent, and amire::component::Visible3DComponent.

virtual void amire::component::Component::releaseConfigurationProperty  )  [virtual]
 

The releaseConfigurationProperty method unlocks the component and notifies the component that the configuration property has been modified. An assert exception is thrown when the configuration property has not been requested previously.

void amire::component::Component::removeEmissionListener const osg::ref_ptr< EmissionListener > &  emissionListener  ) 
 

Removes a emission listener from the component.

void amire::component::Component::removeInSlot int  inSlotId  )  [protected]
 

Removes the specified in-slot from the in-slot registration list. An exception is thrown if the in-slot is not defined.

void amire::component::Component::removeInSlot const std::string &  inSlotName  )  [protected]
 

Removes the specified in-slot from the in-slot registration list. An exception is thrown if the in-slot is not defined.

void amire::component::Component::removeOutSlot int  outSlotId  )  [protected]
 

Removes the specified out-slot from the out-slot registration list. An exception is thrown if the out-slot is not defined.

void amire::component::Component::removeOutSlot const std::string &  outSlotName  )  [protected]
 

Removes the specified out-slot from the out-slot registration list. An exception is thrown if the out-slot is not defined.

void amire::component::Component::removeStateEmission const osg::ref_ptr< const ComponentState > &  state,
int  outSlotId
 

The removeStateEmission method removes the specified out-slot from the list of out slots that are emitted when the component state is set to the given state. An assert exception is thrown when the given state is null or when the out-slot does not exist.

void amire::component::Component::renameInSlot int  inSlotId,
const std::string &  newInSlotName
[protected]
 

Renames the specified in-slot. An exception is thrown if the in-slot is not defined.

void amire::component::Component::renameInSlot const std::string &  inSlotName,
const std::string &  newInSlotName
[protected]
 

Renames the specified in-slot. An exception is thrown if the in-slot is not defined.

void amire::component::Component::renameOutSlot int  outSlotId,
const std::string &  outInSlotName
[protected]
 

Renames the specified out-slot. An exception is thrown if the out-slot is not defined.

void amire::component::Component::renameOutSlot const std::string &  outSlotName,
const std::string &  outInSlotName
[protected]
 

Renames the specified out-slot. An exception is thrown if the out-slot is not defined.

virtual osg::ref_ptr<amire::property::StructProperty> amire::component::Component::requestConfigurationProperty  )  [virtual]
 

The requestConfigurationProperty method locks the component and returns reference pointer of the modifiable configuration property for this component. An assert exception is thrown when the configuration property is requested twice.

Reimplemented in amire::component::ComposedComponent.

void amire::component::Component::setConfigurationProperty const std::string &  structPropertyTypeName  )  [protected]
 

Sets the configuration property. Therfore, new configuration property of the specified type is created. It should only be used in the constructor of the component. An assert exception is thrown when the given property type is not available or the configuration property is already set.

void amire::component::Component::setConfigurationProperty const osg::ref_ptr< amire::property::StructProperty > &  property  )  [protected]
 

Sets the configuration property. It should only be used in the constructor of the component. An assert exception is thrown when the given property is null or the configuration property is already set.

void amire::component::Component::setEmitSynchronized bool  synchronized = false  ) 
 

The setEmitSynchronized method enables or disables the thread synchronization of all out-slot emits for this component. The default setting that all emits are not synchronized. When you set it to true the whole component becomes a mutual exclusion area.

void amire::component::Component::setMetaInformation const std::string &  name,
const osg::ref_ptr< amire::property::Property > &  property
 

Sets the meta information for the given key name.

void amire::component::Component::setName const std::string &  name  ) 
 

Sets the name of the component in its context. The name has to be unique in the context. The '.'-character is not allowed to be part of the name. It is reserved as qualifier seperator, because of the namespaced defined by composed components.

void amire::component::Component::setPriority int  priority  ) 
 

Sets the priority of this component in its context. If the context is a composed component, then the priority of this component is relative to the priority of the composed component. The priority determines the call order of the functional callbacks.

virtual void amire::component::Component::setPrototype  )  [protected, virtual]
 

Sets this component as a component prototype. Component prototypes are not allowed to be used as component instances. This method is for internal use only.

void amire::component::Component::setPrototypeMetaInformation const std::string &  name,
const osg::ref_ptr< amire::property::Property > &  property
 

Sets the meta information of the prototype for the given key name.

void amire::component::Component::setPrototypeName const std::string &  prototypeName  )  [protected]
 

The setPrototypeName method sets the name of the component prototype. It should be used in the constructor of the component prototype implementation to specify its name.

void amire::component::Component::setState const osg::ref_ptr< const ComponentState > &  state  ) 
 

The setState method sets the component state to the given state and emits all out-slots that are on the list of out-slots that have to be emitted for this state. An assert exception is thrown when the given state is null.

void amire::component::Component::setStateEmissions const osg::ref_ptr< const ComponentState > &  state,
const std::vector< int > &  outSlotIds
 

The setStateEmissions method replaces the previously defined list out-slots that must be emitted when the component state is set to the given state with the list of out-slot specified in the given vector of out-slot ids. An assert exception is thrown when the given state is null or when a out-slot out of the vector does not exist.

void amire::component::Component::unlock  )  const
 

The unlock method unlocks this component for the current thread. The Only one thread is able to get the lock for a component at the same time. The next thread in the waiting queue gets the lock and can proceed with the mutual exclusion area. The unlock must be used to mark the end of such a mutual exclusion area. An assert exception is thrown when any trouble occurs with the unlocking of the component.


Friends And Related Function Documentation

friend class ComponentContext [friend]
 

friend class ComponentManager [friend]
 

friend class ComposedComponent [friend]
 

friend class Connection [friend]
 

friend class MREngine [friend]
 


The documentation for this class was generated from the following file:
Generated on Tue May 20 17:23:56 2003 for AMIRE-Framework by doxygen1.3