![]()  | 
  
    RobWorkProject
    23.9.11-
    
   | 
 
Container for a collection of Property Objects. More...
#include <PropertyMap.hpp>
Public Types | |
| typedef rw::core::Ptr< PropertyMap > | Ptr | 
| smart pointer type to this class  | |
| typedef std::function< void(PropertyMap *, rw::core::PropertyBase *)> | PropertyChangedListener | 
| Method signature for a callback function.  | |
| typedef MapType::const_iterator | iterator | 
| Iterator for const PropertyBase::Ptr.  | |
| typedef rw::core::iter_pair< iterator > | Range | 
| Type for a range of properties.  | |
Public Member Functions | |
| PropertyMap () | |
| Constructor.  | |
| PropertyMap (std::string name) | |
| constructor  More... | |
| ~PropertyMap () | |
| Destructor.  | |
| PropertyMap (const PropertyMap &other) | |
| Copy constructor.  | |
| PropertyMap & | operator= (const PropertyMap &other) | 
| Assignment operator.  | |
| void | swap (PropertyMap &other) | 
| swap operator.  | |
| void | clear () | 
| Clear the content of the property map.  | |
| const std::string & | getName () const | 
| get the name of this propertymap  More... | |
| template<class T > | |
| rw::core::Ptr< rw::core::Property< T > > | set (const std::string &identifier, const T &value) | 
| Set the value of a property.  More... | |
| template<typename T > | |
| rw::core::Ptr< rw::core::Property< T > > | add (const std::string &identifier, const std::string &description, const T &value) | 
| Add a property to the map. If a property with the same identifier already exists then nothing is added/changed and the existing property is returned.  More... | |
| template<typename T > | |
| rw::core::Ptr< rw::core::Property< T > > | addForce (const std::string &identifier, const std::string &description, const T &value) | 
| Add a property to the map. If a property with the same identifier already exists then the value and description are changed and the existing property is returned.  More... | |
| bool | add (rw::core::PropertyBase::Ptr property) | 
| Adds a property to the map.  More... | |
| template<class T > | |
| T * | getPtr (const std::string &identifier) | 
| Get the value of a property or NULL if no such property.  More... | |
| template<class T > | |
| const T * | getPtr (const std::string &identifier) const | 
| Get the value of a property or NULL if no such property.  More... | |
| template<class T > | |
| T & | get (const std::string &identifier) | 
| Get the value of a property.  More... | |
| template<class T > | |
| const T & | get (const std::string &identifier) const | 
| Get the value of a property.  More... | |
| template<class T > | |
| T & | get (const std::string &identifier, const T &defval) | 
| Get the value of a property if it exists.  More... | |
| template<class T > | |
| const T & | get (const std::string &identifier, const T &defval) const | 
| Get the value of a property.  More... | |
| bool | has (const std::string &identifier) const | 
| True if a specific property exists.  More... | |
| size_t | size () const | 
| The number of properties.  | |
| bool | empty () const | 
| True iff the property map contains no properties.  | |
| bool | erase (const std::string &identifier) | 
| Remove a property.  More... | |
| template<class T > | |
| rw::core::Ptr< rw::core::Property< T > > | findProperty (const std::string &identifier) const | 
| Find the property for an identifier.  More... | |
| rw::core::PropertyBase::Ptr | findPropertyBase (const std::string &identifier) | 
| Find the property base for an identifier.  More... | |
| const rw::core::PropertyBase::Ptr | findPropertyBase (const std::string &identifier) const | 
| Find the property base for an identifier.  More... | |
| void | addChangedListener (PropertyChangedListener callback) | 
| Add listener to be call, when the property changes.  More... | |
| void | clearChangedListeners () | 
| Clears the list of changed listeners.  | |
| void | notifyListeners (rw::core::PropertyBase *base=NULL) | 
| Notifies listeners about a change in the Property.  | |
| void | propertyChangedListener (rw::core::PropertyBase *base) | 
| used for listening for property changes in the map  More... | |
| Range | getProperties () const | 
| Range of all PropertyBase* objects stored.  More... | |
| template<> | |
| rw::core::Ptr< Property< rw::math::Q > > | findProperty (const std::string &identifier) const | 
| Find the property for an identifier.  More... | |
Container for a collection of Property Objects.
This container is used to bind various user information to for example Frame.
Example: Getting a string property with ID "Camera" from a frame
      
  | 
  inline | 
