diff options
Diffstat (limited to '')
| -rw-r--r-- | lib/kernel/Journal.mli | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/kernel/Journal.mli b/lib/kernel/Journal.mli new file mode 100644 index 0000000..d354e03 --- /dev/null +++ b/lib/kernel/Journal.mli @@ -0,0 +1,22 @@ +(** a namespace that keeps its history: each binding it accepts is a + commit of [Protocols.Journal]. It answers [Directory] and [Registry] + as a plain namespace does, so a subsystem that only knows those + commits without knowing it. *) + +(** a journal whose first commit, numbered 0, binds [bindings]. *) +val make : ?bindings:(string * Protocols.Handle.t) list -> unit -> Protocols.Handle.t + +(** a journal whose first commit binds whatever [directory] binds now. *) +val adopt : Protocols.Handle.t -> (Protocols.Handle.t, Concepts.Condition.condition) result + +(** a directory of [bindings] that, asked for a derived relation, hands + it out read against itself. *) +val snapshot : (string * Protocols.Handle.t) list -> Protocols.Handle.t + +(** bind each name to its handle, or unbind it, whatever it was bound to + before: as one commit when [directory] is a journal, and one name at + a time when it is a plain namespace. *) +val rebind : + Protocols.Handle.t -> + (string * Protocols.Handle.t option) list -> + (unit, Concepts.Condition.condition) result |
