From d21900836f89b2bf9cd55ff1708a4619c8b89656 Mon Sep 17 00:00:00 2001 From: polwex Date: Mon, 20 Oct 2025 13:13:39 +0700 Subject: neoinit --- ocaml/lib/eventlog.mli | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 ocaml/lib/eventlog.mli (limited to 'ocaml/lib/eventlog.mli') diff --git a/ocaml/lib/eventlog.mli b/ocaml/lib/eventlog.mli new file mode 100644 index 0000000..8be010f --- /dev/null +++ b/ocaml/lib/eventlog.mli @@ -0,0 +1,41 @@ +(* Event Log - Persistent event storage + * + * Provides append-only event log with replay capability. + *) + +(* Event number (0-indexed) *) +type event_num = int64 + +(* Event metadata *) +type event_meta = { + num: event_num; + mug: int32; (* murmur3 hash *) + size: int; (* size of jammed data *) +} + +(* Event log handle *) +type t + +(* Create event log at pier path + * Creates .urb/log directory structure if needed + * enabled=false disables actual file writes (useful for testing) *) +val create : ?enabled:bool -> string -> t + +(* Append event to log, returns event number *) +val append : ?verbose:bool -> t -> Noun.noun -> event_num + +(* Read single event from log *) +val read_event : ?verbose:bool -> t -> event_num -> Noun.noun + +(* Replay all events sequentially, calling callback for each *) +val replay : ?verbose:bool -> t -> (event_num -> Noun.noun -> unit) -> unit + +(* Get count of events in log *) +val event_count : t -> int + +(* Get last event number (or -1 if empty) *) +val last_event_num : t -> event_num + +(* Disable/enable logging *) +val disable : t -> unit +val enable : t -> unit -- cgit v1.2.3