[Python-checkins] python/dist/src/Doc/lib libsimplexmlrpc.tex,1.3,1.4

loewis@users.sourceforge.net loewis@users.sourceforge.net
Wed, 15 Jan 2003 03:37:25 -0800


Update of /cvsroot/python/python/dist/src/Doc/lib
In directory sc8-pr-cvs1:/tmp/cvs-serv3409/Doc/lib

Modified Files:
	libsimplexmlrpc.tex 
Log Message:
Patch #473586: Implement CGIXMLRPCRequestHandler.


Index: libsimplexmlrpc.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/lib/libsimplexmlrpc.tex,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** libsimplexmlrpc.tex	28 Nov 2001 07:32:53 -0000	1.3
--- libsimplexmlrpc.tex	15 Jan 2003 11:37:23 -0000	1.4
***************
*** 9,20 ****
  
  The \module{SimpleXMLRPCServer} module provides a basic server
! framework for XML-RPC servers written in Python.  The server object is
! based on the \class{\refmodule{SocketServer}.TCPServer} class,
! and the request handler is based on the
! \class{\refmodule{BaseHTTPServer}.BaseHTTPRequestHandler} class.
! 
  
  \begin{classdesc}{SimpleXMLRPCServer}{addr\optional{,
                                        requestHandler\optional{, logRequests}}}
    Create a new server instance.  The \var{requestHandler} parameter
    should be a factory for request handler instances; it defaults to
--- 9,19 ----
  
  The \module{SimpleXMLRPCServer} module provides a basic server
! framework for XML-RPC servers written in Python.  Servers can either
! be free standing, using \class{SimpleXMLRPCServer}, or embedded in a
! CGI environment, using \class{CGIXMLRPCRequestHandler}.
  
  \begin{classdesc}{SimpleXMLRPCServer}{addr\optional{,
                                        requestHandler\optional{, logRequests}}}
+ 
    Create a new server instance.  The \var{requestHandler} parameter
    should be a factory for request handler instances; it defaults to
***************
*** 28,31 ****
--- 27,34 ----
  \end{classdesc}
  
+ \begin{classdesc}{CGIXMLRPCRequestHandler}{}
+   Create a new instance to handle XML-RPC requests in a CGI
+   environment. \versionadded{2.3}
+ \end{classdesc}
  
  \begin{classdesc}{SimpleXMLRPCRequestHandler}{}
***************
*** 39,56 ****
  \subsection{SimpleXMLRPCServer Objects \label{simple-xmlrpc-servers}}
  
! The \class{SimpleXMLRPCServer} class provides two methods that an
! application can use to register functions that can be called via the
! XML-RPC protocol via the request handler.
  
  \begin{methoddesc}[SimpleXMLRPCServer]{register_function}{function\optional{,
                                                            name}}
!   Register a function that can respond to XML-RPC requests.  The
!   function must be callable with a single parameter which will be the
!   return value of \function{\refmodule{xmlrpclib}.loads()} when called
!   with the payload of the request.  If \var{name} is given, it will be
!   the method name associated with \var{function}, otherwise
!   \code{\var{function}.__name__} will be used.  \var{name} can be
!   either a normal or Unicode string, and may contain characters not
!   legal in Python identifiers, including the period character.
  \end{methoddesc}
  
--- 42,57 ----
  \subsection{SimpleXMLRPCServer Objects \label{simple-xmlrpc-servers}}
  
! The \class{SimpleXMLRPCServer} class is based on
! \class{SocketServer.TCPServer} and provides a means of creating
! simple, stand alone XML-RPC servers.
  
  \begin{methoddesc}[SimpleXMLRPCServer]{register_function}{function\optional{,
                                                            name}}
!   Register a function that can respond to XML-RPC requests.  If
!   \var{name} is given, it will be the method name associated with
!   \var{function}, otherwise \code{\var{function}.__name__} will be
!   used.  \var{name} can be either a normal or Unicode string, and may
!   contain characters not legal in Python identifiers, including the
!   period character.
  \end{methoddesc}
  
***************
*** 69,70 ****
--- 70,157 ----
    return value is passed back to the client.
  \end{methoddesc}
+ 
+ \begin{methoddesc}{register_introspection_functions}{}
+   Registers the XML-RPC introspection functions \code{system.listMethods},
+   \code{system.methodHelp} and \code{system.methodSignature}. 
+   \versionadded{2.3}
+ \end{methoddesc}
+ 
+ \begin{methoddesc}{register_multicall_functions}{}
+   Registers the XML-RPC multicall function system.multicall.
+ \end{methoddesc}
+ 
+ Example:
+ 
+ \begin{verbatim}
+ class MyFuncs:
+     def div(self, x, y) : return div(x,y)
+ 
+ 
+ server = SimpleXMLRPCServer(("localhost", 8000))
+ server.register_function(pow)
+ server.register_function(lambda x,y: x+y, 'add')
+ server.register_introspection_functions()
+ server.register_instance(MyFuncs())
+ server.serve_forever()
+ \end{verbatim}
+ 
+ \subsection{CGIXMLRPCRequestHandler}
+ 
+ The \class{CGIXMLRPCRequestHandler} class can be used to 
+ handle XML-RPC requests sent to Python CGI scripts.
+ 
+ \begin{methoddesc}{register_function}{function\optional{, name}}
+ Register a function that can respond to XML-RPC requests. If 
+ \var{name] is given, it will be the method name associated with 
+ function, otherwise \var{function.__name__} will be used. \var{name}
+ can be either a normal or Unicode string, and may contain 
+ characters not legal in Python identifiers, including the period
+ character. 
+ \end{methoddesc}
+ 
+ \begin{methoddesc}{register_instance}{instance}
+ Register an object which is used to expose method names 
+ which have not been registered using \method{register_function()}. If 
+ instance contains a \method{_dispatch()} method, it is called with the 
+ requested method name and the parameters from the 
+ request; the return value is returned to the client as the result.
+ If instance does not have a \methode{_dispatch()} method, it is searched 
+ for an attribute matching the name of the requested method; if 
+ the requested method name contains periods, each 
+ component of the method name is searched for individually, 
+ with the effect that a simple hierarchical search is performed. 
+ The value found from this search is then called with the 
+ parameters from the request, and the return value is passed 
+ back to the client. 
+ \end{methoddesc}
+ 
+ \begin{methoddesc}{register_introspection_functions}{}
+ Register the XML-RPC introspection functions 
+ \code{system.listMethods}, \code{system.methodHelp} and 
+ \code{system.methodSignature}.
+ \end{methoddesc}
+ 
+ \begin{methoddesc}{register_multicall_functions}{}
+ Register the XML-RPC multicall function \code{system.multicall}.
+ \end{methoddesc}
+ 
+ \begin{methoddesc}{handle_request}{\optional{request_text = None}}
+ Handle a XML-RPC request. If \var{request_text} is given, it 
+ should be the POST data provided by the HTTP server, 
+ otherwise the contents of stdin will be used.
+ \end{methoddesc}
+ 
+ Example:
+ 
+ \begin{verbatim}
+ class MyFuncs:
+     def div(self, x, y) : return div(x,y)
+ 
+ 
+ handler = CGIXMLRPCRequestHandler()
+ handler.register_function(pow)
+ handler.register_function(lambda x,y: x+y, 'add')
+ handler.register_introspection_functions()
+ handler.register_instance(MyFuncs())
+ handler.handle_request()
+ \end{verbatim}
\ No newline at end of file