@Override public ByteBuf ensureWritable(int minWritableBytes) { if (minWritableBytes < 0) { throw new IllegalArgumentException(String.format( "minWritableBytes: %d (expected: >= 0)", minWritableBytes)); } ensureWritable0(minWritableBytes); return this; }
@Override public ByteBuf writeLongLE(long value) { ensureWritable0(8); _setLongLE(writerIndex, value); writerIndex += 8; return this; }
@Override public ByteBuf writeMedium(int value) { ensureWritable0(3); _setMedium(writerIndex, value); writerIndex += 3; return this; }
@Override public ByteBuf writeLong(long value) { ensureWritable0(8); _setLong(writerIndex, value); writerIndex += 8; return this; }
@Override public ByteBuf writeByte(int value) { ensureWritable0(1); _setByte(writerIndex++, value); return this; }
@Override public ByteBuf writeShort(int value) { ensureWritable0(2); _setShort(writerIndex, value); writerIndex += 2; return this; }
@Override public ByteBuf writeMediumLE(int value) { ensureWritable0(3); _setMediumLE(writerIndex, value); writerIndex += 3; return this; }
@Override public ByteBuf writeIntLE(int value) { ensureWritable0(4); _setIntLE(writerIndex, value); writerIndex += 4; return this; }
@Override public final ByteBuf writeLong(long value) { wrapped.ensureWritable0(8); _setLong(wrapped, wrapped.writerIndex, nativeByteOrder ? value : Long.reverseBytes(value)); wrapped.writerIndex += 8; return this; }
@Override public ByteBuf writeShortLE(int value) { ensureWritable0(2); _setShortLE(writerIndex, value); writerIndex += 2; return this; }
@Override public ByteBuf writeInt(int value) { ensureWritable0(4); _setInt(writerIndex, value); writerIndex += 4; return this; }
@Override public ByteBuf writeBytes(ByteBuffer src) { int length = src.remaining(); ensureWritable0(length); setBytes(writerIndex, src); writerIndex += length; return this; }
@Override public final ByteBuf writeInt(int value) { wrapped.ensureWritable0(4); _setInt(wrapped, wrapped.writerIndex, nativeByteOrder ? value : Integer.reverseBytes(value)); wrapped.writerIndex += 4; return this; }
@Override public final ByteBuf writeShort(int value) { wrapped.ensureWritable0(2); _setShort(wrapped, wrapped.writerIndex, nativeByteOrder ? (short) value : Short.reverseBytes((short) value)); wrapped.writerIndex += 2; return this; }
private int setCharSequence0(int index, CharSequence sequence, Charset charset, boolean expand) { if (charset.equals(CharsetUtil.UTF_8)) { int length = ByteBufUtil.utf8MaxBytes(sequence); if (expand) { ensureWritable0(length); checkIndex0(index, length); } else { checkIndex(index, length); } return ByteBufUtil.writeUtf8(this, index, sequence, sequence.length()); } if (charset.equals(CharsetUtil.US_ASCII) || charset.equals(CharsetUtil.ISO_8859_1)) { int length = sequence.length(); if (expand) { ensureWritable0(length); checkIndex0(index, length); } else { checkIndex(index, length); } return ByteBufUtil.writeAscii(this, index, sequence, length); } byte[] bytes = sequence.toString().getBytes(charset); if (expand) { ensureWritable0(bytes.length); // setBytes(...) will take care of checking the indices. } setBytes(index, bytes); return bytes.length; }
/** * Encode a {@link CharSequence} in <a href="http://en.wikipedia.org/wiki/UTF-8">UTF-8</a> and write * it to a {@link ByteBuf}. * * This method returns the actual number of bytes written. */ public static int writeUtf8(ByteBuf buf, CharSequence seq) { for (;;) { if (buf instanceof AbstractByteBuf) { AbstractByteBuf byteBuf = (AbstractByteBuf) buf; byteBuf.ensureWritable0(utf8MaxBytes(seq)); int written = writeUtf8(byteBuf, byteBuf.writerIndex, seq, seq.length()); byteBuf.writerIndex += written; return written; } else if (buf instanceof WrappedByteBuf) { // Unwrap as the wrapped buffer may be an AbstractByteBuf and so we can use fast-path. buf = buf.unwrap(); } else { byte[] bytes = seq.toString().getBytes(CharsetUtil.UTF_8); buf.writeBytes(bytes); return bytes.length; } } }
if (buf instanceof AbstractByteBuf) { AbstractByteBuf byteBuf = (AbstractByteBuf) buf; byteBuf.ensureWritable0(len); int written = writeAscii(byteBuf, byteBuf.writerIndex, seq, len); byteBuf.writerIndex += written;