module U = NUri
module H = U.UriHash
+module Y = Entity
module B = Brg
-exception ObjectNotFound of string Lazy.t
-
let hsize = 7000
let env = H.create hsize
(* Internal functions *******************************************************)
+let get_age =
+ let age = ref 0 in
+ fun () -> incr age; !age
+
(* Interface functions ******************************************************)
-let set_obj f obj uri =
- H.add env uri obj; f obj uri
-
-let get_obj f uri =
- try f (H.find env uri) uri
- with Not_found -> raise (ObjectNotFound (lazy (U.string_of_uri uri)))
+let set_entity f (a, uri, b) =
+ let age = get_age () in
+ let entity = (Y.Apix age :: a), uri, b in
+ H.add env uri entity; f entity
+
+let get_entity err f uri =
+ try f (H.find env uri) with Not_found -> err ()