X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_cache%2FcicCache.ml;h=b4ae4fbec3261fe31109778e2896f17fe10fc77f;hb=5325734bc2e4927ed7ec146e35a6f0f2b49f50c1;hp=394f9db77bcc158d467fd8db7fa4e86d40bb49d4;hpb=dbc32b5c1cdca97e64d63f9877a0d3b6e1baeaa1;p=helm.git diff --git a/helm/ocaml/cic_cache/cicCache.ml b/helm/ocaml/cic_cache/cicCache.ml index 394f9db77..b4ae4fbec 100644 --- a/helm/ocaml/cic_cache/cicCache.ml +++ b/helm/ocaml/cic_cache/cicCache.ml @@ -36,37 +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 -> 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 + 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 (Some cicbodyfilename) + CicParser.annobj_of_xml cicfilename cicbodyfilename in Unix.unlink cicfilename ; - Unix.unlink cicbodyfilename ; + (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 -> 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 - let obj = CicParser.obj_of_xml cicfilename (Some cicbodyfilename) in + 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 ; - Unix.unlink cicbodyfilename ; + (match cicbodyfilename with None -> () | Some f -> Unix.unlink f) ; obj ;;