module Client: sig
.. end
type
t = {
|
remote_ip :Import.Unix.Inet_addr.t ; |
|
remote_port :int ; |
|
expected_remote_name :Remote_name.t ; |
|
check_remote_name :bool ; |
|
logfun :Versioned_typed_tcp.Make.logfun option ; |
|
my_name :My_name.t ; |
|
messages :(Remote_name.t, Recv.t) Versioned_typed_tcp.Client_msg.t Import.Tail.t ; |
|
queue :(Send.t * [ `Dropped | `Sent of Core.Std.Time.t ] Import.Ivar.t) Core.Std.Queue.t ; |
|
mutable con :[ `Connected of Versioned_typed_tcp.Make.Connection.t | `Connecting of unit -> unit | `Disconnected ] ; |
|
mutable trying_to_connect :[ `No | `Yes of unit Import.Ivar.t ] ; |
|
mutable connect_complete :unit Import.Ivar.t ; |
|
mutable ok_to_connect :unit Import.Ivar.t ; |
|
now :unit -> Core.Std.Time.t ; |
|
mutable last_connect_error :exn option ; |
}
val connect : t -> unit Import.Ivar.Deferred.t
val flushed : t ->
[> `Flushed | `Pending of Core.Std.Time.t Async_unix.Import.Deferred.t ]
val listen : t ->
(Remote_name.t, Recv.t) Versioned_typed_tcp.Client_msg.t Import.Tail.Stream.t
val listen_ignore_errors : ?stop:unit Import.Deferred.t ->
t -> Recv.t Import.Stream.t
val send : t ->
Send.t -> [ `Dropped | `Sent of Core.Std.Time.t ] Import.Ivar.Deferred.t
val close_connection : t -> unit
val connect : t -> unit Import.Ivar.Deferred.t
val send_ignore_errors : t -> Send.t -> unit
val state : t ->
[> `Connected | `Connecting | `Disconnected ]
val create : ?logfun:Versioned_typed_tcp.Make.logfun ->
?now:(unit -> Core.Std.Time.t) ->
?check_remote_name:bool ->
ip:string ->
port:int ->
expected_remote_name:Remote_name.t ->
My_name.t -> t Async_core.Deferred.t
val last_connect_error : t -> exn option