package irmin-pack
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=92a9de7a0a2a35c2feba0c35a806b1f0df24c1c0d15164eebf3f919296d26715
sha512=0203ec5117a851ad5afeb2f9091659b4e142e231b6b945caab93f4d7beb23397c8ac43f7056e91d18f4bff0be1062f6ae966d221f877c229328c0cbbf29fd9f0
doc/irmin-pack.unix/Irmin_pack_unix/Pack_store/Make/argument-2-Dispatcher/index.html
Parameter Make.Dispatcher
module Fm = Fm
val read_exn :
t ->
off:Optint.Int63.t ->
len:int ->
?volume_identifier:Lower.volume_identifier ->
bytes ->
Lower.volume_identifier option
read_exn t ~off ~len buffer
writes into buffer
the bytes from off
to off+len
. If the read occurred, in a lower volume, its identifier is returned.
If you know which volume to read from in the lower, provide volume_identifier
to skip checking the prefix.
Note: read_exn
is the only read function that supports reading in the lower.
val read_range_exn :
t ->
off:Optint.Int63.t ->
min_len:int ->
max_len:int ->
?volume_identifier:Lower.volume_identifier ->
bytes ->
int * Lower.volume_identifier option
Same as read_exn
, the amount read is max_len
if possible or at least min_len
if reading more would step over a hole in the sparse file. Returns the actually read length and optionnaly the volume where the data was found.
val end_offset : t -> Optint.Int63.t
end_offset
is the end offsets of the pack entries, counting that the prefix doesn't start at 0. It counts the entries not yet flushed from the prefix.
val suffix_start_offset : t -> Optint.Int63.t
suffix_start_offset
is the offsets of the first pack entry in the suffix. All pack entries in the prefix fit below suffix_start_offset
.
val offset_of_soff : t -> Optint.Int63.t -> Optint.Int63.t
offset_of_soff t suffix_off
converts a suffix offset into a (global) offset.
val soff_of_offset : t -> Optint.Int63.t -> Optint.Int63.t
soff_of_offset t global_offset
converts a global offset to a suffix offset.
val read_seq_exn :
t ->
off:Optint.Int63.t ->
len:Optint.Int63.t ->
string Irmin.Export_for_backends.Seq.t
val read_bytes_exn :
t ->
f:(string -> unit) ->
off:Optint.Int63.t ->
len:Optint.Int63.t ->
unit
read_bytes_exn
reads a slice of the global offset space defined by off
and len
.
The calls to f
ignore the objects boundaries (i.e. the string passed to f
will most of the time not be the beginning of an object).
The strings passed to f
are safe. They can be kept around, they are not the result of an unsafe_to_string
conversion.
The call will fail if the (off, len)
range is invalid. It will succeed in these cases:
- If the range designates a slice of the suffix.
- If the range designates a slice of contiguous live bytes in the prefix
- If the range designates a slice of contiguous live bytes that starts in the prefix and ends in the suffix. This implies that the last chunk of the prefix is contiguous to the start of the suffix.
val next_valid_offset : t -> off:Optint.Int63.t -> Optint.Int63.t option
next_valid_offset t ~off
returns an offset greater or equal to off
that can be read. Used to iterate over the entries while skipping over the holes in the sparse file.