annotate Doc/lib/libsimplexmlrpc.tex @ 33845:032f342efcd2 legacy-trunk

Very few little improvements.
author Facundo Batista <facundobatista@gmail.com>
date Tue, 26 Oct 2004 23:38:46 +0000
parents d8fff706a9c2
children b846dd1b9751 8c8022b81f02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20165
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
1 \section{\module{SimpleXMLRPCServer} ---
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
2 Basic XML-RPC server}
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
3
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
4 \declaremodule{standard}{SimpleXMLRPCServer}
21063
f187496ffaef Add synopsis for the SimpleXMLRPCServer module; used in the chapter-level
Fred Drake <fdrake@acm.org>
parents: 20176
diff changeset
5 \modulesynopsis{Basic XML-RPC server implementation.}
20165
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
6 \moduleauthor{Brian Quinlan}{brianq@activestate.com}
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
7 \sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org}
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
8
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
9
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
10 The \module{SimpleXMLRPCServer} module provides a basic server
27249
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
11 framework for XML-RPC servers written in Python. Servers can either
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
12 be free standing, using \class{SimpleXMLRPCServer}, or embedded in a
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
13 CGI environment, using \class{CGIXMLRPCRequestHandler}.
20165
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
14
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
15 \begin{classdesc}{SimpleXMLRPCServer}{addr\optional{,
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
16 requestHandler\optional{, logRequests}}}
27249
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
17
20165
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
18 Create a new server instance. The \var{requestHandler} parameter
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
19 should be a factory for request handler instances; it defaults to
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
20 \class{SimpleXMLRPCRequestHandler}. The \var{addr} and
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
21 \var{requestHandler} parameters are passed to the
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
22 \class{\refmodule{SocketServer}.TCPServer} constructor. If
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
23 \var{logRequests} is true (the default), requests will be logged;
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
24 setting this parameter to false will turn off logging. This class
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
25 provides methods for registration of functions that can be called by
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
26 the XML-RPC protocol.
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
27 \end{classdesc}
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
28
27249
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
29 \begin{classdesc}{CGIXMLRPCRequestHandler}{}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
30 Create a new instance to handle XML-RPC requests in a CGI
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
31 environment. \versionadded{2.3}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
32 \end{classdesc}
20165
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
33
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
34 \begin{classdesc}{SimpleXMLRPCRequestHandler}{}
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
35 Create a new request handler instance. This request handler
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
36 supports \code{POST} requests and modifies logging so that the
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
37 \var{logRequests} parameter to the \class{SimpleXMLRPCServer}
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
38 constructor parameter is honored.
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
39 \end{classdesc}
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
40
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
41
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
42 \subsection{SimpleXMLRPCServer Objects \label{simple-xmlrpc-servers}}
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
43
27249
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
44 The \class{SimpleXMLRPCServer} class is based on
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
45 \class{SocketServer.TCPServer} and provides a means of creating
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
46 simple, stand alone XML-RPC servers.
20165
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
47
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
48 \begin{methoddesc}[SimpleXMLRPCServer]{register_function}{function\optional{,
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
49 name}}
27249
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
50 Register a function that can respond to XML-RPC requests. If
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
51 \var{name} is given, it will be the method name associated with
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
52 \var{function}, otherwise \code{\var{function}.__name__} will be
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
53 used. \var{name} can be either a normal or Unicode string, and may
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
54 contain characters not legal in Python identifiers, including the
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
55 period character.
20165
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
56 \end{methoddesc}
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
57
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
58 \begin{methoddesc}[SimpleXMLRPCServer]{register_instance}{instance}
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
59 Register an object which is used to expose method names which have
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
60 not been registered using \method{register_function()}. If
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
61 \var{instance} contains a \method{_dispatch()} method, it is called
33395
b14f7ee25d50 Make the api of the _dispatch() method more concrete. I have no idea if
Skip Montanaro <skip@pobox.com>
parents: 27284
diff changeset
62 with the requested method name and the parameters from the request. Its
b14f7ee25d50 Make the api of the _dispatch() method more concrete. I have no idea if
Skip Montanaro <skip@pobox.com>
parents: 27284
diff changeset
63 API is \code{def \method{_dispatch}(self, method, params)} (note tha
b14f7ee25d50 Make the api of the _dispatch() method more concrete. I have no idea if
Skip Montanaro <skip@pobox.com>
parents: 27284
diff changeset
64 \var{params} does not represent a variable argument list). If it calls an
b14f7ee25d50 Make the api of the _dispatch() method more concrete. I have no idea if
Skip Montanaro <skip@pobox.com>
parents: 27284
diff changeset
65 underlying function to perform its task, that function is called as
b14f7ee25d50 Make the api of the _dispatch() method more concrete. I have no idea if
Skip Montanaro <skip@pobox.com>
parents: 27284
diff changeset
66 \code{func(*params)}, expanding the parameter list.
b14f7ee25d50 Make the api of the _dispatch() method more concrete. I have no idea if
Skip Montanaro <skip@pobox.com>
parents: 27284
diff changeset
67 The return value from \method{_dispatch()} is returned to the client as
b14f7ee25d50 Make the api of the _dispatch() method more concrete. I have no idea if
Skip Montanaro <skip@pobox.com>
parents: 27284
diff changeset
68 the result. If
20165
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
69 \var{instance} does not have a \method{_dispatch()} method, it is
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
70 searched for an attribute matching the name of the requested method;
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
71 if the requested method name contains periods, each component of the
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
72 method name is searched for individually, with the effect that a
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
73 simple hierarchical search is performed. The value found from this
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
74 search is then called with the parameters from the request, and the
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
75 return value is passed back to the client.
db82c0b40dfc Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff changeset
76 \end{methoddesc}
27249
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
77
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
78 \begin{methoddesc}{register_introspection_functions}{}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
79 Registers the XML-RPC introspection functions \code{system.listMethods},
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
80 \code{system.methodHelp} and \code{system.methodSignature}.
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
81 \versionadded{2.3}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
82 \end{methoddesc}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
83
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
84 \begin{methoddesc}{register_multicall_functions}{}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
85 Registers the XML-RPC multicall function system.multicall.
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
86 \end{methoddesc}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
87
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
88 Example:
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
89
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
90 \begin{verbatim}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
91 class MyFuncs:
33691
d8fff706a9c2 [Bug #1041501] Fix example code
Andrew M. Kuchling <amk@amk.ca>
parents: 33395
diff changeset
92 def div(self, x, y) : return x // y
27249
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
93
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
94
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
95 server = SimpleXMLRPCServer(("localhost", 8000))
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
96 server.register_function(pow)
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
97 server.register_function(lambda x,y: x+y, 'add')
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
98 server.register_introspection_functions()
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
99 server.register_instance(MyFuncs())
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
100 server.serve_forever()
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
101 \end{verbatim}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
102
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
103 \subsection{CGIXMLRPCRequestHandler}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
104
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
105 The \class{CGIXMLRPCRequestHandler} class can be used to
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
106 handle XML-RPC requests sent to Python CGI scripts.
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
107
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
108 \begin{methoddesc}{register_function}{function\optional{, name}}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
109 Register a function that can respond to XML-RPC requests. If
27284
df2754aca717 Fix a couple of markup errors.
Fred Drake <fdrake@acm.org>
parents: 27249
diff changeset
110 \var{name} is given, it will be the method name associated with
27249
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
111 function, otherwise \var{function.__name__} will be used. \var{name}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
112 can be either a normal or Unicode string, and may contain
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
113 characters not legal in Python identifiers, including the period
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
114 character.
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
115 \end{methoddesc}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
116
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
117 \begin{methoddesc}{register_instance}{instance}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
118 Register an object which is used to expose method names
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
119 which have not been registered using \method{register_function()}. If
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
120 instance contains a \method{_dispatch()} method, it is called with the
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
121 requested method name and the parameters from the
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
122 request; the return value is returned to the client as the result.
27284
df2754aca717 Fix a couple of markup errors.
Fred Drake <fdrake@acm.org>
parents: 27249
diff changeset
123 If instance does not have a \method{_dispatch()} method, it is searched
27249
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
124 for an attribute matching the name of the requested method; if
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
125 the requested method name contains periods, each
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
126 component of the method name is searched for individually,
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
127 with the effect that a simple hierarchical search is performed.
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
128 The value found from this search is then called with the
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
129 parameters from the request, and the return value is passed
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
130 back to the client.
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
131 \end{methoddesc}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
132
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
133 \begin{methoddesc}{register_introspection_functions}{}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
134 Register the XML-RPC introspection functions
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
135 \code{system.listMethods}, \code{system.methodHelp} and
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
136 \code{system.methodSignature}.
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
137 \end{methoddesc}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
138
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
139 \begin{methoddesc}{register_multicall_functions}{}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
140 Register the XML-RPC multicall function \code{system.multicall}.
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
141 \end{methoddesc}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
142
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
143 \begin{methoddesc}{handle_request}{\optional{request_text = None}}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
144 Handle a XML-RPC request. If \var{request_text} is given, it
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
145 should be the POST data provided by the HTTP server,
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
146 otherwise the contents of stdin will be used.
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
147 \end{methoddesc}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
148
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
149 Example:
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
150
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
151 \begin{verbatim}
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
152 class MyFuncs:
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
153 def div(self, x, y) : return div(x,y)
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
154
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
155
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
156 handler = CGIXMLRPCRequestHandler()
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
157 handler.register_function(pow)
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
158 handler.register_function(lambda x,y: x+y, 'add')
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
159 handler.register_introspection_functions()
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
160 handler.register_instance(MyFuncs())
7c34e5bf2e22 Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents: 21063
diff changeset
161 handler.handle_request()
27284
df2754aca717 Fix a couple of markup errors.
Fred Drake <fdrake@acm.org>
parents: 27249
diff changeset
162 \end{verbatim}