constructor
| name | [in] name of this propertymap | 
      
  | 
  inline | 
Add a property to the map. If a property with the same identifier already exists then nothing is added/changed and the existing property is returned.
This will fire a PropertyChangedEvent (if a new property is added).
| identifier | [in] Property identifier. | 
| description | [in] Property description. | 
| value | [in] Property value. | 
| bool add | ( | rw::core::PropertyBase::Ptr | property | ) | 
Adds a property to the map.
This will fire a PropertyChangedEvent.
| property | [in] Property to add | 
| void addChangedListener | ( | PropertyChangedListener | callback | ) | 
Add listener to be call, when the property changes.
| callback | [in] Callback method | 
      
  | 
  inline | 
Add a property to the map. If a property with the same identifier already exists then the value and description are changed and the existing property is returned.
This will fire a PropertyChangedEvent.
| identifier | [in] Property identifier. | 
| description | [in] Property description. | 
| value | [in] Property value. | 
| bool erase | ( | const std::string & | identifier | ) | 
Remove a property.
      
  | 
  inline | 
Find the property for an identifier.
The method finds the Property<T> object having a given identifier. If no property with that identifier exists or if the value of the property is not of type T then NULL is returned.
| identifier | [in] property identifier | 
| rw::core::Ptr<Property<rw::math::Q> > findProperty | ( | const std::string & | identifier | ) | const | 
Find the property for an identifier.
The method finds the Property<T> object having a given identifier. If no property with that identifier exists or if the value of the property is not of type T then NULL is returned.
| identifier | [in] property identifier | 
| rw::core::PropertyBase::Ptr findPropertyBase | ( | const std::string & | identifier | ) | 
Find the property base for an identifier.
The find methods returns pointer to PropertyBase object or NULL if a property base with that identifier does not exist.
| identifier | [in] identifier for the property base to find. | 
| const rw::core::PropertyBase::Ptr findPropertyBase | ( | const std::string & | identifier | ) | const | 
Find the property base for an identifier.
The find methods returns pointer to PropertyBase object or NULL if a property base with that identifier does not exist.
| identifier | [in] identifier for the property base to find. | 
      
  | 
  inline | 
Get the value of a property.
If a property of the given identifier and type cannot be found, the method throws an exception
| identifier | [in] the identifier of the property | 
      
  | 
  inline | 
Get the value of a property.
If a property of the given identifier and type cannot be found, the method throws an exception
| identifier | [in] the identifier of the property | 
      
  | 
  inline | 
Get the value of a property if it exists.
If a property of the given identifier and type cannot be found, the method returns the default value defval.
example int iterations = map.get<int>("Iterations", 20);
This will fire a PropertyChangedEvent if a new property is added. Notice that a new property is inserted in the map with the default value if it does not already exist.
| identifier | [in] the identifier of the property | 
| defval | [in] the value that will be returned if property with identifier is not found. | 
      
  | 
  inline | 
Get the value of a property.
If a property of the given identifier and type cannot be found method throws an exception
example int iterations = map.get<int>("Iterations", 20);
| identifier | [in] the identifier of the property | 
| defval | [in] the value that will be returned if property with identifier is not found. | 
      
  | 
  inline | 
get the name of this propertymap
| Range getProperties | ( | ) | const | 
Range of all PropertyBase* objects stored.
Note that this low-level interface does permits the PropertyBase values to be modified even though the method itself is declared const.
      
  | 
  inline | 
Get the value of a property or NULL if no such property.
If a property of the given identifier and type cannot be found, the method returns NULL.
| identifier | [in] the identifier of the property | 
      
  | 
  inline | 
Get the value of a property or NULL if no such property.
If a property of the given identifier and type cannot be found, the method returns NULL.
| identifier | [in] the identifier of the property | 
| bool has | ( | const std::string & | identifier | ) | const | 
True if a specific property exists.
| identifier | [in] The identifier of the property | 
| void propertyChangedListener | ( | rw::core::PropertyBase * | base | ) | 
used for listening for property changes in the map
| base | 
      
  | 
  inline | 
Set the value of a property.
If a property with the given identifier cannot be found, a new property with no description is created and inserted.
This will fire a PropertyChangedEvent.
| identifier | [in] the property identifier | 
| value | [in] the new value |