]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/getter/http_getter.ml
- rewritten http_getter logger interface
[helm.git] / helm / ocaml / getter / http_getter.ml
index 97e8c2f431f435ec82df87ae4ab8d0cbd3d7f8f9..0f20792d72bf634e7ced93d3ec172f262753e839 100644 (file)
@@ -30,7 +30,6 @@ open Printf
 
 open Http_getter_common
 open Http_getter_misc
-open Http_getter_debugger
 open Http_getter_types
 
 exception Not_implemented of string
@@ -45,6 +44,8 @@ type resolve_result =
 
 type logger_callback = HelmLogger.html_tag -> unit
 
+let stdout_logger tag =  print_string (HelmLogger.string_of_html_tag tag)
+
 let not_implemented s = raise (Not_implemented ("Http_getter." ^ s))
 
 let (index_line_sep_RE, index_sep_RE, trailing_types_RE,
@@ -79,7 +80,7 @@ let map_of_uri = function
   | uri -> raise (Unresolvable_URI uri)
 
 let update_from_server logger server_url = (* use global maps *)
-  debug_print ("Updating information from " ^ server_url);
+  Http_getter_logger.log ("Updating information from " ^ server_url);
   let xml_url_of_uri = function
       (* TODO missing sanity checks on server_url, e.g. it can contains $1 *)
     | uri when (Pcre.pmatch ~rex:heading_cic_RE uri) ->
@@ -98,6 +99,7 @@ let update_from_server logger server_url = (* use global maps *)
     | uri -> raise (Invalid_URI uri)
   in
   logger (`T ("Processing server: " ^ server_url));
+  logger `BR;
   let (xml_index, rdf_index, xsl_index) =
     (* TODO keeps index in memory, is better to keep them on temp files? *)
     (http_get (server_url ^ "/" ^ (Lazy.force Http_getter_env.xml_index)),
@@ -105,10 +107,11 @@ let update_from_server logger server_url = (* use global maps *)
      http_get (server_url ^ "/" ^ (Lazy.force Http_getter_env.xsl_index)))
   in
   if (xml_index = None && rdf_index = None && xsl_index = None) then
-    debug_print (sprintf "Warning: useless server %s" server_url);
+    Http_getter_logger.log (sprintf "Warning: useless server %s" server_url);
   (match xml_index with
   | Some xml_index ->
-      logger (`T "Updating XML db ...<br />");
+      logger (`T "- Updating XML db ...");
+(*       logger `BR; *)
       List.iter
         (function
           | l when is_blank_line l -> ()  (* skip blank and commented lines *)
@@ -123,15 +126,20 @@ let update_from_server logger server_url = (* use global maps *)
                    assert (is_cic_uri uri || is_nuprl_uri uri) ;
                    (map_of_uri uri)#replace
                     uri ((xml_url_of_uri uri) ^ ".xml")
-                | _ -> logger (`T ("Ignoring invalid line: '" ^ l)))
+                | _ ->
+                    logger (`T ("Ignoring invalid line: '" ^ l));
+                    logger `BR)
               with Invalid_URI uri ->
-                logger (`T ("Ignoring invalid XML URI: '" ^ l))))
+                logger (`T ("Ignoring invalid XML URI: '" ^ l));
+                logger `BR))
         (Pcre.split ~rex:index_sep_RE xml_index); (* xml_index lines *)
-      logger (`T "All done")
+      logger (`T "All done");
+      logger `BR
   | None -> ());
   (match rdf_index with
   | Some rdf_index ->
-      logger (`T "Updating RDF db ...");
+      logger (`T "- Updating RDF db ...");
+(*       logger `BR; *)
       List.iter
         (fun l ->
           try
@@ -142,21 +150,27 @@ let update_from_server logger server_url = (* use global maps *)
             | [uri] ->
                 (Lazy.force rdf_map) # replace uri
                   ((rdf_url_of_uri uri) ^ ".xml")
-            | _ -> logger (`T ("Ignoring invalid line: '" ^ l)))
+            | _ ->
+                logger (`T ("Ignoring invalid line: '" ^ l));
+                logger `BR)
           with Invalid_URI uri ->
-            logger (`T ("Ignoring invalid RDF URI: '" ^ l)))
+            logger (`T ("Ignoring invalid RDF URI: '" ^ l));
+            logger `BR)
         (Pcre.split ~rex:index_sep_RE rdf_index); (* rdf_index lines *)
-      logger (`T "All done")
+      logger (`T "All done");
+      logger `BR
   | None -> ());
   (match xsl_index with
   | Some xsl_index ->
-      logger (`T "Updating XSLT db ...");
+      logger (`T "- Updating XSLT db ...");
+(*       logger `BR; *)
       List.iter
         (fun l -> (Lazy.force xsl_map) # replace l (server_url ^ "/" ^ l))
         (Pcre.split ~rex:index_sep_RE xsl_index);
-      logger (`T "All done")
+      logger (`T "All done");
+      logger `BR
   | None -> ());
-  debug_print "done with this server"
+  Http_getter_logger.log "done with this server"
 
 let update_from_all_servers logger () =  (* use global maps *)
   clear_maps ();
@@ -194,8 +208,10 @@ let getxslt_remote ~patch_dtd uri = not_implemented "getxslt_remote"
 let getdtd_remote ~patch_dtd uri = not_implemented "getdtd_remote"
 let clean_cache_remote () = not_implemented "clean_cache_remote"
 let list_servers_remote () = not_implemented "list_servers_remote"
-let add_server_remote ~logger ~position name = not_implemented "add_server_remote"
-let remove_server_remote ~logger position = not_implemented "remove_server_remote"
+let add_server_remote ~logger ~position name =
+  not_implemented "add_server_remote"
+let remove_server_remote ~logger position =
+  not_implemented "remove_server_remote"
 let getalluris_remote () = not_implemented "getalluris_remote"
 let getallrdfuris_remote () = not_implemented "getallrdfuris_remote"
 let ls_remote lsuri = not_implemented "ls_remote"
@@ -227,14 +243,15 @@ let register_remote ~uri ~url =
 
 let update_remote logger  () =
   let answer = ClientHTTP.get (getter_url () ^ "update") in
-  logger (`T answer)
+  logger (`T answer);
+  logger `BR
 
 let getxml_remote ~format ~patch_dtd uri =
- ClientHTTP.get_and_save_to_tmp
-  (sprintf "%sgetxml?uri=%s&format=%s&patch_dtd=%s"
-    (getter_url ()) uri
-    (match format with Enc_normal -> "normal" | Enc_gzipped -> "gzipped")
-    (match patch_dtd with true -> "yes" | false -> "no"))
 ClientHTTP.get_and_save_to_tmp
+    (sprintf "%sgetxml?uri=%s&format=%s&patch_dtd=%s"
+      (getter_url ()) uri
+      (match format with `Normal -> "normal" | `Gzipped -> "gzipped")
+      (match patch_dtd with true -> "yes" | false -> "no"))
 
 (* API *)
 
@@ -261,14 +278,14 @@ let update ?(logger = fun _ -> ()) () =
   else
     update_from_all_servers logger ()
 
-let getxml ?(format = Enc_normal) ?(patch_dtd = true) uri =
+let getxml ?(format = `Normal) ?(patch_dtd = true) uri =
   if remote () then
     getxml_remote ~format ~patch_dtd uri
   else begin
     let url = resolve uri in
     let (fname, outchan) = temp_file_of_uri uri in
-    Http_getter_cache.respond_xml ~uri ~url ~enc:format ~patch:patch_dtd
-      outchan;
+    Http_getter_cache.respond_xml ~via_http:false ~enc:format ~patch:patch_dtd
+      ~uri ~url outchan;
     close_out outchan;
     fname
   end
@@ -279,7 +296,7 @@ let getxslt ?(patch_dtd = true) uri =
   else begin
     let url = resolve uri in
     let (fname, outchan) = temp_file_of_uri uri in
-    Http_getter_cache.respond_xsl ~url ~patch:patch_dtd outchan;
+    Http_getter_cache.respond_xsl ~via_http:false ~url ~patch:patch_dtd outchan;
     close_out outchan;
     fname
   end
@@ -290,7 +307,7 @@ let getdtd ?(patch_dtd = true) uri =
   else begin
     let url = Lazy.force Http_getter_env.dtd_dir ^ "/" ^ uri in
     let (fname, outchan) = temp_file_of_uri uri in
-    Http_getter_cache.respond_dtd ~url ~patch:patch_dtd outchan;
+    Http_getter_cache.respond_dtd ~via_http:false ~url ~patch:patch_dtd outchan;
     close_out outchan;
     fname
   end