\ / This software is distributed as is, NO WARRANTY.
V_______________________________________________________________ *)
+(* $Id$ *)
+
exception ObjectNotFound of string Lazy.t
let cache = NUri.UriHash.create 313;;
try NUri.UriHash.find cache u
with Not_found ->
(* in the final implementation should get it from disk *)
- let ouri = NUri.ouri_of_nuri u in
- let o,_ = CicEnvironment.get_obj CicUniv.oblivion_ugraph ouri in
- let l = OCic2NCic.convert_obj ouri o in
- List.iter (fun (u,_,_,_,_ as o) ->
-(* prerr_endline ("+"^NUri.string_of_uri u); *)
- NUri.UriHash.add cache u o) l;
- HExtlib.list_last l
+ let ouri = NCic2OCic.ouri_of_nuri u in
+ try
+ let o,_ = CicEnvironment.get_obj CicUniv.oblivion_ugraph ouri in
+ let l = OCic2NCic.convert_obj ouri o in
+ List.iter (fun (u,_,_,_,_ as o) ->
+ (* prerr_endline ("+"^NUri.string_of_uri u); *)
+ NUri.UriHash.add cache u o) l;
+ HExtlib.list_last l
+ with CicEnvironment.Object_not_found u ->
+ raise (ObjectNotFound
+ (lazy (NUri.string_of_uri (OCic2NCic.nuri_of_ouri u))))
;;
+
+let clear_cache () = NUri.UriHash.clear cache;;