mirror of https://github.com/swig/swig
70 lines
1.8 KiB
OpenEdge ABL
70 lines
1.8 KiB
OpenEdge ABL
/* Testcase for the Java array typemaps which are not used by default. */
|
|
%module java_lib_arrays
|
|
|
|
%include "enumtypeunsafe.swg"
|
|
|
|
/* Use the Java library typemaps */
|
|
%include "arrays_java.i"
|
|
|
|
JAVA_ARRAYSOFCLASSES(SimpleStruct)
|
|
%apply ARRAYSOFENUMS[ANY] { finger[ANY] }
|
|
//%apply signed char[ANY] { char array_c2[ANY] }
|
|
|
|
%include "arrays.i"
|
|
|
|
// This will test the %typemap(javacode) in the JAVA_ARRAYSOFCLASSES works with C structs amongst other things
|
|
JAVA_ARRAYSOFCLASSES(struct AnotherStruct)
|
|
%inline %{
|
|
struct AnotherStruct {
|
|
SimpleStruct simple;
|
|
};
|
|
double extract(struct AnotherStruct as[], int index) {
|
|
return as[index].simple.double_field;
|
|
}
|
|
double extract2(struct AnotherStruct as[5], int index) {
|
|
return as[index].simple.double_field;
|
|
}
|
|
%}
|
|
|
|
// Test %apply to pointers
|
|
JAVA_ARRAYSOFCLASSES(struct YetAnotherStruct)
|
|
%apply struct YetAnotherStruct[] { struct YetAnotherStruct *yas }
|
|
//%apply struct YetAnotherStruct[] { struct YetAnotherStruct * } // Note: Does not work unless this is put after the YetAnotherStruct definition
|
|
%inline %{
|
|
struct YetAnotherStruct {
|
|
SimpleStruct simple;
|
|
};
|
|
double extract_ptr(struct YetAnotherStruct *yas, int index) {
|
|
return yas[index].simple.double_field;
|
|
}
|
|
void modifyYAS(struct YetAnotherStruct yas[], int size) {
|
|
int i;
|
|
for (i=0; i<size; ++i) {
|
|
SimpleStruct ss;
|
|
ss.double_field = yas[i].simple.double_field * 10.0;
|
|
yas[i].simple = ss;
|
|
}
|
|
}
|
|
%}
|
|
|
|
%apply ARRAYSOFENUMS[ANY] { toe[ANY] }
|
|
%apply ARRAYSOFENUMS[] { toe[] }
|
|
%apply ARRAYSOFENUMS[] { toe* }
|
|
%inline %{
|
|
typedef enum { Big, Little } toe;
|
|
void toestest(toe *t, toe tt[], toe ttt[2]) {}
|
|
%}
|
|
|
|
|
|
JAVA_ARRAYS_IMPL(char, jbyte, Byte, Char)
|
|
JAVA_ARRAYS_TYPEMAPS(char, byte, jbyte, Char, "[B")
|
|
%typecheck(SWIG_TYPECHECK_INT8_ARRAY) /* Java byte[] */
|
|
signed char[ANY], signed char[]
|
|
""
|
|
|
|
%inline %{
|
|
struct ArrayStructExtra {
|
|
char array_c2[ARRAY_LEN];
|
|
};
|
|
%}
|