Zrythm v2.0.0-alpha.1
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::utils::UuidReference Class Reference

Untyped, reference-counted UUID reference into an IObjectRegistry. More...

#include <src/utils/uuid_reference.h>

Collaboration diagram for zrythm::utils::UuidReference:

Public Member Functions

 UuidReference (const QUuid &id, IObjectRegistry &registry)
 UuidReference (IObjectRegistry &registry)
 UuidReference (const UuidReference &other)
UuidReference & operator= (const UuidReference &other)
 UuidReference (UuidReference &&other) noexcept
UuidReference & operator= (UuidReference &&other) noexcept
QUuid id () const
void set_id (const QUuid &id)
UuidIdentifiableBaseget () const
UuidIdentifiableBaseget_or_throw () const
bool has_value () const
IObjectRegistryget_registry () const

Protected Member Functions

void acquire_ref ()
void release_ref ()

Protected Attributes

std::optional< QUuid > id_
IObjectRegistryregistry_ = nullptr

Friends

void to_json (nlohmann::json &j, const UuidReference &ref)
void from_json (const nlohmann::json &j, UuidReference &ref)
bool operator== (const UuidReference &lhs, const UuidReference &rhs)

Detailed Description

Untyped, reference-counted UUID reference into an IObjectRegistry.

Holds a raw QUuid and a pointer to IObjectRegistry. Acquires/releases reference counts on construction/destruction so the registry can manage object lifetimes. Returns UuidIdentifiableBase* from get() — callers that need a specific type should use TypedUuidReference<T> instead.

Can be in an unengaged state (no id) for deferred initialization during deserialization.

Definition at line 23 of file uuid_reference.h.

Constructor & Destructor Documentation

◆ UuidReference() [1/4]

zrythm::utils::UuidReference::UuidReference ( const QUuid & id,
IObjectRegistry & registry )
inline

Definition at line 28 of file uuid_reference.h.

◆ UuidReference() [2/4]

zrythm::utils::UuidReference::UuidReference ( IObjectRegistry & registry)
inline

Definition at line 34 of file uuid_reference.h.

◆ UuidReference() [3/4]

zrythm::utils::UuidReference::UuidReference ( const UuidReference & other)
inline

Definition at line 36 of file uuid_reference.h.

◆ UuidReference() [4/4]

zrythm::utils::UuidReference::UuidReference ( UuidReference && other)
inlinenoexcept

Definition at line 60 of file uuid_reference.h.

◆ ~UuidReference()

zrythm::utils::UuidReference::~UuidReference ( )
inline

Definition at line 77 of file uuid_reference.h.

Member Function Documentation

◆ acquire_ref()

void zrythm::utils::UuidReference::acquire_ref ( )
inlineprotected

Definition at line 132 of file uuid_reference.h.

◆ get()

UuidIdentifiableBase * zrythm::utils::UuidReference::get ( ) const
inline

Definition at line 92 of file uuid_reference.h.

◆ get_or_throw()

UuidIdentifiableBase * zrythm::utils::UuidReference::get_or_throw ( ) const
inline

Definition at line 99 of file uuid_reference.h.

◆ get_registry()

IObjectRegistry & zrythm::utils::UuidReference::get_registry ( ) const
inline

Definition at line 117 of file uuid_reference.h.

◆ has_value()

bool zrythm::utils::UuidReference::has_value ( ) const
inline

Definition at line 115 of file uuid_reference.h.

◆ id()

QUuid zrythm::utils::UuidReference::id ( ) const
inline

Definition at line 79 of file uuid_reference.h.

◆ operator=() [1/2]

UuidReference & zrythm::utils::UuidReference::operator= ( const UuidReference & other)
inline

Definition at line 45 of file uuid_reference.h.

◆ operator=() [2/2]

UuidReference & zrythm::utils::UuidReference::operator= ( UuidReference && other)
inlinenoexcept

Definition at line 66 of file uuid_reference.h.

◆ release_ref()

void zrythm::utils::UuidReference::release_ref ( )
inlineprotected

Definition at line 140 of file uuid_reference.h.

◆ set_id()

void zrythm::utils::UuidReference::set_id ( const QUuid & id)
inline

Definition at line 81 of file uuid_reference.h.

◆ operator==

bool operator== ( const UuidReference & lhs,
const UuidReference & rhs )
friend

Definition at line 126 of file uuid_reference.h.

Field Documentation

◆ id_

std::optional<QUuid> zrythm::utils::UuidReference::id_
protected

Definition at line 148 of file uuid_reference.h.

◆ registry_

IObjectRegistry* zrythm::utils::UuidReference::registry_ = nullptr
protected

Definition at line 149 of file uuid_reference.h.


The documentation for this class was generated from the following file: