From: Thomas Gazagnaire Date: Mon, 11 Jan 2010 17:44:38 +0000 (+0000) Subject: [rpc-light] Add a function to parse XMLRPC from an input channel. X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=af1b306bb049e1cd79234b823d831275eb651897;p=xcp%2Fxen-api-libs.git [rpc-light] Add a function to parse XMLRPC from an input channel. Signed-off-by: Thomas Gazagnaire --- diff --git a/rpc-light/xmlrpc.ml b/rpc-light/xmlrpc.ml index 566281c..85f2461 100644 --- a/rpc-light/xmlrpc.ml +++ b/rpc-light/xmlrpc.ml @@ -259,8 +259,7 @@ let call_of_string ?callback str = ) input; call !name (List.rev !params) -let response_of_string ?callback str = - let input = Xmlm.make_input (`String (0, str)) in +let response_of_input ?callback input = begin match Xmlm.peek input with | `Dtd _ -> ignore (Xmlm.input input) | _ -> () end; @@ -274,4 +273,10 @@ let response_of_string ?callback str = ) input ) input - +let response_of_string ?callback str = + let input = Xmlm.make_input (`String (0, str)) in + response_of_input ?callback input + +let response_of_in_channel ?callback chan = + let input = Xmlm.make_input (`Channel chan) in + response_of_input ?callback input diff --git a/rpc-light/xmlrpc.mli b/rpc-light/xmlrpc.mli index f0ae723..89b7fc4 100644 --- a/rpc-light/xmlrpc.mli +++ b/rpc-light/xmlrpc.mli @@ -19,4 +19,6 @@ val string_of_call: Rpc.call -> string val call_of_string: ?callback:Rpc.callback -> string -> Rpc.call val string_of_response: Rpc.response -> string + val response_of_string: ?callback:Rpc.callback -> string -> Rpc.response +val response_of_in_channel: ?callback:Rpc.callback -> in_channel -> Rpc.response