Relational NT
A relational database kernel shaped around NT-style object management.
Loading...
Searching...
No Matches
EphemeralRelation.h
Go to the documentation of this file.
1#pragma once
2
3#include "LifecycleManager.h"
4#include "ObjectManager.h"
5
6#include <string>
7#include <utility>
8#include <vector>
9
26
27namespace nt::Ephemeral {
42 enum class Tier { Scratch, Named };
43
52 std::vector<std::string> SplitPath(const std::string& path);
53
73 std::string ComposeRoot(const std::string& generator_identity,
74 const std::vector<std::pair<std::string, std::string>>& schema,
75 const std::vector<std::string>& base_roots);
76
116 ObjectManager::registry* Register(
117 ObjectManager& objects, LifecycleManager& lifecycles, const std::string& session_hash,
118 Tier tier, const std::string& name,
120 ObjectManager::ephemeral_object_type::Cardinality cardinality,
121 const std::string& generator_identity,
122 const std::vector<std::pair<std::string, std::string>>& schema,
123 const std::vector<std::string>& dependencies);
124
141 std::size_t ReleaseSession(ObjectManager& objects, LifecycleManager& lifecycles,
142 const std::string& session_hash);
143} // namespace nt::Ephemeral
Tier
Lifetime class of a freshly produced ephemeral relation.
Definition EphemeralRelation.h:42
Declares monitoring, pinning, cleanup, and contention operations.
Declares the registry responsible for runtime-managed database objects.
Manages runtime lifecycle concerns for registry objects.
Definition LifecycleManager.h:25
Owns the registry used to locate and reference database objects.
Definition ObjectManager.h:27
std::function< std::vector< Tuple >( const std::vector< std::string > &args, std::size_t offset, std::size_t limit)> Generator
Produces a page of tuples for the given bound arguments.
Definition ObjectManager.h:234
Node in the object registry.
Definition ObjectManager.h:285