jnr.ffi.byref
Interface ByReference<T>

Type Parameters:
T -
All Known Implementing Classes:
AbstractNumberReference, AbstractReference, AddressByReference, ByteByReference, DoubleByReference, FloatByReference, IntByReference, LongLongByReference, NativeLongByReference, NumberByReference, PointerByReference, ShortByReference

public interface ByReference<T>

A ByReference subclass is used when a primitive parameter must be passed by-reference.

For example, the following C code,

 extern void get_a(int * ap);

 int foo(void) {
     int a;
     // pass a reference to 'a' so get_a() can fill it out
     get_a(&a);

     return a;
 }
 
 

Would be declared in java as

 interface Lib {
     void get_a(@Out IntByReference ap);
 }

 
 

and used like this

IntByReference ap = new IntByReference();
 lib.get_a(ap);
 System.out.printf("a from lib=%d\n", a.getValue());

 
 


Method Summary
 void fromNative(Runtime runtime, Pointer memory, long offset)
          Copies the java value from native memory
 T getValue()
           
 int nativeSize(Runtime runtime)
          Gets the size of the native buffer required to store the value
 void toNative(Runtime runtime, Pointer memory, long offset)
          Copies the java value to native memory
 

Method Detail

nativeSize

int nativeSize(Runtime runtime)
Gets the size of the native buffer required to store the value

Returns:
the size in bytes of the native type

toNative

void toNative(Runtime runtime,
              Pointer memory,
              long offset)
Copies the java value to native memory

Parameters:
runtime -
memory - the native memory buffer.

fromNative

void fromNative(Runtime runtime,
                Pointer memory,
                long offset)
Copies the java value from native memory

Parameters:
runtime -
memory - the native memory buffer.

getValue

T getValue()


Copyright © 2013. All Rights Reserved.