def start( address, scheduler, debug=False ): global count if debug: s = DocXMLRPCServer( address, allow_none=True ) s.register_introspection_functions() else: s = SimpleXMLRPCServer( address, allow_none=True ) handler = RPCHandler( scheduler ) s.register_multicall_functions() s.register_instance( handler ) s.thread = threading.Thread( name="RPC", target=s.serve_forever ) s.thread.daemon = True s.thread.start() logging.info( "rpc interface started" ) return s, s.thread, handler
#!/usr/bin/python from DocXMLRPCServer import DocXMLRPCServer def sumAndDifference(x,y): """This method returns sum and difference of arguments as struct with two fields: 'sum' and 'difference'""" return {'sum':x+y,'difference':x-y} server = DocXMLRPCServer(("localhost", 5777)) server.register_function(sumAndDifference,"sample.sumAndDifference") server.register_introspection_functions() server.register_multicall_functions() server.serve_forever()