本文整理汇总了Java中com.alibaba.dubbo.remoting.buffer.ChannelBuffer.readableBytes方法的典型用法代码示例。如果您正苦于以下问题:Java ChannelBuffer.readableBytes方法的具体用法?Java ChannelBuffer.readableBytes怎么用?Java ChannelBuffer.readableBytes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.alibaba.dubbo.remoting.buffer.ChannelBuffer
的用法示例。
在下文中一共展示了ChannelBuffer.readableBytes方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testEecode_assertEquals
import com.alibaba.dubbo.remoting.buffer.ChannelBuffer; //导入方法依赖的package包/类
protected void testEecode_assertEquals(Object request,byte[] ret, boolean isServerside) throws IOException{
//init channel
Channel channel = isServerside? getServerSideChannel(url) : getCliendSideChannel(url);
ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(1024);
codec.encode(channel, buffer, request);
byte[] data = new byte[buffer.readableBytes()];
buffer.readBytes(data);
Assert.assertEquals(ret.length, data.length);
for(int i=0;i<ret.length;i++){
if (ret[i] != data[i]){
Assert.fail();
}
}
}
示例2: setBytes
import com.alibaba.dubbo.remoting.buffer.ChannelBuffer; //导入方法依赖的package包/类
public void setBytes(int index, ChannelBuffer src, int length) {
// careful
if (length > src.readableBytes()) {
throw new IndexOutOfBoundsException();
}
setBytes(index, src, src.readerIndex(), length);
src.readerIndex(src.readerIndex() + length);
}
示例3: writeBytes
import com.alibaba.dubbo.remoting.buffer.ChannelBuffer; //导入方法依赖的package包/类
public void writeBytes(ChannelBuffer src, int length) {
// careful
if (length > src.readableBytes()) {
throw new IndexOutOfBoundsException();
}
writeBytes(src, src.readerIndex(), length);
src.readerIndex(src.readerIndex() + length);
}
示例4: decode
import com.alibaba.dubbo.remoting.buffer.ChannelBuffer; //导入方法依赖的package包/类
public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
byte[] bytes = new byte[buffer.readableBytes()];
int savedReaderIndex = buffer.readerIndex();
buffer.readBytes(bytes);
UnsafeByteArrayInputStream is = new UnsafeByteArrayInputStream(bytes);
Object result = codec.decode(channel, is);
buffer.readerIndex(savedReaderIndex + is.position());
return result == Codec.NEED_MORE_INPUT ? DecodeResult.NEED_MORE_INPUT : result;
}
示例5: setBytes
import com.alibaba.dubbo.remoting.buffer.ChannelBuffer; //导入方法依赖的package包/类
@Override
public void setBytes(int index, ChannelBuffer src, int length) {
// careful
if (length > src.readableBytes()) {
throw new IndexOutOfBoundsException();
}
setBytes(index, src, src.readerIndex(), length);
src.readerIndex(src.readerIndex() + length);
}
示例6: writeBytes
import com.alibaba.dubbo.remoting.buffer.ChannelBuffer; //导入方法依赖的package包/类
@Override
public void writeBytes(ChannelBuffer src, int length) {
// careful
if (length > src.readableBytes()) {
throw new IndexOutOfBoundsException();
}
writeBytes(src, src.readerIndex(), length);
src.readerIndex(src.readerIndex() + length);
}
示例7: decode
import com.alibaba.dubbo.remoting.buffer.ChannelBuffer; //导入方法依赖的package包/类
public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
int readable = buffer.readableBytes();
byte[] message = new byte[readable];
buffer.readBytes(message);
return decode(channel, buffer, readable, message);
}
示例8: decode
import com.alibaba.dubbo.remoting.buffer.ChannelBuffer; //导入方法依赖的package包/类
public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
int readable = buffer.readableBytes();
byte[] header = new byte[Math.min(readable, HEADER_LENGTH)];
buffer.readBytes(header);
return decode(channel, buffer, readable, header);
}
示例9: testEncodeRequest
import com.alibaba.dubbo.remoting.buffer.ChannelBuffer; //导入方法依赖的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() );
}
示例10: decode
import com.alibaba.dubbo.remoting.buffer.ChannelBuffer; //导入方法依赖的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 );
}
}