struct CCL::IAttributeList

Overview

An attribute list holds values of arbitrary type identified by a key string. More…

#include <iattributelist.h>

struct IAttributeList: public CCL::IClassAllocator
{
    // enums

    enum Flags;

    // methods

    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;
};

Inherited Members

public:
    // 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;
    virtual tresult CCL_API createInstance (UIDRef cid, UIDRef iid, void** obj) = 0;

Detailed Documentation

An attribute list holds values of arbitrary type identified by a key string.

Methods

virtual tbool CCL_API isEmpty () const = 0

Check if attribute list is empty.

virtual int CCL_API countAttributes () const = 0

Get number of attributes in list.

virtual tbool CCL_API getAttributeName (MutableCString& name, int index) const = 0

Get attribute name at given index as C-String.

virtual tbool CCL_API getAttributeValue (Variant& value, int index) const = 0

Get attribute value at given index.

virtual tbool CCL_API setAttribute (
    StringID id,
    VariantRef value,
    int flags = 0
) = 0

Set attribute value with given key and ownership.

virtual tbool CCL_API appendAttribute (
    StringID id,
    VariantRef value,
    int flags = 0
) = 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 = 0

Get attribute value by key.

virtual tbool CCL_API queueAttribute (
    StringID id,
    VariantRef value,
    int flags = 0
) = 0

Queue value to value list with given key.

virtual tbool CCL_API unqueueAttribute (StringID id, Variant& value) = 0

Unqueue value from value list by key.

virtual tbool CCL_API contains (StringID id) const = 0

Check if list contains attribute with given key.

virtual tbool CCL_API remove (StringID id) = 0

Remove attribute.

virtual void CCL_API removeAll () = 0

Remove all attributes.

virtual void CCL_API copyFrom (const IAttributeList& list) = 0

Copy all attributes from given list.

virtual void CCL_API addFrom (
    const IAttributeList& list,
    const IAttributeFilter* filter = nullptr
) = 0

Add attributes from list with optional filter.