Package io.grpc.internal
Class ForwardingReadableBuffer
- java.lang.Object
-
- io.grpc.internal.ForwardingReadableBuffer
-
- All Implemented Interfaces:
ReadableBuffer,java.io.Closeable,java.lang.AutoCloseable
public abstract class ForwardingReadableBuffer extends java.lang.Object implements ReadableBuffer
Base class for a wrapper around anotherReadableBuffer.This class just passes every operation through to the underlying buffer. Subclasses may override methods to intercept certain operations.
-
-
Field Summary
Fields Modifier and Type Field Description private ReadableBufferbuf
-
Constructor Summary
Constructors Modifier Constructor Description protectedForwardingReadableBuffer(ReadableBuffer buf)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]array()Gets the backing array for this buffer.intarrayOffset()Gets the offset in the backing array of the current read position.booleanbyteBufferSupported()Indicates whether or notReadableBuffer.getByteBuffer()operation is supported for this buffer.voidclose()Closes this buffer and releases any resources.java.nio.ByteBuffergetByteBuffer()Gets aByteBufferthat contains some bytes of the content next to be read, ornullif this buffer has been exhausted.booleanhasArray()Indicates whether or not this buffer exposes a backing array.voidmark()Marks the current position in this buffer.booleanmarkSupported()Indicates whether or notReadableBuffer.mark()operation is supported for this buffer.intreadableBytes()Gets the current number of readable bytes remaining in this buffer.voidreadBytes(byte[] dest, int destOffset, int length)Readslengthbytes from this buffer and writes them to the destination array.ReadableBufferreadBytes(int length)Readslengthbytes from this buffer and returns a new Buffer containing them.voidreadBytes(java.io.OutputStream dest, int length)Readslengthbytes from this buffer and writes them to the destination stream.voidreadBytes(java.nio.ByteBuffer dest)Reads from this buffer until the destination's position reaches its limit, and increases the read position by the number of the transferred bytes.intreadInt()Reads a 4-byte signed integer from this buffer using big-endian byte ordering.intreadUnsignedByte()Reads the next unsigned byte from this buffer and increments the read position by 1.voidreset()Repositions this buffer to the position at the timeReadableBuffer.mark()was last called on this buffer.voidskipBytes(int length)Increments the read position by the given length.java.lang.StringtoString()voidtouch()Note that the current callsite has access to this buffer, or do nothing.
-
-
-
Field Detail
-
buf
private final ReadableBuffer buf
-
-
Constructor Detail
-
ForwardingReadableBuffer
protected ForwardingReadableBuffer(ReadableBuffer buf)
Constructor.- Parameters:
buf- the underlying buffer
-
-
Method Detail
-
readableBytes
public int readableBytes()
Description copied from interface:ReadableBufferGets the current number of readable bytes remaining in this buffer.- Specified by:
readableBytesin interfaceReadableBuffer
-
readUnsignedByte
public int readUnsignedByte()
Description copied from interface:ReadableBufferReads the next unsigned byte from this buffer and increments the read position by 1.- Specified by:
readUnsignedBytein interfaceReadableBuffer
-
readInt
public int readInt()
Description copied from interface:ReadableBufferReads a 4-byte signed integer from this buffer using big-endian byte ordering. Increments the read position by 4.- Specified by:
readIntin interfaceReadableBuffer
-
skipBytes
public void skipBytes(int length)
Description copied from interface:ReadableBufferIncrements the read position by the given length.- Specified by:
skipBytesin interfaceReadableBuffer
-
readBytes
public void readBytes(byte[] dest, int destOffset, int length)Description copied from interface:ReadableBufferReadslengthbytes from this buffer and writes them to the destination array. Increments the read position bylength.- Specified by:
readBytesin interfaceReadableBuffer- Parameters:
dest- the destination array to receive the bytes.destOffset- the starting offset in the destination array.length- the number of bytes to be copied.
-
readBytes
public void readBytes(java.nio.ByteBuffer dest)
Description copied from interface:ReadableBufferReads from this buffer until the destination's position reaches its limit, and increases the read position by the number of the transferred bytes.- Specified by:
readBytesin interfaceReadableBuffer- Parameters:
dest- the destination buffer to receive the bytes.
-
readBytes
public void readBytes(java.io.OutputStream dest, int length) throws java.io.IOExceptionDescription copied from interface:ReadableBufferReadslengthbytes from this buffer and writes them to the destination stream. Increments the read position bylength. If the required bytes are not readable, throwsIndexOutOfBoundsException.- Specified by:
readBytesin interfaceReadableBuffer- Parameters:
dest- the destination stream to receive the bytes.length- the number of bytes to be copied.- Throws:
java.io.IOException- thrown if any error was encountered while writing to the stream.
-
readBytes
public ReadableBuffer readBytes(int length)
Description copied from interface:ReadableBufferReadslengthbytes from this buffer and returns a new Buffer containing them. Some implementations may return a Buffer sharing the backing memory with this buffer to prevent copying. However, that means that the returned buffer may keep the (possibly much larger) backing memory in use even after this buffer is closed.- Specified by:
readBytesin interfaceReadableBuffer- Parameters:
length- the number of bytes to contain in returned Buffer.
-
hasArray
public boolean hasArray()
Description copied from interface:ReadableBufferIndicates whether or not this buffer exposes a backing array.- Specified by:
hasArrayin interfaceReadableBuffer
-
array
public byte[] array()
Description copied from interface:ReadableBufferGets the backing array for this buffer. This is an optional method, so callers should first checkReadableBuffer.hasArray().- Specified by:
arrayin interfaceReadableBuffer
-
arrayOffset
public int arrayOffset()
Description copied from interface:ReadableBufferGets the offset in the backing array of the current read position. This is an optional method, so callers should first checkReadableBuffer.hasArray()- Specified by:
arrayOffsetin interfaceReadableBuffer
-
touch
public void touch()
Description copied from interface:ReadableBufferNote that the current callsite has access to this buffer, or do nothing. This is only useful when the buffer has leak detection and intrumentation to record usages before the buffer was leaked. That can make it much easier to track down where the buffer was leaked. If this isn't such a buffer, the method does nothing.- Specified by:
touchin interfaceReadableBuffer
-
markSupported
public boolean markSupported()
Description copied from interface:ReadableBufferIndicates whether or notReadableBuffer.mark()operation is supported for this buffer.- Specified by:
markSupportedin interfaceReadableBuffer
-
mark
public void mark()
Description copied from interface:ReadableBufferMarks the current position in this buffer. A subsequent call to theReadableBuffer.reset()method repositions this stream at the last marked position so that subsequent reads re-read the same bytes.- Specified by:
markin interfaceReadableBuffer
-
reset
public void reset()
Description copied from interface:ReadableBufferRepositions this buffer to the position at the timeReadableBuffer.mark()was last called on this buffer.- Specified by:
resetin interfaceReadableBuffer
-
byteBufferSupported
public boolean byteBufferSupported()
Description copied from interface:ReadableBufferIndicates whether or notReadableBuffer.getByteBuffer()operation is supported for this buffer.- Specified by:
byteBufferSupportedin interfaceReadableBuffer
-
getByteBuffer
@Nullable public java.nio.ByteBuffer getByteBuffer()
Description copied from interface:ReadableBufferGets aByteBufferthat contains some bytes of the content next to be read, ornullif this buffer has been exhausted. The number of bytes contained in the returned buffer is implementation specific. The position of this buffer is unchanged after calling this method. The returned buffer's content should not be modified, but the position, limit, and mark may be changed. Operations for changing the position, limit, and mark of the returned buffer does not affect the position, limit, and mark of this buffer. Buffers returned by this method have independent position, limit and mark. This is an optional method, so callers should first checkReadableBuffer.byteBufferSupported().- Specified by:
getByteBufferin interfaceReadableBuffer
-
close
public void close()
Description copied from interface:ReadableBufferCloses this buffer and releases any resources.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein interfaceReadableBuffer
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-