functor (Io : Irc_transport.IO) ->
sig
module Io :
sig
type 'a t = 'a Io.t
type inet_addr = Io.inet_addr
type config = Io.config
end
type connection_t
val send : connection:connection_t -> Irc_message.t -> unit Io.t
val send_join : connection:connection_t -> channel:string -> unit Io.t
val send_nick : connection:connection_t -> nick:string -> unit Io.t
val send_pass : connection:connection_t -> password:string -> unit Io.t
val send_pong : connection:connection_t -> message:string -> unit Io.t
val send_privmsg :
connection:connection_t -> target:string -> message:string -> unit Io.t
val send_notice :
connection:connection_t -> target:string -> message:string -> unit Io.t
val send_quit : connection:connection_t -> unit Io.t
val send_user :
connection:connection_t ->
username:string -> mode:int -> realname:string -> unit Io.t
val connect :
?username:string ->
?mode:int ->
?realname:string ->
?password:string ->
?config:Io.config ->
addr:Io.inet_addr ->
port:int -> nick:string -> unit -> connection_t Io.t
val connect_by_name :
?username:string ->
?mode:int ->
?realname:string ->
?password:string ->
?config:Io.config ->
server:string ->
port:int -> nick:string -> unit -> connection_t option Io.t
type keepalive = { mode : [ `Active | `Passive ]; timeout : int; }
val default_keepalive : keepalive
val listen :
?keepalive:keepalive ->
connection:connection_t ->
callback:(connection_t -> Irc_message.parse_result -> unit Io.t) ->
unit -> unit Io.t
val reconnect_loop :
?keepalive:keepalive ->
after:int ->
connect:(unit -> connection_t option Io.t) ->
f:(connection_t -> unit Io.t) ->
callback:(connection_t -> Irc_message.parse_result -> unit Io.t) ->
unit -> unit Io.t
val set_log : (string -> unit Io.t) -> unit
end