当前位置: 首页>>代码示例>>Java>>正文


Java ChannelBuffer.readableBytes方法代码示例

本文整理汇总了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();
        }
    }
}
 
开发者ID:flychao88,项目名称:dubbocloud,代码行数:18,代码来源:TelnetCodecTest.java

示例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);
}
 
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:9,代码来源:NettyBackedChannelBuffer.java

示例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);
}
 
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:9,代码来源:NettyBackedChannelBuffer.java

示例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;
}
 
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:10,代码来源:CodecAdapter.java

示例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);
}
 
开发者ID:flychao88,项目名称:dubbocloud,代码行数:10,代码来源:NettyBackedChannelBuffer.java

示例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);
}
 
开发者ID:yunhaibin,项目名称:dubbox-hystrix,代码行数:10,代码来源:NettyBackedChannelBuffer.java

示例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);
}
 
开发者ID:yunhaibin,项目名称:dubbox-hystrix,代码行数:7,代码来源:TelnetCodec.java

示例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);
}
 
开发者ID:yunhaibin,项目名称:dubbox-hystrix,代码行数:7,代码来源:ExchangeCodec.java

示例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() );

}
 
开发者ID:flychao88,项目名称:dubbocloud,代码行数:64,代码来源:ThriftCodecTest.java

示例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 );

        }

    }
 
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:44,代码来源:ThriftCodec.java


注:本文中的com.alibaba.dubbo.remoting.buffer.ChannelBuffer.readableBytes方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。