def _call(self, funcname, args, kwargs): seq = self.seq.next() data = self.pack((seq, funcname, args, kwargs)) yield self.transport.send(data) dfr = ReactorDeferred(self.reactor) self.replies[seq] = dfr rreturn(dfr)
def connect(cls, reactor, host, port): trns = yield reactor.net.connect_tcp(host, port) rreturn(cls(trns))
def dispatch(self, funcname, args, kwargs): func = getattr(self, "exposed_%s" % (funcname,)) res = yield func(*args, **kwargs) rreturn(res)
def call(self, funcname, *args, **kwargs): dfr = yield self._call(funcname, args, kwargs) obj = yield dfr rreturn(obj)