/** Returns false if the scribe response was try later. */ public static boolean readLogResponse(int seqid, TBinaryProtocol iprot) throws TException { TMessage msg = iprot.readMessageBegin(); if (msg.type == TMessageType.EXCEPTION) { throw TApplicationException.readFrom(iprot); } else if (msg.seqid != seqid) { throw new TApplicationException(BAD_SEQUENCE_ID, "Log failed: out of sequence response"); } return parseResponse(iprot); }
/** Returns false if the scribe response was try later. */ public static boolean readLogResponse(int seqid, TBinaryProtocol iprot) throws TException { TMessage msg = iprot.readMessageBegin(); if (msg.type == TMessageType.EXCEPTION) { throw TApplicationException.read(iprot); } else if (msg.seqid != seqid) { throw new TApplicationException(BAD_SEQUENCE_ID, "Log failed: out of sequence response"); } return parseResponse(iprot); }
@Override protected Object deserialize4OctoThrift(byte[] buff, Object obj) throws Exception { TMemoryInputTransport transport = new TMemoryInputTransport(buff); TBinaryProtocol protocol = new TBinaryProtocol(transport); TMessage message = protocol.readMessageBegin(); Object result; if (obj instanceof DefaultRequest) { result = doDeserializeRequest(buff, (DefaultRequest) obj, message, protocol); } else if (obj instanceof DefaultResponse) { result = doDeserializeResponse(buff, (DefaultResponse) obj, message, protocol); } else { throw new ProtocolException("Thrift octoProtocol object type is invalid, it should not happen."); } protocol.readMessageEnd(); return result; }
@Override protected Object decode(ChannelHandlerContext ctx, Channel channel, ChannelBuffer buffer) throws Exception { int messageBeginIndex = buffer.readerIndex(); ChannelBuffer messageBuffer = null; try { TTransport transport = new TChannelBufferInputTransport(buffer); TBinaryProtocol protocol = new TBinaryProtocol(transport); protocol.readMessageBegin(); TProtocolUtil.skip(protocol, TType.STRUCT); protocol.readMessageEnd(); messageBuffer = buffer.slice(messageBeginIndex, buffer.readerIndex()); } catch (IndexOutOfBoundsException e) { buffer.readerIndex(messageBeginIndex); return null; } catch (Throwable th) { buffer.readerIndex(messageBeginIndex); return null; } return messageBuffer; } }
TMemoryInputTransport transport = new TMemoryInputTransport(buff); TBinaryProtocol protocol = new TBinaryProtocol(transport); TMessage message = protocol.readMessageBegin(); if (message.type == TMessageType.CALL) { DefaultRequest request = new DefaultRequest(Long.valueOf(message.seqid));