Package org.apache.cassandra.io.util
Class Memory
java.lang.Object
org.apache.cassandra.io.util.Memory
- All Implemented Interfaces:
AutoCloseable,ReadableMemory
- Direct Known Subclasses:
RefCountedMemory,SafeMemory
An off-heap region of memory that must be manually free'd when no longer needed.
It uses Little Endian (LE).
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Memoryallocate(long bytes) asByteBuffer(long offset, int length) asByteBuffers(long offset, long length) protected voidcheckBounds(long start, long end) voidclose()copy(long newSize) booleanvoidfree()bytegetByte(long offset) voidgetBytes(long memoryOffset, byte[] buffer, int bufferOffset, int count) Transfers count bytes from Memory starting at memoryOffset to buffer starting at bufferOffsetintgetInt(long offset) longgetLong(long offset) voidvoidsetByte(long offset, byte b) voidsetByteBuffer(ByteBuffer buffer, long offset, int length) voidsetBytes(long memoryOffset, byte[] buffer, int bufferOffset, int count) Transfers count bytes from buffer to MemoryvoidsetBytes(long memoryOffset, ByteBuffer buffer) voidsetInt(long offset, int l) voidsetLong(long offset, long l) voidsetMemory(long offset, long bytes, byte b) longsize()toString()protected static StringtoString(long peer, long size)
-
Field Details
-
NO_BYTE_BUFFERS
-
peer
protected long peer -
size
protected final long size
-
-
Constructor Details
-
Memory
protected Memory(long bytes) -
Memory
-
-
Method Details
-
allocate
-
setByte
public void setByte(long offset, byte b) -
setMemory
public void setMemory(long offset, long bytes, byte b) -
setLong
public void setLong(long offset, long l) -
setInt
public void setInt(long offset, int l) -
setBytes
-
setBytes
public void setBytes(long memoryOffset, byte[] buffer, int bufferOffset, int count) Transfers count bytes from buffer to Memory- Parameters:
memoryOffset- start offset in the memorybuffer- the data bufferbufferOffset- start offset of the buffercount- number of bytes to transfer
-
getByte
public byte getByte(long offset) -
getLong
public long getLong(long offset) -
getInt
public int getInt(long offset) -
getBytes
public void getBytes(long memoryOffset, byte[] buffer, int bufferOffset, int count) Transfers count bytes from Memory starting at memoryOffset to buffer starting at bufferOffset- Parameters:
memoryOffset- start offset in the memorybuffer- the data bufferbufferOffset- start offset of the buffercount- number of bytes to transfer
-
checkBounds
@Inline protected void checkBounds(long start, long end) -
put
-
copy
-
free
public void free() -
close
public void close()- Specified by:
closein interfaceAutoCloseable
-
size
public long size() -
equals
-
asByteBuffers
- Specified by:
asByteBuffersin interfaceReadableMemory
-
asByteBuffer
-
setByteBuffer
-
toString
-
toString
-