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
|
import director_binary_string
class DirectorBinaryStringCallback(director_binary_string.Callback):
def run(self, dataBufferAA, dataBufferBB):
ret = 0
for c in dataBufferAA:
ret += ord(c) * 2
for c in dataBufferBB:
ret += ord(c) * 3
return ret
def writeData(self, dataBufferAA):
ret = 0
for c in dataBufferAA:
ret += ord(c) * 2
return ret
caller = director_binary_string.Caller()
callback = DirectorBinaryStringCallback()
caller.setCallback(callback)
sum = caller.call()
sumData = caller.callWriteData()
caller.delCallback()
if sum != 9*2*8 + 13*3*5:
raise RuntimeError("Unexpected sum: {}".format(sum))
if sumData != 9*2*8:
raise RuntimeError("Unexpected sumData: {}".format(sumData))
# FIXME accessing abstract class or protected constructor
# It does make sense as writeData() is abstract
# director_binary_string.Callback().run(null, null)
callback = DirectorBinaryStringCallback()
caller.setCallback(callback)
caller.call_null()
caller.delCallback()
|