mirror of https://github.com/swig/swig
36 lines
1.0 KiB
Python
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()
|