|
Relational NT
A relational database kernel shaped around NT-style object management.
|
Registry object representing an active connection's session. More...
#include <ObjectManager.h>
Public Attributes | |
| void * | connection_context = nullptr |
| std::map< std::string, std::string > | branch_overrides |
Registry object representing an active connection's session.
connection_context carries whatever auth/connection metadata the caller passed to rnt_session_open. The runtime treats it as an opaque pointer; ownership of the pointee is the caller's concern.
branch_overrides maps a branch name to the BRANCH_TREE root this session should see for that branch, instead of the global HEAD. NamespaceReferenceManager::Resolve consults the override first when a path of the form /system/sessions/<X>/branches/<name>/... is requested, falling back to the global /system/branches/<name> lookup when no override is present.
The session→branch reference direction is intentional: global branches do not track viewing sessions, which keeps the hot path cheap. GC of a stale snapshot must walk all sessions' override maps to discover live references — amortised cost only paid at GC time. A reverse index can be added later if session counts make the walk hot.