template class axl::cf::TypeBase

#include <axl_cf_Type.h>

template <typename T>
class TypeBase
{
public:
    // construction

    TypeBase();
    TypeBase(const TypeBase& src);

    TypeBase(
        T p,
        bool isAttach = false
        );
    ~TypeBase();

    // methods

    operator T() const;

    TypeBase&
    operator=(const TypeBase& src);

    TypeBase&
    operator=(T p);

    bool
    isNull() const;

    T*
    p();

    void
    attach(T p);

    T
    detach();

    void
    clear();

    void
    copy(T p);

    intptr_t
    getRetainCount() const;

    void
    retain();

    void
    release();

    bool
    isEqual(T type) const;

    CFHashCode
    getHash() const;

    CFTypeID
    getTypeId() const;

    sl::String
    getDescription() const;

    sl::String
    getTypeIdDescription() const;

    void
    show() const;

    sl::String
    toString();
};