From dbad4b699e35442920baa60c13f76e95904fe317 Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Fri, 8 May 2026 21:20:01 -0300 Subject: restructure project and add readme --- include/ObjectManager.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 include/ObjectManager.h (limited to 'include/ObjectManager.h') diff --git a/include/ObjectManager.h b/include/ObjectManager.h new file mode 100644 index 0000000..8abf44c --- /dev/null +++ b/include/ObjectManager.h @@ -0,0 +1,47 @@ +#pragma once + +#include "Api.h" +#include "Types.h" + +#include +#include +#include +#include + +namespace nt +{ + class NT_API ObjectManager + { + public: + class IObject { + public: + virtual ~IObject() = default; + }; + class Multigroup : IObject {}; + class Relation : IObject {}; + class Tuple : IObject {}; + class Transaction : IObject {}; + struct object_type { + OBJECT_TYPE label; + // If the object is not durable. E.g.: TRANSACTION + bool disposable; + std::set methods; + }; + struct registry_head { + uint32_t reference_count; + uint32_t handle_count; + struct object_type* type; + std::vector path; + //security_descriptor to be added later, maybe also a set of labels + }; + struct registry { + struct registry_head* head; + IObject object; + // TODO: Treat as a list for now, but ideally it's a tree + struct registry* next; + }; + struct registry** entries; + // Looks into this registry and attempts to retrieve the entry + struct registry* Find(const std::vector object_path); + }; +} -- cgit v1.2.3