Module lmdbjava
Package org.lmdbjava

Class ByteArrayProxy

java.lang.Object
org.lmdbjava.BufferProxy<byte[]>
org.lmdbjava.ByteArrayProxy

public final class ByteArrayProxy extends BufferProxy<byte[]>
  • Field Details

    • PROXY_BA

      public static final BufferProxy<byte[]> PROXY_BA
      The byte array proxy. Guaranteed to never be null.
  • Method Details

    • compareArrays

      public static int compareArrays(byte[] o1, byte[] o2)
      Lexicographically compare two byte arrays.
      Parameters:
      o1 - left operand (required)
      o2 - right operand (required)
      Returns:
      as specified by Comparable interface
    • allocate

      public byte[] allocate()
      Description copied from class: BufferProxy
      Allocate a new buffer suitable for passing to BufferProxy.out(java.lang.Object, jnr.ffi.Pointer, long).
      Specified by:
      allocate in class BufferProxy<byte[]>
      Returns:
      a buffer for passing to the out method
    • compare

      public int compare(byte[] o1, byte[] o2)
      Description copied from class: BufferProxy
      Compare the two buffers.

      Implemented as a protected method to discourage use of the buffer proxy in collections etc (given by design it wraps a temporary value only).

      Specified by:
      compare in class BufferProxy<byte[]>
      Parameters:
      o1 - left operand
      o2 - right operand
      Returns:
      as per Comparable
    • deallocate

      public void deallocate(byte[] buff)
      Description copied from class: BufferProxy
      Deallocate a buffer that was previously provided by BufferProxy.allocate().
      Specified by:
      deallocate in class BufferProxy<byte[]>
      Parameters:
      buff - the buffer to deallocate (required)
    • getBytes

      protected byte[] getBytes(byte[] buffer)
      Description copied from class: BufferProxy
      Obtain a copy of the bytes contained within the passed buffer.
      Specified by:
      getBytes in class BufferProxy<byte[]>
      Parameters:
      buffer - a non-null buffer created by this proxy instance
      Returns:
      a copy of the bytes this buffer is currently representing
    • in

      public void in(byte[] buffer, jnr.ffi.Pointer ptr, long ptrAddr)
      Description copied from class: BufferProxy
      Called when the MDB_val should be set to reflect the passed buffer. This buffer will have been created by end users, not BufferProxy.allocate().
      Specified by:
      in in class BufferProxy<byte[]>
      Parameters:
      buffer - the buffer to write to MDB_val
      ptr - the pointer to the MDB_val
      ptrAddr - the address of the MDB_val pointer
    • in

      protected void in(byte[] buffer, int size, jnr.ffi.Pointer ptr, long ptrAddr)
      Description copied from class: BufferProxy
      Called when the MDB_val should be set to reflect the passed buffer.
      Specified by:
      in in class BufferProxy<byte[]>
      Parameters:
      buffer - the buffer to write to MDB_val
      size - the buffer size to write to MDB_val
      ptr - the pointer to the MDB_val
      ptrAddr - the address of the MDB_val pointer
    • out

      public byte[] out(byte[] buffer, jnr.ffi.Pointer ptr, long ptrAddr)
      Description copied from class: BufferProxy
      Called when the MDB_val may have changed and the passed buffer should be modified to reflect the new MDB_val.
      Specified by:
      out in class BufferProxy<byte[]>
      Parameters:
      buffer - the buffer to write to MDB_val
      ptr - the pointer to the MDB_val
      ptrAddr - the address of the MDB_val pointer
      Returns:
      the buffer for MDB_val