diff options
| author | Estevan Castilho <tevo@riajuu.net> | 2026-05-07 01:29:19 +0000 |
|---|---|---|
| committer | Estevan Castilho <tevo@riajuu.net> | 2026-05-07 01:29:19 +0000 |
| commit | 6d626c77af9b53ff167bd8af7fc20d75a4202f40 (patch) | |
| tree | 66c4303af8a8d5402eeca1199159f5e3d6340432 /lib | |
| parent | 1c881694d4b26be62757a6a7211734eb418d407d (diff) | |
| download | Sakura-6d626c77af9b53ff167bd8af7fc20d75a4202f40.tar.gz Sakura-6d626c77af9b53ff167bd8af7fc20d75a4202f40.zip | |
`MemoryBackend` is now somewhere else
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/management/physical.ml | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/lib/management/physical.ml b/lib/management/physical.ml index 9b198fb..36ad228 100644 --- a/lib/management/physical.ml +++ b/lib/management/physical.ml @@ -108,90 +108,3 @@ module Make (B : BACKEND) : let with_transaction = B.with_transaction end - -(** In-memory backend for testing and development *) -module MemoryBackend : - BACKEND with type error = string and type configuration = unit = struct - type configuration = unit - - type connection = { - data : (string, bytes) Hashtbl.t; - mutable in_transaction : bool; - mutable transaction_buffer : (string * bytes) list; - } - - type error = string - - let parse sexp = - match sexp with - | Sexplib.Sexp.List [] -> Ok () - | _ -> - Error - (Printf.sprintf "memory backend takes no configuration, got: %s" - (Sexplib.Sexp.to_string sexp)) - - let connect () = - Ok - { - data = Hashtbl.create 1024; - in_transaction = false; - transaction_buffer = []; - } - - let disconnect _ = () - let get conn hash = Ok (Hashtbl.find_opt conn.data hash) - - let put conn hash value = - if conn.in_transaction then begin - conn.transaction_buffer <- (hash, value) :: conn.transaction_buffer; - Ok () - end - else begin - Hashtbl.replace conn.data hash value; - Ok () - end - - let exists conn hash = Ok (Hashtbl.mem conn.data hash) - - let begin_transaction conn = - if conn.in_transaction then Error "Already in transaction" - else begin - conn.in_transaction <- true; - conn.transaction_buffer <- []; - Ok () - end - - let commit conn = - if not conn.in_transaction then Error "Not in transaction" - else begin - List.iter - (fun (hash, value) -> Hashtbl.replace conn.data hash value) - conn.transaction_buffer; - conn.in_transaction <- false; - conn.transaction_buffer <- []; - Ok () - end - - let rollback conn = - if not conn.in_transaction then Error "Not in transaction" - else begin - conn.in_transaction <- false; - conn.transaction_buffer <- []; - Ok () - end - - let get_many conn hashes = - Ok (List.map (fun h -> Hashtbl.find_opt conn.data h) hashes) - - let put_many conn pairs = - List.iter - (fun (hash, value) -> - if conn.in_transaction then - conn.transaction_buffer <- (hash, value) :: conn.transaction_buffer - else Hashtbl.replace conn.data hash value) - pairs; - Ok () -end - -module Memory = Make (MemoryBackend) -(** Default in-memory storage for development *) |
