java.lang.Object
org.lmdbjava.BufferProxy<org.agrona.DirectBuffer>
org.lmdbjava.DirectBufferProxy
A buffer proxy backed by Agrona's
DirectBuffer.
This class requires UnsafeAccess and Agrona must be in the classpath.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final BufferProxy<org.agrona.DirectBuffer>TheMutableDirectBufferproxy.Fields inherited from class org.lmdbjava.BufferProxy
MDB_VAL_STRUCT_SIZE, STRUCT_FIELD_OFFSET_DATA, STRUCT_FIELD_OFFSET_SIZE -
Method Summary
Modifier and TypeMethodDescriptionorg.agrona.DirectBufferallocate()Allocate a new buffer suitable for passing toBufferProxy.out(java.lang.Object, jnr.ffi.Pointer, long).intcompare(org.agrona.DirectBuffer o1, org.agrona.DirectBuffer o2) Compare the two buffers.static intcompareBuff(org.agrona.DirectBuffer o1, org.agrona.DirectBuffer o2) Lexicographically compare two buffers.voiddeallocate(org.agrona.DirectBuffer buff) Deallocate a buffer that was previously provided byBufferProxy.allocate().protected byte[]getBytes(org.agrona.DirectBuffer buffer) Obtain a copy of the bytes contained within the passed buffer.protected voidin(org.agrona.DirectBuffer buffer, int size, jnr.ffi.Pointer ptr, long ptrAddr) Called when theMDB_valshould be set to reflect the passed buffer.voidin(org.agrona.DirectBuffer buffer, jnr.ffi.Pointer ptr, long ptrAddr) Called when theMDB_valshould be set to reflect the passed buffer.org.agrona.DirectBufferout(org.agrona.DirectBuffer 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_DB
TheMutableDirectBufferproxy. Guaranteed to never be null, although a class initialization exception will occur if an attempt is made to access this field when unsafe or Agrona is unavailable.
-
-
Method Details
-
compareBuff
public static int compareBuff(org.agrona.DirectBuffer o1, org.agrona.DirectBuffer o2) Lexicographically compare two buffers.- Parameters:
o1- left operand (required)o2- right operand (required)- Returns:
- as specified by
Comparableinterface
-
allocate
public org.agrona.DirectBuffer 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<org.agrona.DirectBuffer>- Returns:
- a buffer for passing to the
outmethod
-
compare
public int compare(org.agrona.DirectBuffer o1, org.agrona.DirectBuffer 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<org.agrona.DirectBuffer>- Parameters:
o1- left operando2- right operand- Returns:
- as per
Comparable
-
deallocate
public void deallocate(org.agrona.DirectBuffer buff) Description copied from class:BufferProxyDeallocate a buffer that was previously provided byBufferProxy.allocate().- Specified by:
deallocatein classBufferProxy<org.agrona.DirectBuffer>- Parameters:
buff- the buffer to deallocate (required)
-
getBytes
protected byte[] getBytes(org.agrona.DirectBuffer buffer) Description copied from class:BufferProxyObtain a copy of the bytes contained within the passed buffer.- Specified by:
getBytesin classBufferProxy<org.agrona.DirectBuffer>- 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(org.agrona.DirectBuffer 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<org.agrona.DirectBuffer>- Parameters:
buffer- the buffer to write toMDB_valptr- the pointer to theMDB_valptrAddr- the address of theMDB_valpointer
-
in
protected void in(org.agrona.DirectBuffer 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<org.agrona.DirectBuffer>- 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 org.agrona.DirectBuffer out(org.agrona.DirectBuffer 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<org.agrona.DirectBuffer>- Parameters:
buffer- the buffer to write toMDB_valptr- the pointer to theMDB_valptrAddr- the address of theMDB_valpointer- Returns:
- the buffer for
MDB_val
-