Library
Module
Module type
Parameter
Class
Class type
The module Bz
provides a basic interface to the bzip2
compression library.
Exception IO_error
is raised when there is an error reading or writing on a compressed channel ; the string argument is the message reported by the OS.
Exception Data_error
is raised when a data integrity error is detected during decompression.
Exception Unexpected_EOF
is raised when an in_channel
finishes before the logical end of stream is detected.
When any of these exception is raised, the channel is automatically closed (but you still have to close the Stdlib channel).
val open_in : ?small:bool -> ?unused:bytes -> in_channel -> in_channel
open_in ic
opens a compressed stream reading from the Stdlib
input channel ic
.
val read : in_channel -> bytes -> int -> int -> int
read buf pos len
reads up to len
characters and store them in the string buffer buf
, starting at position pos
.
val read_get_unused : in_channel -> bytes
If there's some data after the compressed stream that you want to read from the same Stdlib
in_channel
, use read_get_unused
.
val close_in : in_channel -> unit
val open_out : ?block:int -> out_channel -> out_channel
open_out oc
creates an out_channel
writing to the Stdlib
output channel oc
. Once the write operations are finished and the compressed channel is closed, it is possible to continue writing on the Stdlib
channel. However, reading back requires special care (cf. above).
val write : out_channel -> bytes -> int -> int -> unit
write oc buf pos len
writes len
characters, coming from buf
and starting at position pos
, to oc
val close_out : out_channel -> unit
These functions compress to/decompress from string buffers.
compress buf pos len
compress a data chunk coming from buf
, len
character long, and starting at pos
.