Compare commits

...

1 commit

Author SHA1 Message Date
300ea4ee60 a way to send notifies 2024-08-04 19:54:34 +03:00
2 changed files with 8 additions and 3 deletions

View file

@ -26,6 +26,7 @@ let handle pk =
| None -> printf "unhandled cmd: %d\n%!" pk.cmd; None | None -> printf "unhandled cmd: %d\n%!" pk.cmd; None
let rec run ic oc = let rec run ic oc =
let open Packet in
let* pk = read ic in let* pk = read ic in
let head = Hex.show (Hex.of_string pk.head) in let head = Hex.show (Hex.of_string pk.head) in
@ -34,7 +35,7 @@ let rec run ic oc =
printf "packet cmd: %d, head: %s, body: %s\n%!" pk.cmd head body; printf "packet cmd: %d, head: %s, body: %s\n%!" pk.cmd head body;
let* () = match handle pk with let* () = match handle pk with
| Some pk -> write oc pk |Some res -> (Lwt_list.iter_s (fun pk -> write oc pk) res.packets)
| None -> return_unit | None -> return_unit
in in

View file

@ -2,6 +2,7 @@ open Lwt
open Lwt.Syntax open Lwt.Syntax
type packet = { cmd: int; head: string; body: string } type packet = { cmd: int; head: string; body: string }
type net_result = { packets: packet list }
let read ic = let read ic =
let open Lwt_io in let open Lwt_io in
@ -37,6 +38,9 @@ let pack cmd en data =
en data encoder; en data encoder;
let buf = Pbrt.Encoder.to_string encoder in let buf = Pbrt.Encoder.to_string encoder in
{ cmd = cmd; head = ""; body = buf; } { packets = [{ cmd = cmd; head = ""; body = buf; }] }
let empty cmd = { cmd = cmd; head = ""; body = "" } let merge lhs rhs =
{ packets = lhs.packets @ rhs.packets }
let empty cmd = {packets = [{ cmd = cmd; head = ""; body = "" }]}