def run(self): """ Start service thread """ # Create a server instance server = SocketRpcServer(self.port, host='', timeout=self.timeout) for service in self.service_module.services: service_class = getattr(self.service_pb2_module, service.name) newservice = service_class() for method_name, handler in self.service_module.service_handlers[ service.name].items(): # Attatch a handler to the service class setattr(newservice, method_name, self.protobuf_rpc_closure(handler)) server.registerService(newservice) # Start the server server.run()
def run(self): """ Start service thread """ # Create a server instance server = SocketRpcServer(self.port,host='') for service in self.services: service_class = self.module.__dict__[service.name] handlers = {} # Link each method to its handler for method in service.methods: #handlers[method.name] = self._createHandler(method.handler) handlers[method.name] = method.handler # Extend Service class and add handlers newservice = type(service.name + "Impl", (service_class,), handlers) server.registerService(newservice()) # Start the server server.run();
import logging log = logging.getLogger(__name__) port = 8090 class TimeService(proto.TimeService): '''An example service implementation.''' def getTime(self, controller, request, done): '''Get the current time and return as a response message via the callback routine provide.''' log.info('Called TestMethod') # Create response message response = proto.TimeResponse() response.str_time = time.asctime() # Call provided callback with response message done.run(response) if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG) # Create service service = TimeService() server = SocketRpcServer(port) server.registerService(service) server.run()