]> matita.cs.unibo.it Git - helm.git/commitdiff
- added Quit exception to force main daemon to quit
authorStefano Zacchiroli <zack@upsilon.cc>
Sun, 5 Jan 2003 14:09:36 +0000 (14:09 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Sun, 5 Jan 2003 14:09:36 +0000 (14:09 +0000)
- added some comments

helm/DEVEL/ocaml-http/http_types.ml

index 276d2e3aa47048651660c5093546667a30bcddd2..909b4681adc2a74eb0214ac2a7cecfab3febde96 100644 (file)
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *)
 
+  (** HTTP version, actually only 1.0 and 1.1 are supported. Note that
+  'supported' here means only 'accepted inside a HTTP request line', no
+  different behaviours are actually implemented depending on HTTP version *)
 type version =
   [ `HTTP_1_0
   | `HTTP_1_1
   ]
 
+  (** HTTP method, actually only GET and POST methods are supported *)
 type meth =
   [ `GET
   | `POST
   ]
 
+  (** Daemon behaviour wrt request handling. `Single mode use a single process
+  to handle all requests, no request is served until a previous one has been
+  fully served. `Fork mode fork a new process for each request, the new process
+  will execute the callback function and then exit. `Thread mode create a new
+  thread for each request, the new thread will execute the callback function and
+  then exit, threads can communicate using standard OCaml Thread library. *)
 type daemon_mode = [ `Single | `Fork | `Thread ]
 
 type tcp_server =
@@ -130,6 +140,10 @@ exception Param_not_found of string
 exception Invalid_status_line of string
 exception Header_not_found of string
 
+  (** raisable by callback functions to make main daemon quit, this is the only
+  'clean' way to make start functions return *)
+exception Quit
+
 class type message = object
 
     method version: version
@@ -142,6 +156,10 @@ class type message = object
     method addBody: string -> unit
     method addBodyBuf: Buffer.t -> unit
 
+    (** header name comparison are performed in a case-insensitive manner as
+    required by RFC2616, actually the implementation works converting all header
+    names in lowercase *)
+
     method addHeader: name:string -> value:string -> unit
     method addHeaders: (string * string) list -> unit
     method replaceHeader: name:string -> value:string -> unit