haxr-3000.8.5: XML-RPC client and server library.

Portabilitynon-portable (requires extensions and non-portable libraries)
Safe HaskellNone



This module contains the server functionality of XML-RPC. The XML-RPC specifcation is available at http://www.xmlrpc.com/spec.

A simple CGI-based XML-RPC server application:

 import Network.XmlRpc.Server 

 add :: Int -> Int -> IO Int
 add x y = return (x + y)

 main = cgiXmlRpcServer [("examples.add", fun add)]



type XmlRpcMethod = (MethodCall -> ServerResult, Signature)Source

The type of XML-RPC methods on the server.

fun :: XmlRpcFun a => a -> XmlRpcMethodSource

Turns any function (XmlRpcType t1, ..., XmlRpcType tn, XmlRpcType r) => t1 -> ... -> tn -> IO r into an XmlRpcMethod

handleCall :: (MethodCall -> ServerResult) -> String -> IO ByteStringSource

Reads a method call from a string, uses the supplied method to generate a response and returns that response as a string

methods :: [(String, XmlRpcMethod)] -> MethodCall -> ServerResultSource

An XmlRpcMethod that looks up the method name in a table and uses that method to handle the call.

cgiXmlRpcServer :: [(String, XmlRpcMethod)] -> IO ()Source

A CGI-based XML-RPC server. Reads a request from standard input and writes some HTTP headers (Content-Type and Content-Length), followed by the response to standard output. Supports introspection.