#!/usr/bin/env ruby # # Put description here # require 'swig_assert' require 'director_binary_string' class DirectorBinaryStringCallback < Director_binary_string::Callback def run(dataBufferAA, dataBufferBB) ret = 0 unless dataBufferAA.nil? dataBufferAA.each_char do |c| ret += c.ord * 2 end end unless dataBufferBB.nil? dataBufferBB.each_char do |c| ret += c.ord * 3 end end return ret end def writeData(dataBufferAA) ret = 0 unless dataBufferAA.nil? dataBufferAA.each_char do |c| ret += c.ord * 2 end end return ret end end caller = Director_binary_string::Caller.new callback = DirectorBinaryStringCallback.new caller.setCallback(callback) sum = caller.call() sumData = caller.callWriteData() caller.delCallback() raise RuntimeError if sum != 9*2*8 + 13*3*5 raise RuntimeError if sumData != 9*2*8 # FIXME accessing abstract class or protected constructor # It does make sense as writeData() is abstract # Director_binary_string::Callback.new.run(nil, nil) callback = DirectorBinaryStringCallback.new caller.setCallback(callback) caller.call_null() caller.delCallback()