aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ObjectManager.ml
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2026-07-07 16:07:07 -0300
committerMarcos Magueta <maguetamarcos@gmail.com>2026-07-07 16:07:07 -0300
commit5a799734ddd523027a7d6ef8b0acab6d0b796ec6 (patch)
tree45f11504d8ca7ad55ba3cbb85ad778907e1ecf3f /lib/ObjectManager.ml
parentab70e5461b98ddf2b56268c53c171cab89157027 (diff)
downloadRNT-5a799734ddd523027a7d6ef8b0acab6d0b796ec6.tar.gz
RNT-5a799734ddd523027a7d6ef8b0acab6d0b796ec6.zip
object manager initial model and sotrage stubs
Diffstat (limited to 'lib/ObjectManager.ml')
-rw-r--r--lib/ObjectManager.ml37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/ObjectManager.ml b/lib/ObjectManager.ml
new file mode 100644
index 0000000..b107b4e
--- /dev/null
+++ b/lib/ObjectManager.ml
@@ -0,0 +1,37 @@
+type multigroup = {merkle_root: string}
+type relation = {merkle_root: string}
+type ephemeral_relation = {merkle_root: string; dependencies: string BatFingerTree.t}
+type transaction = unit
+type session = {connection_context: unit; branch_overrides: string BatMap.String.t}
+type branch = {name: string; target_hash: string}
+type branch_tree = {merkle_root: string}
+
+type rnt_object_kind =
+ | Multigroup of multigroup
+ | Relation of relation
+ | EphemeralRelation of ephemeral_relation
+ | Session of session
+ | Branch of branch
+ | BranchTree of branch_tree
+
+type rnt_method = OPEN | CLOSE
+
+type rnt_object =
+ {kind: rnt_object_kind; disposable: bool; methods: rnt_method BatSet.t; exclsive: bool}
+
+type registry = {reference_count: int; handle_count: int; entry: rnt_object}
+
+type rnt_object_tree =
+ | Intermediary of {label: string; data: registry; subsequent: rnt_object_tree BatFingerTree.t}
+ | Final of {label: string; data: registry}
+
+let register (_object_path : string BatFingerTree.t) (_registry : rnt_object_tree)
+ (_rnt_object : rnt_object) : rnt_object_tree =
+ failwith "NOT IMPLEMENTED"
+
+let find (_object_path : string BatFingerTree.t) (_registry : rnt_object_tree) : registry =
+ failwith "NOT IMPLEMENTED"
+
+let unregister (_object_path : string BatFingerTree.t) (_registry : rnt_object_tree) :
+ rnt_object_tree =
+ failwith "NOT IMPLEMENTED"