Open Search
    MemoryMetadataProxy Struct Reference

    #include <weakrefservices.h>

    Detailed Description

    Proxy object to access memory metadata. While the proxy object exists the metadata for the target is locked and cannot be accessed or modified by other threads (in fact all metadata for the target including weak references is locked). Therefore best practice is to destroy the proxy object as soon as possible.

    Public Member Functions

     MAXON_DISALLOW_COPY_AND_ASSIGN (MemoryMetadataProxy)
     
     MemoryMetadataProxy ()=default
     
     MemoryMetadataProxy (MemoryMetadataProxy &&)=default
     
     MemoryMetadataProxy (WeakRefTargetBase *weakRefTarget, void *metadata)
     
     MAXON_OPERATOR_MOVE_ASSIGNMENT (MemoryMetadataProxy)
     
     ~MemoryMetadataProxy ()
     
     operator Bool () const
     
    Result< void * > Get () const
     

    Private Attributes

    WeakRefTargetBase_weakRefTarget
     
    void * _metadata
     

    Constructor & Destructor Documentation

    ◆ MemoryMetadataProxy() [1/3]

    MemoryMetadataProxy ( )
    default

    ◆ MemoryMetadataProxy() [2/3]

    ◆ MemoryMetadataProxy() [3/3]

    MemoryMetadataProxy ( WeakRefTargetBase weakRefTarget,
    void *  metadata 
    )
    explicit

    ◆ ~MemoryMetadataProxy()

    Destructs the proxy object and unlocks access to the metadata.

    Member Function Documentation

    ◆ MAXON_DISALLOW_COPY_AND_ASSIGN()

    MAXON_DISALLOW_COPY_AND_ASSIGN ( MemoryMetadataProxy  )

    ◆ MAXON_OPERATOR_MOVE_ASSIGNMENT()

    MAXON_OPERATOR_MOVE_ASSIGNMENT ( MemoryMetadataProxy  )

    ◆ operator Bool()

    operator Bool ( ) const
    explicit

    ◆ Get()

    Result<void*> Get ( ) const

    Returns the memory metadata (or an error if there wasn't any).

    Returns
    Memory metadata on success.

    Member Data Documentation

    ◆ _weakRefTarget

    WeakRefTargetBase* _weakRefTarget
    private

    ◆ _metadata

    void* _metadata
    private