⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractiobuffer.java

📁 mina是以Java实现的一个开源的网络程序框架
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    }    /**     * {@inheritDoc}     */    @Override    public final byte get(int index) {        return buf().get(index);    }    /**     * {@inheritDoc}     */    @Override    public final short getUnsigned(int index) {        return (short) (get(index) & 0xff);    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer put(int index, byte b) {        autoExpand(index, 1);        buf().put(index, b);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer get(byte[] dst, int offset, int length) {        buf().get(dst, offset, length);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer put(ByteBuffer src) {        autoExpand(src.remaining());        buf().put(src);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer put(byte[] src, int offset, int length) {        autoExpand(length);        buf().put(src, offset, length);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer compact() {        int remaining = remaining();        int capacity = capacity();        if (capacity == 0) {            return this;        }        if (isAutoShrink() && remaining <= capacity >>> 2                && capacity > minimumCapacity) {            int newCapacity = capacity;            int minCapacity = Math.max(minimumCapacity, remaining << 1);            for (;;) {                if (newCapacity >>> 1 < minCapacity) {                    break;                }                newCapacity >>>= 1;            }            newCapacity = Math.max(minCapacity, newCapacity);            if (newCapacity == capacity) {                return this;            }            // Shrink and compact:            //// Save the state.            ByteOrder bo = order();            //// Sanity check.            if (remaining > newCapacity) {                throw new IllegalStateException(                        "The amount of the remaining bytes is greater than "                                + "the new capacity.");            }            //// Reallocate.            ByteBuffer oldBuf = buf();            ByteBuffer newBuf = getAllocator().allocateNioBuffer(newCapacity,                    isDirect());            newBuf.put(oldBuf);            buf(newBuf);            //// Restore the state.            buf().order(bo);        } else {            buf().compact();        }        mark = -1;        return this;    }    /**     * {@inheritDoc}     */    @Override    public final ByteOrder order() {        return buf().order();    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer order(ByteOrder bo) {        buf().order(bo);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final char getChar() {        return buf().getChar();    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer putChar(char value) {        autoExpand(2);        buf().putChar(value);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final char getChar(int index) {        return buf().getChar(index);    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer putChar(int index, char value) {        autoExpand(index, 2);        buf().putChar(index, value);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final CharBuffer asCharBuffer() {        return buf().asCharBuffer();    }    /**     * {@inheritDoc}     */    @Override    public final short getShort() {        return buf().getShort();    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer putShort(short value) {        autoExpand(2);        buf().putShort(value);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final short getShort(int index) {        return buf().getShort(index);    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer putShort(int index, short value) {        autoExpand(index, 2);        buf().putShort(index, value);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final ShortBuffer asShortBuffer() {        return buf().asShortBuffer();    }    /**     * {@inheritDoc}     */    @Override    public final int getInt() {        return buf().getInt();    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer putInt(int value) {        autoExpand(4);        buf().putInt(value);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final int getInt(int index) {        return buf().getInt(index);    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer putInt(int index, int value) {        autoExpand(index, 4);        buf().putInt(index, value);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final IntBuffer asIntBuffer() {        return buf().asIntBuffer();    }    /**     * {@inheritDoc}     */    @Override    public final long getLong() {        return buf().getLong();    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer putLong(long value) {        autoExpand(8);        buf().putLong(value);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final long getLong(int index) {        return buf().getLong(index);    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer putLong(int index, long value) {        autoExpand(index, 8);        buf().putLong(index, value);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final LongBuffer asLongBuffer() {        return buf().asLongBuffer();    }    /**     * {@inheritDoc}     */    @Override    public final float getFloat() {        return buf().getFloat();    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer putFloat(float value) {        autoExpand(4);        buf().putFloat(value);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final float getFloat(int index) {        return buf().getFloat(index);    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer putFloat(int index, float value) {        autoExpand(index, 4);        buf().putFloat(index, value);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final FloatBuffer asFloatBuffer() {        return buf().asFloatBuffer();    }    /**     * {@inheritDoc}     */    @Override    public final double getDouble() {        return buf().getDouble();    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer putDouble(double value) {        autoExpand(8);        buf().putDouble(value);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final double getDouble(int index) {        return buf().getDouble(index);    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer putDouble(int index, double value) {        autoExpand(index, 8);        buf().putDouble(index, value);        return this;    }    /**     * {@inheritDoc}     */    @Override    public final DoubleBuffer asDoubleBuffer() {        return buf().asDoubleBuffer();    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer asReadOnlyBuffer() {        recapacityAllowed = false;        return asReadOnlyBuffer0();    }    /**     * Implement this method to return the unexpandable read only version of     * this buffer.     */    protected abstract IoBuffer asReadOnlyBuffer0();    /**     * {@inheritDoc}     */    @Override    public final IoBuffer duplicate() {        recapacityAllowed = false;        return duplicate0();    }    /**     * Implement this method to return the unexpandable duplicate of this     * buffer.     */    protected abstract IoBuffer duplicate0();    /**     * {@inheritDoc}     */    @Override    public final IoBuffer slice() {        recapacityAllowed = false;        return slice0();    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer getSlice(int index, int length) {        if (length < 0) {            throw new IllegalArgumentException("length: " + length);        }                int limit = limit();                if (index > limit) {            throw new IllegalArgumentException("index: " + index);        }                int endIndex = index + length;        if (capacity() < endIndex) {            throw new IndexOutOfBoundsException("index + length (" + endIndex                    + ") is greater " + "than capacity (" + capacity() + ").");        }        clear();        position(index);        limit(endIndex);        IoBuffer slice = slice();        position(index);        limit(limit);        return slice;    }    /**     * {@inheritDoc}     */    @Override    public final IoBuffer getSlice(int length) {        if (length < 0) {            throw new IllegalArgumentException("length: " + length);        }        int pos = position();        int limit = limit();        int nextPos = pos + length;        if (limit < nextPos) {            throw new IndexOutOfBoundsException("position + length (" + nextPos                    + ") is greater " + "than limit (" + limit + ").");        }        limit(pos + length);        IoBuffer slice = slice();        position(nextPos);        limit(limit);        return slice;    }    /**     * Implement this method to return the unexpandable slice of this     * buffer.     */    protected abstract IoBuffer slice0();    /**     * {@inheritDoc}     */    @Override    public int hashCode() {        int h = 1;        int p = position();        for (int i = limit() - 1; i >= p; i--) {            h = 31 * h + get(i);        }        return h;    }    /**     * {@inheritDoc}     */    @Override

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -