com.sun.jna
public class Pointer extends Object
write
,
read
, getXXX
, and setXXX
, provide
means to access memory underlying the native pointer.The constructors are intentionally package-private, since it's not generally a good idea to be creating C pointers de novo.
See Also: Function
Field Summary | |
---|---|
static Pointer | NULL Convenience constant, same as null . |
protected long | peer Pointer value of the real native pointer. |
static int | SIZE Size of a native pointer, in bytes. |
Constructor Summary | |
---|---|
Pointer() Derived class must assign peer pointer value. | |
Pointer(long peer) Create from native pointer. |
Method Summary | |
---|---|
void | clear(long size) Zero memory for the given number of bytes. |
static Pointer | createConstant(long peer) Convenience constant, equivalent to (void*)-1 . |
boolean | equals(Object o)
Compares this Pointer to the specified object.
|
byte | getByte(long offset)
Indirect the native pointer as a pointer to byte . |
byte[] | getByteArray(long offset, int arraySize) |
ByteBuffer | getByteBuffer(long offset, long length)
Get a ByteBuffer mapped to the memory pointed to by the pointer,
ensuring the buffer uses native byte order.
|
char | getChar(long offset)
Indirect the native pointer as a pointer to wchar_t . |
char[] | getCharArray(long offset, int arraySize) |
double | getDouble(long offset)
Indirect the native pointer as a pointer to double . |
double[] | getDoubleArray(long offset, int arraySize) |
float | getFloat(long offset)
Indirect the native pointer as a pointer to float . |
float[] | getFloatArray(long offset, int arraySize) |
int | getInt(long offset)
Indirect the native pointer as a pointer to int . |
int[] | getIntArray(long offset, int arraySize) |
long | getLong(long offset)
Indirect the native pointer as a pointer to long . |
long[] | getLongArray(long offset, int arraySize) |
NativeLong | getNativeLong(long offset)
Indirect the native pointer as a pointer to long . |
Pointer | getPointer(long offset)
Indirect the native pointer as a pointer to pointer. |
Pointer[] | getPointerArray(long base) Returns an array of Pointer. |
Pointer[] | getPointerArray(long offset, int arraySize) Returns an array of Pointer of the requested size. |
short | getShort(long offset)
Indirect the native pointer as a pointer to short . |
short[] | getShortArray(long offset, int arraySize) |
String | getString(long offset, boolean wide)
Copy native memory to a Java String. |
String | getString(long offset)
Copy native memory to a Java String. |
String[] | getStringArray(long base) Returns an array of String based on a native array
of char * . |
String[] | getStringArray(long base, int length) Returns an array of String based on a native array
of char * , using the given array length. |
String[] | getStringArray(long base, boolean wide) Returns an array of String based on a native array
of char* or wchar_t* based on the
wide parameter. |
String[] | getStringArray(long base, int length, boolean wide) Returns an array of String based on a native array
of char* or wchar_t* based on the
wide parameter, using the given array length. |
Object | getValue(long offset, Class type, Object currentValue) |
int | hashCode()
Returns a hashcode for the native pointer represented by this
Pointer object
|
long | indexOf(long offset, byte value) Returns the offset of the given value in memory from the given offset,
or -1 if the value is not found. |
void | read(long offset, byte[] buf, int index, int length)
Indirect the native pointer, copying from memory pointed to by
native pointer, into the specified array.
|
void | read(long offset, short[] buf, int index, int length)
Indirect the native pointer, copying from memory pointed to by
native pointer, into the specified array.
|
void | read(long offset, char[] buf, int index, int length)
Indirect the native pointer, copying from memory pointed to by
native pointer, into the specified array.
|
void | read(long offset, int[] buf, int index, int length)
Indirect the native pointer, copying from memory pointed to by
native pointer, into the specified array.
|
void | read(long offset, long[] buf, int index, int length)
Indirect the native pointer, copying from memory pointed to by
native pointer, into the specified array.
|
void | read(long offset, float[] buf, int index, int length)
Indirect the native pointer, copying from memory pointed to by
native pointer, into the specified array.
|
void | read(long offset, double[] buf, int index, int length)
Indirect the native pointer, copying from memory pointed to by
native pointer, into the specified array.
|
void | read(long offset, Pointer[] buf, int index, int length)
Indirect the native pointer, copying from memory pointed to by
native pointer, into the specified array.
|
void | setByte(long offset, byte value)
Set value at location being pointed to. |
void | setChar(long offset, char value)
Set value at location being pointed to. |
void | setDouble(long offset, double value)
Set value at location being pointed to. |
void | setFloat(long offset, float value)
Set value at location being pointed to. |
void | setInt(long offset, int value)
Set value at location being pointed to. |
void | setLong(long offset, long value)
Set value at location being pointed to. |
void | setMemory(long offset, long length, byte value) Write value to the requested bank of memory. |
void | setNativeLong(long offset, NativeLong value)
Set value at location being pointed to. |
void | setPointer(long offset, Pointer value)
Set value at location being pointed to. |
void | setShort(long offset, short value)
Set value at location being pointed to. |
void | setString(long offset, String value, boolean wide)
Copy string value to the location being pointed to. |
void | setString(long offset, String value)
Copy string value to the location being pointed to. |
void | setValue(long offset, Object value, Class type) |
Pointer | share(long offset) |
Pointer | share(long offset, long sz) Provide a view of this pointer with a different peer base. |
String | toString() |
void | write(long offset, byte[] buf, int index, int length)
Indirect the native pointer, copying into memory pointed to by
native pointer, from the specified array.
|
void | write(long offset, short[] buf, int index, int length)
Indirect the native pointer, copying into memory pointed to by
native pointer, from the specified array.
|
void | write(long offset, char[] buf, int index, int length)
Indirect the native pointer, copying into memory pointed to by
native pointer, from the specified array.
|
void | write(long offset, int[] buf, int index, int length)
Indirect the native pointer, copying into memory pointed to by
native pointer, from the specified array.
|
void | write(long offset, long[] buf, int index, int length)
Indirect the native pointer, copying into memory pointed to by
native pointer, from the specified array.
|
void | write(long offset, float[] buf, int index, int length)
Indirect the native pointer, copying into memory pointed to by
native pointer, from the specified array.
|
void | write(long offset, double[] buf, int index, int length)
Indirect the native pointer, copying into memory pointed to by
native pointer, from the specified array.
|
void | write(long bOff, Pointer[] buf, int index, int length) Write the given array of Pointer to native memory. |
static void | _setMemory(long addr, long length, byte value) |
null
.(void*)-1
.Pointer
to the specified object.
Parameters: o
A Pointer
instance
Returns: True if the other object is a Pointer
,
and the C pointers being pointed to by these objects are also
equal. Returns false otherwise.
byte
. This is
equivalent to the expression
*((jbyte *)((char *)Pointer + offset))
.
Parameters: offset offset from pointer to perform the indirection
Returns: the byte
value being pointed to
Parameters: offset byte offset from pointer to start the buffer length Length of ByteBuffer
Returns: a direct ByteBuffer that accesses the memory being pointed to,
wchar_t
. This
is equivalent to the expression
*((wchar_t*)((char *)Pointer + offset))
.
Parameters: offset offset from pointer to perform the indirection
Returns: the wchar_t
value being pointed to
double
. This
is equivalent to the expression
*((jdouble *)((char *)Pointer + offset))
.
Parameters: offset byte offset from pointer to perform the indirection
Returns: the double
value being pointed to
float
. This is
equivalent to the expression
*((jfloat *)((char *)Pointer + offset))
.
Parameters: offset byte offset from pointer to perform the indirection
Returns: the float
value being pointed to
int
. This is
equivalent to the expression
*((jint *)((char *)Pointer + offset))
.
Parameters: offset byte offset from pointer to perform the indirection
Returns: the int
value being pointed to
long
. This is
equivalent to the expression
*((jlong *)((char *)Pointer + offset))
.
Parameters: offset byte offset from pointer to perform the indirection
Returns: the long
value being pointed to
long
. This is
equivalent to the expression
*((long *)((char *)Pointer + offset))
.
Parameters: offset byte offset from pointer to perform the indirection
Returns: the long
value being pointed to
*((void **)((char *)Pointer + offset))
.
Parameters: offset byte offset from pointer to perform the indirection
Returns: a Pointer equivalent of the pointer value
being pointed to, or null
if the pointer value is
NULL
;
short
. This is
equivalent to the expression
*((jshort *)((char *)Pointer + offset))
.
Parameters: offset byte offset from pointer to perform the indirection
Returns: the short
value being pointed to
wide
is true,
access the memory as an array of wchar_t
, otherwise
as an array of char
, using the default platform encoding.
Parameters: offset byte offset from pointer to obtain the native string v * @param wide whether to convert from a wide or standard C string
Returns: the String
value being pointed to
jna.encoding
is set, uses it as the native charset
when decoding the value, otherwise falls back to the default platform
encoding.
Parameters: offset byte offset from pointer to obtain the native string
Returns: the String
value being pointed to
String
based on a native array
of char *
. The array length is determined by a
NULL-valued terminating element.String
based on a native array
of char *
, using the given array length.String
based on a native array
of char*
or wchar_t*
based on the
wide
parameter. The array length is determined by a
NULL-valued terminating element.String
based on a native array
of char*
or wchar_t*
based on the
wide
parameter, using the given array length.Pointer
object
Returns: A hash code value for the represented native pointer
Parameters: offset byte offset from pointer into which data is copied buf byte
array into which data is copied index array index from which to start copying length number of elements from native pointer that must be copied
Parameters: offset byte offset from pointer from which data is copied buf short
array into which data is copied index array index to which data is copied length number of elements from native pointer that must be copied
Parameters: offset byte offset from pointer from which data is copied buf char
array into which data is copied index array index to which data is copied length number of elements from native pointer that must be copied
Parameters: offset byte offset from pointer from which data is copied buf int
array into which data is copied index array index to which data is copied length number of elements from native pointer that must be copied
Parameters: offset byte offset from pointer from which data is copied buf long
array into which data is copied index array index to which data is copied length number of elements from native pointer that must be copied
Parameters: offset byte offset from pointer from which data is copied buf float
array into which data is copied index array index to which data is copied length number of elements from native pointer that must be copied
Parameters: offset byte offset from pointer from which data is copied buf double
array into which data is copied index array index to which data is copied length number of elements from native pointer that must be copied
Parameters: offset byte offset from pointer from which data is copied buf Pointer array into which data is copied index array index to which data is copied length number of elements from native pointer that must be copied
value
at location being pointed to. This is equivalent
to the expression
*((jbyte *)((char *)Pointer + offset)) = value
.
Parameters: offset byte offset from pointer at which value
must be set value byte
value to set
value
at location being pointed to. This is equivalent
to the expression
*((wchar_t *)((char *)Pointer + offset)) = value
.
Parameters: offset byte offset from pointer at which value
must be set value char
value to set
value
at location being pointed to. This is equivalent
to the expression
*((jdouble *)((char *)Pointer + offset)) = value
.
Parameters: offset byte offset from pointer at which value
must be set value double
value to set
value
at location being pointed to. This is equivalent
to the expression
*((jfloat *)((char *)Pointer + offset)) = value
.
Parameters: offset byte offset from pointer at which value
must be set value float
value to set
value
at location being pointed to. This is equivalent
to the expression
*((jint *)((char *)Pointer + offset)) = value
.
Parameters: offset byte offset from pointer at which value
must be set value int
value to set
value
at location being pointed to. This is equivalent
to the expression
*((jlong *)((char *)Pointer + offset)) = value
.
Parameters: offset byte offset from pointer at which value
must be set value long
value to set
value
to the requested bank of memory.Parameters: offset byte offset from pointer to start length number of bytes to write value value to be written
value
at location being pointed to. This is equivalent
to the expression
*((long *)((char *)Pointer + offset)) = value
.
Parameters: offset byte offset from pointer at which value
must be set value long
value to set
value
at location being pointed to. This is equivalent
to the expression
*((void **)((char *)Pointer + offset)) = value
.
Parameters: offset byte offset from pointer at which value
must be set value Pointer
holding the actual pointer value to
set, which may be null
to indicate a NULL
pointer.
value
at location being pointed to. This is equivalent
to the expression
*((jshort *)((char *)Pointer + offset)) = value
.
Parameters: offset byte offset from pointer at which value
must be set value short
value to set
value
to the location being pointed to. Copy
each element in value
, converted to native encoding, at an
offset
from the location pointed to by this pointer.
Parameters: offset byte offset from pointer at which characters in
value
must be set value java.lang.String
value to set wide whether to write the native string as an array of
wchar_t
. If false, writes as a NUL-terminated array of
char
using the default platform encoding.
value
to the location being pointed to. Copy
each element in value
, converted to native encoding, at an
offset
from the location pointed to by this pointer.
Uses the value of the system property jna.encoding
, if set,
to determine the appropriate native charset in which to encode the value.
If the property is not set, uses the default platform encoding.
Parameters: offset byte offset from pointer at which characters in
value
must be set value java.lang.String
value to set
Parameters: offset byte offset from pointer into which data is copied buf byte
array from which to copy index array index from which to start copying length number of elements from buf
that must be
copied
Parameters: offset byte offset from pointer into which data is copied buf short
array from which to copy index array index from which to start copying length number of elements from buf
that must be
copied
Parameters: offset byte offset from pointer into which data is copied buf char
array from which to copy index array index from which to start copying length number of elements from buf
that must be
copied
Parameters: offset byte offset from pointer into which data is copied buf int
array from which to copy index array index from which to start copying length number of elements from buf
that must be
copied
Parameters: offset byte offset from pointer into which data is copied buf long
array from which to copy index array index from which to start copying length number of elements from buf
that must be
copied
Parameters: offset byte offset from pointer into which data is copied buf float
array from which to copy index array index from which to start copying length number of elements from buf
that must be
copied
Parameters: offset byte offset from pointer into which data is copied buf double
array from which to copy index array index from which to start copying length number of elements from buf
that must be
copied
Parameters: bOff byte offset from pointer into which data is copied buf Pointer
array from which to copy index array index from which to start copying length number of elements from buf
that must be
copied