mldonkey-commits
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]