Package org.lmdbjava

Class ByteArrayProxy

    • Field Detail

      • PROXY_BA

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

      • 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
      • compare

        protected 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

        protected 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

        protected 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

        protected 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