A nameserver for Orocos Device classes. More...
#include <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 Rep::const_iterator | const_iterator |
typedef Rep::iterator | iterator |
typedef std::string | NameType |
typedef std::map< NameType, ValueType > | Rep |
typedef _ValueType | ValueType |
Public Member Functions | |
const NameType & | getName (const ValueType s) const |
Get the name registered for a object. | |
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. | |
ValueType | getObject (const NameType &s) const |
Get the object registered for a name. | |
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. | |
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. | |
NameServer () | |
Construct an empty NameServer. | |
bool | registerObject (const ValueType obj, const NameType &name) |
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. | |
void | unregisterName (const NameType &name) |
Remove a name from the nameserver registrations. | |
void | unregisterObject (const ValueType obj) |
Remove an object from the nameserver registrations. | |
~NameServer () | |
Destruct a nameserver. | |
Private Attributes | |
Rep | objects |
Static Private Attributes | |
static NameType | NoName |
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.
typedef Rep::const_iterator RTT::dev::NameServer< _ValueType >::const_iterator |
The const_iterator for iterating over the internal representation
Definition at line 84 of file NameServer.hpp.
typedef Rep::iterator RTT::dev::NameServer< _ValueType >::iterator |
The iterator for iterating over the internal representation
Definition at line 80 of file NameServer.hpp.
typedef std::string RTT::dev::NameServer< _ValueType >::NameType |
Definition at line 75 of file NameServer.hpp.
typedef std::map<NameType, ValueType> RTT::dev::NameServer< _ValueType >::Rep |
Definition at line 76 of file NameServer.hpp.
typedef _ValueType RTT::dev::NameServer< _ValueType >::ValueType |
Definition at line 74 of file NameServer.hpp.
RTT::dev::NameServer< _ValueType >::NameServer | ( | ) | [inline] |
Construct an empty NameServer.
Definition at line 89 of file NameServer.hpp.
RTT::dev::NameServer< _ValueType >::~NameServer | ( | ) | [inline] |
Destruct a nameserver.
Definition at line 95 of file NameServer.hpp.
const NameType& RTT::dev::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.
name_iterator RTT::dev::NameServer< _ValueType >::getNameBegin | ( | ) | [inline] |
Get an iterator to the beginning of the names list.
Definition at line 368 of file NameServer.hpp.
name_iterator RTT::dev::NameServer< _ValueType >::getNameEnd | ( | ) | [inline] |
Get an iterator to the end of the names list.
Definition at line 373 of file NameServer.hpp.
ValueType RTT::dev::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.
value_iterator RTT::dev::NameServer< _ValueType >::getValueBegin | ( | ) | [inline] |
Get an iterator to the beginning of the objects list.
Definition at line 378 of file NameServer.hpp.
value_iterator RTT::dev::NameServer< _ValueType >::getValueEnd | ( | ) | [inline] |
Get an iterator to the end of the objects list.
Definition at line 383 of file NameServer.hpp.
bool RTT::dev::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.
bool RTT::dev::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::dev::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::dev::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::dev::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.
std::string RTT::dev::NameServer< T >::NoName [static, private] |
Definition at line 387 of file NameServer.hpp.
Rep RTT::dev::NameServer< _ValueType >::objects [private] |
Definition at line 386 of file NameServer.hpp.