Open Search
    DataPtr Class Reference

    #include <datatypebase.h>

    Inheritance diagram for DataPtr:

    Detailed Description

    DataPtr contains type info and a pointer to an arbitrary generic non-const object. The type of the object is only known at run-time.

    Public Member Functions

     DataPtr ()=default
     
     DataPtr (Data &value)
     
     DataPtr (const DataType &typeInfo, Generic *dataPtr)
     
    template<typename T >
     DataPtr (T &value)
     
    Generic * PrivateGetPtr () const
     
    Generic * GetPtr (const DataType &type)
     
    template<typename T >
    T * GetPtr ()
     
    template<typename T >
    Result< typename std::conditional< STD_IS_REPLACEMENT(same, T, Data)||(GetCollectionKind< T >::value==COLLECTION_KIND::ARRAY), T, T & >::typeGet ()
     
    Result< void > MoveFrom (Data &&src)
     
    Result< void > CopyFrom (const Data &src)
     
    const Generic * GetPtr (const DataType &type) const
     
    template<typename T >
    const T * GetPtr () const
     
    - Public Member Functions inherited from ConstDataPtr
     ConstDataPtr ()=default
     
     ConstDataPtr (const Data &value)
     
     ConstDataPtr (const DataType &typeInfo, const Generic *dataPtr)
     
    template<typename T >
     ConstDataPtr (const T &value)
     
    Bool IsEmpty () const
     
    Bool IsPopulated () const
     
    const DataTypeGetType () const
     
    DataType && ResetType ()
     
    const Generic * PrivateGetPtr () const
     
    void Set (const DataType &typeInfo, const Generic *dataPtr)
     
    template<typename T >
    void Set (const T &value)
     
    void Set (const Data &value)
     
    void Set (Data &value)
     
    void Set (Data &&value)
     
    const Generic * GetPtr (const DataType &type) const
     
    template<typename T >
    const T * GetPtr () const
     
    template<typename T >
    Result< typename std::conditional< STD_IS_REPLACEMENT(same, T, Data)||(GetCollectionKind< T >::value==COLLECTION_KIND::ARRAY), T, typename ByValueParam< T >::type >::typeGet () const
     
    template<typename T >
    ByValueParam< T >::type GetOrNull () const
     
    template<typename T >
    ByValueParam< T >::type Get (const T &defaultValue) const
     
    COMPARERESULT Compare (const ConstDataPtr &c) const
     
    COMPARERESULT Compare (const Data &c) const
     
    HashInt GetHashCode () const
     
    UniqueHash GetUniqueHashCode () const
     
    Bool operator== (const ConstDataPtr &c) const
     
    Bool operator!= (const ConstDataPtr &c) const
     
    Bool operator< (const ConstDataPtr &c) const
     
    Bool operator<= (const ConstDataPtr &c) const
     
    Bool operator> (const ConstDataPtr &c) const
     
    Bool operator>= (const ConstDataPtr &c) const
     
    String ToString (const FormatStatement *formatStatement=nullptr) const
     
    template<>
    Result< void > Get () const
     
    template<>
    Result< DataGet () const
     

    Static Public Member Functions

    static MAXON_ATTRIBUTE_FORCE_INLINE const DataPtrNullValue ()
     
    - Static Public Member Functions inherited from ConstDataPtr
    static MAXON_ATTRIBUTE_FORCE_INLINE const ConstDataPtrNullValue ()
     

    Additional Inherited Members

    - Protected Member Functions inherited from ConstDataPtr
    template<typename T >
    Result< typename ByValueParam< T >::typeGetImpl (OverloadRank0) const
     
    template<typename T >
    std::enable_if< GetCollectionKind< T >::value==COLLECTION_KIND::ARRAY, Result< T > >::type GetImpl (OverloadRank1) const
     
    - Protected Attributes inherited from ConstDataPtr
    DataType _typeInfo
     
    const Generic * _dataPtr
     

    Constructor & Destructor Documentation

    ◆ DataPtr() [1/4]

    DataPtr ( )
    default

    ◆ DataPtr() [2/4]

    DataPtr ( Data value)
    explicit

    ◆ DataPtr() [3/4]

    DataPtr ( const DataType typeInfo,
    Generic *  dataPtr 
    )

    ◆ DataPtr() [4/4]

    DataPtr ( T &  value)
    explicit

    Member Function Documentation

    ◆ PrivateGetPtr()

    Generic* PrivateGetPtr ( ) const

    ◆ GetPtr() [1/4]

    Generic* GetPtr ( const DataType type)

    ◆ GetPtr() [2/4]

    T* GetPtr ( void  )

    ◆ NullValue()

    static MAXON_ATTRIBUTE_FORCE_INLINE const DataPtr& NullValue ( )
    static

    ◆ Get()

    Result<typename std::conditional<STD_IS_REPLACEMENT(same, T, Data) || (GetCollectionKind<T>::value == COLLECTION_KIND::ARRAY), T, T&>::type> Get ( void  )

    Returns the value of type T of this Data. if <void> or <Data> is given the result value is not a reference.

    Template Parameters
    TThe expected type of the value.
    Returns
    The value stored in this Data, or an error if this Data doesn't store a value of type T.

    ◆ MoveFrom()

    Result<void> MoveFrom ( Data &&  src)

    Moves from another Data.

    Parameters
    [in]srcData to move from.
    Returns
    OK on success (will fail if this DataPtr has a non-matching type).

    ◆ CopyFrom()

    Result<void> CopyFrom ( const Data src)

    Copies from another Data.

    Parameters
    [in]srcData to copy from.
    Returns
    OK on success (will fail if this DataPtr has a non-matching type).

    ◆ GetPtr() [3/4]

    const Generic* GetPtr ( void  )

    ◆ GetPtr() [4/4]

    const T* GetPtr ( typename T  )