Mercurial > cpython-lru_cache-weakref
annotate Doc/lib/libsimplexmlrpc.tex @ 27998:e27f58a50737 legacy-trunk
SF bug #690377: Dud footnote reference in distutils docs
| author | Raymond Hettinger <python@rcn.com> |
|---|---|
| date | Fri, 21 Feb 2003 02:47:09 +0000 |
| parents | df2754aca717 |
| children | ba9bcf2141a2 b14f7ee25d50 |
| 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 |
|
db82c0b40dfc
Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
62 with the requested method name and the parameters from the request; |
|
db82c0b40dfc
Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
63 the return value is returned to the client as the result. If |
|
db82c0b40dfc
Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
64 \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
|
65 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
|
66 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
|
67 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
|
68 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
|
69 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
|
70 return value is passed back to the client. |
|
db82c0b40dfc
Preliminary documentation for the SimpleXMLRPCServer module.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
71 \end{methoddesc} |
|
27249
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
72 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
73 \begin{methoddesc}{register_introspection_functions}{} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
74 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
|
75 \code{system.methodHelp} and \code{system.methodSignature}. |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
76 \versionadded{2.3} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
77 \end{methoddesc} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
78 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
79 \begin{methoddesc}{register_multicall_functions}{} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
80 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
|
81 \end{methoddesc} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
82 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
83 Example: |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
84 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
85 \begin{verbatim} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
86 class MyFuncs: |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
87 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
|
88 |
|
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 server = SimpleXMLRPCServer(("localhost", 8000)) |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
91 server.register_function(pow) |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
92 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
|
93 server.register_introspection_functions() |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
94 server.register_instance(MyFuncs()) |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
95 server.serve_forever() |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
96 \end{verbatim} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
97 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
98 \subsection{CGIXMLRPCRequestHandler} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
99 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
100 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
|
101 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
|
102 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
103 \begin{methoddesc}{register_function}{function\optional{, name}} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
104 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
|
105 \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
|
106 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
|
107 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
|
108 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
|
109 character. |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
110 \end{methoddesc} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
111 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
112 \begin{methoddesc}{register_instance}{instance} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
113 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
|
114 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
|
115 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
|
116 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
|
117 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
|
118 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
|
119 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
|
120 the requested method name contains periods, each |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
121 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
|
122 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
|
123 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
|
124 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
|
125 back to the client. |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
126 \end{methoddesc} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
127 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
128 \begin{methoddesc}{register_introspection_functions}{} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
129 Register the XML-RPC introspection functions |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
130 \code{system.listMethods}, \code{system.methodHelp} and |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
131 \code{system.methodSignature}. |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
132 \end{methoddesc} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
133 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
134 \begin{methoddesc}{register_multicall_functions}{} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
135 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
|
136 \end{methoddesc} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
137 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
138 \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
|
139 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
|
140 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
|
141 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
|
142 \end{methoddesc} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
143 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
144 Example: |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
145 |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
146 \begin{verbatim} |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
147 class MyFuncs: |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
148 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
|
149 |
|
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 handler = CGIXMLRPCRequestHandler() |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
152 handler.register_function(pow) |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
153 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
|
154 handler.register_introspection_functions() |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
155 handler.register_instance(MyFuncs()) |
|
7c34e5bf2e22
Patch #473586: Implement CGIXMLRPCRequestHandler.
Martin v. Löwis <martin@v.loewis.de>
parents:
21063
diff
changeset
|
156 handler.handle_request() |
|
27284
df2754aca717
Fix a couple of markup errors.
Fred Drake <fdrake@acm.org>
parents:
27249
diff
changeset
|
157 \end{verbatim} |
