From af6073dedffd1a16aff7a283ded50545dc40b179 Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Wed, 13 May 2026 01:59:22 -0300 Subject: Extern handles for embedded runtime --- include/ObjectManager.h | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'include/ObjectManager.h') diff --git a/include/ObjectManager.h b/include/ObjectManager.h index 32b3ae9..e30ff1b 100644 --- a/include/ObjectManager.h +++ b/include/ObjectManager.h @@ -35,11 +35,34 @@ namespace nt /** @brief Abstract registry object representing a multigroup. */ class Multigroup : public IObject {}; - /** @brief Abstract registry object representing a relation. */ - class Relation : public IObject {}; + /** + * @brief Registry object representing a stored relation. + * + * merkle_root is the hex hash of the Merkle B-tree root node stored in + * the KV backend. Empty string means the relation contains no tuples. + * Updated atomically by rnt_link_tuple / rnt_unlink_tuple / rnt_clear_relation. + */ + class Relation : public IObject { + public: + std::string merkle_root; + }; /** @brief Abstract registry object representing a transaction. */ class Transaction : public IObject {}; + /** + * @brief A named mutable reference to a multigroup state. + * + * The payload field carries the serialized multigroup bytes in whatever + * format the caller registered them with. The C API returns these bytes + * verbatim when a handle to the branch is opened; Sakura is responsible + * for deserializing them into a Multigroup object. + */ + class Branch : public IObject { + public: + std::string name; + std::vector payload; + }; + /** * @brief Describes the behavior and capabilities of an object category. * -- cgit v1.2.3