Orocos Real-Time Toolkit  2.9.0
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
RTT::types::GlobalsRepository Class Reference

An RTT::ConfigurationInterface for holding global variables. More...

#include <rtt/types/GlobalsRepository.hpp>

Inheritance diagram for RTT::types::GlobalsRepository:
RTT::ConfigurationInterface

Public Types

typedef boost::shared_ptr< GlobalsRepositoryshared_ptr
 
typedef std::vector< std::string > AttributeNames
 A vector containing the names of all attribute objects in this repository. More...
 
typedef std::vector< base::AttributeBase * > AttributeObjects
 A vector containing pointers to all attribute objects stored in this repository. More...
 

Public Member Functions

void clear ()
 Erases the whole repository. More...
 
bool hasAttribute (const std::string &name) const
 Check if an attribute is present in this interface. More...
 
template<class T >
bool addAttribute (const std::string &name, T &attr)
 Adds a variable of any type as read/write attribute to the configuration interface. More...
 
template<class T >
Attribute< T > & addAttribute (const std::string &name, Attribute< T > &attr)
 Adds an existing attribute object to the configuration interface. More...
 
bool addAttribute (base::AttributeBase &a)
 Add an base::AttributeBase which remains owned by the user. More...
 
template<class T >
bool addConstant (const std::string &name, const T &cnst)
 Adds a variable of any type as read-only attribute to the configuration interface. More...
 
template<class T >
Constant< T > & addConstant (const std::string &name, Constant< T > &cnst)
 Adds an existing constant object to the configuration interface. More...
 
bool addConstant (base::AttributeBase &c)
 Add a Constant with a given value. More...
 
template<class T >
Property< T > & addProperty (const std::string &name, T &prop)
 Adds a variable of any type as a property to the configuration interface. More...
 
template<class T >
Property< T > & addProperty (const std::string &name, Property< T > &prop)
 Adds an existing property object to the configuration interface. More...
 
bool addProperty (base::PropertyBase &pb)
 Add an base::PropertyBase as a property. More...
 
base::AttributeBasegetAttribute (const std::string &name) const
 
void removeAttribute (const std::string &name)
 Remove an attribute from the repository. More...
 
base::AttributeBasegetConstant (const std::string &name) const
 
bool hasProperty (const std::string &name) const
 Check if a property is present. More...
 
bool removeProperty (base::PropertyBase &p)
 Remove a previously added Property and associated attribute. More...
 
base::PropertyBasegetProperty (const std::string &name) const
 Get a Property with name name. More...
 
bool setValue (base::AttributeBase *ab)
 Transfer the ownership of an attribute to the repository. More...
 
base::AttributeBasegetValue (const std::string &name) const
 
bool removeValue (const std::string &name)
 Delete a value added with setValue from the repository. More...
 
ConfigurationInterfacecopy (std::map< const base::DataSourceBase *, base::DataSourceBase * > &repl, bool instantiate) const
 Return a new copy of this repository with the copy operation semantics. More...
 
void loadValues (AttributeObjects const &new_values)
 Adds these attributes to this repository. More...
 
AttributeObjects const & getValues () const
 Returns all attributes in this repository. More...
 
AttributeNames getAttributeNames () const
 Return the names of all attributes in this repository. More...
 
PropertyBagproperties ()
 Return a bag of all properties. More...
 

Static Public Member Functions

static shared_ptr Instance ()
 
static void Release ()
 Frees all globals. More...
 

Protected Types

typedef std::vector< base::AttributeBase * > map_t
 

Protected Member Functions

bool chkPtr (const std::string &where, const std::string &name, const void *ptr)
 

Protected Attributes

map_t values
 
PropertyBag bag
 

Detailed Description

An RTT::ConfigurationInterface for holding global variables.

The RTT uses this to export enumerations to scripting, but users may extend this as well for their own applications.

It is recommended to use the setValue() function to add globals, such that they become owned by the GlobalsRepository.

Definition at line 54 of file GlobalsRepository.hpp.

Member Typedef Documentation

typedef std::vector<std::string> RTT::ConfigurationInterface::AttributeNames
inherited

A vector containing the names of all attribute objects in this repository.

Definition at line 74 of file ConfigurationInterface.hpp.

A vector containing pointers to all attribute objects stored in this repository.

Definition at line 80 of file ConfigurationInterface.hpp.

typedef std::vector<base::AttributeBase*> RTT::ConfigurationInterface::map_t
protectedinherited

Definition at line 336 of file ConfigurationInterface.hpp.

Definition at line 58 of file GlobalsRepository.hpp.

Member Function Documentation

