public class FileRegionBuffer extends org.apache.flink.shaded.netty4.io.netty.channel.DefaultFileRegion implements Buffer
FileChannel.transferTo(long, long, WritableByteChannel).
This class implements Buffer mainly for compatible with existing usages. It can be
thought of as a "lazy buffer" that does not hold the data directly, although the data can be
fetches as a read-only ByteBuffer when needed, for example in local input channels. See
readInto(MemorySegment) and getNioBufferReadable(). Because this buffer is
read-only, the modification methods (and methods that give a writable buffer) throw UnsupportedOperationException.
This class extends from Netty's DefaultFileRegion, similar as the NetworkBuffer extends from Netty's ByteBuf. That way we can pass both of them to Netty
in the same way, and Netty will internally treat them appropriately.
Buffer.DataType| 构造器和说明 |
|---|
FileRegionBuffer(FileChannel fileChannel,
long fileChannelPosition,
int bufferSize,
Buffer.DataType dataType,
boolean isCompressed) |
| 限定符和类型 | 方法和说明 |
|---|---|
org.apache.flink.shaded.netty4.io.netty.buffer.ByteBuf |
asByteBuf() |
void |
deallocate() |
Buffer.DataType |
getDataType()
Gets the type of data this buffer represents.
|
int |
getMaxCapacity()
Returns the maximum size of the buffer, i.e. the capacity of the underlying
MemorySegment. |
org.apache.flink.core.memory.MemorySegment |
getMemorySegment()
Returns the underlying memory segment.
|
int |
getMemorySegmentOffset()
This method will be removed in the future.
|
ByteBuffer |
getNioBuffer(int index,
int length)
Gets a new
ByteBuffer instance wrapping this buffer's bytes. |
ByteBuffer |
getNioBufferReadable()
This method is only called by tests and by event-deserialization, like checkpoint barriers.
|
int |
getReaderIndex()
Returns the reader index of this buffer.
|
BufferRecycler |
getRecycler()
Gets the buffer's recycler.
|
int |
getSize()
Returns the size of the written data, i.e. the writer index, of this buffer.
|
boolean |
isBuffer()
Returns whether this buffer represents a buffer or an event.
|
boolean |
isCompressed() |
boolean |
isRecycled()
Returns whether this buffer has been recycled or not.
|
int |
readableBytes()
Returns the number of readable bytes (same as
Buffer.getSize() - Buffer.getReaderIndex()). |
Buffer |
readInto(org.apache.flink.core.memory.MemorySegment segment) |
ReadOnlySlicedNetworkBuffer |
readOnlySlice()
Returns a read-only slice of this buffer's readable bytes, i.e. between
Buffer.getReaderIndex() and Buffer.getSize(). |
ReadOnlySlicedNetworkBuffer |
readOnlySlice(int index,
int length)
Returns a read-only slice of this buffer.
|
void |
recycleBuffer()
Releases this buffer once, i.e. reduces the reference count and recycles the buffer if the
reference count reaches 0.
|
FileRegionBuffer |
retainBuffer()
Retains this buffer for further use, increasing the reference counter by 1.
|
void |
setAllocator(org.apache.flink.shaded.netty4.io.netty.buffer.ByteBufAllocator allocator)
Sets the buffer allocator for use in netty.
|
void |
setCompressed(boolean isCompressed)
Tags the buffer as compressed or uncompressed.
|
void |
setDataType(Buffer.DataType dataType)
Sets the type of data this buffer represents.
|
void |
setReaderIndex(int readerIndex)
Sets the reader index of this buffer.
|
void |
setSize(int writerIndex)
Sets the size of the written data, i.e. the writer index, of this buffer.
|
count, isOpen, open, position, retain, retain, touch, touch, transfered, transferred, transferTorefCnt, release, release, setRefCntclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitrefCnt, toDebugStringpublic FileRegionBuffer(FileChannel fileChannel, long fileChannelPosition, int bufferSize, Buffer.DataType dataType, boolean isCompressed)
public boolean isBuffer()
Bufferpublic org.apache.flink.core.memory.MemorySegment getMemorySegment()
BufferBuffer.getMemorySegmentOffset().
This method will be removed in the future. For writing use BufferBuilder.
getMemorySegment 在接口中 Bufferpublic int getMemorySegmentOffset()
BufferBufferBuilder.getMemorySegmentOffset 在接口中 BufferBuffer's data start in the underlying
memory segment.public ReadOnlySlicedNetworkBuffer readOnlySlice()
BufferBuffer.getReaderIndex() and Buffer.getSize().
Reader and writer indices as well as markers are not shared. Reference counters are shared
but the slice is not retained automatically.
readOnlySlice 在接口中 Bufferpublic ReadOnlySlicedNetworkBuffer readOnlySlice(int index, int length)
BufferReader and writer indices as well as markers are not shared. Reference counters are shared
but the slice is not retained automatically.
readOnlySlice 在接口中 Bufferindex - the index to start fromlength - the length of the slicepublic int getMaxCapacity()
BufferMemorySegment.getMaxCapacity 在接口中 Bufferpublic int getReaderIndex()
BufferThis is where readable (unconsumed) bytes start in the backing memory segment.
getReaderIndex 在接口中 BufferMemorySegment
(inclusive))public void setReaderIndex(int readerIndex)
throws IndexOutOfBoundsException
BuffersetReaderIndex 在接口中 BufferIndexOutOfBoundsException - if the index is less than 0 or greater than Buffer.getSize()public ByteBuffer getNioBufferReadable()
getNioBufferReadable 在接口中 Bufferpublic ByteBuffer getNioBuffer(int index, int length) throws IndexOutOfBoundsException
BufferByteBuffer instance wrapping this buffer's bytes.
Please note that neither read nor write index are updated by the returned buffer.
getNioBuffer 在接口中 BufferIndexOutOfBoundsException - if the indexes are not without the buffer's boundsBuffer.getNioBufferReadable()public org.apache.flink.shaded.netty4.io.netty.buffer.ByteBuf asByteBuf()
public void setSize(int writerIndex)
Bufferpublic int getSize()
BufferThis is where writable bytes start in the backing memory segment.
public int readableBytes()
BufferBuffer.getSize() - Buffer.getReaderIndex()).readableBytes 在接口中 Bufferpublic void setAllocator(org.apache.flink.shaded.netty4.io.netty.buffer.ByteBufAllocator allocator)
BuffersetAllocator 在接口中 Bufferallocator - netty buffer allocatorpublic BufferRecycler getRecycler()
BuffergetRecycler 在接口中 Bufferpublic void recycleBuffer()
BufferrecycleBuffer 在接口中 BufferBuffer.retainBuffer()public boolean isRecycled()
BufferisRecycled 在接口中 Bufferpublic FileRegionBuffer retainBuffer()
BufferretainBuffer 在接口中 BufferBuffer.recycleBuffer()public boolean isCompressed()
isCompressed 在接口中 Bufferpublic void setCompressed(boolean isCompressed)
BuffersetCompressed 在接口中 Bufferpublic Buffer.DataType getDataType()
BuffergetDataType 在接口中 Bufferpublic void setDataType(Buffer.DataType dataType)
BuffersetDataType 在接口中 Bufferpublic void deallocate()
deallocate 在类中 org.apache.flink.shaded.netty4.io.netty.channel.DefaultFileRegionpublic Buffer readInto(org.apache.flink.core.memory.MemorySegment segment) throws IOException
IOExceptionCopyright © 2014–2022 The Apache Software Foundation. All rights reserved.