Class 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:
  • Constructor Details

    • NumberByReference

      public NumberByReference(TypeAlias typeAlias, Number value)
    • NumberByReference

      public NumberByReference(TypeAlias typeAlias)
  • Method Details

    • nativeSize

      public int nativeSize(Runtime runtime)
      Description copied from interface: ByReference
      Gets the size of the native buffer required to store the value
      Parameters:
      runtime - The current runtime.
      Returns:
      the size in bytes of the native type
    • fromNative

      public void fromNative(Runtime runtime, Pointer memory, long offset)
      Description copied from interface: ByReference
      Copies the java value from native memory
      Parameters:
      runtime - The current runtime.
      memory - the native memory buffer.
      offset - The offset of the field.
    • toNative

      public void toNative(Runtime runtime, Pointer memory, long offset)
      Description copied from interface: ByReference
      Copies the java value to native memory
      Parameters:
      runtime - The current runtime.
      memory - The native memory buffer.
      offset - The offset of the field.