Class Memory

java.lang.Object
org.apache.cassandra.io.util.Memory
All Implemented Interfaces:
AutoCloseable, ReadableMemory
Direct Known Subclasses:
RefCountedMemory, SafeMemory

public class Memory extends Object implements AutoCloseable, ReadableMemory
An off-heap region of memory that must be manually free'd when no longer needed. It uses Little Endian (LE).
  • Field Details

    • NO_BYTE_BUFFERS

      public static final ByteBuffer[] NO_BYTE_BUFFERS
    • peer

      protected long peer
    • size

      protected final long size
  • Constructor Details

    • Memory

      protected Memory(long bytes)
    • Memory

      protected Memory(Memory copyOf)
  • Method Details

    • 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)
    • setBytes

      public void setBytes(long memoryOffset, 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 memory
      buffer - the data buffer
      bufferOffset - start offset of the buffer
      count - 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 memory
      buffer - the data buffer
      bufferOffset - start offset of the buffer
      count - 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:
      close in interface AutoCloseable
    • size

      public long size()
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • asByteBuffers

      public ByteBuffer[] asByteBuffers(long offset, long length)
      Specified by:
      asByteBuffers in interface ReadableMemory
    • asByteBuffer

      public ByteBuffer asByteBuffer(long offset, int length)
    • setByteBuffer

      public void setByteBuffer(ByteBuffer buffer, long offset, int length)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toString

      protected static String toString(long peer, long size)