]> matita.cs.unibo.it Git - helm.git/commitdiff
- added functions "add_server" and "remove_server" to dynamically adjust
authorStefano Zacchiroli <zack@upsilon.cc>
Mon, 7 Apr 2003 13:33:42 +0000 (13:33 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Mon, 7 Apr 2003 13:33:42 +0000 (13:33 +0000)
  servers list at runtime

helm/http_getter/http_getter_env.ml
helm/http_getter/http_getter_env.mli

index 661b4ae47762ed38b0e4bf254e0cbef559f1092c..a531cfa7576952c2998f6e1cd1500ec8129dffef 100644 (file)
@@ -151,5 +151,20 @@ servers:
     cic_dir nuprl_dir rdf_dir dtd_dir servers_file host port my_own_url
     dtd_base_url
     (match cache_mode with Enc_normal -> "Normal" | Enc_gzipped -> "GZipped")
-    conf_file conf_dir (String.concat "\n\t" !servers)
+    conf_file conf_dir
+    (String.concat "\n\t" (* servers list prepended with server number *)
+      (List.map
+        (let idx = ref ~-1 in
+        fun server -> incr idx; sprintf "%3d: %s" !idx server)
+        !servers))
+
+let add_server ?position url =
+  (match position with
+  | Some p -> Http_getter_misc.add_line ~fname:servers_file ~position:p url
+  | None -> Http_getter_misc.add_line ~fname:servers_file url);
+  reload_servers ()
+
+let remove_server position =
+  Http_getter_misc.remove_line ~fname:servers_file position;
+  reload_servers ()
 
index 41028389de47d4a3e0320839e2c8028628ee58dc..6d4d6312f2ab726c15bb24523179b652affb2d4e 100644 (file)
 
 open Http_getter_types;;
 
-  (* general information *)
+  (* {2 general information} *)
 
 val version       : string        (* getter version *)
 
-  (* environment gathered data *)
+  (* {2 environment gathered data} *)
 
 val cic_dbm       : string        (* XML map DBM file for CIC *)
 val nuprl_dbm     : string        (* XML map DBM file for NuPRL *)
@@ -49,19 +49,29 @@ val servers_file  : string        (* servers.txt file *)
 val port          : int           (* port on which getter listens *)
 val dtd_base_url  : string        (* base URL for DTD downloading *)
 
-  (* derived data *)
+  (* {2 derived data} *)
 
 val host          : string          (* host on which getter listens *)
 val my_own_url    : string          (* URL at which contact getter *)
-val servers       : string list ref (* servers list *)
+val servers       : string list ref (* servers list. DO NOT CHANGE this list,
+                                    modifications wont be preserved *)
 val cache_mode    : http_getter_encoding  (* cached files encoding *)
 val conf_file     : string          (* configuration file's full path *)
 val conf_dir      : string          (* directory where conf_file resides *)
 
-  (* misc *)
+  (* {2 dynamic configuration changes} *)
 
-val reload: unit -> unit            (* reload servers list *)
+  (* add a server to servers list in a given position (defaults to "after the
+  last server", change servers file accordingly and reload servers list *)
+val add_server: ?position:int -> string -> unit
+  (* remove a server from servers list, change servers file accordingly and
+  reload servers list *)
+val remove_server: int -> unit
+
+  (* {2 misc} *)
+
+val reload: unit -> unit            (* reload configuration information *)
 val env_to_string : unit -> string  (* dump a textual representation of the
                                     current http_getter settings on an output
-                                    channel*)
+                                    channel *)