]> matita.cs.unibo.it Git - helm.git/commitdiff
- API change (renamed some exceptions)
authorStefano Zacchiroli <zack@upsilon.cc>
Thu, 21 Oct 2004 13:16:58 +0000 (13:16 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Thu, 21 Oct 2004 13:16:58 +0000 (13:16 +0000)
- ported to the latest PXP version

helm/ocaml/getter/http_getter.ml
helm/ocaml/getter/http_getter.mli
helm/ocaml/getter/http_getter_map.ml
helm/ocaml/getter/http_getter_map.mli
helm/ocaml/getter/http_getter_types.ml

index a9884596ba62fe71ab7acfaf8f6981a49bf73c0e..35a19db82bb4f5fc06afe990421085d09e147e81 100644 (file)
@@ -222,12 +222,14 @@ let resolve_remote uri =
   let doc = ClientHTTP.get (sprintf "%sresolve?uri=%s" (getter_url ()) uri) in
   let res = ref Unknown in
    Pxp_ev_parser.process_entity PxpHelmConf.pxp_config (`Entry_content [])
-    (Pxp_ev_parser.create_entity_manager ~is_document:true PxpHelmConf.pxp_config
-     (Pxp_yacc.from_string doc))
+    (Pxp_ev_parser.create_entity_manager ~is_document:true
+      PxpHelmConf.pxp_config (Pxp_yacc.from_string doc))
     (function
       | Pxp_types.E_start_tag ("url",["value",url],_,_) -> res := Resolved url
-      | Pxp_types.E_start_tag ("unresolved",[],_,_) ->
+      | Pxp_types.E_start_tag ("unresolvable",[],_,_) ->
           res := Exception (Unresolvable_URI uri)
+      | Pxp_types.E_start_tag ("not_found",[],_,_) ->
+          res := Exception (Key_not_found uri)
       | Pxp_types.E_start_tag _ -> res := Exception UnexpectedGetterOutput
       | _ -> ());
    match !res with
@@ -238,8 +240,8 @@ let resolve_remote uri =
 let register_remote ~uri ~url =
   ClientHTTP.send (sprintf "%sregister?uri=%s&url=%s" (getter_url ()) uri url)
 
-let register_remote ~uri ~url =
-  ClientHTTP.send (sprintf "%sregister?uri=%s&url=%s" (getter_url ()) uri url)
+let unregister_remote uri =
+  ClientHTTP.send (sprintf "%sunregister?uri=%s" (getter_url ()) uri)
 
 let update_remote logger  () =
   let answer = ClientHTTP.get (getter_url () ^ "update") in
@@ -261,17 +263,20 @@ let resolve uri =
   if remote () then
     resolve_remote uri
   else
-    try
-      (map_of_uri uri)#resolve uri
-    with Http_getter_map.Key_not_found _ -> raise (Unresolvable_URI uri)
+    (map_of_uri uri)#resolve uri
 
-  (* Warning: this fail if uri is already registered *)
 let register ~uri ~url =
   if remote () then
     register_remote ~uri ~url
   else
     (map_of_uri uri)#add uri url
 
+let unregister uri =
+  if remote () then
+    unregister_remote uri
+  else
+    (map_of_uri uri)#remove uri
+
 let update ?(logger = fun _ -> ()) () =
   if remote () then
     update_remote logger ()
index c6f08afcc8c239d652e74e71b380bfc0fedd6bf8..f0b32b3841a700874736dd92a8c42ae28b71b7f4 100644 (file)
@@ -37,8 +37,17 @@ val stdout_logger: logger_callback
   (** {2 Getter Web Service interface as API *)
 
 val help: unit -> string
+
+  (** @raise Http_getter_types.Unresolvable_URI _
+  * @raise Http_getter_types.Key_not_found _ *)
 val resolve: string -> string (* uri -> url *)
+
+  (** @raise Http_getter_types.Key_already_in _ *)
 val register: uri:string -> url:string -> unit
+
+  (** @raise Http_getter_types.Key_not_found _ *)
+val unregister: string -> unit
+
 val update: ?logger:logger_callback -> unit -> unit
 val getxml  : ?format:encoding -> ?patch_dtd:bool -> string -> string
 val getxslt : ?patch_dtd:bool -> string -> string
index 2b61e79761c008568d9552c240cb521667e8b705..4bead0c6cb9e3a8fd0176466fb18cbf8eb1f62ba 100644 (file)
@@ -26,8 +26,7 @@
  *  http://helm.cs.unibo.it/
  *)
 
-exception Key_already_in of string;;
-exception Key_not_found of string;;
+open Http_getter_types
 
 class map dbname =
   let perm = 420 in (* permission 644 in decimal notation *)
index 7081f19629f7907e835bd856d43d1677be54c048..3e4ac7ba40c67be4337f16e367d3c73cf48af986 100644 (file)
@@ -26,9 +26,6 @@
  *  http://helm.cs.unibo.it/
  *)
 
-exception Key_already_in of string
-exception Key_not_found of string
-
 class map:
   string ->
     object
index 172cf18a963e3f2cea18aa586e9347b022f5b6d3..e8e31bd0fdff90f9e595d1647ea40643a1f906e4 100644 (file)
@@ -34,6 +34,8 @@ exception Invalid_RDF_class of string
 exception Internal_error of string
 exception Cache_failure of string
 exception Dtd_not_found of string (* dtd's url *)
+exception Key_already_in of string;;
+exception Key_not_found of string;;
 
 type encoding = [ `Normal | `Gzipped ]
 type answer_format = [ `Text | `Xml ]