Class ProtonNettyByteBuffer
- java.lang.Object
-
- org.apache.qpid.protonj2.buffer.ProtonNettyByteBuffer
-
- All Implemented Interfaces:
java.lang.Comparable<ProtonBuffer>,ProtonBuffer
public final class ProtonNettyByteBuffer extends java.lang.Object implements ProtonBuffer
Wrapper class for Netty ByteBuf instances
-
-
Constructor Summary
Constructors Constructor Description ProtonNettyByteBuffer(int maximumCapacity)Creates aProtonNettyByteBufferthat wraps an NettyByteBufthat is not pooled and whose maximum capacity is set to the given value.ProtonNettyByteBuffer(io.netty.buffer.ByteBuf toWrap)Creates a newProtonNettyByteBufferwhich wraps the given NettyByteBuf.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcapacity()ProtonBuffercapacity(int newCapacity)Adjusts the capacity of this buffer.ProtonBufferclear()Reset the read and write offsets to zero and clears the position markers if set previously, this method is not required to reset the data previously written to this buffer.intcompareTo(ProtonBuffer other)Compares the remaining content of the current buffer with the remaining content of the given buffer, which must not be null.ProtonBuffercopy()Create a deep copy of the readable bytes of this ProtonBuffer, the returned buffer can be modified without affecting the contents or position markers of this instance.ProtonBuffercopy(int index, int length)Returns a copy of this buffer's sub-region.ProtonBufferduplicate()Create a duplicate of this ProtonBuffer instance that shares the same backing data store and but maintains separate position index values.ProtonBufferensureWritable(int minWritableBytes)Ensures that the requested number of bytes is available for write operations in the current buffer, growing the buffer if needed to meet the requested writable capacity.booleanequals(java.lang.Object other)byte[]getArray()Returns the backing array for this ProtonBuffer instance if there is such an array or throws an exception if this ProtonBuffer implementation has no backing array.intgetArrayOffset()booleangetBoolean(int index)Gets a boolean from the specified index, this method will not modify the read or write index.bytegetByte(int index)Gets a byte from the specified index, this method will not modify the read or write index.ProtonBuffergetBytes(int index, byte[] destination)Transfers this buffer's data to the specified destination starting at the specified absoluteindex.ProtonBuffergetBytes(int index, byte[] destination, int offset, int length)Transfers this buffer's data to the specified destination starting at the specified absoluteindex.ProtonBuffergetBytes(int index, java.nio.ByteBuffer destination)Transfers this buffer's data to the specified destination starting at the specified absoluteindexuntil the destination's position reaches its limit.ProtonBuffergetBytes(int index, ProtonBuffer destination)Transfers this buffer's data to the specified destination starting at the specified absoluteindexuntil the destination becomes non-writable.ProtonBuffergetBytes(int index, ProtonBuffer destination, int length)Transfers this buffer's data to the specified destination starting at the specified absoluteindex.ProtonBuffergetBytes(int index, ProtonBuffer destination, int offset, int length)Transfers this buffer's data to the specified destination starting at the specified absoluteindex.chargetChar(int index)Gets a 2-byte char from the specified index, this method will not modify the read or write index.doublegetDouble(int index)Gets a double from the specified index, this method will not modify the read or write index.floatgetFloat(int index)Gets a float from the specified index, this method will not modify the read or write index.intgetInt(int index)Gets a int from the specified index, this method will not modify the read or write index.longgetLong(int index)Gets a long from the specified index, this method will not modify the read or write index.intgetMaxWritableBytes()Gets the current maximum number of bytes that can be written to this buffer.intgetReadableBytes()intgetReadIndex()shortgetShort(int index)Gets a short from the specified index, this method will not modify the read or write index.shortgetUnsignedByte(int index)Gets a unsigned byte from the specified index, this method will not modify the read or write index.longgetUnsignedInt(int index)Gets a unsigned int from the specified index, this method will not modify the read or write index.intgetUnsignedShort(int index)Gets a unsigned short from the specified index, this method will not modify the read or write index.intgetWritableBytes()intgetWriteIndex()booleanhasArray()inthashCode()booleanisReadable()booleanisReadable(int minReadableBytes)Check if the given number of bytes can be read from the buffer.booleanisWritable()booleanisWritable(int minWritableBytes)Check if the requested number of bytes can be written into this buffer.ProtonBuffermarkReadIndex()Marks the current read index so that it can later be restored by a call toProtonBuffer.resetReadIndex(), the initial mark value is 0.ProtonBuffermarkWriteIndex()Marks the current write index so that it can later be restored by a call toProtonBuffer.resetWriteIndex(), the initial mark value is 0.intmaxCapacity()Returns the number of bytes that this buffer is allowed to grow to when write operations exceed the current capacity value.booleanreadBoolean()Reads a boolean value from the buffer and advances the read index by one.bytereadByte()Reads one byte from the buffer and advances the read index by one.ProtonBufferreadBytes(byte[] destination)Reads bytes from this buffer and writes them into the destination byte array incrementing the read index by the value of the length of the destination array.ProtonBufferreadBytes(byte[] destination, int length)Reads bytes from this buffer and writes them into the destination byte array incrementing the read index by the length value passed.ProtonBufferreadBytes(byte[] destination, int offset, int length)Reads bytes from this buffer and writes them into the destination byte array incrementing the read index by the length value passed, the bytes are read into the given buffer starting from the given offset value.ProtonBufferreadBytes(java.nio.ByteBuffer destination)Transfers this buffer's data to the specified destination starting at the currentreadIndexuntil the destination's position reaches its limit, and increases thereadIndexby the number of the transferred bytes.ProtonBufferreadBytes(ProtonBuffer destination)Reads bytes from this buffer and writes them into the destination ProtonBuffer incrementing the read index by the value of the number of bytes written to the target.ProtonBufferreadBytes(ProtonBuffer destination, int length)Reads bytes from this buffer and writes them into the destination ProtonBuffer incrementing the read index by the number of bytes written.ProtonBufferreadBytes(ProtonBuffer destination, int offset, int length)Transfers this buffer's data to the specified destination starting at the currentreadIndexand increases thereadIndexby the number of the transferred bytes (=length).doublereadDouble()Reads a double value from the buffer and advances the read index by eight.floatreadFloat()Reads a float value from the buffer and advances the read index by four.intreadInt()Reads a integer value from the buffer and advances the read index by four.longreadLong()Reads a long value from the buffer and advances the read index by eight.shortreadShort()Reads a short value from the buffer and advances the read index by two.ProtonBufferresetReadIndex()Resets the current read index to the previously marked value.ProtonBufferresetWriteIndex()Resets the current write index to the previously marked value.ProtonBuffersetBoolean(int index, boolean value)Sets the boolean value at the given write index in this buffer's backing data store.ProtonBuffersetByte(int index, int value)Sets the byte value at the given write index in this buffer's backing data store.ProtonBuffersetBytes(int index, byte[] value)Transfers the specified source array's data to this buffer starting at the specified absoluteindex.ProtonBuffersetBytes(int index, byte[] value, int offset, int length)Transfers the specified source array's data to this buffer starting at the specified absoluteindex.ProtonBuffersetBytes(int index, java.nio.ByteBuffer value)Transfers the specified source buffer's data to this buffer starting at the specified absoluteindexuntil the source buffer's position reaches its limit.ProtonBuffersetBytes(int index, ProtonBuffer value)Transfers the specified source buffer's data to this buffer starting at the specified absoluteindexuntil the source buffer becomes unreadable.ProtonBuffersetBytes(int index, ProtonBuffer value, int length)Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex.ProtonBuffersetBytes(int index, ProtonBuffer value, int offset, int length)Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex.ProtonBuffersetChar(int index, int value)Sets the char value at the given write index in this buffer's backing data store.ProtonBuffersetDouble(int index, double value)Sets the double value at the given write index in this buffer's backing data store.ProtonBuffersetFloat(int index, float value)Sets the float value at the given write index in this buffer's backing data store.ProtonBuffersetIndex(int readIndex, int writeIndex)Used to set the read index and the write index in one call.ProtonBuffersetInt(int index, int value)Sets the int value at the given write index in this buffer's backing data store.ProtonBuffersetLong(int index, long value)Sets the long value at the given write index in this buffer's backing data store.ProtonBuffersetReadIndex(int index)Sets the read index for this buffer.ProtonBuffersetShort(int index, int value)Sets the short value at the given write index in this buffer's backing data store.ProtonBuffersetWriteIndex(int index)Sets the write index for this buffer.ProtonBufferskipBytes(int skippedBytes)Increases the currentreadIndexof this buffer by the specifiedlength.ProtonBufferslice()Create a new ProtonBuffer whose contents are a subsequence of the contents of thisProtonBuffer.ProtonBufferslice(int index, int length)Create a new ProtonBuffer whose contents are a subsequence of the contents of thisProtonBuffer.java.nio.ByteBuffertoByteBuffer()Returns a ByteBuffer that represents the readable bytes contained in this buffer.java.nio.ByteBuffertoByteBuffer(int index, int length)Returns a ByteBuffer that represents the given span of bytes from the readable portion of this buffer.java.lang.StringtoString()java.lang.StringtoString(java.nio.charset.Charset charset)Returns a String created from the buffer's underlying bytes using the specifiedCharsetfor the newly created String.io.netty.buffer.ByteBufunwrap()Return the underlying buffer object that backs thisProtonBufferinstance, or null if there is no backing object.ProtonBufferwriteBoolean(boolean value)Writes a single boolean to the buffer and advances the write index by one.ProtonBufferwriteByte(int value)Writes a single byte to the buffer and advances the write index by one.ProtonBufferwriteBytes(byte[] value)Writes the contents of the given byte array into the buffer and advances the write index by the length of the given array.ProtonBufferwriteBytes(byte[] value, int length)Writes the contents of the given byte array into the buffer and advances the write index by the length value given.ProtonBufferwriteBytes(byte[] array, int offset, int length)Writes the contents of the given byte array into the buffer and advances the write index by the length value given.ProtonBufferwriteBytes(java.nio.ByteBuffer value)Transfers the specified source buffer's data to this buffer starting at the currentwriteIndexuntil the source buffer's position reaches its limit, and increases thewriteIndexby the number of the transferred bytes.ProtonBufferwriteBytes(ProtonBuffer value)Transfers the specified source buffer's data to this buffer starting at the currentwriteIndexuntil the source buffer becomes unreadable, and increases thewriteIndexby the number of the transferred bytes.ProtonBufferwriteBytes(ProtonBuffer value, int length)Transfers the specified source buffer's data to this buffer starting at the currentwriteIndexand increases thewriteIndexby the number of the transferred bytes (=length).ProtonBufferwriteBytes(ProtonBuffer value, int offset, int length)Transfers the specified source buffer's data to this buffer starting at the currentwriteIndexand increases thewriteIndexby the number of the transferred bytes (=length).ProtonBufferwriteDouble(double value)Writes a single double to the buffer and advances the write index by eight.ProtonBufferwriteFloat(float value)Writes a single float to the buffer and advances the write index by four.ProtonBufferwriteInt(int value)Writes a single integer to the buffer and advances the write index by four.ProtonBufferwriteLong(long value)Writes a single long to the buffer and advances the write index by eight.ProtonBufferwriteShort(short value)Writes a single short to the buffer and advances the write index by two.
-
-
-
Constructor Detail
-
ProtonNettyByteBuffer
public ProtonNettyByteBuffer(io.netty.buffer.ByteBuf toWrap)
Creates a newProtonNettyByteBufferwhich wraps the given NettyByteBuf.- Parameters:
toWrap- TheByteBufto wrap.
-
ProtonNettyByteBuffer
public ProtonNettyByteBuffer(int maximumCapacity)
Creates aProtonNettyByteBufferthat wraps an NettyByteBufthat is not pooled and whose maximum capacity is set to the given value.- Parameters:
maximumCapacity- The maximum allowed capacity of the allocated NettyByteBuf.
-
-
Method Detail
-
unwrap
public io.netty.buffer.ByteBuf unwrap()
Description copied from interface:ProtonBufferReturn the underlying buffer object that backs thisProtonBufferinstance, or null if there is no backing object. This method should be overridden in buffer abstraction when access to the underlying backing store is needed such as when wrapping pooled resources that need explicit release calls.- Specified by:
unwrapin interfaceProtonBuffer- Returns:
- an underlying buffer object or other backing store for this buffer.
-
capacity
public int capacity()
- Specified by:
capacityin interfaceProtonBuffer- Returns:
- the number of bytes this buffer can currently contain.
-
capacity
public ProtonBuffer capacity(int newCapacity)
Description copied from interface:ProtonBufferAdjusts the capacity of this buffer. If the new capacity is less than the current capacity, the content of this buffer is truncated. If the new capacity is greater than the current capacity, the buffer is appended with unspecified data whose length is new capacity - current capacity.- Specified by:
capacityin interfaceProtonBuffer- Parameters:
newCapacity- the new maximum capacity value of this buffer.- Returns:
- this buffer for using in call chaining.
-
clear
public ProtonBuffer clear()
Description copied from interface:ProtonBufferReset the read and write offsets to zero and clears the position markers if set previously, this method is not required to reset the data previously written to this buffer.- Specified by:
clearin interfaceProtonBuffer- Returns:
- this buffer for using in call chaining.
-
compareTo
public int compareTo(ProtonBuffer other)
Description copied from interface:ProtonBufferCompares the remaining content of the current buffer with the remaining content of the given buffer, which must not be null. Each byte is compared in turn as an unsigned value, returning upon the first difference. If no difference is found before the end of one buffer, the shorter buffer is considered less than the other, or else if the same length then they are considered equal.- Specified by:
compareToin interfacejava.lang.Comparable<ProtonBuffer>- Specified by:
compareToin interfaceProtonBuffer- Returns:
- a negative, zero, or positive integer when this buffer is less than, equal to, or greater than the given buffer.
- See Also:
Comparable.compareTo(Object)
-
copy
public ProtonBuffer copy()
Description copied from interface:ProtonBufferCreate a deep copy of the readable bytes of this ProtonBuffer, the returned buffer can be modified without affecting the contents or position markers of this instance.- Specified by:
copyin interfaceProtonBuffer- Returns:
- a deep copy of this ProtonBuffer instance.
-
copy
public ProtonBuffer copy(int index, int length)
Description copied from interface:ProtonBufferReturns a copy of this buffer's sub-region. Modifying the content of the returned buffer or this buffer does not affect each other at all. This method does not modify the value returned fromProtonBuffer.getReadIndex()orProtonBuffer.getWriteIndex()of this buffer.- Specified by:
copyin interfaceProtonBuffer- Parameters:
index- The index in this buffer where the copy should beginlength- The number of bytes to copy to the new buffer from this one.- Returns:
- a new ProtonBuffer instance containing the copied bytes.
-
duplicate
public ProtonBuffer duplicate()
Description copied from interface:ProtonBufferCreate a duplicate of this ProtonBuffer instance that shares the same backing data store and but maintains separate position index values. Changes to one buffer are visible in any of its duplicates. This method does not copy the read or write markers to the new buffer instance.- Specified by:
duplicatein interfaceProtonBuffer- Returns:
- a new ProtonBuffer instance that shares the backing data as this one.
-
ensureWritable
public ProtonBuffer ensureWritable(int minWritableBytes) throws java.lang.IndexOutOfBoundsException, java.lang.IllegalArgumentException
Description copied from interface:ProtonBufferEnsures that the requested number of bytes is available for write operations in the current buffer, growing the buffer if needed to meet the requested writable capacity. This method will not alter the write offset but may change the value returned from the capacity method if new buffer space is allocated.- Specified by:
ensureWritablein interfaceProtonBuffer- Parameters:
minWritableBytes- The number of bytes beyond the current write index needed.- Returns:
- this buffer for using in call chaining.
- Throws:
java.lang.IndexOutOfBoundsException- if the amount given would result in the buffer exceeding the maximum capacity for this buffer.java.lang.IllegalArgumentException- if the amount given is less than zero.
-
getArray
public byte[] getArray()
Description copied from interface:ProtonBufferReturns the backing array for this ProtonBuffer instance if there is such an array or throws an exception if this ProtonBuffer implementation has no backing array.Changes to the returned array are visible to other users of this ProtonBuffer.
- Specified by:
getArrayin interfaceProtonBuffer- Returns:
- the backing byte array for this ProtonBuffer.
-
getArrayOffset
public int getArrayOffset()
- Specified by:
getArrayOffsetin interfaceProtonBuffer- Returns:
- the offset of the first byte in the backing array belonging to this buffer.
-
getBoolean
public boolean getBoolean(int index)
Description copied from interface:ProtonBufferGets a boolean from the specified index, this method will not modify the read or write index.- Specified by:
getBooleanin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.- Returns:
- the value read from the given index.
-
getByte
public byte getByte(int index)
Description copied from interface:ProtonBufferGets a byte from the specified index, this method will not modify the read or write index.- Specified by:
getBytein interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.- Returns:
- the value read from the given index.
-
getBytes
public ProtonBuffer getBytes(int index, byte[] destination)
Description copied from interface:ProtonBufferTransfers this buffer's data to the specified destination starting at the specified absoluteindex. This method does not modifyreadIndexorwriteIndexof this buffer- Specified by:
getBytesin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.destination- The buffer where the bytes read will be written to- Returns:
- this buffer for chaining
-
getBytes
public ProtonBuffer getBytes(int index, java.nio.ByteBuffer destination)
Description copied from interface:ProtonBufferTransfers this buffer's data to the specified destination starting at the specified absoluteindexuntil the destination's position reaches its limit. This method does not modify#getReadIndex()or#getWriteIndex()of this buffer while the destination'spositionwill be increased.- Specified by:
getBytesin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.destination- The buffer where the bytes read will be written to- Returns:
- this buffer for chaining
-
getBytes
public ProtonBuffer getBytes(int index, ProtonBuffer destination)
Description copied from interface:ProtonBufferTransfers this buffer's data to the specified destination starting at the specified absoluteindexuntil the destination becomes non-writable. This method is basically same withProtonBuffer.getBytes(int, ProtonBuffer, int, int), except that this method increases thewriteIndexof the destination by the number of the transferred bytes whileProtonBuffer.getBytes(int, ProtonBuffer, int, int)does not. This method does not modifyreadIndexorwriteIndexof the source buffer (i.e.this).- Specified by:
getBytesin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.destination- the destination buffer for the bytes to be read- Returns:
- this buffer for chaining
-
getBytes
public ProtonBuffer getBytes(int index, ProtonBuffer destination, int length)
Description copied from interface:ProtonBufferTransfers this buffer's data to the specified destination starting at the specified absoluteindex. This method is basically same withProtonBuffer.getBytes(int, ProtonBuffer, int, int), except that this method increases thewriteIndexof the destination by the number of the transferred bytes whileProtonBuffer.getBytes(int, ProtonBuffer, int, int)does not. This method does not modifyreadIndexorwriteIndexof the source buffer (i.e.this).- Specified by:
getBytesin interfaceProtonBuffer- Parameters:
index- the index in the buffer to start the read fromdestination- the destination buffer for the bytes to be readlength- the number of bytes to transfer- Returns:
- this buffer for chaining
-
getBytes
public ProtonBuffer getBytes(int index, ProtonBuffer destination, int offset, int length)
Description copied from interface:ProtonBufferTransfers this buffer's data to the specified destination starting at the specified absoluteindex. This method does not modifyreadIndexorwriteIndexof both the source (i.e.this) and the destination.- Specified by:
getBytesin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.destination- The buffer where the bytes read will be written tooffset- The offset into the destination where the write startslength- The number of bytes to transfer- Returns:
- this buffer for chaining
-
getBytes
public ProtonBuffer getBytes(int index, byte[] destination, int offset, int length)
Description copied from interface:ProtonBufferTransfers this buffer's data to the specified destination starting at the specified absoluteindex. This method does not modify#getReadIndex()or#getWriteIndex()of this buffer.- Specified by:
getBytesin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.destination- The buffer where the bytes read will be written tooffset- the offset into the destination to begin writing the bytes.length- the number of bytes to transfer from this buffer to the target buffer.- Returns:
- this buffer for chaining
-
getChar
public char getChar(int index)
Description copied from interface:ProtonBufferGets a 2-byte char from the specified index, this method will not modify the read or write index.- Specified by:
getCharin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.- Returns:
- the value read from the given index.
-
getDouble
public double getDouble(int index)
Description copied from interface:ProtonBufferGets a double from the specified index, this method will not modify the read or write index.- Specified by:
getDoublein interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.- Returns:
- the value read from the given index.
-
getFloat
public float getFloat(int index)
Description copied from interface:ProtonBufferGets a float from the specified index, this method will not modify the read or write index.- Specified by:
getFloatin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.- Returns:
- the value read from the given index.
-
getInt
public int getInt(int index)
Description copied from interface:ProtonBufferGets a int from the specified index, this method will not modify the read or write index.- Specified by:
getIntin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.- Returns:
- the value read from the given index.
-
getLong
public long getLong(int index)
Description copied from interface:ProtonBufferGets a long from the specified index, this method will not modify the read or write index.- Specified by:
getLongin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.- Returns:
- the value read from the given index.
-
getReadIndex
public int getReadIndex()
- Specified by:
getReadIndexin interfaceProtonBuffer- Returns:
- the current value of the read index for this buffer.
-
getReadableBytes
public int getReadableBytes()
- Specified by:
getReadableBytesin interfaceProtonBuffer- Returns:
- the number of bytes available for reading from this buffer.
-
getShort
public short getShort(int index)
Description copied from interface:ProtonBufferGets a short from the specified index, this method will not modify the read or write index.- Specified by:
getShortin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.- Returns:
- the value read from the given index.
-
getUnsignedByte
public short getUnsignedByte(int index)
Description copied from interface:ProtonBufferGets a unsigned byte from the specified index, this method will not modify the read or write index.- Specified by:
getUnsignedBytein interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.- Returns:
- the value read from the given index.
-
getUnsignedInt
public long getUnsignedInt(int index)
Description copied from interface:ProtonBufferGets a unsigned int from the specified index, this method will not modify the read or write index.- Specified by:
getUnsignedIntin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.- Returns:
- the value read from the given index.
-
getUnsignedShort
public int getUnsignedShort(int index)
Description copied from interface:ProtonBufferGets a unsigned short from the specified index, this method will not modify the read or write index.- Specified by:
getUnsignedShortin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the value should be read.- Returns:
- the value read from the given index.
-
getWritableBytes
public int getWritableBytes()
- Specified by:
getWritableBytesin interfaceProtonBuffer- Returns:
- the number of bytes that can be written to this buffer before the limit is hit.
-
getMaxWritableBytes
public int getMaxWritableBytes()
Description copied from interface:ProtonBufferGets the current maximum number of bytes that can be written to this buffer. This is the same value that can be computed by subtracting the current write index from the maximum buffer capacity.- Specified by:
getMaxWritableBytesin interfaceProtonBuffer- Returns:
- the maximum number of bytes that can be written to this buffer before the limit is hit.
-
getWriteIndex
public int getWriteIndex()
- Specified by:
getWriteIndexin interfaceProtonBuffer- Returns:
- the current value of the write index for this buffer.
-
hasArray
public boolean hasArray()
- Specified by:
hasArrayin interfaceProtonBuffer- Returns:
- true if this buffer has a backing byte array that can be accessed.
-
isReadable
public boolean isReadable()
- Specified by:
isReadablein interfaceProtonBuffer- Returns:
- true if the read index is less than the write index.
-
isReadable
public boolean isReadable(int minReadableBytes)
Description copied from interface:ProtonBufferCheck if the given number of bytes can be read from the buffer.- Specified by:
isReadablein interfaceProtonBuffer- Parameters:
minReadableBytes- the size that is desired in readable bytes- Returns:
- true if the buffer has at least the given number of readable bytes remaining.
-
isWritable
public boolean isWritable()
- Specified by:
isWritablein interfaceProtonBuffer- Returns:
- true if the buffer has bytes remaining between the write index and the capacity.
-
isWritable
public boolean isWritable(int minWritableBytes)
Description copied from interface:ProtonBufferCheck if the requested number of bytes can be written into this buffer.- Specified by:
isWritablein interfaceProtonBuffer- Parameters:
minWritableBytes- The number writable bytes that is being checked in this buffer.- Returns:
- true if the buffer has space left for the given number of bytes to be written.
-
markReadIndex
public ProtonBuffer markReadIndex()
Description copied from interface:ProtonBufferMarks the current read index so that it can later be restored by a call toProtonBuffer.resetReadIndex(), the initial mark value is 0.- Specified by:
markReadIndexin interfaceProtonBuffer- Returns:
- this buffer for use in chaining.
-
markWriteIndex
public ProtonBuffer markWriteIndex()
Description copied from interface:ProtonBufferMarks the current write index so that it can later be restored by a call toProtonBuffer.resetWriteIndex(), the initial mark value is 0.- Specified by:
markWriteIndexin interfaceProtonBuffer- Returns:
- this buffer for use in chaining.
-
maxCapacity
public int maxCapacity()
Description copied from interface:ProtonBufferReturns the number of bytes that this buffer is allowed to grow to when write operations exceed the current capacity value.- Specified by:
maxCapacityin interfaceProtonBuffer- Returns:
- the number of bytes this buffer is allowed to grow to.
-
readBoolean
public boolean readBoolean()
Description copied from interface:ProtonBufferReads a boolean value from the buffer and advances the read index by one.- Specified by:
readBooleanin interfaceProtonBuffer- Returns:
- boolean value read from the buffer.
-
readByte
public byte readByte()
Description copied from interface:ProtonBufferReads one byte from the buffer and advances the read index by one.- Specified by:
readBytein interfaceProtonBuffer- Returns:
- a single byte from the ProtonBuffer.
-
readBytes
public ProtonBuffer readBytes(byte[] destination)
Description copied from interface:ProtonBufferReads bytes from this buffer and writes them into the destination byte array incrementing the read index by the value of the length of the destination array.- Specified by:
readBytesin interfaceProtonBuffer- Parameters:
destination- The byte array to write into.- Returns:
- this ProtonBuffer for chaining.
-
readBytes
public ProtonBuffer readBytes(java.nio.ByteBuffer destination)
Description copied from interface:ProtonBufferTransfers this buffer's data to the specified destination starting at the currentreadIndexuntil the destination's position reaches its limit, and increases thereadIndexby the number of the transferred bytes.- Specified by:
readBytesin interfaceProtonBuffer- Parameters:
destination- The target ByteBuffer to write into.- Returns:
- this ProtonBuffer for chaining.
-
readBytes
public ProtonBuffer readBytes(byte[] destination, int length)
Description copied from interface:ProtonBufferReads bytes from this buffer and writes them into the destination byte array incrementing the read index by the length value passed.- Specified by:
readBytesin interfaceProtonBuffer- Parameters:
destination- The byte array to write into.length- The number of bytes to read into the given array.- Returns:
- this ProtonBuffer for chaining.
-
readBytes
public ProtonBuffer readBytes(byte[] destination, int offset, int length)
Description copied from interface:ProtonBufferReads bytes from this buffer and writes them into the destination byte array incrementing the read index by the length value passed, the bytes are read into the given buffer starting from the given offset value.- Specified by:
readBytesin interfaceProtonBuffer- Parameters:
destination- The byte array to write into.offset- The offset into the given array where bytes are written.length- The number of bytes to read into the given array.- Returns:
- this ProtonBuffer for chaining.
-
readBytes
public ProtonBuffer readBytes(ProtonBuffer destination)
Description copied from interface:ProtonBufferReads bytes from this buffer and writes them into the destination ProtonBuffer incrementing the read index by the value of the number of bytes written to the target. The number of bytes written will be the equal to the writable bytes of the target buffer. The write index of the target buffer will be incremented by the number of bytes written into it.- Specified by:
readBytesin interfaceProtonBuffer- Parameters:
destination- The ProtonBuffer to write into.- Returns:
- this ProtonBuffer for chaining.
-
readBytes
public ProtonBuffer readBytes(ProtonBuffer destination, int length)
Description copied from interface:ProtonBufferReads bytes from this buffer and writes them into the destination ProtonBuffer incrementing the read index by the number of bytes written. The write index of the target buffer will be incremented by the number of bytes written into it.- Specified by:
readBytesin interfaceProtonBuffer- Parameters:
destination- The ProtonBuffer to write into.length- The number of bytes to read into the given buffer.- Returns:
- this ProtonBuffer for chaining.
-
readBytes
public ProtonBuffer readBytes(ProtonBuffer destination, int offset, int length)
Description copied from interface:ProtonBufferTransfers this buffer's data to the specified destination starting at the currentreadIndexand increases thereadIndexby the number of the transferred bytes (=length). This method does not modify the write index of the target buffer.- Specified by:
readBytesin interfaceProtonBuffer- Parameters:
destination- The ProtonBuffer to write into.offset- The offset into the given buffer where bytes are written.length- The number of bytes to read into the given buffer.- Returns:
- this ProtonBuffer for chaining.
-
readDouble
public double readDouble()
Description copied from interface:ProtonBufferReads a double value from the buffer and advances the read index by eight.- Specified by:
readDoublein interfaceProtonBuffer- Returns:
- double value read from the buffer.
-
readFloat
public float readFloat()
Description copied from interface:ProtonBufferReads a float value from the buffer and advances the read index by four.- Specified by:
readFloatin interfaceProtonBuffer- Returns:
- float value read from the buffer.
-
readInt
public int readInt()
Description copied from interface:ProtonBufferReads a integer value from the buffer and advances the read index by four.- Specified by:
readIntin interfaceProtonBuffer- Returns:
- integer value read from the buffer.
-
readLong
public long readLong()
Description copied from interface:ProtonBufferReads a long value from the buffer and advances the read index by eight.- Specified by:
readLongin interfaceProtonBuffer- Returns:
- long value read from the buffer.
-
readShort
public short readShort()
Description copied from interface:ProtonBufferReads a short value from the buffer and advances the read index by two.- Specified by:
readShortin interfaceProtonBuffer- Returns:
- short value read from the buffer.
-
resetReadIndex
public ProtonBuffer resetReadIndex()
Description copied from interface:ProtonBufferResets the current read index to the previously marked value.- Specified by:
resetReadIndexin interfaceProtonBuffer- Returns:
- this buffer for use in chaining.
-
resetWriteIndex
public ProtonBuffer resetWriteIndex()
Description copied from interface:ProtonBufferResets the current write index to the previously marked value.- Specified by:
resetWriteIndexin interfaceProtonBuffer- Returns:
- this buffer for use in chaining.
-
setBoolean
public ProtonBuffer setBoolean(int index, boolean value)
Description copied from interface:ProtonBufferSets the boolean value at the given write index in this buffer's backing data store.- Specified by:
setBooleanin interfaceProtonBuffer- Parameters:
index- The index to start the write from.value- The value to write at the given index.- Returns:
- a reference to this ProtonBuffer for chaining.
-
setByte
public ProtonBuffer setByte(int index, int value)
Description copied from interface:ProtonBufferSets the byte value at the given write index in this buffer's backing data store.- Specified by:
setBytein interfaceProtonBuffer- Parameters:
index- The index to start the write from.value- The value to write at the given index.- Returns:
- a reference to this ProtonBuffer for chaining.
-
setBytes
public ProtonBuffer setBytes(int index, byte[] value)
Description copied from interface:ProtonBufferTransfers the specified source array's data to this buffer starting at the specified absoluteindex. This method does not modifyreadIndexorwriteIndexof this buffer.- Specified by:
setBytesin interfaceProtonBuffer- Parameters:
index- The index in this buffer where the write operation starts.value- The source buffer from which the bytes are read.- Returns:
- this buffer for chaining
-
setBytes
public ProtonBuffer setBytes(int index, java.nio.ByteBuffer value)
Description copied from interface:ProtonBufferTransfers the specified source buffer's data to this buffer starting at the specified absoluteindexuntil the source buffer's position reaches its limit. This method does not modifyreadIndexorwriteIndexof this buffer.- Specified by:
setBytesin interfaceProtonBuffer- Parameters:
index- The index in this buffer where the write operation starts.value- The source buffer from which the bytes are read.- Returns:
- this buffer for chaining
-
setBytes
public ProtonBuffer setBytes(int index, ProtonBuffer value)
Description copied from interface:ProtonBufferTransfers the specified source buffer's data to this buffer starting at the specified absoluteindexuntil the source buffer becomes unreadable. This method is basically same withProtonBuffer.setBytes(int, ProtonBuffer, int, int), except that this method increases thereadIndexof the source buffer by the number of the transferred bytes whileProtonBuffer.setBytes(int, ProtonBuffer, int, int)does not. This method does not modifyreadIndexorwriteIndexof the source buffer (i.e.this).- Specified by:
setBytesin interfaceProtonBuffer- Parameters:
index- The index in this buffer where the write operation starts.value- The source buffer from which the bytes are read.- Returns:
- this buffer for chaining
-
setBytes
public ProtonBuffer setBytes(int index, ProtonBuffer value, int length)
Description copied from interface:ProtonBufferTransfers the specified source buffer's data to this buffer starting at the specified absoluteindex. This method is basically same withProtonBuffer.setBytes(int, ProtonBuffer, int, int), except that this method increases thereadIndexof the source buffer by the number of the transferred bytes whileProtonBuffer.setBytes(int, ProtonBuffer, int, int)does not. This method does not modifyreadIndexorwriteIndexof the source buffer (i.e.this).- Specified by:
setBytesin interfaceProtonBuffer- Parameters:
index- The index in this buffer where the write operation starts.value- The source buffer from which the bytes are read.length- The number of bytes to transfer- Returns:
- this buffer for chaining
-
setBytes
public ProtonBuffer setBytes(int index, ProtonBuffer value, int offset, int length)
Description copied from interface:ProtonBufferTransfers the specified source buffer's data to this buffer starting at the specified absoluteindex. This method does not modifyreadIndexorwriteIndexof both the source (i.e.this) and the destination.- Specified by:
setBytesin interfaceProtonBuffer- Parameters:
index- The index in this buffer where the write operation starts.value- The source buffer from which the bytes are read.offset- The offset into the source where the set begins.length- The number of bytes to transfer- Returns:
- this buffer for chaining
-
setBytes
public ProtonBuffer setBytes(int index, byte[] value, int offset, int length)
Description copied from interface:ProtonBufferTransfers the specified source array's data to this buffer starting at the specified absoluteindex. This method does not modifyreadIndexorwriteIndexof this buffer.- Specified by:
setBytesin interfaceProtonBuffer- Parameters:
index- The index in this buffer where the write operation starts.value- The source buffer from which the bytes are read.offset- The offset into the source where the set begins.length- The number of bytes to transfer- Returns:
- this buffer for chaining
-
setChar
public ProtonBuffer setChar(int index, int value)
Description copied from interface:ProtonBufferSets the char value at the given write index in this buffer's backing data store.- Specified by:
setCharin interfaceProtonBuffer- Parameters:
index- The index to start the write from.value- The value to write at the given index.- Returns:
- a reference to this ProtonBuffer for chaining.
-
setDouble
public ProtonBuffer setDouble(int index, double value)
Description copied from interface:ProtonBufferSets the double value at the given write index in this buffer's backing data store.- Specified by:
setDoublein interfaceProtonBuffer- Parameters:
index- The index to start the write from.value- The value to write at the given index.- Returns:
- a reference to this ProtonBuffer for chaining.
-
setFloat
public ProtonBuffer setFloat(int index, float value)
Description copied from interface:ProtonBufferSets the float value at the given write index in this buffer's backing data store.- Specified by:
setFloatin interfaceProtonBuffer- Parameters:
index- The index to start the write from.value- The value to write at the given index.- Returns:
- a reference to this ProtonBuffer for chaining.
-
setIndex
public ProtonBuffer setIndex(int readIndex, int writeIndex)
Description copied from interface:ProtonBufferUsed to set the read index and the write index in one call. This methods allows for an update to the read index and write index to values that could not be set using simple setReadIndex and setWriteIndex call where the values would violate the constraints placed on them by the value of the other index.- Specified by:
setIndexin interfaceProtonBuffer- Parameters:
readIndex- The new read index to assign to this buffer.writeIndex- The new write index to assign to this buffer.- Returns:
- this buffer for use in chaining.
-
setInt
public ProtonBuffer setInt(int index, int value)
Description copied from interface:ProtonBufferSets the int value at the given write index in this buffer's backing data store.- Specified by:
setIntin interfaceProtonBuffer- Parameters:
index- The index to start the write from.value- The value to write at the given index.- Returns:
- a reference to this ProtonBuffer for chaining.
-
setLong
public ProtonBuffer setLong(int index, long value)
Description copied from interface:ProtonBufferSets the long value at the given write index in this buffer's backing data store.- Specified by:
setLongin interfaceProtonBuffer- Parameters:
index- The index to start the write from.value- The value to write at the given index.- Returns:
- a reference to this ProtonBuffer for chaining.
-
setReadIndex
public ProtonBuffer setReadIndex(int index)
Description copied from interface:ProtonBufferSets the read index for this buffer.- Specified by:
setReadIndexin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the read index should be positioned.- Returns:
- this buffer for use in chaining.
-
setShort
public ProtonBuffer setShort(int index, int value)
Description copied from interface:ProtonBufferSets the short value at the given write index in this buffer's backing data store.- Specified by:
setShortin interfaceProtonBuffer- Parameters:
index- The index to start the write from.value- The value to write at the given index.- Returns:
- a reference to this ProtonBuffer for chaining.
-
setWriteIndex
public ProtonBuffer setWriteIndex(int index)
Description copied from interface:ProtonBufferSets the write index for this buffer.- Specified by:
setWriteIndexin interfaceProtonBuffer- Parameters:
index- The index into the buffer where the write index should be positioned.- Returns:
- this buffer for use in chaining.
-
skipBytes
public ProtonBuffer skipBytes(int skippedBytes)
Description copied from interface:ProtonBufferIncreases the currentreadIndexof this buffer by the specifiedlength.- Specified by:
skipBytesin interfaceProtonBuffer- Parameters:
skippedBytes- the number of bytes in this buffer to skip.- Returns:
- this ProtonBuffer for chaining.
-
slice
public ProtonBuffer slice()
Description copied from interface:ProtonBufferCreate a new ProtonBuffer whose contents are a subsequence of the contents of thisProtonBuffer.The starting point of the new buffer starts at this buffer's current position, the marks and limits of the new buffer will be independent of this buffer however changes to the data backing the buffer will be visible in this buffer.
- Specified by:
slicein interfaceProtonBuffer- Returns:
- a new
ProtonBufferwhose contents are a subsequence of this buffer.
-
slice
public ProtonBuffer slice(int index, int length)
Description copied from interface:ProtonBufferCreate a new ProtonBuffer whose contents are a subsequence of the contents of thisProtonBuffer.The starting point of the new buffer starts at given index into this buffer and spans the number of bytes given by the length. Changes to the contents of this buffer or to the produced slice buffer are visible in the other.
- Specified by:
slicein interfaceProtonBuffer- Parameters:
index- The index in this buffer where the slice should begin.length- The number of bytes to make visible to the new buffer from this one.- Returns:
- a new
ProtonBufferwhose contents are a subsequence of this buffer.
-
toByteBuffer
public java.nio.ByteBuffer toByteBuffer()
Description copied from interface:ProtonBufferReturns a ByteBuffer that represents the readable bytes contained in this buffer.This method should attempt to return a ByteBuffer that shares the backing data store with this buffer however if that is not possible it is permitted that the returned ByteBuffer contain a copy of the readable bytes of this ProtonBuffer.
- Specified by:
toByteBufferin interfaceProtonBuffer- Returns:
- a ByteBuffer that represents the readable bytes of this buffer.
-
toByteBuffer
public java.nio.ByteBuffer toByteBuffer(int index, int length)Description copied from interface:ProtonBufferReturns a ByteBuffer that represents the given span of bytes from the readable portion of this buffer.This method should attempt to return a ByteBuffer that shares the backing data store with this buffer however if that is not possible it is permitted that the returned ByteBuffer contain a copy of the readable bytes of this ProtonBuffer.
- Specified by:
toByteBufferin interfaceProtonBuffer- Parameters:
index- The starting index in this where the ByteBuffer view should begin.length- The number of bytes to include in the ByteBuffer view.- Returns:
- a ByteBuffer that represents the given view of this buffers readable bytes.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
toString
public java.lang.String toString(java.nio.charset.Charset charset)
Description copied from interface:ProtonBufferReturns a String created from the buffer's underlying bytes using the specifiedCharsetfor the newly created String.- Specified by:
toStringin interfaceProtonBuffer- Parameters:
charset- theCharsetto use to construct the new string.- Returns:
- a string created from the buffer's underlying bytes using the given
Charset.
-
writeBoolean
public ProtonBuffer writeBoolean(boolean value)
Description copied from interface:ProtonBufferWrites a single boolean to the buffer and advances the write index by one.- Specified by:
writeBooleanin interfaceProtonBuffer- Parameters:
value- The boolean to write into the buffer.- Returns:
- this ProtonBuffer for chaining.
-
writeByte
public ProtonBuffer writeByte(int value)
Description copied from interface:ProtonBufferWrites a single byte to the buffer and advances the write index by one.- Specified by:
writeBytein interfaceProtonBuffer- Parameters:
value- The byte to write into the buffer.- Returns:
- this ProtonBuffer for chaining.
-
writeBytes
public ProtonBuffer writeBytes(java.nio.ByteBuffer value)
Description copied from interface:ProtonBufferTransfers the specified source buffer's data to this buffer starting at the currentwriteIndexuntil the source buffer's position reaches its limit, and increases thewriteIndexby the number of the transferred bytes.- Specified by:
writeBytesin interfaceProtonBuffer- Parameters:
value- The source buffer from which the bytes are read.- Returns:
- this buffer for chaining
-
writeBytes
public ProtonBuffer writeBytes(byte[] value)
Description copied from interface:ProtonBufferWrites the contents of the given byte array into the buffer and advances the write index by the length of the given array.- Specified by:
writeBytesin interfaceProtonBuffer- Parameters:
value- The byte array to write into the buffer.- Returns:
- this ProtonBuffer for chaining.
-
writeBytes
public ProtonBuffer writeBytes(byte[] value, int length)
Description copied from interface:ProtonBufferWrites the contents of the given byte array into the buffer and advances the write index by the length value given.- Specified by:
writeBytesin interfaceProtonBuffer- Parameters:
value- The byte array to write into the buffer.length- The number of bytes to write from the given array into this buffer- Returns:
- this ProtonBuffer for chaining.
-
writeBytes
public ProtonBuffer writeBytes(byte[] array, int offset, int length)
Description copied from interface:ProtonBufferWrites the contents of the given byte array into the buffer and advances the write index by the length value given. The bytes written into this buffer are read starting at the given offset into the passed in byte array.- Specified by:
writeBytesin interfaceProtonBuffer- Parameters:
array- The byte array to write into the buffer.offset- The offset into the given array to start reading from.length- The number of bytes to write from the given array into this buffer- Returns:
- this ProtonBuffer for chaining.
-
writeBytes
public ProtonBuffer writeBytes(ProtonBuffer value)
Description copied from interface:ProtonBufferTransfers the specified source buffer's data to this buffer starting at the currentwriteIndexuntil the source buffer becomes unreadable, and increases thewriteIndexby the number of the transferred bytes. This method is basically same withProtonBuffer.writeBytes(ProtonBuffer, int, int), except that this method increases thereadIndexof the source buffer by the number of the transferred bytes whileProtonBuffer.writeBytes(ProtonBuffer, int, int)does not.- Specified by:
writeBytesin interfaceProtonBuffer- Parameters:
value- The source buffer from which the bytes are read.- Returns:
- this ProtonBuffer for chaining.
-
writeBytes
public ProtonBuffer writeBytes(ProtonBuffer value, int length)
Description copied from interface:ProtonBufferTransfers the specified source buffer's data to this buffer starting at the currentwriteIndexand increases thewriteIndexby the number of the transferred bytes (=length). This method is basically same withProtonBuffer.writeBytes(ProtonBuffer, int, int), except that this method increases thereadIndexof the source buffer by the number of the transferred bytes (=length) whileProtonBuffer.writeBytes(ProtonBuffer, int, int)does not.- Specified by:
writeBytesin interfaceProtonBuffer- Parameters:
value- The source buffer from which the bytes are read.length- The number of bytes to transfer- Returns:
- this buffer for chaining
-
writeBytes
public ProtonBuffer writeBytes(ProtonBuffer value, int offset, int length)
Description copied from interface:ProtonBufferTransfers the specified source buffer's data to this buffer starting at the currentwriteIndexand increases thewriteIndexby the number of the transferred bytes (=length). This method does not modify the read index of the source buffer.- Specified by:
writeBytesin interfaceProtonBuffer- Parameters:
value- The source buffer from which the bytes are read.offset- The offset in the source buffer to start writing into this buffer.length- The number of bytes to transfer- Returns:
- this buffer for chaining
-
writeDouble
public ProtonBuffer writeDouble(double value)
Description copied from interface:ProtonBufferWrites a single double to the buffer and advances the write index by eight.- Specified by:
writeDoublein interfaceProtonBuffer- Parameters:
value- The double to write into the buffer.- Returns:
- this ProtonBuffer for chaining.
-
writeFloat
public ProtonBuffer writeFloat(float value)
Description copied from interface:ProtonBufferWrites a single float to the buffer and advances the write index by four.- Specified by:
writeFloatin interfaceProtonBuffer- Parameters:
value- The float to write into the buffer.- Returns:
- this ProtonBuffer for chaining.
-
writeInt
public ProtonBuffer writeInt(int value)
Description copied from interface:ProtonBufferWrites a single integer to the buffer and advances the write index by four.- Specified by:
writeIntin interfaceProtonBuffer- Parameters:
value- The integer to write into the buffer.- Returns:
- this ProtonBuffer for chaining.
-
writeLong
public ProtonBuffer writeLong(long value)
Description copied from interface:ProtonBufferWrites a single long to the buffer and advances the write index by eight.- Specified by:
writeLongin interfaceProtonBuffer- Parameters:
value- The long to write into the buffer.- Returns:
- this ProtonBuffer for chaining.
-
writeShort
public ProtonBuffer writeShort(short value)
Description copied from interface:ProtonBufferWrites a single short to the buffer and advances the write index by two.- Specified by:
writeShortin interfaceProtonBuffer- Parameters:
value- The short to write into the buffer.- Returns:
- this ProtonBuffer for chaining.
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equalsin classjava.lang.Object
-
-