本文整理汇总了Java中org.apache.thrift.protocol.TBinaryProtocol.readI32方法的典型用法代码示例。如果您正苦于以下问题:Java TBinaryProtocol.readI32方法的具体用法?Java TBinaryProtocol.readI32怎么用?Java TBinaryProtocol.readI32使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.thrift.protocol.TBinaryProtocol
的用法示例。
在下文中一共展示了TBinaryProtocol.readI32方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: decode
import org.apache.thrift.protocol.TBinaryProtocol; //导入方法依赖的package包/类
public Object decode( Channel channel, ChannelBuffer buffer ) throws IOException {
int available = buffer.readableBytes();
if ( available < MESSAGE_SHORTEST_LENGTH ) {
return DecodeResult.NEED_MORE_INPUT;
} else {
TIOStreamTransport transport = new TIOStreamTransport( new ChannelBufferInputStream(buffer));
TBinaryProtocol protocol = new TBinaryProtocol( transport );
short magic;
int messageLength;
try{
// protocol.readI32(); // skip the first message length
byte[] bytes = new byte[4];
transport.read( bytes, 0, 4 );
magic = protocol.readI16();
messageLength = protocol.readI32();
} catch ( TException e ) {
throw new IOException( e.getMessage(), e );
}
if ( MAGIC != magic ) {
throw new IOException(
new StringBuilder( 32 )
.append( "Unknown magic code " )
.append( magic )
.toString() );
}
if ( available < messageLength ) { return DecodeResult.NEED_MORE_INPUT; }
return decode( protocol );
}
}
示例2: testEncodeRequest
import org.apache.thrift.protocol.TBinaryProtocol; //导入方法依赖的package包/类
@Test
public void testEncodeRequest() throws Exception {
Request request = createRequest();
ChannelBuffer output = ChannelBuffers.dynamicBuffer(1024);
codec.encode( channel, output, request );
byte[] bytes = new byte[output.readableBytes()];
output.readBytes(bytes);
ByteArrayInputStream bis = new ByteArrayInputStream( bytes );
TTransport transport = new TIOStreamTransport( bis );
TBinaryProtocol protocol = new TBinaryProtocol( transport );
// frame
byte[] length = new byte[4];
transport.read( length, 0, 4 );
if ( bis.markSupported() ) {
bis.mark( 0 );
}
// magic
Assert.assertEquals( ThriftCodec.MAGIC, protocol.readI16() );
// message length
int messageLength = protocol.readI32();
Assert.assertEquals( messageLength + 4, bytes.length );
// header length
short headerLength = protocol.readI16();
// version
Assert.assertEquals( ThriftCodec.VERSION, protocol.readByte() );
// service name
Assert.assertEquals( Demo.Iface.class.getName(), protocol.readString() );
// dubbo request id
Assert.assertEquals( request.getId(), protocol.readI64() );
// test message header length
if ( bis.markSupported() ) {
bis.reset();
bis.skip( headerLength );
}
TMessage message = protocol.readMessageBegin();
Demo.echoString_args args = new Demo.echoString_args();
args.read( protocol );
protocol.readMessageEnd();
Assert.assertEquals( "echoString", message.name );
Assert.assertEquals( TMessageType.CALL, message.type );
Assert.assertEquals( "Hello, World!", args.getArg() );
}