mirror of
https://github.com/c-cube/linol.git
synced 2025-12-06 03:05:31 -05:00
33 lines
627 B
OCaml
33 lines
627 B
OCaml
|
|
|
|
type json = Yojson.Safe.t
|
|
|
|
module type IO = Sigs.IO
|
|
|
|
module type S = sig
|
|
module IO : IO
|
|
|
|
type t
|
|
(** A jsonrpc2 connection. *)
|
|
|
|
include module type of Server.Make(IO)
|
|
|
|
val create :
|
|
ic:IO.in_channel ->
|
|
oc:IO.out_channel ->
|
|
server ->
|
|
t
|
|
(** Create a connection from the pair of channels *)
|
|
|
|
val create_stdio : server -> t
|
|
(** Create a connection using stdin/stdout *)
|
|
|
|
val run :
|
|
?shutdown:(unit -> bool) ->
|
|
t -> unit IO.t
|
|
(** Listen for incoming messages and responses.
|
|
@param shutdown if true, tells the server to shut down *)
|
|
end
|
|
|
|
module Make(IO : IO) : S with module IO = IO
|
|
|