template<class T >
bool RTT::ConfigurationInterface::addAttribute ( const std::string &  name,
T &  attr 
)
inlineinherited

Adds a variable of any type as read/write attribute to the configuration interface.

An Alias is created which causes contents of the attr variable always to be in sync with the contents of the attribute object in the interface.

Parameters
nameThe name of this attribute
attrThe variable that will be aliased.

Definition at line 101 of file ConfigurationInterface.hpp.

template<class T >
Attribute<T>& RTT::ConfigurationInterface::addAttribute ( const std::string &  name,
Attribute< T > &  attr 
)
inlineinherited

Adds an existing attribute object to the configuration interface.

Parameters
nameThe name of this attribute. attr will be initialized with this name.
attrThe attribute to add
Returns
the Attribute object by reference, which you can further query or use.
Postcondition
attr.ready() == true

Definition at line 115 of file ConfigurationInterface.hpp.

References RTT::base::AttributeBase::ready(), and RTT::base::AttributeBase::setName().

bool RTT::ConfigurationInterface::addAttribute ( base::AttributeBase a)
inlineinherited

Add an base::AttributeBase which remains owned by the user.

This is a low-level function that can be used if you already created an Attribute object that does not belong yet to a service.

Parameters
aremains owned by the user, and becomes served by the repository.

Definition at line 204 of file ConfigurationInterface.hpp.

References RTT::base::AttributeBase::clone(), and RTT::base::AttributeBase::getDataSource().

template<class T >
bool RTT::ConfigurationInterface::addConstant ( const std::string &  name,
const T &  cnst 
)
inlineinherited

Adds a variable of any type as read-only attribute to the configuration interface.

An Alias is created which causes contents of the attribute always to be in sync with the contents of cnst, but it can only be read through the interface.

Parameters
nameThe name of this attribute
cnstThe variable that will be aliased.

Definition at line 135 of file ConfigurationInterface.hpp.

template<class T >
Constant<T>& RTT::ConfigurationInterface::addConstant ( const std::string &  name,
Constant< T > &  cnst 
)
inlineinherited

Adds an existing constant object to the configuration interface.

Parameters
nameThe name of this constant. cnst will be initialized with this name.
cnstThe constant to add. If cnst has not been initialized, it will be initialized to T(). You can change it later-on using the Constant's API.
Returns
the Constant object by reference, which you can further query or use.
Postcondition
cnst.ready() == true

Definition at line 150 of file ConfigurationInterface.hpp.

References RTT::base::AttributeBase::ready(), and RTT::base::AttributeBase::setName().

bool RTT::ConfigurationInterface::addConstant ( base::AttributeBase c)
inlineinherited

Add a Constant with a given value.

See also
getConstant

Definition at line 232 of file ConfigurationInterface.hpp.

References RTT::base::AttributeBase::clone(), and RTT::base::AttributeBase::getDataSource().

template<class T >
Property<T>& RTT::ConfigurationInterface::addProperty ( const std::string &  name,
T &  prop 
)
inlineinherited

Adds a variable of any type as a property to the configuration interface.

A Property is created which causes contents of the property always to be in sync with the contents of prop.

Parameters
nameThe name of this property
propThe variable that will be aliased.
Returns
the Property object by reference, which you can further query or document.

Definition at line 171 of file ConfigurationInterface.hpp.

Referenced by RTT::scripting::ScriptingService::ScriptingService().

template<class T >
Property<T>& RTT::ConfigurationInterface::addProperty ( const std::string &  name,
Property< T > &  prop 
)
inlineinherited

Adds an existing property object to the configuration interface.

Parameters
nameThe name of this property. prop will be initialized with this name.
propThe property to add
Returns
the Property object by reference, which you can further query or document.
Postcondition
prop.ready() == true

Definition at line 184 of file ConfigurationInterface.hpp.

References RTT::base::PropertyBase::ready(), and RTT::base::PropertyBase::setName().

bool RTT::ConfigurationInterface::addProperty ( base::PropertyBase pb)
inherited

Add an base::PropertyBase as a property.

Returns
false if a property with the same name already exists.
See also
removeProperty

Definition at line 90 of file ConfigurationInterface.cpp.

References RTT::base::PropertyBase::getName().

bool RTT::ConfigurationInterface::chkPtr ( const std::string &  where,
const std::string &  name,
const void *  ptr 
)
protectedinherited

Definition at line 156 of file ConfigurationInterface.cpp.

References RTT::Error.

void RTT::ConfigurationInterface::clear ( )
inherited

Erases the whole repository.

Definition at line 70 of file ConfigurationInterface.cpp.

