X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_cache%2FcicCache.ml;h=b4ae4fbec3261fe31109778e2896f17fe10fc77f;hb=5325734bc2e4927ed7ec146e35a6f0f2b49f50c1;hp=1080c39e76873171f9cc64e486b2c8de50a5adfd;hpb=bac72fcaa876137ab7a5630e0c1badc2a627dce8;p=helm.git diff --git a/helm/ocaml/cic_cache/cicCache.ml b/helm/ocaml/cic_cache/cicCache.ml index 1080c39e7..b4ae4fbec 100644 --- a/helm/ocaml/cic_cache/cicCache.ml +++ b/helm/ocaml/cic_cache/cicCache.ml @@ -36,25 +36,52 @@ (******************************************************************************) let get_annobj uri = - let module G = Getter in let module U = UriManager in - let cicfilename = G.getxml (U.cicuri_of_uri uri) in + let cicfilename = Http_getter.getxml' (U.cicuri_of_uri uri) in match (U.bodyuri_of_uri uri) with None -> - CicParser.annobj_of_xml cicfilename None + let annobj = CicParser.annobj_of_xml cicfilename None in + Unix.unlink cicfilename ; + annobj | Some bodyuri -> - let cicbodyfilename = G.getxml (U.cicuri_of_uri bodyuri) in - CicParser.annobj_of_xml cicfilename (Some cicbodyfilename) + let cicbodyfilename = + try + ignore (Http_getter.resolve' bodyuri) ; + (* The body exists ==> it is not an axiom *) + Some (Http_getter.getxml' bodyuri) + with + Http_getter_types.Unresolvable_URI _ -> + (* The body does not exist ==> we consider it an axiom *) + None + in + let annobj = + CicParser.annobj_of_xml cicfilename cicbodyfilename + in + Unix.unlink cicfilename ; + (match cicbodyfilename with None -> () | Some f -> Unix.unlink f) ; + annobj ;; let get_obj uri = - let module G = Getter in let module U = UriManager in - let cicfilename = G.getxml (U.cicuri_of_uri uri) in + let cicfilename = Http_getter.getxml' (U.cicuri_of_uri uri) in match (U.bodyuri_of_uri uri) with None -> - CicParser.obj_of_xml cicfilename None + let obj = CicParser.obj_of_xml cicfilename None in + Unix.unlink cicfilename ; + obj | Some bodyuri -> - let cicbodyfilename = G.getxml (U.cicuri_of_uri bodyuri) in - CicParser.obj_of_xml cicfilename (Some cicbodyfilename) + let cicbodyfilename = + try + ignore (Http_getter.resolve' bodyuri) ; + (* The body exists ==> it is not an axiom *) + Some (Http_getter.getxml' bodyuri) + with Http_getter_types.Unresolvable_URI _ -> + (* The body does not exist ==> we consider it an axiom *) + None + in + let obj = CicParser.obj_of_xml cicfilename cicbodyfilename in + Unix.unlink cicfilename ; + (match cicbodyfilename with None -> () | Some f -> Unix.unlink f) ; + obj ;;