1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
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;
}
}
|