5#include "utils/iobject_registry.h"
7#include "utils/typed_uuid_reference.h"
8#include "utils/uuid_identifiable_object.h"
17 auto obj = make_qobject_unique<T> (std::forward<Args> (args)...);
18 auto uuid = obj->get_uuid ();
19 registry.register_object (*obj);
24template <Uu
idIdentifiable T>
30 auto &&... extra_args)
33 std::unique_ptr<T> (clone_raw_ptr (source, clone_type, extra_args...));
34 auto uuid = cloned->get_uuid ();
35 registry.register_object (*cloned);
40template <Uu
idIdentifiable T>
47 qobject_cast<T *> (registry.find_by_raw_uuid (type_safe::get (
id)));
48 assert (typed !=
nullptr);
56 return registry.contains (type_safe::get (
id));
Abstract interface for a UUID-keyed object registry.
Typed, reference-counted UUID reference into an IObjectRegistry.
Concept: T has a UUID identity from a UuidIdentifiableObject hierarchy.