package calculon

  1. Overview
  2. Docs
module Io : sig ... end
type connection_t
val send : connection:connection_t -> Irc_message.t -> unit Io.t

Send the given message

val send_join : connection:connection_t -> channel:string -> unit Io.t

Send the JOIN command.

val send_nick : connection:connection_t -> nick:string -> unit Io.t

Send the NICK command.

val send_pass : connection:connection_t -> password:string -> unit Io.t

Send the PASS command.

val send_pong : connection:connection_t -> message1:string -> message2:string -> unit Io.t

Send the PONG command.

val send_privmsg : connection:connection_t -> target:string -> message:string -> unit Io.t

Send the PRIVMSG command.

val send_notice : connection:connection_t -> target:string -> message:string -> unit Io.t

Send the NOTICE command.

val send_quit : ?msg:string -> connection:connection_t -> unit -> unit Io.t

Send the QUIT command.

val send_user : connection:connection_t -> username:string -> mode:int -> realname:string -> unit Io.t

Send the USER command.

val connect : ?username:string -> ?mode:int -> ?realname:string -> ?password:string -> ?sasl:bool -> ?config:Io.config -> addr:Io.inet_addr -> port:int -> nick:string -> unit -> connection_t Io.t

Connect to an IRC server at address addr. The PASS command will be sent if password is not None and if sasl is false.

  • parameter sasl

    if true, try to use SASL (plain) authentication with the server. This is an IRCv3 extension and might not be supported everywhere; it might also require a secure transport (see Irc_client_lwt_ssl or Irc_client_tls for example). This param exists

    @since 0.7.

val connect_by_name : ?username:string -> ?mode:int -> ?realname:string -> ?password:string -> ?sasl:bool -> ?config:Io.config -> server:string -> port:int -> nick:string -> unit -> connection_t option Io.t

Try to resolve the server name using DNS, otherwise behaves like connect. Returns None if no IP could be found for the given name. See connect for more details.

type keepalive = {
  1. mode : [ `Active | `Passive ];
  2. timeout : int;
}

Information on keeping the connection alive

val default_keepalive : keepalive

Default value for keepalive: active mode with auto-reconnect

val listen : ?keepalive:keepalive -> connection:connection_t -> callback:(connection_t -> Irc_message.parse_result -> unit Io.t) -> unit -> unit Io.t

listen connection callback listens for incoming messages on connection. All server pings are handled internally; all other messages are passed, along with connection, to callback.

val reconnect_loop : ?keepalive:keepalive -> ?reconnect:bool -> 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

A combination of connect and listen that, every time the connection is terminated, tries to start a new one after after seconds. It stops reconnecting if the exception Exit is raised.

  • parameter after

    time before trying to reconnect

  • parameter callback

    the callback for listen

  • parameter f

    the function to call after connection