All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Valuable::AttributeContainer< T > Class Template Reference

Template class for all STL-like containers. More...

#include <Valuable/AttributeContainer.hpp>

Inheritance diagram for Valuable::AttributeContainer< T >:
Valuable::AttributeContainerT< T > Valuable::Attribute Valuable::Serializable

Public Member Functions

 AttributeContainer (Node *host, const QByteArray &name)
 Constructs a new container. More...
 
- Public Member Functions inherited from Valuable::AttributeContainerT< T >
bool clearOnDeserialize () const
 
virtual bool deserialize (const ArchiveElement &element)
 Deserializes (reads) this object from serializer element. More...
 
virtual bool isChanged () const
 
 operator const T & () const
 Typecast operator for the const reference of the wrapped container.
 
 operator T & ()
 Typecast operator for the wrapped container.
 
T & operator* ()
 Returns a reference to the wrapped container.
 
const T & operator* () const
 Returns a const reference to the wrapped container.
 
T * operator-> ()
 Use the arrow operator for accessing fields inside the wrapper container. More...
 
const T * operator-> () const
 Use the arrow operator for accessing fields inside the wrapper container. More...
 
virtual ArchiveElement serialize (Archive &archive) const
 The object is serialized using its name as a tag name. More...
 
void setClearOnDeserialize (bool v)
 
- Public Member Functions inherited from Valuable::Attribute
long addListener (ListenerFunc func, int role=CHANGE_ROLE)
 Adds a listener that is invoked whenever the value is changed. More...
 
long addListener (Node *listener, ListenerFunc func, int role=CHANGE_ROLE)
 Adds a listener that is invoked whenever the value is changed. More...
 
long addListener (v8::Persistent< v8::Function > func, int role=CHANGE_ROLE)
 Adds a JavaScript listener that is invoked whenever the value is changed. More...
 
virtual float asFloat (bool *const ok=0, Layer layer=LAYER_CURRENT) const
 Converts the value object in a floating point number. More...
 
virtual int asInt (bool *const ok=0, Layer layer=LAYER_CURRENT) const
 Converts the value object in an integer. More...
 
virtual QString asString (bool *const ok=0, Layer layer=LAYER_CURRENT) const
 Converts the value object to a string. More...
 
 Attribute (const Attribute &o)
 Create a copy of the given Attribute WITHOUT the link to host, listeners, or the attribute name. More...
 
 Attribute (Node *host, const QByteArray &name, bool transit=false)
 Constructs a new value object and attaches it to its host. More...
 
virtual Attributeattribute (const QByteArray &name) const
 Gets an Attribute with the given name. More...
 
virtual void clearValue (Layer layer)
 Unsets the value from a specific layer. More...
 
virtual void emitChange ()
 Invokes the change valueChanged function of all listeners.
 
virtual void eventProcess (const QByteArray &id, Radiant::BinaryData &data)
 Process a message. More...
 
void eventProcessFloat (const char *id, float v)
 Utility function for sending a float message to the object.
 
void eventProcessInt (const char *id, int v)
 Utility function for sending an int message to the object.
 
void eventProcessString (const char *id, const QString &str)
 Utility function for sending string message to the object.
 
void eventProcessString (const char *id, const char *str)
 Utility function for sending string message to the object.
 
void eventProcessVector2 (const char *id, Nimble::Vector2)
 Utility function for sending a Nimble::Vector2f message to the object.
 
void eventProcessVector3 (const char *id, Nimble::Vector3)
 Utility function for sending a Vector3 message to the object.
 
void eventProcessVector4 (const char *id, Nimble::Vector4)
 Utility function for sending a Vector4 message to the object.
 
virtual bool handleShorthand (const Valuable::StyleValue &value, Radiant::ArrayMap< Valuable::Attribute *, Valuable::StyleValue > &expanded)
 If attribute supports shorthand properties, this should be used to parse those. More...
 
Nodehost () const
 The host object of the value object (is any). More...
 
