/trunk/Examples/test-suite/csharp_lib_arrays.i
Swig | 61 lines | 43 code | 16 blank | 2 comment | 0 complexity | 3da58ccd42e8c984f45b44f2d016b242 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %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);
- }
- %}
-