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 Attribute * attribute (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...
 
Node * host () 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 Attribute & operator= (const Attribute &)
 Create a copy of the given Attribute WITHOUT the link to host, listeners, or the attribute name. More...
 
Attribute * ownerShorthand () 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
 
T 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