13#ifndef ML_WEAK_MEMORY_BLOCK_HANDLE_H
14#define ML_WEAK_MEMORY_BLOCK_HANDLE_H
16#include "../mlMemoryManagerDllExport.h"
68#ifndef DOXYGEN_SHOULD_SKIP_THIS
70 void markMemoryBlockWasDeleted();
73 MLMemoryBlock* setMemoryBlock(MLMemoryBlock* memoryBlock);
78 MLMemoryBlock* _memoryBlock;
81 bool _deletionOngoing;
83 friend class MLMemoryBlock;
The strong handle of a MLMemoryBlock.
The weak handle of a MLMemoryBlock.
void clear()
Releases this handle from the memory block.
MLWeakMemoryBlockHandle(const MLWeakMemoryBlockHandle &weakMemoryBlockHandle)
Creates a weak memory block handle from another weak handle.
~MLWeakMemoryBlockHandle()
If this is the last weak handle of the memory block, and no strong handle references it,...
MLWeakMemoryBlockHandle(const MLMemoryBlockHandle &memoryBlockHandle)
Creates a weak memory block handle from the the strong handle.
bool deletionOngoing() const
MLWeakMemoryBlockHandle()
Creates a weak memory block handle that is null.
MLWeakMemoryBlockHandle & operator=(const MLWeakMemoryBlockHandle &weakMemoryBlockHandle)
Creates a weak memory block handle from the memory block handle.
MLWeakMemoryBlockHandle & operator=(const MLMemoryBlockHandle &memoryBlockHandle)
Creates a weak memory block handle from the memory block handle.
bool isNull() const
Returns true if the weak memory block references a NULL memory block.