|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.bridj.StructIO
public class StructIO
Representation of a C struct's memory layout, built thanks to the annotations found in the Java bindings.
End-users should not use this class, it's used by runtimes.
Annotations currently used are Virtual
, Array
, Bits
, Field
, Alignment
and soon Struct
Nested Class Summary | |
---|---|
static class |
StructIO.AggregatedFieldDesc
|
static interface |
StructIO.Customizer
Deprecated. The StructIO API is subject to future changes. Use this with care and be prepared to migrate your code... |
static class |
StructIO.DefaultCustomizer
|
static class |
StructIO.FieldDecl
|
static class |
StructIO.FieldDesc
Internal metadata on a struct field |
Field Summary | |
---|---|
protected StructIO.FieldDesc[] |
fields
|
protected boolean |
hasFieldFields
|
protected PointerIO<?> |
pointerIO
|
protected Class<?> |
structClass
|
protected Type |
structType
|
Constructor Summary | |
---|---|
StructIO(Class<?> structClass,
Type structType)
|
Method Summary | ||
---|---|---|
protected boolean |
acceptFieldGetter(Member member,
boolean getter)
|
|
protected StructIO.AggregatedFieldDesc |
aggregateFields(List<StructIO.FieldDecl> fieldGroup)
|
|
protected long |
alignSize(long size,
long alignment)
|
|
void |
appendBytes(long bytes)
|
|
int |
compare(StructObject a,
StructObject b)
|
|
protected StructIO.FieldDesc[] |
computeStructLayout()
|
|
protected StructIO.FieldDecl |
createFieldDecl(Field getter)
|
|
protected StructIO.FieldDecl |
createFieldDecl(Member member)
|
|
protected StructIO.FieldDecl |
createFieldDecl(Method getter)
|
|
String |
describe()
|
|
String |
describe(StructObject struct)
|
|
boolean |
equal(StructObject a,
StructObject b)
|
|
List<StructIO.AggregatedFieldDesc> |
getAggregatedFields()
|
|
boolean |
getBooleanField(StructObject struct,
int fieldIndex)
|
|
byte |
getByteField(StructObject struct,
int fieldIndex)
|
|
char |
getCharField(StructObject struct,
int fieldIndex)
|
|
long |
getCLongField(StructObject struct,
int fieldIndex)
|
|
double |
getDoubleField(StructObject struct,
int fieldIndex)
|
|
|
getEnumField(StructObject struct,
int fieldIndex)
|
|
float |
getFloatField(StructObject struct,
int fieldIndex)
|
|
static StructIO |
getInstance(Class structClass,
Type structType)
|
|
static StructIO |
getInstance(Type structType)
|
|
int |
getIntField(StructObject struct,
int fieldIndex)
|
|
long |
getLongField(StructObject struct,
int fieldIndex)
|
|
|
getNativeObjectField(StructObject struct,
int fieldIndex)
|
|
|
getPointerField(StructObject struct,
int fieldIndex)
|
|
PointerIO<?> |
getPointerIO()
|
|
short |
getShortField(StructObject struct,
int fieldIndex)
|
|
long |
getSizeTField(StructObject struct,
int fieldIndex)
|
|
long |
getStructAlignment()
|
|
Class<?> |
getStructClass()
|
|
long |
getStructSize()
|
|
Type |
getStructType()
|
|
|
getTypedPointerField(StructObject struct,
int fieldIndex)
|
|
protected List<StructIO.FieldDecl> |
listFields()
Creates a list of structure fields |
|
protected void |
orderFields(List<StructIO.FieldDecl> fields)
Orders the fields to match the actual structure layout |
|
protected void |
performLayout(Iterable<StructIO.AggregatedFieldDesc> aggregatedFields)
|
|
void |
prependBytes(long bytes)
|
|
protected static int |
primTypeLength(Class<?> primType)
|
|
void |
readFieldsFromNative(StructObject struct)
Read struct fields implemented as Java fields from the corresponding native memory (Java fields are read from native memory). |
|
static StructIO |
registerStructIO(Class structClass,
Type structType,
StructIO io)
|
|
void |
setBooleanField(StructObject struct,
int fieldIndex,
boolean value)
|
|
void |
setByteField(StructObject struct,
int fieldIndex,
byte value)
|
|
void |
setCharField(StructObject struct,
int fieldIndex,
char value)
|
|
void |
setCLongField(StructObject struct,
int fieldIndex,
long value)
|
|
void |
setDoubleField(StructObject struct,
int fieldIndex,
double value)
|
|
void |
setEnumField(StructObject struct,
int fieldIndex,
ValuedEnum<?> value)
|
|
void |
setFieldOffset(String fieldName,
long fieldOffset,
boolean propagateChanges)
|
|
void |
setFloatField(StructObject struct,
int fieldIndex,
float value)
|
|
void |
setIntField(StructObject struct,
int fieldIndex,
int value)
|
|
void |
setLongField(StructObject struct,
int fieldIndex,
long value)
|
|
|
setNativeObjectField(StructObject struct,
int fieldIndex,
O value)
|
|
|
setPointerField(StructObject struct,
int fieldIndex,
Pointer<T> value)
|
|
void |
setShortField(StructObject struct,
int fieldIndex,
short value)
|
|
void |
setSizeTField(StructObject struct,
int fieldIndex,
long value)
|
|
String |
toString()
|
|
void |
writeFieldsToNative(StructObject struct)
Write struct fields implemented as Java fields to the corresponding native memory (Java fields are written to native memory). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected PointerIO<?> pointerIO
protected volatile StructIO.FieldDesc[] fields
protected final Class<?> structClass
protected final Type structType
protected boolean hasFieldFields
Constructor Detail |
---|
public StructIO(Class<?> structClass, Type structType)
Method Detail |
---|
public static StructIO getInstance(Type structType)
public static StructIO getInstance(Class structClass, Type structType)
public static StructIO registerStructIO(Class structClass, Type structType, StructIO io)
public void prependBytes(long bytes)
public void appendBytes(long bytes)
public void setFieldOffset(String fieldName, long fieldOffset, boolean propagateChanges)
public Class<?> getStructClass()
public Type getStructType()
public String toString()
toString
in class Object
public PointerIO<?> getPointerIO()
protected long alignSize(long size, long alignment)
public final long getStructSize()
public final long getStructAlignment()
protected void orderFields(List<StructIO.FieldDecl> fields)
protected boolean acceptFieldGetter(Member member, boolean getter)
protected StructIO.FieldDecl createFieldDecl(Field getter)
protected StructIO.FieldDecl createFieldDecl(Method getter)
protected StructIO.FieldDecl createFieldDecl(Member member)
protected List<StructIO.FieldDecl> listFields()
protected static int primTypeLength(Class<?> primType)
public List<StructIO.AggregatedFieldDesc> getAggregatedFields()
protected StructIO.FieldDesc[] computeStructLayout()
protected StructIO.AggregatedFieldDesc aggregateFields(List<StructIO.FieldDecl> fieldGroup)
protected void performLayout(Iterable<StructIO.AggregatedFieldDesc> aggregatedFields)
public boolean equal(StructObject a, StructObject b)
public int compare(StructObject a, StructObject b)
public final String describe(StructObject struct)
public final String describe()
public final void writeFieldsToNative(StructObject struct)
public final void readFieldsFromNative(StructObject struct)
public final <T> Pointer<T> getPointerField(StructObject struct, int fieldIndex)
public final <T> void setPointerField(StructObject struct, int fieldIndex, Pointer<T> value)
public final <T extends TypedPointer> T getTypedPointerField(StructObject struct, int fieldIndex)
public final <O extends NativeObject> O getNativeObjectField(StructObject struct, int fieldIndex)
public final <O extends NativeObject> void setNativeObjectField(StructObject struct, int fieldIndex, O value)
public final <E extends Enum<E>> IntValuedEnum<E> getEnumField(StructObject struct, int fieldIndex)
public final void setEnumField(StructObject struct, int fieldIndex, ValuedEnum<?> value)
public final void setIntField(StructObject struct, int fieldIndex, int value)
public final int getIntField(StructObject struct, int fieldIndex)
public final void setLongField(StructObject struct, int fieldIndex, long value)
public final long getLongField(StructObject struct, int fieldIndex)
public final void setShortField(StructObject struct, int fieldIndex, short value)
public final short getShortField(StructObject struct, int fieldIndex)
public final void setByteField(StructObject struct, int fieldIndex, byte value)
public final byte getByteField(StructObject struct, int fieldIndex)
public final void setCharField(StructObject struct, int fieldIndex, char value)
public final char getCharField(StructObject struct, int fieldIndex)
public final void setFloatField(StructObject struct, int fieldIndex, float value)
public final float getFloatField(StructObject struct, int fieldIndex)
public final void setDoubleField(StructObject struct, int fieldIndex, double value)
public final double getDoubleField(StructObject struct, int fieldIndex)
public final void setBooleanField(StructObject struct, int fieldIndex, boolean value)
public final boolean getBooleanField(StructObject struct, int fieldIndex)
public final void setSizeTField(StructObject struct, int fieldIndex, long value)
public final long getSizeTField(StructObject struct, int fieldIndex)
public final void setCLongField(StructObject struct, int fieldIndex, long value)
public final long getCLongField(StructObject struct, int fieldIndex)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |