Relational NT
A relational database kernel shaped around NT-style object management.
Loading...
Searching...
No Matches
HandlerManager.h
Go to the documentation of this file.
1#pragma once
2
3#include "Api.h"
4#include "ObjectManager.h"
5#include "Types.h"
6
7#include <set>
8#include <string>
9#include <vector>
10
15
16namespace nt {
17 class IdentityManager;
18 class LifecycleManager;
21
24 public:
32 HandlerManager(ObjectManager& objects, PermissionsManager& permissions,
33 IdentityManager& identities, LifecycleManager& lifecycles,
34 NamespaceReferenceManager& references);
35
54 struct handle {
56 ObjectManager::registry* object = nullptr;
58 void* connection_context = nullptr;
65 std::set<AUTH_CLAIM> granted_access;
66 };
67
72 void DeallocateHandle(struct handle* handle);
73
80 struct handle* Open(std::vector<std::string> object_path, void* connection_context);
81
87 bool Close(struct handle* handle);
88
89 private:
90 ObjectManager& objects_;
91 PermissionsManager& permissions_;
92 IdentityManager& identities_;
93 LifecycleManager& lifecycles_;
94 NamespaceReferenceManager& references_;
95 };
96} // namespace nt
Defines symbol visibility for the Relational NT public API.
Declares the registry responsible for runtime-managed database objects.
Shared enum types and core data types used by the runtime.
struct handle * Open(std::vector< std::string > object_path, void *connection_context)
Opens an object by path for a connection.
Definition HandlerManager.cpp:20
HandlerManager(ObjectManager &objects, PermissionsManager &permissions, IdentityManager &identities, LifecycleManager &lifecycles, NamespaceReferenceManager &references)
Constructs a HandlerManager with shared runtime dependencies.
Definition HandlerManager.cpp:13
void DeallocateHandle(struct handle *handle)
Releases a handle allocation.
Definition HandlerManager.cpp:9
bool Close(struct handle *handle)
Closes a previously opened handle.
Definition HandlerManager.cpp:35
Checks whether an object supports identity-level operations.
Definition IdentityManager.h:23
Manages runtime lifecycle concerns for registry objects.
Definition LifecycleManager.h:25
Handles the logical mapping and isolation of human-readable references.
Definition NamespaceReferenceManager.h:69
Owns the registry used to locate and reference database objects.
Definition ObjectManager.h:27
Definition PermissionsManager.h:39
Contains the Relational NT runtime managers and API facade.
Represents authorized access to an object in the registry.
Definition HandlerManager.h:54
std::set< AUTH_CLAIM > granted_access
Access claims granted to this handle at open time.
Definition HandlerManager.h:65
void * connection_context
Connection metadata associated with the authorized access.
Definition HandlerManager.h:58
Node in the object registry.
Definition ObjectManager.h:285