class Core::Portable::AttributeValue

Class to hold a value of different types (int, float, string, etc.)

#include <coreattributes.h>

class AttributeValue
{
public:
    // enums

    enum Types;

    // fields

     kUserFlag2;
    int64 lValue;
    double fValue;
    char* string;
    AttributeQueue* queue;
    Attributes* attributes;

    // methods

    void copyFrom(const AttributeValue& other, AttributeAllocator& allocator);
    void makeReal();
    short getType() const;
    PROPERTY_FLAG(type, kUserFlag1, isUserFlag1);
    isUserFlag2 void clear();
    void set(int64 value);
    void set(double value);
    void set(CStringPtr value, bool shared = false);
    void set(const AttributeQueue& queue, AttributeAllocator& allocator);
    void set(const Attributes& attributes, AttributeAllocator& allocator);
    AttributeQueue* makeQueue();
    Attributes* makeAttributes(AttributeAllocator& allocator);
    Attributes* detachAttributes();
    int64 getInt() const;
    double getFloat() const;
    CStringPtr getString() const;
    const AttributeQueue* getQueue() const;
    Attributes* getAttributes() const;
    int getEstimatedSize(bool deep = true) const;
};

// direct descendants

class AttributeValue2;
class Attribute;