--- /dev/null
+(* $Id$
+ * ----------------------------------------------------------------------
+ *
+ *)
+
+
+(* 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$
+ * Revision 1.1 2000/11/17 09:57:27 lpadovan
+ * Initial revision
+ *
+ * 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.
+ *
+ *
+ *)