virtual bool isValueDefinedOnLayer (Layer layer) const
 Check if the given layer defines a value. More...
 
bool layerForSerialization (SerializationOptions flags, Layer &layer) const
 
const QByteArray & name () const
 Returns the name of the object.
 
const Attributeoperator= (const Attribute &)
 Create a copy of the given Attribute WITHOUT the link to host, listeners, or the attribute name. More...
 
AttributeownerShorthand () const
 
QByteArray path () const
 Returns the path (separated by '/'s) from the root.
 
void removeHost ()
 Sets the host pointer to zero and removes this object from the host. More...
 
bool removeListener (Node *listener, int role=ALL_ROLES)
 Removes a listener from the listener list. More...
 
bool removeListener (long id)
 Removes a listener from the listener list. More...
 
void removeListeners (int role=ALL_ROLES)
 Removes listeners from the listener list.
 
virtual bool set (float v, Layer layer=USER, ValueUnit unit=VU_UNKNOWN)
 Sets the value of the object.
 
virtual bool set (int v, Layer layer=USER, ValueUnit unit=VU_UNKNOWN)
 Sets the value of the object.
 
virtual bool set (const QString &v, Layer layer=USER, ValueUnit unit=VU_UNKNOWN)
 Sets the value of the object.
 
virtual bool set (const Nimble::Vector2f &v, Layer layer=USER, QList< ValueUnit > units=QList< ValueUnit >())
 Sets the value of the object.
 
virtual bool set (const Nimble::Vector3f &v, Layer layer=USER, QList< ValueUnit > units=QList< ValueUnit >())
 Sets the value of the object.
 
virtual bool set (const Nimble::Vector4f &v, Layer layer=USER, QList< ValueUnit > units=QList< ValueUnit >())
 Sets the value of the object.
 
virtual bool set (const StyleValue &value, Layer layer=USER)
 Sets the value of the object.
 
virtual void setAsDefaults ()
 Sets the current USER attribute value as the default value and clears the USER value. More...
 
void setName (const QByteArray &s)
 Sets the name of the object.
 
void setOwnerShorthand (Attribute *owner)
 
virtual QByteArray type () const
 Get the type id of the attribute. More...
 
- Public Member Functions inherited from Valuable::Serializable
virtual bool deserializeXML (const DOMElement &element)
 Deserializes (reads) this object from an XML element. More...
 
bool isSerializable () const
 
void setSerializable (bool v)
 

Additional Inherited Members

- Public Types inherited from Valuable::AttributeContainerT< T >
typedef T::const_iterator const_iterator
 STL-compatible const iterator.
 
typedef T::const_reverse_iterator const_reverse_iterator
 STL-compatible const reverse iterator.
 
typedef T container_type
 
typedef T::iterator iterator
 STL-compatible iterator.
 
typedef T::reverse_iterator reverse_iterator
 STL-compatible reverse iterator.
 
typedef T::value_type value_type
 STL-like typedef for value type inside of T.
 
- Protected Member Functions inherited from Valuable::AttributeContainerT< T >
 AttributeContainerT (Node *host, const QByteArray &name)
 Constructs a new container. More...
 
- Protected Attributes inherited from Valuable::AttributeContainerT< T >
bool m_clearOnDeserialize
 
m_container
 The actual container that this AttributeContainer wraps.
 

Detailed Description

template<typename T>
class Valuable::AttributeContainer< T >

Template class for all STL-like containers.

The container type can be nested STL-style container (like AttributeContainer<std::map<int, std::vector<float> > >), it will be (de)serialized recursively.

Example:

typedef AttributeContainer<std::list<int> > List;
HasValue values;
List list(values, "list");
list->push_back(4);
List::iterator it = list->begin();

Constructor & Destructor Documentation

template<typename T>
Valuable::AttributeContainer< T >::AttributeContainer ( Node host,
const QByteArray &  name 
)
inline

Constructs a new container.

Parameters
hosthost object
namename of the value