diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-05-08 21:20:01 -0300 |
|---|---|---|
| committer | Marcos Magueta <maguetamarcos@gmail.com> | 2026-05-08 21:20:01 -0300 |
| commit | dbad4b699e35442920baa60c13f76e95904fe317 (patch) | |
| tree | 70e35b6879349a750ea5be0b02790bb8d32d00b1 /include/ObjectManager.h | |
| parent | 602af97c269bdc211cc7aeb34e436152053395cc (diff) | |
| download | RNT-dbad4b699e35442920baa60c13f76e95904fe317.tar.gz RNT-dbad4b699e35442920baa60c13f76e95904fe317.zip | |
restructure project and add readme
Diffstat (limited to 'include/ObjectManager.h')
| -rw-r--r-- | include/ObjectManager.h | 47 |
1 files changed, 47 insertions, 0 deletions
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 <cstdint> +#include <set> +#include <string> +#include <vector> + +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<METHOD> methods; + }; + struct registry_head { + uint32_t reference_count; + uint32_t handle_count; + struct object_type* type; + std::vector<std::string> 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<std::string> object_path); + }; +} |
