~ntt-pf-lab/nova/monkey_patch_notification

« back to all changes in this revision

Viewing changes to vendor/Twisted-10.0.0/doc/web/examples/xmlrpc.py

  • Committer: Jesse Andrews
  • Date: 2010-05-28 06:05:26 UTC
  • Revision ID: git-v1:bf6e6e718cdc7488e2da87b21e258ccc065fe499
initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"""Example of an XML-RPC server in Twisted.
 
2
 
 
3
To run the server, just run this file ("python xmlrpc.py").
 
4
 
 
5
An example session (assuming the server is running)::
 
6
    
 
7
    >>> import xmlrpclib
 
8
    >>> s = xmlrpclib.Server('http://localhost:7080/')
 
9
    >>> s.echo("lala")
 
10
    ['lala']
 
11
    >>> s.echo("lala", 1)
 
12
    ['lala', 1]
 
13
    >>> s.echo("lala", 4)
 
14
    ['lala', 4]
 
15
    >>> s.echo("lala", 4, 3.4)
 
16
    ['lala', 4, 3.3999999999999999]
 
17
    >>> s.echo("lala", 4, [1, 2])
 
18
    ['lala', 4, [1, 2]]
 
19
 
 
20
"""
 
21
 
 
22
from twisted.web import xmlrpc
 
23
from twisted.internet import defer
 
24
 
 
25
# This module is standard in Python 2.2, otherwise get it from
 
26
#   http://www.pythonware.com/products/xmlrpc/
 
27
import xmlrpclib
 
28
 
 
29
 
 
30
class Echoer(xmlrpc.XMLRPC):
 
31
    """An example object to be published.
 
32
    
 
33
    Has five methods accessable by XML-RPC, 'echo', 'hello', 'defer',
 
34
    'defer_fail' and 'fail.
 
35
    """
 
36
    
 
37
    def xmlrpc_echo(self, *args):
 
38
        """Return all passed args."""
 
39
        return args
 
40
    
 
41
    def xmlrpc_hello(self):
 
42
        """Return 'hello, world'."""
 
43
        return 'hello, world!'
 
44
    
 
45
    def xmlrpc_defer(self):
 
46
        """Show how xmlrpc methods can return Deferred."""
 
47
        return defer.succeed("hello")
 
48
    
 
49
    def xmlrpc_defer_fail(self):
 
50
        """Show how xmlrpc methods can return failed Deferred."""
 
51
        return defer.fail(12)
 
52
 
 
53
    def xmlrpc_fail(self):
 
54
        """Show how we can return a failure code."""
 
55
        return xmlrpclib.Fault(7, "Out of cheese.")
 
56
 
 
57
 
 
58
def main():
 
59
    from twisted.internet import reactor
 
60
    from twisted.web import server
 
61
    r = Echoer()
 
62
    reactor.listenTCP(7080, server.Site(r))
 
63
    reactor.run()
 
64
 
 
65
 
 
66
if __name__ == '__main__':
 
67
    main()