swig/Examples/test-suite/csharp/director_binary_string_runm...

57 lines
1.4 KiB
C#

using System;
using director_binary_stringNamespace;
public class director_binary_string_runme
{
static void Main()
{
Caller caller = new Caller();
Callback callback = new DirectorBinaryStringCallback();
caller.setCallback(callback);
int sum = caller.call();
int sumData = caller.callWriteData();
caller.delCallback();
if (sum != 9*2*8 + 13*3*5)
throw new Exception("Unexpected sum: " + sum);
if (sumData != 9*2*8)
throw new Exception("Unexpected sumData: " + sumData);
new Callback().run(null, null);
callback = new DirectorBinaryStringCallback();
caller.setCallback(callback);
caller.call_null();
}
}
public class DirectorBinaryStringCallback : Callback {
public DirectorBinaryStringCallback() : base() {}
public override int run(string dataBufferAA, string dataBufferBB)
{
int ret = 0;
if (dataBufferAA != null) {
for (int i = 0; i < dataBufferAA.Length; i++)
ret += (int)dataBufferAA[i] * 2;
}
if (dataBufferBB != null) {
for (int i = 0; i < dataBufferBB.Length; i++) {
ret += (int)dataBufferBB[i] * 3;
}
}
return ret;
}
public override int writeData(string dataBufferAA)
{
int ret = 0;
if (dataBufferAA != null) {
for (int i = 0; i < dataBufferAA.Length; i++)
ret += (int)dataBufferAA[i] * 2;
}
return ret;
}
}