weakrefservices.h File Reference

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   MEMORY_OBSERVER_FLAGS : Int {
   DEFAULT ,
   CLAIM_SHARED_OWNERSHIP ,
   CLAIM_EXCLUSIVE_OWNERSHIP ,
   KEEP_OBSERVER ,
   INVOKE_WITH_UNLOCKED_TARGET
}
enum   MEMORY_OBSERVER_STATE : Int {
   DEFAULT ,
   TARGET_IS_LOCKED ,
   TARGET_HAS_EXCLUSIVE_OWNERSHIP
}

函数

enum maxon::MEMORY_OBSERVER_FLAGS Int   MAXON_ENUM_FLAGS (MEMORY_OBSERVER_FLAGS)
enum maxon::MEMORY_OBSERVER_STATE Int   MAXON_ENUM_FLAGS (MEMORY_OBSERVER_STATE)

变量

  DEFAULT
  CLAIM_SHARED_OWNERSHIP
  CLAIM_EXCLUSIVE_OWNERSHIP
  KEEP_OBSERVER
  INVOKE_WITH_UNLOCKED_TARGET
  TARGET_IS_LOCKED
  TARGET_HAS_EXCLUSIVE_OWNERSHIP

Variable Documentation

◆  DEFAULT

DEFAULT

Default behaviour: Continue with destruction, observer will be removed.

◆  CLAIM_SHARED_OWNERSHIP

CLAIM_SHARED_OWNERSHIP

The observer claims shared ownership of the target, do not destruct the object.

◆  CLAIM_EXCLUSIVE_OWNERSHIP

CLAIM_EXCLUSIVE_OWNERSHIP

The first observer/creator claims exclusive ownership of the target, do not destruct the object.

◆  KEEP_OBSERVER

KEEP_OBSERVER

Do not delete the observer (usually only makes sense if ownership is claimed).

◆  INVOKE_WITH_UNLOCKED_TARGET

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

TARGET_IS_LOCKED

The target is locked and you must not directly or indireclty modify itself or any related objects.

◆  TARGET_HAS_EXCLUSIVE_OWNERSHIP

TARGET_HAS_EXCLUSIVE_OWNERSHIP

The target is exclusively owned and you cannot claim shared ownership.