X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2FDEVEL%2Focaml-http%2Fhttp_message.mli;h=eadf502647b2b683ec6646e09573e9edd12df907;hb=1c7fb836e2af4f2f3d18afd0396701f2094265ff;hp=9f730939b90ee885844ab92c6476d7e5003b99ee;hpb=3e666920212c55ad4960ee2b30335acf8eb40560;p=helm.git diff --git a/helm/DEVEL/ocaml-http/http_message.mli b/helm/DEVEL/ocaml-http/http_message.mli index 9f730939b..eadf50264 100644 --- a/helm/DEVEL/ocaml-http/http_message.mli +++ b/helm/DEVEL/ocaml-http/http_message.mli @@ -19,6 +19,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) +(** Object Oriented representation of HTTP messages *) + open Http_types;; (** OO representation of an HTTP message @@ -29,35 +31,99 @@ class virtual message: clisockaddr: Unix.sockaddr -> srvsockaddr: Unix.sockaddr -> object + (** @return message HTTP version, it can be None because older version + of the HTTP protocol don't require HTTP version to be told between + message source and destination *) method version: version option + + (** set message HTTP version *) method setVersion: version -> unit + (** @return message body *) method body: string + + (** set message body *) method setBody: string -> unit + + (** @return a Buffer.t connected to message body (Warning: changing this + buffer will change message body too) *) method bodyBuf: Buffer.t + + (** set a new Buffer.t used to keep message body *) method setBodyBuf: Buffer.t -> unit + + (** append a string to message body *) method addBody: string -> unit + + (** append a whole buffer to message body *) method addBodyBuf: Buffer.t -> unit + (** {i header name comparison are performed in a case-insensitive manner + as required by RFC2616, actually the implementation works converting all + header names in lowercase} *) + + (** add an HTTP header + @param name header's name + @param value header's value *) method addHeader: name:string -> value:string -> unit + + (** add a list of HTTP headers + @param headers a list of pairs: header_name, header_value *) method addHeaders: (string * string) list -> unit + + (** like addHeader but replace previous definition of the same header *) method replaceHeader: name:string -> value:string -> unit + + (** like addHeaders but replace previous definition of headers that were + already defined *) method replaceHeaders: (string * string) list -> unit + + (** remove _all_ occurences of an HTTP header from the message + @param name name of the header to be removed *) method removeHeader: name:string -> unit + + (** @return true if given header exists in message, false otherwise *) method hasHeader: name:string -> bool + + (** @return value associated to a given header + @param name name of the header to lookup + @raise Header_not_found if given header wasn't defined in message *) method header: name:string -> string + + (** @return the full set of headers defined for this message, the value + returned is an association list from headers name to headers value, an + header may occurs more that once in the list *) method headers: (string * string) list + + (** @return client Unix.sockaddr *) method clientSockaddr: Unix.sockaddr + + (** @return client address pretty printed *) method clientAddr: string + + (** @return client port *) method clientPort: int + (** @return server Unix.sockaddr *) method serverSockaddr: Unix.sockaddr + + (** @return server address pretty printed *) method serverAddr: string + + (** @return server port *) method serverPort: int + + (** @return for requests first request line, for responses first + response line. + User by derived requests and responses to implement toString method *) method private virtual fstLineToString: string + + (** @return a string representation of the message *) method toString: string + + (** serialize the message over an output channel *) method serialize: out_channel -> unit end