jnr.ffi.byref
Class NumberByReference

java.lang.Object
  extended by java.lang.Number
      extended by jnr.ffi.byref.AbstractNumberReference<Number>
          extended by jnr.ffi.byref.NumberByReference
All Implemented Interfaces:
Serializable, ByReference<Number>

public class NumberByReference
extends AbstractNumberReference<Number>

NumberByReference is used when the address of a primitive integral value must be passed as a parameter to a function, but the exact type is system dependent.

For example, the following C code,

 extern void get_size(ssize_t *sp);

 ssize_t foo(void) {
     ssize_t n;
     // pass a reference to 'n' so get_size() can fill it out
     get_size(&n);

     return n;
 }

 
 

Would be declared in java as

 interface Lib {
     void get_size(@Out NumberByReference ap);
 }

 
 

and used like this

 NumberByReference size = new NumberByReference(ssize_t);
 lib.get_size(size);
 System.out.printf("size from lib=%d\n", size.longValue());

 
 

See Also:
Serialized Form

Constructor Summary
NumberByReference(TypeAlias typeAlias)
           
NumberByReference(TypeAlias typeAlias, Number value)
           
 
Method Summary
 void fromNative(Runtime runtime, Pointer memory, long offset)
          Copies the java value from native memory
 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
 
Methods inherited from class jnr.ffi.byref.AbstractNumberReference
byteValue, checkNull, doubleValue, floatValue, getValue, intValue, longValue, shortValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NumberByReference

public NumberByReference(TypeAlias typeAlias,
                         Number value)

NumberByReference

public NumberByReference(TypeAlias typeAlias)
Method Detail

nativeSize

public int nativeSize(Runtime runtime)
Description copied from interface: ByReference
Gets the size of the native buffer required to store the value

Returns:
the size in bytes of the native type

toNative

public void toNative(Runtime runtime,
                     Pointer memory,
                     long offset)
Description copied from interface: ByReference
Copies the java value to native memory

memory - the native memory buffer.

fromNative

public void fromNative(Runtime runtime,
                       Pointer memory,
                       long offset)
Description copied from interface: ByReference
Copies the java value from native memory

memory - the native memory buffer.


Copyright © 2013. All Rights Reserved.