mirror of https://github.com/swig/swig
57 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|