mirror of https://github.com/swig/swig
79 lines
2.0 KiB
OpenEdge ABL
79 lines
2.0 KiB
OpenEdge ABL
%module csharp_lib_arrays_bool
|
|
|
|
%include "arrays_csharp.i"
|
|
|
|
%apply bool INPUT[] { bool* sourceArray }
|
|
%apply bool OUTPUT[] { bool* targetArray }
|
|
|
|
%apply bool INOUT[] { bool* array1 }
|
|
%apply bool INOUT[] { bool* array2 }
|
|
|
|
%inline %{
|
|
#include <iostream>
|
|
|
|
/* copy the contents of the first array to the second */
|
|
void myArrayCopyBool( bool* sourceArray, bool* targetArray, int nitems ) {
|
|
int i;
|
|
for ( i = 0; i < nitems; i++ ) {
|
|
targetArray[ i ] = sourceArray[ i ];
|
|
}
|
|
}
|
|
|
|
/* swap the contents of the two arrays */
|
|
void myArraySwapBool( bool* array1, bool* array2, int nitems ) {
|
|
int i;
|
|
bool temp;
|
|
for ( i = 0; i < nitems; i++ ) {
|
|
temp = array1[ i ];
|
|
array1[ i ] = array2[ i ];
|
|
array2[ i ] = temp;
|
|
}
|
|
}
|
|
|
|
bool checkBoolArrayCorrect( bool* sourceArray, int sourceArraySize ) {
|
|
if( sourceArraySize != 8 ) {
|
|
std::cout << "checkBoolArrayCorrect: Expected array with 8 elements" << std::endl;
|
|
return false;
|
|
}
|
|
return sourceArray[0] == true &&
|
|
sourceArray[1] == false &&
|
|
sourceArray[2] == false &&
|
|
sourceArray[3] == true &&
|
|
sourceArray[4] == false &&
|
|
sourceArray[5] == true &&
|
|
sourceArray[6] == true &&
|
|
sourceArray[7] == false;
|
|
}
|
|
%}
|
|
|
|
%clear bool* sourceArray;
|
|
%clear bool* targetArray;
|
|
|
|
%clear bool* array1;
|
|
%clear bool* array2;
|
|
|
|
// Below replicates the above array handling but this time using the pinned (fixed) array typemaps
|
|
%csmethodmodifiers myArrayCopyUsingFixedArraysBool "public unsafe";
|
|
%csmethodmodifiers myArraySwapUsingFixedArraysBool "public unsafe";
|
|
|
|
%apply bool FIXED[] { bool* sourceArray }
|
|
%apply bool FIXED[] { bool* targetArray }
|
|
|
|
%inline %{
|
|
void myArrayCopyUsingFixedArraysBool( bool *sourceArray, bool* targetArray, int nitems ) {
|
|
myArrayCopyBool(sourceArray, targetArray, nitems);
|
|
}
|
|
%}
|
|
|
|
%apply bool FIXED[] { bool* array1 }
|
|
%apply bool FIXED[] { bool* array2 }
|
|
|
|
%inline %{
|
|
void myArraySwapUsingFixedArraysBool( bool* array1, bool* array2, int nitems ) {
|
|
myArraySwapBool(array1, array2, nitems);
|
|
}
|
|
%}
|
|
|
|
|
|
|