1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
(* $Id: netbuffer.mli,v 1.3 2000/06/25 22:34:43 gerd Exp $
* ----------------------------------------------------------------------
*
*)
(* A Netbuffer.t is a buffer that can grow and shrink dynamically. *)
type t
val create : int -> t
(* Creates a netbuffer which allocates initially this number of bytes.
* The logical length is zero.
*)
val contents : t -> string
(* Returns the contents of the buffer as fresh string. *)
val sub : t -> pos:int -> len:int -> string
(* sub nb k n: returns the n characters starting at position n from
* netbuffer nb as fresh string
*)
val length : t -> int
(* Returns the logical length of the buffer *)
val add_string : t -> string -> unit
(* add_string nb s: Adds a copy of the string s to the logical end of
* the netbuffer nb. If necessary, the nb grows.
*)
val add_sub_string : t -> string -> pos:int -> len:int -> unit
(* add_sub_string nb s k n: Adds the substring of s starting at position
* k with length n to the logical end of the netbuffer nb. If necessary,
* the nb grows.
* This is semantically the same as
* add_string nb (String.sub s k n), but the extra copy is avoided.
*)
val delete : t -> pos:int -> len:int -> unit
(* delete nb k n: Deletes the n bytes at position k of netbuffer nb
* in-place.
* The netbuffer does not shrink!
*)
val clear : t -> unit
(* deletes all contents from the buffer. As 'delete', the netbuffer does
* not shrink.
*)
val try_shrinking : t -> unit
(* try_shrinking nb: If the length of the buffer is less than half of
* the allocated space, the netbuffer is reallocated in order to save
* memory.
*)
val index_from : t -> int -> char -> int
(* index_from nb k c: Searches the character c in the netbuffer beginning
* at position k. If found, the position of the left-most occurence is
* returned. Otherwise, Not_found is raised.
*)
val unsafe_buffer : t -> string
(* WARNING! This is a low-level function!
* Returns the current string that internally holds the buffer.
* The byte positions 0 to length - 1 actually store the contents of
* the buffer. You can directly read and modify the buffer. Note that
* there is no protection if you read or write positions beyond the
* length of the buffer.
*)
val print_buffer : t -> unit
(* For the toploop *)
(* ======================================================================
* History:
*
* $Log: netbuffer.mli,v $
* Revision 1.3 2000/06/25 22:34:43 gerd
* Added labels to arguments.
*
* Revision 1.2 2000/06/24 20:20:33 gerd
* Added the toploop printer.
*
* Revision 1.1 2000/04/15 13:07:48 gerd
* Initial revision.
*
*
*)
|