|
JNA API> 3.3.0 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.sun.jna.Pointer
public class Pointer
An abstraction for a native pointer data type. A Pointer instance
represents, on the Java side, a native pointer. The native pointer could
be any type of native pointer. Methods such as 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.
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(int peer)
Convenience constant, equivalent to (void*)CONSTANT. |
static Pointer |
createConstant(long peer)
Convenience constant, equivalent to (void*)CONSTANT. |
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)
Copy native memory to a Java String. |
String |
getString(long offset,
boolean wide)
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,
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)
Returns an array of String based on a native array
of char *, using the given array length. |
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. |
(package private) 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. |
static long |
nativeValue(Pointer p)
Read the native peer value. |
static void |
nativeValue(Pointer p,
long value)
Set the native peer value. |
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,
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,
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,
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,
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,
Pointer[] 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 |
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)
Copy string value to the location being pointed to. |
void |
setString(long offset,
String value,
boolean wide)
Copy string value to the location being pointed to. |
(package private) 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,
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,
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 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,
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 bOff,
Pointer[] buf,
int index,
int length)
Write the given array of Pointer to native memory. |
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. |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final int SIZE
public static final Pointer NULL
null.
protected long peer
| Constructor Detail |
|---|
Pointer()
public Pointer(long peer)
| Method Detail |
|---|
public static final Pointer createConstant(long peer)
(void*)CONSTANT.
public static final Pointer createConstant(int peer)
(void*)CONSTANT.
This version will avoid setting any of the high bits on 64-bit
systems.
public Pointer share(long offset)
public Pointer share(long offset,
long sz)
public void clear(long size)
public boolean equals(Object o)
Pointer to the specified object.
equals in class Objecto - A Pointer instance
Pointer,
and the C pointers being pointed to by these objects are also
equal. Returns false otherwise.public int hashCode()
Pointer object
hashCode in class Object
public long indexOf(long offset,
byte value)
public void read(long offset,
byte[] buf,
int index,
int length)
offset - byte offset from pointer into which data is copiedbuf - byte array into which data is copiedindex - array index from which to start copyinglength - number of elements from native pointer that must be copied
public void read(long offset,
short[] buf,
int index,
int length)
offset - byte offset from pointer from which data is copiedbuf - short array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copied
public void read(long offset,
char[] buf,
int index,
int length)
offset - byte offset from pointer from which data is copiedbuf - char array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copied
public void read(long offset,
int[] buf,
int index,
int length)
offset - byte offset from pointer from which data is copiedbuf - int array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copied
public void read(long offset,
long[] buf,
int index,
int length)
offset - byte offset from pointer from which data is copiedbuf - long array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copied
public void read(long offset,
float[] buf,
int index,
int length)
offset - byte offset from pointer from which data is copiedbuf - float array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copied
public void read(long offset,
double[] buf,
int index,
int length)
offset - byte offset from pointer from which data is copiedbuf - double array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copied
public void read(long offset,
Pointer[] buf,
int index,
int length)
offset - byte offset from pointer from which data is copiedbuf - Pointer array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copied
public void write(long offset,
byte[] buf,
int index,
int length)
offset - byte offset from pointer into which data is copiedbuf - byte array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copied
public void write(long offset,
short[] buf,
int index,
int length)
offset - byte offset from pointer into which data is copiedbuf - short array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copied
public void write(long offset,
char[] buf,
int index,
int length)
offset - byte offset from pointer into which data is copiedbuf - char array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copied
public void write(long offset,
int[] buf,
int index,
int length)
offset - byte offset from pointer into which data is copiedbuf - int array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copied
public void write(long offset,
long[] buf,
int index,
int length)
offset - byte offset from pointer into which data is copiedbuf - long array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copied
public void write(long offset,
float[] buf,
int index,
int length)
offset - byte offset from pointer into which data is copiedbuf - float array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copied
public void write(long offset,
double[] buf,
int index,
int length)
offset - byte offset from pointer into which data is copiedbuf - double array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copied
public void write(long bOff,
Pointer[] buf,
int index,
int length)
bOff - byte offset from pointer into which data is copiedbuf - Pointer array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copied
Object getValue(long offset,
Class type,
Object currentValue)
public byte getByte(long offset)
byte. This is
equivalent to the expression
*((jbyte *)((char *)Pointer + offset)).
offset - offset from pointer to perform the indirection
byte value being pointed topublic char getChar(long offset)
wchar_t. This
is equivalent to the expression
*((wchar_t*)((char *)Pointer + offset)).
offset - offset from pointer to perform the indirection
wchar_t value being pointed topublic short getShort(long offset)
short. This is
equivalent to the expression
*((jshort *)((char *)Pointer + offset)).
offset - byte offset from pointer to perform the indirection
short value being pointed topublic int getInt(long offset)
int. This is
equivalent to the expression
*((jint *)((char *)Pointer + offset)).
offset - byte offset from pointer to perform the indirection
int value being pointed topublic long getLong(long offset)
long. This is
equivalent to the expression
*((jlong *)((char *)Pointer + offset)).
offset - byte offset from pointer to perform the indirection
long value being pointed topublic NativeLong getNativeLong(long offset)
long. This is
equivalent to the expression
*((long *)((char *)Pointer + offset)).
offset - byte offset from pointer to perform the indirection
long value being pointed topublic float getFloat(long offset)
float. This is
equivalent to the expression
*((jfloat *)((char *)Pointer + offset)).
offset - byte offset from pointer to perform the indirection
float value being pointed topublic double getDouble(long offset)
double. This
is equivalent to the expression
*((jdouble *)((char *)Pointer + offset)).
offset - byte offset from pointer to perform the indirection
double value being pointed topublic Pointer getPointer(long offset)
*((void **)((char *)Pointer + offset)).
offset - byte offset from pointer to perform the indirection
Pointer equivalent of the pointer value
being pointed to, or null if the pointer value is
NULL;
public ByteBuffer getByteBuffer(long offset,
long length)
offset - byte offset from pointer to start the bufferlength - Length of ByteBuffer
public String getString(long offset,
boolean wide)
wide is true,
access the memory as an array of wchar_t, otherwise
as an array of char, using the default platform encoding.
offset - byte offset from pointer to obtain the native string
v * @param wide whether to convert from a wide or standard C string
String value being pointed topublic String getString(long offset)
jna.encoding is set, uses it as the native charset
when decoding the value, otherwise falls back to the default platform
encoding.
offset - byte offset from pointer to obtain the native string
String value being pointed to
public byte[] getByteArray(long offset,
int arraySize)
public char[] getCharArray(long offset,
int arraySize)
public short[] getShortArray(long offset,
int arraySize)
public int[] getIntArray(long offset,
int arraySize)
public long[] getLongArray(long offset,
int arraySize)
public float[] getFloatArray(long offset,
int arraySize)
public double[] getDoubleArray(long offset,
int arraySize)
public Pointer[] getPointerArray(long base)
Pointer. The array length is
determined by a NULL-valued terminating element.
public Pointer[] getPointerArray(long offset,
int arraySize)
Pointer of the requested size.
public String[] getStringArray(long base)
String based on a native array
of char *. The array length is determined by a
NULL-valued terminating element.
public String[] getStringArray(long base,
int length)
String based on a native array
of char *, using the given array length.
public String[] getStringArray(long base,
boolean wide)
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.
public String[] getStringArray(long base,
int length,
boolean wide)
String based on a native array
of char* or wchar_t* based on the
wide parameter, using the given array length.
void setValue(long offset,
Object value,
Class type)
public void setMemory(long offset,
long length,
byte value)
value to the requested bank of memory.
offset - byte offset from pointer to startlength - number of bytes to writevalue - value to be written
public void setByte(long offset,
byte value)
value at location being pointed to. This is equivalent
to the expression
*((jbyte *)((char *)Pointer + offset)) = value.
offset - byte offset from pointer at which value
must be setvalue - byte value to set
public void setShort(long offset,
short value)
value at location being pointed to. This is equivalent
to the expression
*((jshort *)((char *)Pointer + offset)) = value.
offset - byte offset from pointer at which value
must be setvalue - short value to set
public void setChar(long offset,
char value)
value at location being pointed to. This is equivalent
to the expression
*((wchar_t *)((char *)Pointer + offset)) = value.
offset - byte offset from pointer at which value
must be setvalue - char value to set
public void setInt(long offset,
int value)
value at location being pointed to. This is equivalent
to the expression
*((jint *)((char *)Pointer + offset)) = value.
offset - byte offset from pointer at which value
must be setvalue - int value to set
public void setLong(long offset,
long value)
value at location being pointed to. This is equivalent
to the expression
*((jlong *)((char *)Pointer + offset)) = value.
offset - byte offset from pointer at which value
must be setvalue - long value to set
public void setNativeLong(long offset,
NativeLong value)
value at location being pointed to. This is equivalent
to the expression
*((long *)((char *)Pointer + offset)) = value.
offset - byte offset from pointer at which value
must be setvalue - long value to set
public void setFloat(long offset,
float value)
value at location being pointed to. This is equivalent
to the expression
*((jfloat *)((char *)Pointer + offset)) = value.
offset - byte offset from pointer at which value
must be setvalue - float value to set
public void setDouble(long offset,
double value)
value at location being pointed to. This is equivalent
to the expression
*((jdouble *)((char *)Pointer + offset)) = value.
offset - byte offset from pointer at which value
must be setvalue - double value to set
public void setPointer(long offset,
Pointer value)
value at location being pointed to. This is equivalent
to the expression
*((void **)((char *)Pointer + offset)) = value.
offset - byte offset from pointer at which value
must be setvalue - Pointer holding the actual pointer value to
set, which may be null to indicate a NULL
pointer.
public void setString(long offset,
String value,
boolean wide)
value to the location being pointed to. Copy
each element in value, converted to native encoding, at an
offsetfrom the location pointed to by this pointer.
offset - byte offset from pointer at which characters in
value must be setvalue - java.lang.String value to setwide - 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.
public void setString(long offset,
String value)
value to the location being pointed to. Copy
each element in value, converted to native encoding, at an
offsetfrom 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.
offset - byte offset from pointer at which characters in
value must be setvalue - java.lang.String value to setpublic String toString()
toString in class Objectpublic static long nativeValue(Pointer p)
public static void nativeValue(Pointer p,
long value)
|
JNA API> 3.3.0 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||