/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/php/director_binary_string_runme.php
53 строки
1 KB
Erez Geva
Fixes of STRING/BYTES LENGTH typemaps.
29 фев 2024, 04:09
29 фев 2024, 04:09
1bf59e0
Код
Авторство
О чём код?
<?php require "tests.php"; // No new functions check::functions(array()); check::classes(array('director_binary_string','Callback','Caller')); // No new vars check::globals(array()); class DirectorBinaryStringCallback extends Callback { function run(string $dataBufferAA, string $dataBufferBB) { $ret = 0; if ($dataBufferAA != null) { for ($i = 0; $i < strlen($dataBufferAA); $i++) $ret = $ret + ord($dataBufferAA[$i]) * 2; } if ($dataBufferBB != null) { for ($i = 0; $i < strlen($dataBufferBB); $i++) $ret = $ret + ord($dataBufferBB[$i]) * 3; } return $ret; } function writeData(string $dataBufferAA) { $ret = 0; if ($dataBufferAA != null) { for ($i = 0; $i < strlen($dataBufferAA); $i++) $ret = $ret + ord($dataBufferAA[$i]) * 2; } return $ret; } } $caller = new Caller(); $callback = new DirectorBinaryStringCallback(); $caller->setCallback($callback); $sum = $caller->call(); $sumData = $caller->callWriteData(); $caller->delCallback(); check::equal($sum, 9*2*8 + 13*3*5, "Unexpected sum: $sum"); check::equal($sumData, 9*2*8, "Unexpected sumData: $sumData"); // FIXME Error: Cannot instantiate abstract class Callback // It does make sense as writeData() is abstract // (new Callback())->run("", ""); $callback = new DirectorBinaryStringCallback(); $caller->setCallback($callback); $caller->call_null(); $caller->delCallback();