Below is the file 'glib/giochannel.ml' 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 external _init : unit -> unit = "ml_g_io_channel_init_exn" let init = Callback.register_exception "g_io_channel_error" (Error (FAILED, "")) ; _init () 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" external write_chars : t -> ?bytes_written:int ref -> ?off:int -> ?len:int -> string -> [ `NORMAL of int | `AGAIN] = "ml_g_io_channel_write_chars" external flush : t -> [ `NORMAL | `AGAIN] = "ml_g_io_channel_flush" external seek_position : t -> int64 -> [ `CUR | `END | `SET ] -> [ `NORMAL of int | `AGAIN | `EOF] = "ml_g_io_channel_seek_position" external shutdown : t -> bool -> unit = "ml_g_io_channel_shutdown" 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" 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" let set_flags_noerr c fl = try set_flags c fl with Error _ -> () 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"