class CCL::Attributes
Overview
#include <attributes.h> class Attributes: public CCL::Object, public CCL::IAttributeList, public CCL::AttributeReader, public CCL::AttributeWriter { public: // construction Attributes (const Attributes& other); // methods DECLARE_CLASS (Attributes, Object); void copyFrom (const Attributes& attributes); virtual void makeValidKey (MutableCString& keyString) const; virtual tbool CCL_API isEmpty () const; virtual int CCL_API countAttributes () const; virtual tbool CCL_API getAttributeName (MutableCString& name, int index) const; virtual tbool CCL_API getAttributeValue (Variant& value, int index) const; virtual tbool CCL_API setAttribute ( StringID id, VariantRef value, int flags = 0 ); virtual tbool CCL_API appendAttribute ( StringID id, VariantRef value, int flags = 0 ); virtual tbool CCL_API getAttribute (Variant& value, StringID id) const; virtual tbool CCL_API queueAttribute ( StringID id, VariantRef value, int flags = 0 ); virtual tbool CCL_API unqueueAttribute (StringID id, Variant& value); virtual tbool CCL_API contains (StringID id) const; virtual tbool CCL_API remove (StringID id); virtual void CCL_API removeAll (); virtual void CCL_API copyFrom (const IAttributeList& list); virtual void CCL_API addFrom ( const IAttributeList& list, const IAttributeFilter* filter = nullptr ); virtual tresult CCL_API createInstance (UIDRef cid, UIDRef iid, void** obj); int getAttributeIndex (StringID id) const; bool setAttributeIndex (StringID id, int index); bool setHexValue (StringID id, uint32 value); uint32 getHexValue (StringID id) const; bool set (StringID id, Object* o, int flags = 0); bool set ( StringID id, const Object& object, bool saveAsCopy = false, Archive* archive = nullptr ); bool get (String& string, StringID id) const; bool get ( MutableCString& string, StringID id, TextEncoding encoding = Text::kASCII ) const; bool get (Object& object, StringID id, Archive* archive = nullptr) const; Object* getObject (StringID id) const; template <class T> T* getObject (StringID id) const; Object* getObject (StringID id, MetaClassRef typeId) const; Attributes* getAttributes (StringID id) const; bool queue (StringID id, Object* o, int flags = 0); bool queue (StringID id, const Container& container, int flags = 0); bool convertAndQueue ( StringID id, const Container& container, Archive* archive = nullptr ); Object* unqueueObject (StringID id); Object* unqueueObject (StringID id, MetaClassRef typeId); template <class T> T* unqueueObject (StringID id); Attributes* unqueueAttributes (StringID id = nullptr); Container& unqueue ( Container& container, StringID id, MetaClassRef typeId = ccl_typeid <Object> () ); Iterator* newQueueIterator ( StringID id, MetaClassRef typeId = ccl_typeid <Object> () ) const; bool unqueueAndCreate ( Container& container, StringID id, MetaClassRef typeId, Archive* archive = nullptr ); void dump (int inset = 0) const; void dump (const Container& list, int inset) const; virtual bool load (const Storage& storage); virtual bool save (const Storage& storage) const; virtual bool equals (const Object& obj) const; CLASS_INTERFACE2 (IAttributeList, IClassAllocator, Object) protected Attribute* lookup (StringID id) const; virtual IAttributeList& getList (); virtual const IAttributeList& getList () const; virtual tbool CCL_API getProperty (Variant& var, MemberID propertyId) const; tbool CCL_API setProperty (MemberID propertyId, VariantRef var); virtual tbool CCL_API invokeMethod (Variant& returnValue, MessageRef msg); bool set (StringID id, int64 v); bool set (StringID id, int v); bool set (StringID id, tresult v); bool set (StringID id, bool b, int flags = 0); bool set (StringID id, double v); bool set (StringID id, StringRef s); bool set (StringID id, CStringRef s, TextEncoding encoding = Text::kASCII); bool set (StringID id, CStringPtr s, TextEncoding encoding = Text::kASCII); bool set (StringID id, IUnknown* u, int flags = 0); };
Inherited Members
public: // typedefs typedef CStringRef MemberID; // enums enum Flags; // methods virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0; virtual unsigned int CCL_API retain () = 0; virtual unsigned int CCL_API release () = 0; Unknown& operator = (const Unknown&); unsigned int getRetainCount () const; virtual Object*CCL_API revealObject (const void* moduleAddress) = 0; virtual void CCL_API addObserver (IObserver* observer) = 0; virtual void CCL_API removeObserver (IObserver* observer) = 0; virtual void CCL_API signal (MessageRef msg) = 0; virtual void CCL_API deferSignal (IMessage* msg) = 0; static ISubject void addObserver (IUnknown* unknown, IObserver* observer); static void removeObserver (IUnknown* unknown, IObserver* observer); virtual void CCL_API notify (ISubject* subject, MessageRef msg) = 0; static IObserver void notify ( IUnknown* unknown, ISubject* subject, MessageRef msg ); virtual const ITypeInfo&CCL_API getTypeInfo () const = 0; virtual tbool CCL_API getProperty (Variant& var, MemberID propertyId) const = 0; virtual tbool CCL_API setProperty (MemberID propertyId, const Variant& var) = 0; virtual tbool CCL_API getPropertyNames (IPropertyCollector& collector) const = 0; virtual tbool CCL_API invokeMethod (Variant& returnValue, MessageRef msg) = 0; DECLARE_BASE_CLASS (Object); virtual void CCL_API removeObserver (IObserver* observer); virtual void CCL_API signal (MessageRef msg); virtual void CCL_API deferSignal (IMessage* msg); virtual void deferChanged (); virtual void CCL_API notify (ISubject* subject, MessageRef msg); virtual bool equals (const Object& obj) const; virtual int compare (const Object& obj) const; virtual bool load (const Storage& storage); virtual bool save (const Storage& storage) const; virtual bool save (const OutputStorage& storage) const; virtual bool toString (String& string, int flags = 0) const; virtual int getHashCode (int size) const; IUnknown* asUnknown (); static void addGarbageCollected (Object* obj, bool globalScope = true); static void deferDestruction (Object* obj); static const void* getModuleAddress (); virtual tresult CCL_API createInstance (UIDRef cid, UIDRef iid, void** obj) = 0; virtual tbool CCL_API isEmpty () const = 0; virtual int CCL_API countAttributes () const = 0; virtual tbool CCL_API getAttributeName (MutableCString& name, int index) const = 0; virtual tbool CCL_API getAttributeValue (Variant& value, int index) const = 0; virtual tbool CCL_API setAttribute ( StringID id, VariantRef value, int flags = 0 ) = 0; virtual tbool CCL_API appendAttribute ( StringID id, VariantRef value, int flags = 0 ) = 0; virtual tbool CCL_API getAttribute (Variant& value, StringID id) const = 0; virtual tbool CCL_API queueAttribute ( StringID id, VariantRef value, int flags = 0 ) = 0; virtual tbool CCL_API unqueueAttribute (StringID id, Variant& value) = 0; virtual tbool CCL_API contains (StringID id) const = 0; virtual tbool CCL_API remove (StringID id) = 0; virtual void CCL_API removeAll () = 0; virtual void CCL_API copyFrom (const IAttributeList& list) = 0; virtual void CCL_API addFrom ( const IAttributeList& list, const IAttributeFilter* filter = nullptr ) = 0; virtual const IAttributeList& getList () const = 0; Variant getVariant (StringID id) const; int64 getInt64 (StringID id) const; int getInt (StringID id) const; bool getBool (StringID id) const; double getFloat (StringID id) const; String getString (StringID id) const; MutableCString getCString (StringID id, TextEncoding encoding = Text::kASCII) const; IUnknown* getUnknown (StringID id) const; IUnknownIterator* newUnknownIterator (StringID id) const; tresult getResult (StringID id) const; bool getInt64 (int64& value, StringID id) const; bool getInt (int& value, StringID id) const; bool getBool (bool& value, StringID id) const; bool getFloat (double& value, StringID id) const; bool getFloat (float& value, StringID id) const; bool getString (String& value, StringID id) const; bool getCString ( MutableCString& value, StringID id, TextEncoding encoding = Text::kASCII ) const; bool getUnknown (IUnknown*& value, StringID id) const; virtual IAttributeList& getList () = 0; IAttributeList* newAttributes (); IAttributeQueue* newAttributeQueue (); IAttributeList* newPersistentAttributes (); bool set (StringID id, int64 v); bool set (StringID id, int v); bool set (StringID id, tresult v); bool set (StringID id, bool b, int flags = 0); bool set (StringID id, double v); bool set (StringID id, StringRef s); bool set (StringID id, CStringRef s, TextEncoding encoding = Text::kASCII); bool set (StringID id, CStringPtr s, TextEncoding encoding = Text::kASCII); bool set (StringID id, IUnknown* u, int flags = 0); bool queue (StringID id, IUnknown* u, int flags = 0); IUnknown* unqueueUnknown (StringID id);
Detailed Documentation
Methods
virtual tbool CCL_API isEmpty () const
Check if attribute list is empty.
virtual int CCL_API countAttributes () const
Get number of attributes in list.
virtual tbool CCL_API getAttributeName (MutableCString& name, int index) const
Get attribute name at given index as C-String.
virtual tbool CCL_API getAttributeValue (Variant& value, int index) const
Get attribute value at given index.
virtual tbool CCL_API setAttribute ( StringID id, VariantRef value, int flags = 0 )
Set attribute value with given key and ownership.
virtual tbool CCL_API appendAttribute ( StringID id, VariantRef value, int flags = 0 )
Append attribute value with given key and ownership.
This method does not check for duplicate keys.
virtual tbool CCL_API getAttribute (Variant& value, StringID id) const
Get attribute value by key.
virtual tbool CCL_API queueAttribute ( StringID id, VariantRef value, int flags = 0 )
Queue value to value list with given key.
virtual tbool CCL_API unqueueAttribute (StringID id, Variant& value)
Unqueue value from value list by key.
virtual tbool CCL_API contains (StringID id) const
Check if list contains attribute with given key.
virtual tbool CCL_API remove (StringID id)
Remove attribute.
virtual void CCL_API removeAll ()
Remove all attributes.
virtual void CCL_API copyFrom (const IAttributeList& list)
Copy all attributes from given list.
virtual void CCL_API addFrom ( const IAttributeList& list, const IAttributeFilter* filter = nullptr )
Add attributes from list with optional filter.
virtual tresult CCL_API createInstance (UIDRef cid, UIDRef iid, void** obj)
Create new class instance.
bool setAttributeIndex (StringID id, int index)
move attribute to given index in list
bool setHexValue (StringID id, uint32 value)
set as ASCII-encoded hexadecimal string
bool get (String& string, StringID id) const
always converted to string!
bool get ( MutableCString& string, StringID id, TextEncoding encoding = Text::kASCII ) const
always converted to string!
bool convertAndQueue ( StringID id, const Container& container, Archive* archive = nullptr )
converts objects to simple attributes
bool unqueueAndCreate ( Container& container, StringID id, MetaClassRef typeId, Archive* archive = nullptr )
creates objects from simple attributes
virtual IAttributeList& getList ()
Get associated attribute list.
virtual const IAttributeList& getList () const
Get associated attribute list.
virtual tbool CCL_API getProperty (Variant& var, MemberID propertyId) const
Get property value by name.
virtual tbool CCL_API invokeMethod (Variant& returnValue, MessageRef msg)
Call method.
bool set (StringID id, int64 v)
Set integer value (64 bit).
bool set (StringID id, int v)
Set integer value (32 bit).
bool set (StringID id, tresult v)
Set tresult value.
bool set (StringID id, bool b, int flags = 0)
Set boolean value.
bool set (StringID id, double v)
Set floating-point value (double precision).
bool set (StringID id, StringRef s)
Set string value.
bool set (StringID id, CStringRef s, TextEncoding encoding = Text::kASCII)
Set C-string value.
bool set (StringID id, CStringPtr s, TextEncoding encoding = Text::kASCII)
Set C-string value (by pointer).
bool set (StringID id, IUnknown* u, int flags = 0)
Set object with ownership flags.