/trunk/Examples/test-suite/csharp_lib_arrays.i
# · Swig · 61 lines · 43 code · 16 blank · 2 comment · 0 complexity · 3da58ccd42e8c984f45b44f2d016b242 MD5 · raw file
- %module csharp_lib_arrays
- %include "arrays_csharp.i"
- %apply int INPUT[] { int* sourceArray }
- %apply int OUTPUT[] { int* targetArray }
- %apply int INOUT[] { int* array1 }
- %apply int INOUT[] { int* array2 }
- %inline %{
- /* copy the contents of the first array to the second */
- void myArrayCopy( int* sourceArray, int* targetArray, int nitems ) {
- int i;
- for ( i = 0; i < nitems; i++ ) {
- targetArray[ i ] = sourceArray[ i ];
- }
- }
- /* swap the contents of the two arrays */
- void myArraySwap( int* array1, int* array2, int nitems ) {
- int i, temp;
- for ( i = 0; i < nitems; i++ ) {
- temp = array1[ i ];
- array1[ i ] = array2[ i ];
- array2[ i ] = temp;
- }
- }
- %}
- %clear int* sourceArray;
- %clear int* targetArray;
- %clear int* array1;
- %clear int* array2;
- // Below replicates the above array handling but this time using the pinned (fixed) array typemaps
- %csmethodmodifiers myArrayCopyUsingFixedArrays "public unsafe";
- %csmethodmodifiers myArraySwapUsingFixedArrays "public unsafe";
- %apply int FIXED[] { int* sourceArray }
- %apply int FIXED[] { int* targetArray }
- %inline %{
- void myArrayCopyUsingFixedArrays( int *sourceArray, int* targetArray, int nitems ) {
- myArrayCopy(sourceArray, targetArray, nitems);
- }
- %}
- %apply int FIXED[] { int* array1 }
- %apply int FIXED[] { int* array2 }
- %inline %{
- void myArraySwapUsingFixedArrays( int* array1, int* array2, int nitems ) {
- myArraySwap(array1, array2, nitems);
- }
- %}