def flush(self): msg = self.getvalue() tmi = TReadOnlyBuffer(msg) iprot = THeaderProtocol(tmi) fname, mtype, seqid = iprot.readMessageBegin() fname = fname.decode() self._proto.schedule_timeout(fname, seqid) self._trans.send_message(msg) self.reset()
def flush(self): msg = self._writeBuffer.getvalue() tmi = TMemoryBuffer(msg) iprot = THeaderProtocol(tmi) fname, mtype, seqid = iprot.readMessageBegin() fname = fname.decode() self._proto.schedule_timeout(fname, seqid) self._trans.send_message(msg) self._writeBuffer = BytesIO()
def message_received(self, frame): tmi = TMemoryBuffer(frame) iprot = THeaderProtocol(tmi) (fname, mtype, rseqid) = iprot.readMessageBegin() method = getattr(self.client, "recv_" + fname.decode(), None) if method is None: logger.error("Method %r is not supported", method) self.transport.close() else: method(iprot, mtype, rseqid)
def message_received(self, frame): tmi = TMemoryBuffer(frame) iprot = THeaderProtocol(tmi) (fname, mtype, rseqid) = iprot.readMessageBegin() method = getattr(self.client, "recv_" + fname.decode(), None) if method is None: logging.error("Method " + fname + " isn't supported, bug?") self.transport.close() else: method(iprot, mtype, rseqid)
def message_received(self, frame, delay=0): tmi = TReadOnlyBuffer(frame) iprot = THeaderProtocol(tmi) (fname, mtype, rseqid) = iprot.readMessageBegin() if delay: yield from asyncio.sleep(delay) else: try: timeout_task = self.pending_tasks.pop(rseqid) except KeyError: # Task doesn't have a timeout or has already been cancelled # and pruned from `pending_tasks`. pass else: timeout_task.cancel() method = getattr(self.client, "recv_" + fname.decode(), None) if method is None: logger.error("Method %r is not supported", method) self.transport.abort() else: method(iprot, mtype, rseqid)
def readMessageBegin(self): self.probe.touch() return THeaderProtocol.readMessageBegin(self)