#include <rtt/PropertyBag.hpp>
Classes | |
| struct | FindProp |
| A function object for finding a Property by name. More... | |
Public Types | |
|
typedef std::vector < PropertyBase * > | Properties |
| The container in which the properties are stored. | |
| typedef Properties | PropertyContainerType |
| Deprecated, use Properties. | |
| typedef Properties::iterator | iterator |
| An iterator over the Properties. | |
| typedef Properties::const_iterator | const_iterator |
| A const iterator over the Properties. | |
| typedef std::vector< std::string > | Names |
| The container to hold names of Properties. | |
Public Member Functions | |
| PropertyBag () | |
| The default constructor. | |
| PropertyBag (const std::string &_type) | |
| The typed constructor. | |
| PropertyBag (const PropertyBag &orig) | |
| The copy constructor. | |
| ~PropertyBag () | |
| Destroy this object and destroy all owned properties. | |
| void | add (PropertyBase *p) |
| Add a valid property to the container. | |
| void | remove (PropertyBase *p) |
| Remove a property from the container. | |
| bool | addProperty (PropertyBase *p) |
| Add a valid property to the container. | |
| bool | removeProperty (PropertyBase *p) |
| Remove a property from the container. | |
| bool | ownProperty (PropertyBase *p) |
| Set a property to be owned by this bag. | |
| bool | ownsProperty (PropertyBase *p) |
| Returns true if this property is owned by this Bag. | |
| void | clear () |
| Removes all PropertyBases from this bag, without deleting them. | |
| void | list (Names &names) const |
| List the names of all properties. | |
| Names | list () const |
| List the names of all properties. | |
| bool | empty () const |
| Return true if no properties are present in this bag. | |
| template<class T > | |
| Property< T > * | getProperty (const std::string &name) const |
| Get a Property<T> with name name. | |
| PropertyBase * | getItem (int i) const |
| Returns the i'th Property, starting from 0. | |
| size_t | size () const |
| Get the number of Properties in this bag. | |
| void | identify (PropertyIntrospection *pi) const |
| Identify the contents of this bag through introspection. | |
| void | identify (PropertyBagVisitor *pi) const |
| Identify the contents of this bag through introspection. | |
| PropertyBase * | find (const std::string &name) const |
| Find the PropertyBase with name name. | |
| template<class T > | |
| PropertyBase * | findValue (const T &value) const |
| Finds the PropertyBase by value. | |
| PropertyBag & | operator= (const PropertyBag &orig) |
| This assignment assigns all PropertyBases of another bag in this bag, making an exact copy or the original. | |
| PropertyBag & | operator<<= (const PropertyBag &source) |
| The update operator. | |
| PropertyBag & | operator<< (PropertyBase *item) |
| The 'add' operator. | |
| const std::string & | getType () const |
| void | setType (const std::string &newtype) |
| Properties & | getProperties () |
| Returns a list of all the property objects in this bag. | |
| const Properties & | getProperties () const |
| Returns a list of all the property objects in this bag. | |
| Properties | getProperties (const std::string &name) const |
| Returns a list of all property objects with the name name. | |
| Names | getPropertyNames () const |
| Returns a list of all the names of the properties in this bag. | |
| iterator | begin () |
| const_iterator | begin () const |
| iterator | end () |
| const_iterator | end () const |
Protected Attributes | |
| Properties | mproperties |
| Properties | mowned_props |
| std::string | type |
All operations on a PropertyBag are non recursive. The PropertyBag itself is not aware of the possible hierarchical structure. You need to use the global scope functions for handling hierarchical structures.
A PropertyBag is not the owner of the properties within. It defines a group of properties, nothing more. When this group of properties contains another PropertyBag, this bag is considered as a 'pointer' to other properties. Even such a bag is not owned by the PropertyBag.
bag.add(&prop).
PropertyBase* pb = bag.find( "name" ).
Property<ClassT> pb = bag.getProperty<ClassT>( "name" ).
Definition at line 98 of file PropertyBag.hpp.
| RTT::PropertyBag::PropertyBag | ( | const std::string & | _type | ) |
| RTT::PropertyBag::PropertyBag | ( | const PropertyBag & | orig | ) |
The copy constructor.
The copy constructor of the PropertyBag makes non-deep copies of its elements.
| void RTT::PropertyBag::add | ( | PropertyBase * | p | ) |
Add a valid property to the container.
Analogous to addProperty.
| p | Pointer to the property to be added. |
Referenced by RTT::decomposeProperty(), and RTT::PropertyBagIntrospector::introspect().
| bool RTT::PropertyBag::addProperty | ( | PropertyBase * | p | ) |
Add a valid property to the container.
| p | Pointer to the property to be added. |
| void RTT::PropertyBag::clear | ( | ) |
Removes all PropertyBases from this bag, without deleting them.
This is a not recursive function.
| PropertyBase* RTT::PropertyBag::find | ( | const std::string & | name | ) | const |
Find the PropertyBase with name name.
This function returns the first match.
| name | The name of the property to search for. |
Referenced by RTT::composeProperty().
| PropertyBase* RTT::PropertyBag::findValue | ( | const T & | value | ) | const [inline] |
Finds the PropertyBase by value.
This function returns the first match.
| value | The value the Property should have | |
| T | The data type of the value. |
Definition at line 267 of file PropertyBag.hpp.
References RTT::PropertyBase::ready(), and RTT::Property< T >::value().
| PropertyBase* RTT::PropertyBag::getItem | ( | int | i | ) | const [inline] |
Returns the i'th Property, starting from 0.
Definition at line 229 of file PropertyBag.hpp.
Referenced by RTT::composeProperty().
| Property<T>* RTT::PropertyBag::getProperty | ( | const std::string & | name | ) | const [inline] |
Get a Property<T> with name name.
| T | The type of which this property is. | |
| name | The name of the property to search for. |
Definition at line 217 of file PropertyBag.hpp.
Referenced by RTT::composeProperty().
| Names RTT::PropertyBag::list | ( | ) | const |
List the names of all properties.
| void RTT::PropertyBag::list | ( | Names & | names | ) | const |
List the names of all properties.
| names | The container which will be used to store all available property names in. |
| PropertyBag& RTT::PropertyBag::operator<< | ( | PropertyBase * | item | ) | [inline] |
The 'add' operator.
Equivalent to add().
| item | The Property to add to this bag. |
Definition at line 299 of file PropertyBag.hpp.
| PropertyBag& RTT::PropertyBag::operator<<= | ( | const PropertyBag & | source | ) |
The update operator.
It updates this bag so it contains all PropertyBases of another bag, removing own PropertyBases if duplicate names exist in the source bag.
| void RTT::PropertyBag::remove | ( | PropertyBase * | p | ) |
Remove a property from the container.
Analogous to removeProperty.
| p | Pointer to the property to be removed. |
| bool RTT::PropertyBag::removeProperty | ( | PropertyBase * | p | ) |
Remove a property from the container.
| p | Pointer to the property to be removed. |
1.5.8