X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Flambda-delta%2Fbasic_rg%2FbrgEnvironment.ml;h=121da88da4d54e955fa480e68aa88ea31048704c;hb=85521efd364ec494e4cc024bbf87182a312e1b7b;hp=f1561516d1cb47f31abe87e8127913610b0b9d27;hpb=c45c77de154323feaf5bf6aee98c86b95361b9ae;p=helm.git diff --git a/helm/software/lambda-delta/basic_rg/brgEnvironment.ml b/helm/software/lambda-delta/basic_rg/brgEnvironment.ml index f1561516d..121da88da 100644 --- a/helm/software/lambda-delta/basic_rg/brgEnvironment.ml +++ b/helm/software/lambda-delta/basic_rg/brgEnvironment.ml @@ -11,20 +11,25 @@ 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))) +(* decps *) +let set_entity (a, uri, b) = + let age = get_age () in + let entity = (Y.Apix age :: a), uri, b in + H.add env uri entity; entity + +let get_entity uri = + try H.find env uri with Not_found -> [], uri, Y.Void