References RTT::internal::values().

Referenced by RTT::Service::clear().

ConfigurationInterface * RTT::ConfigurationInterface::copy ( std::map< const base::DataSourceBase *, base::DataSourceBase * > &  repl,
bool  instantiate 
) const
inherited

Return a new copy of this repository with the copy operation semantics.

Parameters
instantiateset to true if you want a copy which will upon any future copy return the same DataSources, thus 'fixating' or 'instantiating' the DataSources.
See also
base::ActionInterface
Note
this does not copy the properties() within this repository.

Definition at line 60 of file ConfigurationInterface.cpp.

References RTT::ConfigurationInterface::setValue(), and RTT::internal::values().

Referenced by RTT::scripting::StateMachineService::copy().

base::AttributeBase* RTT::ConfigurationInterface::getAttribute ( const std::string &  name) const
inlineinherited
std::vector< std::string > RTT::ConfigurationInterface::getAttributeNames ( ) const
inherited

Return the names of all attributes in this repository.

Definition at line 138 of file ConfigurationInterface.cpp.

References RTT::base::AttributeBase::getName(), and RTT::internal::values().

Referenced by RTT_corba_CConfigurationInterface_i::getAttributeList().

base::AttributeBase* RTT::ConfigurationInterface::getConstant ( const std::string &  name) const
inlineinherited

Definition at line 245 of file ConfigurationInterface.hpp.

References RTT::removeProperty().

base::PropertyBase* RTT::ConfigurationInterface::getProperty ( const std::string &  name) const
inlineinherited

Get a Property with name name.

Parameters
nameThe name of the property to search for.
Returns
The PropertyBase with this name, zero if it does not exist.

Definition at line 275 of file ConfigurationInterface.hpp.

AttributeBase * RTT::ConfigurationInterface::getValue ( const std::string &  name) const
inherited
AttributeObjects const& RTT::ConfigurationInterface::getValues ( ) const
inlineinherited

Returns all attributes in this repository.

Definition at line 320 of file ConfigurationInterface.hpp.

References RTT::internal::values().

Referenced by RTT::scripting::StateMachineService::copy(), and RTT::scripting::ExpressionParser::getHandle().

bool RTT::ConfigurationInterface::hasAttribute ( const std::string &  name) const
inherited
bool RTT::ConfigurationInterface::hasProperty ( const std::string &  name) const
inherited

Check if a property is present.

Definition at line 124 of file ConfigurationInterface.cpp.

GlobalsRepository::shared_ptr GlobalsRepository::Instance ( )
static
void RTT::ConfigurationInterface::loadValues ( AttributeObjects const &  new_values)
inherited

Adds these attributes to this repository.

Definition at line 145 of file ConfigurationInterface.cpp.

References RTT::internal::values().

PropertyBag * RTT::ConfigurationInterface::properties ( )
inherited
void GlobalsRepository::Release ( )
static

Frees all globals.

Definition at line 52 of file GlobalsRepository.cpp.

Referenced by __os_exit().

void RTT::ConfigurationInterface::removeAttribute ( const std::string &  name)
inherited

Remove an attribute from the repository.

Definition at line 96 of file ConfigurationInterface.cpp.

Referenced by RTT::scripting::ExpressionParser::getHandle().

bool RTT::ConfigurationInterface::removeProperty ( base::PropertyBase p)
inherited

Remove a previously added Property and associated attribute.

Returns
false if no such property exists.

Definition at line 129 of file ConfigurationInterface.cpp.

References RTT::base::PropertyBase::getName().

bool RTT::ConfigurationInterface::removeValue ( const std::string &  name)
inherited

Delete a value added with setValue from the repository.

Definition at line 100 of file ConfigurationInterface.cpp.

References RTT::base::AttributeBase::getName(), and RTT::internal::values().

bool RTT::ConfigurationInterface::setValue ( base::AttributeBase ab)
inherited

Transfer the ownership of an attribute to the repository.

Parameters
abThe attribute which becomes owned by this repository.
Returns
false if an Attribute with the same name already present.

Definition at line 78 of file ConfigurationInterface.cpp.

References RTT::base::AttributeBase::getDataSource(), RTT::base::AttributeBase::getName(), and RTT::internal::values().

Referenced by RTT::ConfigurationInterface::copy(), and RTT::scripting::ExpressionParser::getHandle().

Member Data Documentation

PropertyBag RTT::ConfigurationInterface::bag
protectedinherited

Definition at line 338 of file ConfigurationInterface.hpp.

map_t RTT::ConfigurationInterface::values
protectedinherited

The documentation for this class was generated from the following files: