sig
type t
val create :
?server:'s Rpc.Server.t ->
connection_state:'s ->
?max_message_size:int ->
Import.Reader.t ->
Import.Writer.t ->
(Rpc.Connection.t, Core.Std.Exn.t) Core.Std.Result.t Import.Deferred.t
val close : Rpc.Connection.t -> unit
val closed : Rpc.Connection.t -> unit Import.Deferred.t
val already_closed : Rpc.Connection.t -> bool
val bytes_to_write : Rpc.Connection.t -> int
val with_close :
?server:'s Rpc.Server.t ->
connection_state:'s ->
Import.Reader.t ->
Import.Writer.t ->
dispatch_queries:(Rpc.Connection.t -> 'a Import.Deferred.t) ->
on_handshake_error:[ `Call of Core.Std.Exn.t -> 'a Import.Deferred.t
| `Raise ] ->
'a Import.Deferred.t
val server_with_close :
Import.Reader.t ->
Import.Writer.t ->
server:'s Rpc.Server.t ->
connection_state:'s ->
on_handshake_error:[ `Call of Core.Std.Exn.t -> unit Import.Deferred.t
| `Ignore
| `Raise ] ->
unit Import.Deferred.t
val serve :
server:'s Rpc.Server.t ->
initial_connection_state:(Import.Socket.inet -> 's) ->
port:int ->
?auth:(Import.Socket.inet -> bool) ->
?on_handshake_error:[ `Call of Core.Std.Exn.t -> unit | `Ignore | `Raise ] ->
unit -> unit Import.Deferred.t
val client :
host:string ->
port:int ->
(Rpc.Connection.t, Core.Std.Exn.t) Core.Std.Result.t Import.Deferred.t
val with_client :
host:string ->
port:int ->
(Rpc.Connection.t -> 'a Import.Deferred.t) ->
('a, Core.Std.Exn.t) Core.Std.Result.t Import.Deferred.t
end