AttributeRepository Class Reference

#include </home/sspr/src/www/orocos-1.0/export/build/orocos-rtt-1.2.2/build/rtt/AttributeRepository.hpp>

List of all members.


Detailed Description

A class for keeping track of Attribute, Constant and Property objects of a TaskContext.

It allows to store objects of these types and retrieve this type. It is used by the script parsers to browse the attributes and properties of a TaskContext.


Public Types

typedef std::vector< std::string > AttributeNames

Public Member Functions

 AttributeRepository ()
 Create an empty AttributeRepository.
void clear ()
 Erases the whole repository.
bool hasAttribute (const std::string &name) const
 Check if an attribute is present.
bool addAttribute (AttributeBase *a)
 Add an AttributeBase which remains owned by the user.
template<class T>
Attribute< T > * getAttribute (const std::string &name) const
void removeAttribute (const std::string &name)
 Remove an attribute from the repository.
bool addConstant (AttributeBase *c)
 Add a Constant with a given value.
template<class T>
Constant< T > * getConstant (const std::string &name) const
bool hasProperty (const std::string &name) const
 Check if a property is present.
bool addProperty (PropertyBase *pb)
 Add an PropertyBase as a property.
bool removeProperty (PropertyBase *p)
 Remove a previously added Property and associated attribute.
bool setValue (AttributeBase *ab)
 Transfer the ownership of an attribute to the repository.
AttributeBasegetValue (const std::string &name) const
bool removeValue (const std::string &name)
 Delete a value added with setValue from the repository.
template<class T>
bool addDataObject (DataObjectInterface< T > *doi)
 Add a DataObject as an Attribute.
AttributeRepositorycopy (std::map< const DataSourceBase *, DataSourceBase * > &repl, bool instantiate) const
 Return a new copy of this repository with the copy operation semantics.
AttributeNames names () const
 Return the names of all attributes.
PropertyBagproperties () const
 Return a bag of all properties.


Member Function Documentation

bool addAttribute ( AttributeBase a  )  [inline]

Add an AttributeBase which remains owned by the user.

Parameters:
a remains owned by the user, and becomes served by the repository.

bool addConstant ( AttributeBase c  )  [inline]

Add a Constant with a given value.

See also:
getConstant

bool addProperty ( PropertyBase pb  ) 

Add an PropertyBase as a property.

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

bool removeProperty ( PropertyBase p  ) 

Remove a previously added Property and associated attribute.

Returns:
false if no such property by that name exists.

bool setValue ( AttributeBase ab  ) 

Transfer the ownership of an attribute to the repository.

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

bool addDataObject ( DataObjectInterface< T > *  doi  )  [inline]

Add a DataObject as an Attribute.

This is especially useful to add the thread-safe DataObjects as thread-safe attributes. You can retrieve it through getValue().

Parameters:
doi The DataObject, which remains owned by the user.
Returns:
true if doi->getName() is unique within this repository.

AttributeRepository* copy ( std::map< const DataSourceBase *, DataSourceBase * > &  repl,
bool  instantiate 
) const

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

Parameters:
instantiate set 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:
CommandInterface
Note:
this does not copy the properties() within this repository.

PropertyBag* properties (  )  const

Return a bag of all properties.

Returns:
null if none present.


The documentation for this class was generated from the following file:
Generated on Fri Oct 19 16:27:21 2007 for Orocos by  doxygen 1.5.1