Package org.apache.cassandra.io.util
Class Memory
- java.lang.Object
-
- org.apache.cassandra.io.util.Memory
-
- All Implemented Interfaces:
java.lang.AutoCloseable,ReadableMemory
- Direct Known Subclasses:
RefCountedMemory,SafeMemory
public class Memory extends java.lang.Object implements java.lang.AutoCloseable, ReadableMemory
An off-heap region of memory that must be manually free'd when no longer needed.
-
-
Field Summary
Fields Modifier and Type Field Description static java.nio.ByteBuffer[]NO_BYTE_BUFFERSprotected longpeerprotected longsize
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Memoryallocate(long bytes)java.nio.ByteBufferasByteBuffer(long offset, int length)java.nio.ByteBuffer[]asByteBuffers(long offset, long length)protected voidcheckBounds(long start, long end)voidclose()Memorycopy(long newSize)booleanequals(java.lang.Object o)voidfree()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)voidput(long trgOffset, Memory memory, long srcOffset, long size)voidsetByte(long offset, byte b)voidsetByteBuffer(java.nio.ByteBuffer buffer, long offset, int length)voidsetBytes(long memoryOffset, byte[] buffer, int bufferOffset, int count)Transfers count bytes from buffer to MemoryvoidsetBytes(long memoryOffset, java.nio.ByteBuffer buffer)voidsetInt(long offset, int l)voidsetLong(long offset, long l)voidsetMemory(long offset, long bytes, byte b)voidsetShort(long offset, short l)longsize()java.lang.StringtoString()protected static java.lang.StringtoString(long peer, long size)
-
-
-
Constructor Detail
-
Memory
protected Memory(long bytes)
-
Memory
protected Memory(Memory copyOf)
-
-
Method Detail
-
allocate
public static Memory allocate(long bytes)
-
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)
-
setShort
public void setShort(long offset, short l)
-
setBytes
public void setBytes(long memoryOffset, java.nio.ByteBuffer buffer)
-
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
public void put(long trgOffset, Memory memory, long srcOffset, long size)
-
copy
public Memory copy(long newSize)
-
free
public void free()
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable
-
size
public long size()
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
asByteBuffers
public java.nio.ByteBuffer[] asByteBuffers(long offset, long length)- Specified by:
asByteBuffersin interfaceReadableMemory
-
asByteBuffer
public java.nio.ByteBuffer asByteBuffer(long offset, int length)
-
setByteBuffer
public void setByteBuffer(java.nio.ByteBuffer buffer, long offset, int length)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
toString
protected static java.lang.String toString(long peer, long size)
-
-