For example, the following C code,
extern void get_a(void** ap);
void* foo(void) {
void* 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 AddressByReference ap);
}
and used like this
AddressByReference ap = new AddressByReference();
lib.get_a(ap);
System.out.println("a from lib=" + a.getValue());
| Access | Constructor and Description |
|---|---|
| public | |
| public | AddressByReference(Address
the initial native value value)Creates a new reference to an address value |
| Modifier and Type | Method and Description |
|---|---|
| public void | fromNative(Runtime
The current runtime. runtime, Pointer The native memory buffer. memory, long The offset. offset)Implements jnr. |
| public int | Returns: The size of the native type this reference points toThe current runtime. runtime)Implements jnr. |
| public void | toNative(Runtime
The current runtime. runtime, Pointer The native memory buffer memory, long The offset. offset)Implements jnr. |
| AddressByReference | back to summary |
|---|---|
| public AddressByReference() Creates a new reference to an integer value | |
| AddressByReference | back to summary |
|---|---|
| public AddressByReference(Address value) Creates a new reference to an address value
| |
| fromNative | back to summary |
|---|---|
| public void fromNative(Runtime runtime, Pointer memory, long offset) Implements jnr. Copies the address value from native memory | |
| nativeSize | back to summary |
|---|---|
| public int nativeSize(Runtime runtime) Implements jnr. Gets the native size of type of reference
| |
| toNative | back to summary |
|---|---|
| public void toNative(Runtime runtime, Pointer memory, long offset) Implements jnr. Copies the address value to native memory | |