Package com.google.protobuf
Class AllocatedBuffer
- java.lang.Object
-
- com.google.protobuf.AllocatedBuffer
-
@CheckReturnValue @ExperimentalApi abstract class AllocatedBuffer extends java.lang.Object
A buffer that was allocated by aBufferAllocator. For every buffer, it is guaranteed that at least one ofhasArray()orhasNioBuffer()will betrue.
-
-
Constructor Summary
Constructors Constructor Description AllocatedBuffer()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract byte[]array()Returns the byte array that backs this buffer (optional operation).abstract intarrayOffset()Returns the offset within this buffer's backing array of the first element of the buffer (optional operation).abstract booleanhasArray()Indicates whether this buffer contains a backing array (i.e.abstract booleanhasNioBuffer()Indicates whether this buffer contains a backingByteBuffer(i.e.abstract intlimit()Returns this buffer's limit.abstract java.nio.ByteBuffernioBuffer()Returns theByteBufferthat backs this buffer (optional operation).abstract intposition()Returns this buffer's position.abstract AllocatedBufferposition(int position)Sets this buffer's position.abstract intremaining()Returns the number of elements between the currentposition()and thelimit().static AllocatedBufferwrap(byte[] bytes)Creates a newAllocatedBufferthat is backed by the given array.static AllocatedBufferwrap(byte[] bytes, int offset, int length)Creates a newAllocatedBufferthat is backed by the given array.static AllocatedBufferwrap(java.nio.ByteBuffer buffer)Creates a newAllocatedBufferthat is backed by the givenByteBuffer.private static AllocatedBufferwrapNoCheck(byte[] bytes, int offset, int length)
-
-
-
Method Detail
-
hasNioBuffer
public abstract boolean hasNioBuffer()
Indicates whether this buffer contains a backingByteBuffer(i.e. it is safe to callnioBuffer()).
-
hasArray
public abstract boolean hasArray()
Indicates whether this buffer contains a backing array (i.e. it is safe to callarray()).
-
nioBuffer
public abstract java.nio.ByteBuffer nioBuffer()
Returns theByteBufferthat backs this buffer (optional operation).Call
hasNioBuffer()before invoking this method in order to ensure that this buffer has a backingByteBuffer.- Returns:
- The
ByteBufferthat backs this buffer - Throws:
java.lang.UnsupportedOperationException- If this buffer is not backed by aByteBuffer.
-
array
public abstract byte[] array()
Returns the byte array that backs this buffer (optional operation).Call
hasArray()before invoking this method in order to ensure that this buffer has an accessible backing array.- Returns:
- The array that backs this buffer
- Throws:
java.nio.ReadOnlyBufferException- If this buffer is backed by an array but is read-onlyjava.lang.UnsupportedOperationException- If this buffer is not backed by an accessible array
-
arrayOffset
public abstract int arrayOffset()
Returns the offset within this buffer's backing array of the first element of the buffer (optional operation).If this buffer is backed by an array then
position()corresponds to the array indexposition()+arrayOffset().Invoke the
hasArraymethod before invoking this method in order to ensure that this buffer has an accessible backing array.- Returns:
- The offset within this buffer's array of the first element of the buffer
- Throws:
java.nio.ReadOnlyBufferException- If this buffer is backed by an array but is read-onlyjava.lang.UnsupportedOperationException- If this buffer is not backed by an accessible array
-
position
public abstract int position()
Returns this buffer's position.- Returns:
- The position of this buffer
-
position
@CanIgnoreReturnValue public abstract AllocatedBuffer position(int position)
Sets this buffer's position.- Parameters:
position- The new position value; must be non-negative and no larger than the current limit- Returns:
- This buffer
- Throws:
java.lang.IllegalArgumentException- If the preconditions onpositiondo not hold
-
limit
public abstract int limit()
Returns this buffer's limit.- Returns:
- The limit of this buffer
-
remaining
public abstract int remaining()
Returns the number of elements between the currentposition()and thelimit().- Returns:
- The number of elements remaining in this buffer
-
wrap
public static AllocatedBuffer wrap(byte[] bytes)
Creates a newAllocatedBufferthat is backed by the given array. The returned buffer will havehasArray()==true,arrayOffset()==0,position()==0andlimit()equal to the length ofbytes.
-
wrap
public static AllocatedBuffer wrap(byte[] bytes, int offset, int length)
Creates a newAllocatedBufferthat is backed by the given array. The returned buffer will havehasArray()==true,arrayOffset()==offset,position()==0andlimit()==length.
-
wrap
public static AllocatedBuffer wrap(java.nio.ByteBuffer buffer)
Creates a newAllocatedBufferthat is backed by the givenByteBuffer. The returned buffer will havehasNioBuffer()==true.
-
wrapNoCheck
private static AllocatedBuffer wrapNoCheck(byte[] bytes, int offset, int length)
-
-