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

36 lines
1.0 KiB
Python

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()