Classes | |
struct | MemoryMetadataProxy |
class | WeakRefServices |
Namespaces | |
maxon | |
Typedefs | |
using | MemoryObserverCallback = MEMORY_OBSERVER_FLAGS(*)(void *callbackData, const void *target, MEMORY_OBSERVER_STATE state) |
using | MemoryMetadataDestructor = void(*)(void *metadata) |
Enumerations | |
enum class | MEMORY_OBSERVER_FLAGS : Int { DEFAULT , CLAIM_SHARED_OWNERSHIP , CLAIM_EXCLUSIVE_OWNERSHIP , KEEP_OBSERVER , INVOKE_WITH_UNLOCKED_TARGET } |
enum class | MEMORY_OBSERVER_STATE : Int { DEFAULT , TARGET_IS_LOCKED , TARGET_HAS_EXCLUSIVE_OWNERSHIP } |
Functions | |
enum maxon::MEMORY_OBSERVER_FLAGS Int | MAXON_ENUM_FLAGS (MEMORY_OBSERVER_FLAGS) |
enum maxon::MEMORY_OBSERVER_STATE Int | MAXON_ENUM_FLAGS (MEMORY_OBSERVER_STATE) |
Variables | |
DEFAULT | |
CLAIM_SHARED_OWNERSHIP | |
CLAIM_EXCLUSIVE_OWNERSHIP | |
KEEP_OBSERVER | |
INVOKE_WITH_UNLOCKED_TARGET | |
TARGET_IS_LOCKED | |
TARGET_HAS_EXCLUSIVE_OWNERSHIP | |
DEFAULT |
Default behaviour: Continue with destruction, observer will be removed.
CLAIM_SHARED_OWNERSHIP |
The observer claims shared ownership of the target, do not destruct the object.
CLAIM_EXCLUSIVE_OWNERSHIP |
The first observer/creator claims exclusive ownership of the target, do not destruct the object.
KEEP_OBSERVER |
Do not delete the observer (usually only makes sense if ownership is claimed).
INVOKE_WITH_UNLOCKED_TARGET |
Ask to invoke the observer again without the target being locked (if you need to destruct associated objects).
TARGET_IS_LOCKED |
The target is locked and you must not directly or indireclty modify itself or any related objects.
TARGET_HAS_EXCLUSIVE_OWNERSHIP |
The target is exclusively owned and you cannot claim shared ownership.