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

loewis@users.sourceforge.net loewis@users.sourceforge.net
2003年1月15日 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

AltStyle によって変換されたページ (->オリジナル) /