carb::IObject

Defined in carb/IObject.h

class IObject

Reference-counted object base.

Subclassed by carb::events::IEvent, carb::events::IEventListener, carb::events::IEventStream, carb::events::ISubscription, carb::variant::VariantArray, carb::variant::VariantMap, omni::ext::ExtensionManager, omni::ext::IExtensionStateChangeHook, omni::ext::IHookHolder, omni::ext::IPathProtocolProvider, omni::ext::IRegistryProvider, omni::kit::IRunLoopRunner

Public Functions

virtual ~IObject() = default

Destructor.

virtual size_t addRef() = 0

Atomically add one to the reference count.

Returns

The current reference count after one was added, though this value may change before read if other threads are also modifying the reference count. The return value is guaranteed to be non-zero.

virtual size_t release() = 0

Atomically subtracts one from the reference count.

If the result is zero, carb::deleteHandler() is called for this.

Returns

The current reference count after one was subtracted. If zero is returned, carb::deleteHandler() was called for this.

Public Static Functions

static inline constexpr carb::InterfaceDesc getInterfaceDesc() noexcept

Returns information about this interface.

Auto-generated by CARB_PLUGIN_INTERFACE() or CARB_PLUGIN_INTERFACE_EX.

Returns

The carb::InterfaceDesc struct with information about this interface.

static inline constexpr carb::InterfaceDesc getLatestInterfaceDesc() noexcept

Returns information about the latest version of this interface.

Auto-generated by CARB_PLUGIN_INTERFACE() or CARB_PLUGIN_INTERFACE_EX.

Returns

The carb::InterfaceDesc struct with information about the latest version of this interface.