A nameserver for Orocos Device classes. More...
#include <rtt/NameServer.hpp>
Classes | |
class | name_iterator |
An Iterator to iterate over the registered names. More... | |
class | value_iterator |
An Iterator to iterate over the registered objects. More... | |
Public Types | |
typedef _ValueType | ValueType |
typedef std::string | NameType |
typedef std::map< NameType, ValueType > | Rep |
typedef Rep::iterator | iterator |
The iterator for iterating over the internal representation. | |
typedef Rep::const_iterator | const_iterator |
The const_iterator for iterating over the internal representation. | |
Public Member Functions | |
NameServer () | |
Construct an empty NameServer. | |
~NameServer () | |
Destruct a nameserver. | |
bool | isNameRegistered (const NameType &s) const |
Determine if a given name is registered. | |
bool | isObjectRegistered (const ValueType o) const |
Determine if a given object is registered. | |
ValueType | getObject (const NameType &s) const |
Get the object registered for a name. | |
const NameType & | getName (const ValueType s) const |
Get the name registered for a object. | |
bool | registerObject (const ValueType obj, const NameType &name) |
Register an object with a name. | |
void | unregisterObject (const ValueType obj) |
Remove an object from the nameserver registrations. | |
void | unregisterName (const NameType &name) |
Remove a name from the nameserver registrations. | |
name_iterator | getNameBegin () |
Get an iterator to the beginning of the names list. | |
name_iterator | getNameEnd () |
Get an iterator to the end of the names list. | |
value_iterator | getValueBegin () |
Get an iterator to the beginning of the objects list. | |
value_iterator | getValueEnd () |
Get an iterator to the end of the objects list. |
A nameserver for Orocos Device classes.
This class allows to globally set up device driver objects and find them back in the same process by querying this class. Every Orocos device driver type has a Device::nameserver type which allows retrieval of the object:
// At application startup code: Device* init_device = new Device("device_name"); // ... // In other places: Device* myDevice = Device::nameserver.getObject("device_name");
In case two objects are registered with the same name, the first one is kept and the second one rejected.
_ValueType | The type of objects you want to have nameserved( usually a pointer type ). |
Definition at line 71 of file NameServer.hpp.
const NameType& RTT::NameServer< _ValueType >::getName | ( | const ValueType | s | ) | const [inline] |
Get the name registered for a object.
s | the object of the name you need |
Definition at line 153 of file NameServer.hpp.
ValueType RTT::NameServer< _ValueType >::getObject | ( | const NameType & | s | ) | const [inline] |
Get the object registered for a name.
s | the name of the object you need |
Definition at line 136 of file NameServer.hpp.
bool RTT::NameServer< _ValueType >::isNameRegistered | ( | const NameType & | s | ) | const [inline] |
Determine if a given name is registered.
s | the name to check |
Definition at line 105 of file NameServer.hpp.
Referenced by RTT::NameServer< AnalogOutInterface * >::registerObject().
bool RTT::NameServer< _ValueType >::isObjectRegistered | ( | const ValueType | o | ) | const [inline] |
Determine if a given object is registered.
o | the object to check |
Definition at line 117 of file NameServer.hpp.
bool RTT::NameServer< _ValueType >::registerObject | ( | const ValueType | obj, | |
const NameType & | name | |||
) | [inline] |
Register an object with a name.
If an object with such a name already exists, the present one will not be overwritten, and this call is a no-op.
obj | The instance you wish to register with a name | |
name | The name of the object |
Definition at line 172 of file NameServer.hpp.
void RTT::NameServer< _ValueType >::unregisterName | ( | const NameType & | name | ) | [inline] |
Remove a name from the nameserver registrations.
name | the name of the object you want remove |
Definition at line 221 of file NameServer.hpp.
void RTT::NameServer< _ValueType >::unregisterObject | ( | const ValueType | obj | ) | [inline] |
Remove an object from the nameserver registrations.
obj | the object you want removed |
Definition at line 190 of file NameServer.hpp.