本文整理匯總了Java中org.apache.thrift.protocol.TBinaryProtocol.writeI64方法的典型用法代碼示例。如果您正苦於以下問題:Java TBinaryProtocol.writeI64方法的具體用法?Java TBinaryProtocol.writeI64怎麽用?Java TBinaryProtocol.writeI64使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.apache.thrift.protocol.TBinaryProtocol
的用法示例。
在下文中一共展示了TBinaryProtocol.writeI64方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: testDecodeRequest
import org.apache.thrift.protocol.TBinaryProtocol; //導入方法依賴的package包/類
@Test
public void testDecodeRequest() throws Exception {
Request request = createRequest();
// encode
RandomAccessByteArrayOutputStream bos = new RandomAccessByteArrayOutputStream( 1024 );
TIOStreamTransport transport = new TIOStreamTransport( bos );
TBinaryProtocol protocol = new TBinaryProtocol( transport );
int messageLength, headerLength;
protocol.writeI16( ThriftCodec.MAGIC );
protocol.writeI32( Integer.MAX_VALUE );
protocol.writeI16( Short.MAX_VALUE );
protocol.writeByte( ThriftCodec.VERSION );
protocol.writeString(
( ( RpcInvocation ) request.getData() )
.getAttachment( Constants.INTERFACE_KEY) );
protocol.writeI64( request.getId() );
protocol.getTransport().flush();
headerLength = bos.size();
Demo.echoString_args args = new Demo.echoString_args( );
args.setArg( "Hell, World!" );
TMessage message = new TMessage( "echoString", TMessageType.CALL, ThriftCodec.getSeqId() );
protocol.writeMessageBegin( message );
args.write( protocol );
protocol.writeMessageEnd();
protocol.getTransport().flush();
int oldIndex = messageLength = bos.size();
try{
bos.setWriteIndex( ThriftCodec.MESSAGE_HEADER_LENGTH_INDEX );
protocol.writeI16( ( short ) ( 0xffff & headerLength ) );
bos.setWriteIndex( ThriftCodec.MESSAGE_LENGTH_INDEX );
protocol.writeI32( messageLength );
} finally {
bos.setWriteIndex( oldIndex );
}
Object obj = codec.decode( ( Channel ) null, ChannelBuffers.wrappedBuffer(
encodeFrame(bos.toByteArray())) );
Assert.assertTrue( obj instanceof Request );
obj = ( ( Request ) obj ).getData();
Assert.assertTrue( obj instanceof RpcInvocation );
RpcInvocation invocation = ( RpcInvocation ) obj;
Assert.assertEquals( "echoString", invocation.getMethodName() );
Assert.assertArrayEquals( new Class[] {String .class}, invocation.getParameterTypes() );
Assert.assertArrayEquals( new Object[] { args.getArg() }, invocation.getArguments() );
}
示例2: testDecodeReplyResponse
import org.apache.thrift.protocol.TBinaryProtocol; //導入方法依賴的package包/類
@Test
public void testDecodeReplyResponse() throws Exception {
URL url = URL.valueOf( ThriftProtocol.NAME + "://127.0.0.1:40880/" + Demo.Iface.class.getName() );
Channel channel = new MockedChannel( url );
RandomAccessByteArrayOutputStream bos = new RandomAccessByteArrayOutputStream( 128 );
Request request = createRequest();
DefaultFuture future = new DefaultFuture( channel, request, 10 );
TMessage message = new TMessage( "echoString", TMessageType.REPLY, ThriftCodec.getSeqId() );
Demo.echoString_result methodResult = new Demo.echoString_result();
methodResult.success = "Hello, World!";
TTransport transport = new TIOStreamTransport( bos );
TBinaryProtocol protocol = new TBinaryProtocol( transport );
int messageLength, headerLength;
// prepare
protocol.writeI16( ThriftCodec.MAGIC );
protocol.writeI32( Integer.MAX_VALUE );
protocol.writeI16( Short.MAX_VALUE );
protocol.writeByte( ThriftCodec.VERSION );
protocol.writeString( Demo.Iface.class.getName() );
protocol.writeI64( request.getId() );
protocol.getTransport().flush();
headerLength = bos.size();
protocol.writeMessageBegin( message );
methodResult.write( protocol );
protocol.writeMessageEnd();
protocol.getTransport().flush();
int oldIndex = messageLength = bos.size();
try {
bos.setWriteIndex( ThriftCodec.MESSAGE_LENGTH_INDEX );
protocol.writeI32( messageLength );
bos.setWriteIndex( ThriftCodec.MESSAGE_HEADER_LENGTH_INDEX );
protocol.writeI16( ( short ) ( 0xffff & headerLength ) );
} finally {
bos.setWriteIndex( oldIndex );
}
// prepare
byte[] buf = new byte[ 4 + bos.size()];
System.arraycopy( bos.toByteArray(), 0, buf, 4, bos.size() );
ChannelBuffer bis = ChannelBuffers.wrappedBuffer(buf);
Object obj = codec.decode( ( Channel ) null, bis );
Assert.assertNotNull( obj );
Assert.assertEquals( true, obj instanceof Response );
Response response = ( Response ) obj;
Assert.assertEquals( request.getId(), response.getId() );
Assert.assertTrue( response.getResult() instanceof RpcResult );
RpcResult result = ( RpcResult ) response.getResult();
Assert.assertTrue( result.getResult() instanceof String );
Assert.assertEquals( methodResult.success, result.getResult() );
}
示例3: testDecodeExceptionResponse
import org.apache.thrift.protocol.TBinaryProtocol; //導入方法依賴的package包/類
@Test
public void testDecodeExceptionResponse() throws Exception {
URL url = URL.valueOf( ThriftProtocol.NAME + "://127.0.0.1:40880/" + Demo.class.getName() );
Channel channel = new MockedChannel( url );
RandomAccessByteArrayOutputStream bos = new RandomAccessByteArrayOutputStream( 128 );
Request request = createRequest();
DefaultFuture future = new DefaultFuture( channel, request, 10 );
TMessage message = new TMessage( "echoString", TMessageType.EXCEPTION, ThriftCodec.getSeqId() );
TTransport transport = new TIOStreamTransport( bos );
TBinaryProtocol protocol = new TBinaryProtocol( transport );
TApplicationException exception = new TApplicationException();
int messageLength, headerLength;
// prepare
protocol.writeI16( ThriftCodec.MAGIC );
protocol.writeI32( Integer.MAX_VALUE );
protocol.writeI16( Short.MAX_VALUE );
protocol.writeByte( ThriftCodec.VERSION );
protocol.writeString( Demo.class.getName() );
protocol.writeI64( request.getId() );
protocol.getTransport().flush();
headerLength = bos.size();
protocol.writeMessageBegin( message );
exception.write( protocol );
protocol.writeMessageEnd();
protocol.getTransport().flush();
int oldIndex = messageLength = bos.size();
try {
bos.setWriteIndex( ThriftCodec.MESSAGE_LENGTH_INDEX );
protocol.writeI32( messageLength );
bos.setWriteIndex( ThriftCodec.MESSAGE_HEADER_LENGTH_INDEX );
protocol.writeI16( ( short ) ( 0xffff & headerLength ) );
} finally {
bos.setWriteIndex( oldIndex );
}
// prepare
ChannelBuffer bis = ChannelBuffers.wrappedBuffer(encodeFrame(bos.toByteArray()));
Object obj = codec.decode( ( Channel ) null, bis );
Assert.assertNotNull( obj );
Assert.assertTrue( obj instanceof Response );
Response response = ( Response ) obj;
Assert.assertTrue( response.getResult() instanceof RpcResult );
RpcResult result = ( RpcResult ) response.getResult();
Assert.assertTrue( result.hasException() );
Assert.assertTrue( result.getException() instanceof RpcException );
}