[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mldonkey-commits] mldonkey/src/utils/lib verificationBitmap.ml ve...
From: |
mldonkey-commits |
Subject: |
[Mldonkey-commits] mldonkey/src/utils/lib verificationBitmap.ml ve... |
Date: |
Sun, 11 Jun 2006 17:39:51 +0000 |
CVSROOT: /sources/mldonkey
Module name: mldonkey
Changes by: spiralvoice <spiralvoice> 06/06/11 17:39:51
Added files:
src/utils/lib : verificationBitmap.ml verificationBitmap.mli
Log message:
patch #5168
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/lib/verificationBitmap.ml?cvsroot=mldonkey&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/lib/verificationBitmap.mli?cvsroot=mldonkey&rev=1.1
Patches:
Index: verificationBitmap.ml
===================================================================
RCS file: verificationBitmap.ml
diff -N verificationBitmap.ml
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ verificationBitmap.ml 11 Jun 2006 17:39:51 -0000 1.1
@@ -0,0 +1,60 @@
+type t = string
+type part_state =
+ State_missing | State_partial | State_complete | State_verified
+
+let state_to_char = function
+ | State_missing -> '0'
+ | State_partial -> '1'
+ | State_complete -> '2'
+ | State_verified -> '3'
+;;
+let char_to_state = function
+ | '0' -> State_missing
+ | '1' -> State_partial
+ | '2' -> State_complete
+ | '3' -> State_verified
+ | _ -> assert false
+
+let create n c = String.make n (state_to_char c)
+let get x i = (char_to_state x.[i])
+let set x i c = x.[i] <- state_to_char c
+let length = String.length
+let init n f =
+ let s = String.create n in
+ for i = 0 to n - 1 do
+ set s i (f i)
+ done;
+ s
+let to_string x = x
+let of_string x = x
+
+let iteri f x =
+ let l = String.length x in
+ let rec aux i =
+ if i < l then begin
+ f i (char_to_state x.[i]);
+ aux (i+1)
+ end in
+ aux 0
+
+let mapi f x =
+ Array.init (length x) (fun i -> f i (get x i))
+
+let fold_lefti f acc x =
+ let l = String.length x in
+ let rec aux acc i =
+ if i = l then acc
+ else aux (f acc i (get x i)) (i + 1) in
+ aux acc 0
+
+let existsi p x =
+ let l = String.length x in
+ let rec aux i =
+ i < l && (p i (char_to_state x.[i]) || aux (i+1)) in
+ aux 0
+
+let for_all p s =
+ let l = String.length s in
+ let rec aux i =
+ i >= l || p (char_to_state s.[i]) && aux (i+1) in
+ aux 0
Index: verificationBitmap.mli
===================================================================
RCS file: verificationBitmap.mli
diff -N verificationBitmap.mli
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ verificationBitmap.mli 11 Jun 2006 17:39:51 -0000 1.1
@@ -0,0 +1,19 @@
+type t
+type part_state =
+ State_missing | State_partial | State_complete | State_verified
+
+val init : int -> (int -> part_state) -> t
+val create : int -> part_state -> t
+val get : t -> int -> part_state
+val set : t -> int -> part_state -> unit
+val length : t -> int
+
+val iteri : (int -> part_state -> unit) -> t -> unit
+val mapi : (int -> part_state -> 'a) -> t -> 'a array
+val fold_lefti : ('a -> int -> part_state -> 'a) -> 'a -> t -> 'a
+val existsi : (int -> part_state -> bool) -> t -> bool
+val for_all : (part_state -> bool) -> t -> bool
+
+val to_string : t -> string
+val of_string : string -> t
+val state_to_char : part_state -> char
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Mldonkey-commits] mldonkey/src/utils/lib verificationBitmap.ml ve...,
mldonkey-commits <=