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