import SocketServer import xmlrpclib import xmlrpcserver from xmlrpc_registry import * class SampleHandler (xmlrpcserver.RequestHandler): """A simple handler which uses a method registry.""" def setup (self): "Prepare to handle a request." xmlrpcserver.RequestHandler.setup(self) self.registry = Registry() self.registry.add_method('sample.getSumAndDifference', self.sample_getSumAndDifference, [[STRUCT, INT, INT]]) def sample_getSumAndDifference (self, int1, int2): # This doc string will used as method help. For now, you'll get # the best results if there are no newlines in it. "Calculate the sum and difference of two integers." return {'sum': int1 + int2, 'difference': int1 - int2} def call (self, methodName, params): "Use our registry to find and call the appropriate method." return self.registry.dispatch_call(methodName, params) if __name__ == '__main__': server = SocketServer.TCPServer(('', 8080), SampleHandler) server.serve_forever()