Package jnr.ffi.byref

Class ByteByReference

All Implemented Interfaces:
Serializable, ByReference<Byte>

public final class ByteByReference extends AbstractNumberReference<Byte>
ByteByReference is used when the address of a primitive byte value must be passed as a parameter to a function.

For example, the following C code,

 
 extern void get_a(char *ap);

 int foo(void) {
     char 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 ByteByReference ap);
 }
 
 

and used like this

 ByteByReference ap = new ByteByReference();
 lib.get_a(ap);
 System.out.printf("a from lib=%d\n", a.byteValue());
 
See Also:
  • Constructor Details

    • ByteByReference

      public ByteByReference()
      Creates a new reference to a byte value initialized to zero.
    • ByteByReference

      public ByteByReference(Byte value)
      Creates a new reference to a byte value
      Parameters:
      value - the initial native value
    • ByteByReference

      public ByteByReference(byte value)
      Creates a new reference to a byte value
      Parameters:
      value - the initial native value
  • Method Details

    • toNative

      public void toNative(Runtime runtime, Pointer buffer, long offset)
      Copies the Byte value to native memory
      Parameters:
      runtime - The current runtime.
      buffer - the native memory buffer
      offset - The offset of the field.
    • fromNative

      public void fromNative(Runtime runtime, Pointer buffer, long offset)
      Copies the Byte value from native memory
      Parameters:
      runtime - The current runtime.
      buffer - the native memory buffer.
      offset - The offset of the field.
    • nativeSize

      public final int nativeSize(Runtime runtime)
      Gets the native size of type of reference in bytes.
      Parameters:
      runtime - The current runtime.
      Returns:
      the size of a byte in bytes