jnr.ffi.byref
Class LongLongByReference

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

public final class LongLongByReference
extends AbstractNumberReference<Long>

LongLongByReference is used when the address of a native long long value must be passed as a parameter to a function.

For example, the following C code,

 extern void get_a(long long * ap);

 long long foo(void) {
     long long 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 LongLongByReference ap);
 }
 
 

and used like this

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

See Also:
Serialized Form

Constructor Summary
LongLongByReference()
          Creates a new reference to a long long value initialized to zero.
LongLongByReference(long value)
          Creates a new reference to a native longlong value
LongLongByReference(Long value)
          Creates a new reference to a native longlong value
 
Method Summary
 void marshal(Pointer memory, long offset)
          Copies the value to native memory
 int nativeSize(Runtime runtime)
          Gets the native size of type of reference in bytes.
 void unmarshal(Pointer memory, long offset)
          Copies the value from 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

LongLongByReference

public LongLongByReference()
Creates a new reference to a long long value initialized to zero.


LongLongByReference

public LongLongByReference(Long value)
Creates a new reference to a native longlong value

Parameters:
value - the initial native value

LongLongByReference

public LongLongByReference(long value)
Creates a new reference to a native longlong value

Parameters:
value - the initial native value
Method Detail

marshal

public void marshal(Pointer memory,
                    long offset)
Copies the value to native memory

Parameters:
memory - the native memory buffer

unmarshal

public void unmarshal(Pointer memory,
                      long offset)
Copies the value from native memory

Parameters:
memory - the native memory buffer.

nativeSize

public final int nativeSize(Runtime runtime)
Gets the native size of type of reference in bytes.

Returns:
the size of a byte in bytes


Copyright © 2012. All Rights Reserved.