Module Zmq.Monitor

type t
type address = string
type error_no = int
type error_text = string
type event =
  1. | Connected of address * Unix.file_descr
  2. | Connect_delayed of address
  3. | Connect_retried of address * int
  4. | Listening of address * Unix.file_descr
  5. | Bind_failed of address * error_no * error_text
  6. | Accepted of address * Unix.file_descr
  7. | Accept_failed of address * error_no * error_text
  8. | Closed of address * Unix.file_descr
  9. | Close_failed of address * error_no * error_text
  10. | Disconnected of address * Unix.file_descr
  11. | Monitor_stopped of address
  12. | Handshake_failed_no_detail of address
  13. | Handshake_succeeded of address
  14. | Handshake_failed_protocol of address * int
  15. | Handshake_failed_auth of address * int
val create : 'a Socket.t -> t
val connect : Context.t -> t -> [< `Monitor ] Socket.t
val recv : ?block:bool -> [< `Monitor ] Socket.t -> event

Receive an event from the monitor socket. block indicates if the call should be blocking or non-blocking. Default true

val string_of_event : event -> string
val mk_string_of_event : unit -> event -> string

Create a memorizing function for converting an event to a string. As its it not possible to reliably retrieve the peer address of a closed socket dues to a race condition, this function pairs connects and disconnects and returns the matching connect peer address to disconnects.

Note that it is not possible to retrieve the peer address of connect events is the peer has disconnected before string_of_event is called