Below is the file 'glib/giochannel.mli' from this revision. You can also download the file.

type error =
    FBIG
  | INVAL
  | IO
  | ISDIR
  | NOSPC
  | NXIO
  | OVERFLOW
  | PIPE
  | FAILED
exception Error of error * string
val init : unit

type t

external unix_new : int -> t = "_ml_g_io_channel_unix_new"
external unix_get_fd : t -> int = "ml_g_io_channel_unix_get_fd"
external new_fd : int -> t = "ml_g_io_channel_new_fd"
external new_file : string -> string -> t = "ml_g_io_channel_new_file"

external read_chars : t -> ?off:int -> ?len:int -> string ->
  [ `NORMAL of int | `AGAIN | `EOF]
  = "ml_g_io_channel_read_chars"
(** @raise Error .
    @raise Glib.Convert.Error .*)
external write_chars : t -> ?bytes_written:int ref -> ?off:int -> ?len:int -> string ->
  [ `NORMAL of int | `AGAIN]
  = "ml_g_io_channel_write_chars"
(** @raise Error .
    @raise Glib.Convert.Error .*)

external flush : t -> [ `NORMAL | `AGAIN] = "ml_g_io_channel_flush"
(** @raise Error .
    @raise Glib.Convert.Error .*)
external seek_position : t -> int64 -> [ `CUR | `END | `SET ] ->
  [ `NORMAL of int | `AGAIN | `EOF]
  = "ml_g_io_channel_seek_position"
(** @raise Error .
    @raise Glib.Convert.Error .*)
external shutdown : t -> bool -> unit = "ml_g_io_channel_shutdown"
(** @raise Error .
    @raise Glib.Convert.Error .*)

type condition = [ `ERR | `HUP | `IN | `NVAL | `OUT | `PRI ]
type source_id
external add_watch :
  ?prio:int -> t -> condition list -> (condition list -> bool) -> source_id
  = "_ml_g_io_add_watch"
external remove_watch : source_id -> unit = "_ml_g_source_remove"
(** @raise Not_found .*)

external get_buffer_size : t -> int = "ml_g_io_channel_get_buffer_size"
external set_buffer_size : t -> int -> unit
  = "ml_g_io_channel_set_buffer_size"
external get_buffer_condition : t -> [ `IN | `OUT ] list
  = "ml_g_io_channel_get_buffer_condition"

type rw_flags = [ `APPEND | `NONBLOCK ]
type ro_flags = [ `IS_READABLE | `IS_SEEKABLE | `IS_WRITEABLE ]
external get_flags : t -> [ro_flags | rw_flags] list = "ml_g_io_channel_get_flags"
external set_flags : t -> rw_flags list -> unit = "ml_g_io_channel_set_flags"
val set_flags_noerr : t -> rw_flags list -> unit

external get_line_term : t -> string option = "ml_g_io_channel_get_line_term"
external set_line_term : t -> string option -> unit
  = "ml_g_io_channel_set_line_term"
external get_buffered : t -> bool = "ml_g_io_channel_get_buffered"
external set_buffered : t -> bool -> unit = "ml_g_io_channel_set_buffered"
external get_encoding : t -> string option = "ml_g_io_channel_get_encoding"
external set_encoding : t -> string option -> unit
  = "ml_g_io_channel_set_encoding"
external get_close_on_unref : t -> bool
  = "ml_g_io_channel_get_close_on_unref"
external set_close_on_unref : t -> bool -> unit
  = "ml_g_io_channel_set_close_on_unref"