40 #include "../types/PropertyDecomposition.hpp" 41 #include "../types/Types.hpp" 42 #include "../Property.hpp" 43 #include "../PropertyBag.hpp" 44 #include "../Logger.hpp" 47 using namespace detail;
Base class for all properties.
void deletePropertyBag(PropertyBag &target)
This function iterates over a PropertyBag and recursively deletes all Property objects.
A property represents a named value of any type with a description.
bool propertyDecomposition(base::PropertyBase *source, PropertyBag &targetbag, bool recurse)
Uses the type decomposition to decompose a property into a property bag that refers to all its parts...
const std::string & getDescription() const
Get a description of the property.
base::PropertyBase * buildProperty(const std::string &name, const std::string &desc, base::DataSourceBase::shared_ptr source=0) const
Build a Property of this type.
virtual void introspect(PropertyBase *p)=0
Callback for a Property which is not a PropertyBag.
const std::string & getName() const
Get the name of the property.
boost::intrusive_ptr< DataSourceBase > shared_ptr
Use this type to store a pointer to a DataSourceBase.
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
bool introspectAndDecompose(PropertyBase *t)
The default handler to execute when an unknown type is being decomposed.
base::DataSourceBase::shared_ptr decomposeType(base::DataSourceBase::shared_ptr source) const
Specialize this function to return an alternate type which represents this one in a compatible way...
virtual DataSourceBase::shared_ptr getDataSource() const =0
Get an assignable base::DataSource through which this PropertyBase can be manipulated.
virtual const types::TypeInfo * getTypeInfo() const =0
Returns the types::TypeInfo object of this Property.