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


Java ByteBufUtil.swapShort方法代码示例

本文整理汇总了Java中io.netty.buffer.ByteBufUtil.swapShort方法的典型用法代码示例。如果您正苦于以下问题:Java ByteBufUtil.swapShort方法的具体用法?Java ByteBufUtil.swapShort怎么用?Java ByteBufUtil.swapShort使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在io.netty.buffer.ByteBufUtil的用法示例。


在下文中一共展示了ByteBufUtil.swapShort方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: decodeCopyWith2ByteOffset

import io.netty.buffer.ByteBufUtil; //导入方法依赖的package包/类
/**
 * Reads a compressed reference offset and length from the supplied input
 * buffer, seeks back to the appropriate place in the input buffer and
 * writes the found data to the supplied output stream.
 *
 * @param tag The tag used to identify this as a copy is also used to encode
 *     the length and part of the offset
 * @param in The input buffer to read from
 * @param out The output buffer to write to
 * @throws DecompressionException If the read offset is invalid
 * @return The number of bytes appended to the output buffer, or -1 to indicate
 *     "try again later"
 */
private static int decodeCopyWith2ByteOffset(byte tag, ByteBuf in, ByteBuf out, int writtenSoFar) {
    if (in.readableBytes() < 2) {
        return NOT_ENOUGH_INPUT;
    }

    int initialIndex = out.writerIndex();
    int length = 1 + (tag >> 2 & 0x03f);
    int offset = ByteBufUtil.swapShort(in.readShort());

    validateOffset(offset, writtenSoFar);

    out.markReaderIndex();
    if (offset < length) {
        int copies = length / offset;
        for (; copies > 0; copies--) {
            out.readerIndex(initialIndex - offset);
            out.readBytes(out, offset);
        }
        if (length % offset != 0) {
            out.readerIndex(initialIndex - offset);
            out.readBytes(out, length % offset);
        }
    } else {
        out.readerIndex(initialIndex - offset);
        out.readBytes(out, length);
    }
    out.resetReaderIndex();

    return length;
}
 
开发者ID:wuyinxian124,项目名称:netty4.0.27Learn,代码行数:44,代码来源:Snappy.java

示例2: decodeLiteral

import io.netty.buffer.ByteBufUtil; //导入方法依赖的package包/类
/**
 * Reads a literal from the input buffer directly to the output buffer.
 * A "literal" is an uncompressed segment of data stored directly in the
 * byte stream.
 *
 * @param tag The tag that identified this segment as a literal is also
 *            used to encode part of the length of the data
 * @param in The input buffer to read the literal from
 * @param out The output buffer to write the literal to
 * @return The number of bytes appended to the output buffer, or -1 to indicate "try again later"
 */
private static int decodeLiteral(byte tag, ByteBuf in, ByteBuf out) {
    in.markReaderIndex();
    int length;
    switch(tag >> 2 & 0x3F) {
    case 60:
        if (!in.isReadable()) {
            return NOT_ENOUGH_INPUT;
        }
        length = in.readUnsignedByte();
        break;
    case 61:
        if (in.readableBytes() < 2) {
            return NOT_ENOUGH_INPUT;
        }
        length = ByteBufUtil.swapShort(in.readShort());
        break;
    case 62:
        if (in.readableBytes() < 3) {
            return NOT_ENOUGH_INPUT;
        }
        length = ByteBufUtil.swapMedium(in.readUnsignedMedium());
        break;
    case 64:
        if (in.readableBytes() < 4) {
            return NOT_ENOUGH_INPUT;
        }
        length = ByteBufUtil.swapInt(in.readInt());
        break;
    default:
        length = tag >> 2 & 0x3F;
    }
    length += 1;

    if (in.readableBytes() < length) {
        in.resetReaderIndex();
        return NOT_ENOUGH_INPUT;
    }

    out.writeBytes(in, length);
    return length;
}
 
开发者ID:wuyinxian124,项目名称:netty4.0.27Learn,代码行数:53,代码来源:Snappy.java

示例3: decodeLiteral

import io.netty.buffer.ByteBufUtil; //导入方法依赖的package包/类
/**
 * Reads a literal from the input buffer directly to the output buffer.
 * A "literal" is an uncompressed segment of data stored directly in the
 * byte stream.
 *
 * @param tag The tag that identified this segment as a literal is also
 *            used to encode part of the length of the data
 * @param in The input buffer to read the literal from
 * @param out The output buffer to write the literal to
 * @return The number of bytes appended to the output buffer, or -1 to indicate "try again later"
 */
static int decodeLiteral(byte tag, ByteBuf in, ByteBuf out) {
    in.markReaderIndex();
    int length;
    switch(tag >> 2 & 0x3F) {
        case 60:
            if (!in.isReadable()) {
                return NOT_ENOUGH_INPUT;
            }
            length = in.readUnsignedByte();
            break;
        case 61:
            if (in.readableBytes() < 2) {
                return NOT_ENOUGH_INPUT;
            }
            length = ByteBufUtil.swapShort(in.readShort());
            break;
        case 62:
            if (in.readableBytes() < 3) {
                return NOT_ENOUGH_INPUT;
            }
            length = ByteBufUtil.swapMedium(in.readUnsignedMedium());
            break;
        case 63:
            if (in.readableBytes() < 4) {
                return NOT_ENOUGH_INPUT;
            }
            length = ByteBufUtil.swapInt(in.readInt());
            break;
        default:
            length = tag >> 2 & 0x3F;
    }
    length += 1;

    if (in.readableBytes() < length) {
        in.resetReaderIndex();
        return NOT_ENOUGH_INPUT;
    }

    out.writeBytes(in, length);
    return length;
}
 
开发者ID:couchbase,项目名称:couchbase-jvm-core,代码行数:53,代码来源:Snappy.java


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