Class ByteBufAccessorImpl
java.lang.Object
io.kroxylicious.proxy.internal.codec.ByteBufAccessorImpl
- All Implemented Interfaces:
ByteBufAccessor,org.apache.kafka.common.protocol.Readable,org.apache.kafka.common.protocol.Writable
An implementation of Kafka's Readable and Writable abstraction in terms of
a Netty ByteBuf.
This allows us to re-use Kafka's generated
*RequestData and
*ResponseData classes as-is.
This isn't completely ideal because the Kafka APIs for decoding of Records
depends on NIO ByteBuffer, so copying between ByteBuffer and ByteBuf cannot
always be avoided.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidensureWritable(int encodedSize) byte[]readArray(int size) bytereadByte()readByteBuffer(int length) doubleintvoidreaderIndex(int readerIndex) intreadInt()longreadLong()shortintstatic intreadUnsignedVarint(io.netty.buffer.ByteBuf buffer) intstatic intreadVarint(io.netty.buffer.ByteBuf buffer) longstatic longreadVarlong(io.netty.buffer.ByteBuf buffer) Read a long stored in variable-length format using zig-zag decoding from Google Protocol Buffers.intorg.apache.kafka.common.protocol.Readableslice()voidwriteByte(byte val) voidwriteByteArray(byte[] arr) voidwriteByteBuffer(ByteBuffer byteBuffer) voidwriteBytes(io.netty.buffer.ByteBuf buf, int length) voidwriteDouble(double val) voidwriteInt(int val) voidwriteLong(long val) intvoidwriteShort(short val) voidwriteUnsignedVarint(int i) static voidwriteUnsignedVarint(int value, io.netty.buffer.ByteBuf buffer) voidwriteVarint(int i) static voidwriteVarint(int value, io.netty.buffer.ByteBuf buffer) voidwriteVarlong(long i) static voidwriteVarlong(long value, io.netty.buffer.ByteBuf buffer) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.kafka.common.protocol.Readable
readRecords, readString, readUnknownTaggedField, readUnsignedInt, readUnsignedShort, readUuidMethods inherited from interface org.apache.kafka.common.protocol.Writable
writeRecords, writeUnsignedInt, writeUnsignedShort, writeUuid
-
Constructor Details
-
ByteBufAccessorImpl
public ByteBufAccessorImpl(io.netty.buffer.ByteBuf buf)
-
-
Method Details
-
readVarlong
public static long readVarlong(io.netty.buffer.ByteBuf buffer) Read a long stored in variable-length format using zig-zag decoding from Google Protocol Buffers.- Parameters:
buffer- The buffer to read from- Returns:
- The long value read
- Throws:
IllegalArgumentException- if variable-length value does not terminate after 10 bytes have been read
-
readUnsignedVarint
public static int readUnsignedVarint(io.netty.buffer.ByteBuf buffer) -
readVarint
public static int readVarint(io.netty.buffer.ByteBuf buffer) -
writeVarlong
public static void writeVarlong(long value, io.netty.buffer.ByteBuf buffer) -
writeVarint
public static void writeVarint(int value, io.netty.buffer.ByteBuf buffer) -
writeUnsignedVarint
public static void writeUnsignedVarint(int value, io.netty.buffer.ByteBuf buffer) -
readByte
public byte readByte()- Specified by:
readBytein interfaceByteBufAccessor- Specified by:
readBytein interfaceorg.apache.kafka.common.protocol.Readable
-
readShort
public short readShort()- Specified by:
readShortin interfaceByteBufAccessor- Specified by:
readShortin interfaceorg.apache.kafka.common.protocol.Readable
-
readInt
public int readInt()- Specified by:
readIntin interfaceByteBufAccessor- Specified by:
readIntin interfaceorg.apache.kafka.common.protocol.Readable
-
readLong
public long readLong()- Specified by:
readLongin interfaceByteBufAccessor- Specified by:
readLongin interfaceorg.apache.kafka.common.protocol.Readable
-
readDouble
public double readDouble()- Specified by:
readDoublein interfaceByteBufAccessor- Specified by:
readDoublein interfaceorg.apache.kafka.common.protocol.Readable
-
readArray
public byte[] readArray(int size) - Specified by:
readArrayin interfaceByteBufAccessor- Specified by:
readArrayin interfaceorg.apache.kafka.common.protocol.Readable
-
readUnsignedVarint
public int readUnsignedVarint()- Specified by:
readUnsignedVarintin interfaceByteBufAccessor- Specified by:
readUnsignedVarintin interfaceorg.apache.kafka.common.protocol.Readable
-
readByteBuffer
- Specified by:
readByteBufferin interfaceByteBufAccessor- Specified by:
readByteBufferin interfaceorg.apache.kafka.common.protocol.Readable
-
readVarint
public int readVarint()- Specified by:
readVarintin interfaceByteBufAccessor- Specified by:
readVarintin interfaceorg.apache.kafka.common.protocol.Readable
-
readVarlong
public long readVarlong()- Specified by:
readVarlongin interfaceByteBufAccessor- Specified by:
readVarlongin interfaceorg.apache.kafka.common.protocol.Readable
-
remaining
public int remaining()- Specified by:
remainingin interfaceByteBufAccessor- Specified by:
remainingin interfaceorg.apache.kafka.common.protocol.Readable
-
slice
public org.apache.kafka.common.protocol.Readable slice()- Specified by:
slicein interfaceorg.apache.kafka.common.protocol.Readable
-
readerIndex
public int readerIndex()- Specified by:
readerIndexin interfaceByteBufAccessor
-
readerIndex
public void readerIndex(int readerIndex) - Specified by:
readerIndexin interfaceByteBufAccessor
-
writeByte
public void writeByte(byte val) - Specified by:
writeBytein interfaceByteBufAccessor- Specified by:
writeBytein interfaceorg.apache.kafka.common.protocol.Writable
-
writeShort
public void writeShort(short val) - Specified by:
writeShortin interfaceByteBufAccessor- Specified by:
writeShortin interfaceorg.apache.kafka.common.protocol.Writable
-
writeInt
public void writeInt(int val) - Specified by:
writeIntin interfaceByteBufAccessor- Specified by:
writeIntin interfaceorg.apache.kafka.common.protocol.Writable
-
writeLong
public void writeLong(long val) - Specified by:
writeLongin interfaceByteBufAccessor- Specified by:
writeLongin interfaceorg.apache.kafka.common.protocol.Writable
-
writeDouble
public void writeDouble(double val) - Specified by:
writeDoublein interfaceByteBufAccessor- Specified by:
writeDoublein interfaceorg.apache.kafka.common.protocol.Writable
-
writeByteArray
public void writeByteArray(byte[] arr) - Specified by:
writeByteArrayin interfaceByteBufAccessor- Specified by:
writeByteArrayin interfaceorg.apache.kafka.common.protocol.Writable
-
writeUnsignedVarint
public void writeUnsignedVarint(int i) - Specified by:
writeUnsignedVarintin interfaceByteBufAccessor- Specified by:
writeUnsignedVarintin interfaceorg.apache.kafka.common.protocol.Writable
-
writeByteBuffer
- Specified by:
writeByteBufferin interfaceByteBufAccessor- Specified by:
writeByteBufferin interfaceorg.apache.kafka.common.protocol.Writable
-
writeVarint
public void writeVarint(int i) - Specified by:
writeVarintin interfaceByteBufAccessor- Specified by:
writeVarintin interfaceorg.apache.kafka.common.protocol.Writable
-
writeVarlong
public void writeVarlong(long i) - Specified by:
writeVarlongin interfaceByteBufAccessor- Specified by:
writeVarlongin interfaceorg.apache.kafka.common.protocol.Writable
-
ensureWritable
public void ensureWritable(int encodedSize) - Specified by:
ensureWritablein interfaceByteBufAccessor
-
writerIndex
public int writerIndex()- Specified by:
writerIndexin interfaceByteBufAccessor
-
writeBytes
public void writeBytes(io.netty.buffer.ByteBuf buf, int length) - Specified by:
writeBytesin interfaceByteBufAccessor
-