java.lang.Object
org.lmdbjava.BufferProxy<byte[]>
org.lmdbjava.ByteArrayProxy
Byte array proxy.
Env.create(org.lmdbjava.BufferProxy).-
Field Summary
FieldsFields inherited from class org.lmdbjava.BufferProxy
MDB_VAL_STRUCT_SIZE, STRUCT_FIELD_OFFSET_DATA, STRUCT_FIELD_OFFSET_SIZE -
Method Summary
Modifier and TypeMethodDescriptionbyte[]allocate()Allocate a new buffer suitable for passing toBufferProxy.out(java.lang.Object, jnr.ffi.Pointer, long).intcompare(byte[] o1, byte[] o2) Compare the two buffers.static intcompareArrays(byte[] o1, byte[] o2) Lexicographically compare two byte arrays.voiddeallocate(byte[] buff) Deallocate a buffer that was previously provided byBufferProxy.allocate().protected byte[]getBytes(byte[] buffer) Obtain a copy of the bytes contained within the passed buffer.protected voidin(byte[] buffer, int size, jnr.ffi.Pointer ptr, long ptrAddr) Called when theMDB_valshould be set to reflect the passed buffer.voidin(byte[] buffer, jnr.ffi.Pointer ptr, long ptrAddr) Called when theMDB_valshould be set to reflect the passed buffer.byte[]out(byte[] buffer, jnr.ffi.Pointer ptr, long ptrAddr) Called when theMDB_valmay have changed and the passed buffer should be modified to reflect the newMDB_val.
-
Field Details
-
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
Comparableinterface
-
allocate
public byte[] allocate()Description copied from class:BufferProxyAllocate a new buffer suitable for passing toBufferProxy.out(java.lang.Object, jnr.ffi.Pointer, long).- Specified by:
allocatein classBufferProxy<byte[]>- Returns:
- a buffer for passing to the
outmethod
-
compare
public int compare(byte[] o1, byte[] o2) Description copied from class:BufferProxyCompare 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:
comparein classBufferProxy<byte[]>- Parameters:
o1- left operando2- right operand- Returns:
- as per
Comparable
-
deallocate
public void deallocate(byte[] buff) Description copied from class:BufferProxyDeallocate a buffer that was previously provided byBufferProxy.allocate().- Specified by:
deallocatein classBufferProxy<byte[]>- Parameters:
buff- the buffer to deallocate (required)
-
getBytes
protected byte[] getBytes(byte[] buffer) Description copied from class:BufferProxyObtain a copy of the bytes contained within the passed buffer.- Specified by:
getBytesin classBufferProxy<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:BufferProxyCalled when theMDB_valshould be set to reflect the passed buffer. This buffer will have been created by end users, notBufferProxy.allocate().- Specified by:
inin classBufferProxy<byte[]>- Parameters:
buffer- the buffer to write toMDB_valptr- the pointer to theMDB_valptrAddr- the address of theMDB_valpointer
-
in
protected void in(byte[] buffer, int size, jnr.ffi.Pointer ptr, long ptrAddr) Description copied from class:BufferProxyCalled when theMDB_valshould be set to reflect the passed buffer.- Specified by:
inin classBufferProxy<byte[]>- Parameters:
buffer- the buffer to write toMDB_valsize- the buffer size to write toMDB_valptr- the pointer to theMDB_valptrAddr- the address of theMDB_valpointer
-
out
public byte[] out(byte[] buffer, jnr.ffi.Pointer ptr, long ptrAddr) Description copied from class:BufferProxyCalled when theMDB_valmay have changed and the passed buffer should be modified to reflect the newMDB_val.- Specified by:
outin classBufferProxy<byte[]>- Parameters:
buffer- the buffer to write toMDB_valptr- the pointer to theMDB_valptrAddr- the address of theMDB_valpointer- Returns:
- the buffer for
MDB_val
-