module H = U.UriHash
module B = Brg
-exception ObjectNotFound of string Lazy.t
-
let hsize = 7000
let env = H.create hsize
-let entry = ref 0
+let age = ref 1
(* Internal functions *******************************************************)
(* Interface functions ******************************************************)
-let set_obj f obj =
- let _, uri, b = obj in
- let obj = !entry, uri, b in
- incr entry; H.add env uri obj; f obj
+let set_entry f entry =
+ let _, uri, b = entry in
+ let entry = !age, uri, b in
+ incr age; H.add env uri entry; f entry
-let get_obj f uri =
- try f (H.find env uri)
- with Not_found -> raise (ObjectNotFound (lazy (U.string_of_uri uri)))
+let get_entry err f uri =
+ try f (H.find env uri) with Not_found -> err ()