@Override public byte getByte(int index) { checkIndex(index); return _getByte(index); }
@Override public int readInt() { checkReadableBytes0(4); int v = _getInt(readerIndex); readerIndex += 4; return v; }
@Override public long readLong() { checkReadableBytes0(8); long v = _getLong(readerIndex); readerIndex += 8; return v; }
@Override public ByteBuf writeShort(int value) { ensureWritable0(2); _setShort(writerIndex, value); writerIndex += 2; return this; }
@Override public short getShort(int index) { checkIndex(index, 2); return _getShort(index); }
ensureWritable(length); int wIndex = writerIndex; checkIndex0(wIndex, length); _setLong(wIndex, 0); wIndex += 8; _setInt(wIndex, 0); wIndex += 4; } else if (nBytes < 4) { for (int i = nBytes; i > 0; i --) { _setByte(wIndex, (byte) 0); wIndex++; _setInt(wIndex, 0); wIndex += 4; for (int i = nBytes - 4; i > 0; i --) { _setByte(wIndex, (byte) 0); wIndex++;
@Override public ByteBuf setZero(int index, int length) { if (length == 0) { return this; } checkIndex(index, length); int nLong = length >>> 3; int nBytes = length & 7; for (int i = nLong; i > 0; i --) { _setLong(index, 0); index += 8; } if (nBytes == 4) { _setInt(index, 0); // Not need to update the index as we not will use it after this. } else if (nBytes < 4) { for (int i = nBytes; i > 0; i --) { _setByte(index, (byte) 0); index ++; } } else { _setInt(index, 0); index += 4; for (int i = nBytes - 4; i > 0; i --) { _setByte(index, (byte) 0); index ++; } } return this; }
@Override public ByteBuf writeLong(long value) { ensureWritable0(8); _setLong(writerIndex, value); writerIndex += 8; return this; }
@Override public ByteBuf setInt(int index, int value) { checkIndex(index, 4); _setInt(index, value); return this; }
private int forEachByteDesc0(int rStart, final int rEnd, ByteBufProcessor processor) throws Exception { for (; rStart >= rEnd; --rStart) { if (!processor.process(_getByte(rStart))) { return rStart; } } return -1; }
@Override public ByteBuf writeMedium(int value) { ensureWritable0(3); _setMedium(writerIndex, value); writerIndex += 3; return this; }
private static void writeAscii(AbstractByteBuf buffer, CharSequence seq, int len) { int writerIndex = buffer.writerIndex; // We can use the _set methods as these not need to do any index checks and reference checks. // This is possible as we called ensureWritable(...) before. for (int i = 0; i < len; i++) { buffer._setByte(writerIndex++, (byte) seq.charAt(i)); } // update the writerIndex without any extra checks for performance reasons buffer.writerIndex = writerIndex; }
@Override public int readUnsignedMedium() { checkReadableBytes0(3); int v = _getUnsignedMedium(readerIndex); readerIndex += 3; return v; }
@Override public ByteBuf setShort(int index, int value) { checkIndex(index, 2); _setShort(index, value); return this; }
@Override public int getUnsignedMedium(int index) { checkIndex(index, 3); return _getUnsignedMedium(index); }
@Override public ByteBuf setByte(int index, int value) { checkIndex(index); _setByte(index, value); return this; }
@Override public int getInt(int index) { checkIndex(index, 4); return _getInt(index); }
@Override public long getLong(int index) { checkIndex(index, 8); return _getLong(index); }
@Override public byte readByte() { checkReadableBytes0(1); int i = readerIndex; byte b = _getByte(i); readerIndex = i + 1; return b; }
@Override public ByteBuf writeInt(int value) { ensureWritable0(4); _setInt(writerIndex, value); writerIndex += 4; return this; }