aboutsummaryrefslogtreecommitdiffstats
path: root/include/Types.h
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2026-05-13 01:59:22 -0300
committerGitHub <noreply@github.com>2026-05-13 01:59:22 -0300
commitaf6073dedffd1a16aff7a283ded50545dc40b179 (patch)
treea4b8fbfb4842f5ac27bf7fa641555de3fac6b7f3 /include/Types.h
parentc1b70cfe745d935bded3053fba8c1f9573aa07aa (diff)
downloadRNT-af6073dedffd1a16aff7a283ded50545dc40b179.tar.gz
RNT-af6073dedffd1a16aff7a283ded50545dc40b179.zip
Extern handles for embedded runtime
Diffstat (limited to '')
-rw-r--r--include/Types.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/include/Types.h b/include/Types.h
index 3e38829..f7eadff 100644
--- a/include/Types.h
+++ b/include/Types.h
@@ -24,7 +24,33 @@ enum OBJECT_TYPE {
* a projected stored relation) or AlephZero (e.g. the eq builtin). The
* object_type for this label must be an ephemeral_object_type.
*/
- EPHEMERAL_RELATION
+ EPHEMERAL_RELATION,
+ /**
+ * A named mutable reference to a multigroup state, analogous to a git
+ * branch. A BRANCH object carries an opaque payload (serialized multigroup
+ * bytes) that the caller — in practice Sakura — deserializes on open.
+ *
+ * Branch objects are the entry point for database connections: a client
+ * opens a handle to /system/branches/<name>, reads the payload bytes to
+ * reconstruct the multigroup in memory, and holds the handle for the
+ * duration of the session.
+ *
+ * The `exclusive` flag on the object_type should be set to true so that
+ * LifecycleManager::Contention serializes concurrent writers.
+ */
+ BRANCH,
+ /**
+ * A named query plan stored in the object registry. A VIEW object carries
+ * the serialized plan definition and the multigroup hash at definition time.
+ * No handles to physical storage are kept open in the VIEW object itself.
+ * Each time the view is opened, fresh relation handles and cursors are
+ * created for the duration of that execution, then released on close.
+ *
+ * @todo Implement ObjectManager::View, rnt_register_view, and the
+ * open-view path in HandlerManager. Views are reserved in the type
+ * system but have no runtime support yet.
+ */
+ VIEW
};
/** @brief Operations that may be supported by an object type. */