tamerlib/tests/worker.php

45 lines
1.2 KiB
PHP
Raw Normal View History

2023-06-16 02:07:36 -04:00
<?php
require 'ncc';
require __DIR__ . DIRECTORY_SEPARATOR . 'ExampleClass.php';
import('net.nosial.tamerlib');
// Initialize as a worker, will fail if the process is executed directly
2023-06-16 03:38:51 -04:00
\TamerLib\tm::initialize(\TamerLib\Enums\TamerMode::WORKER);
2023-06-16 02:07:36 -04:00
// Callback Examples
\TamerLib\tm::addFunction('sleep', function($sleep_time){
sleep($sleep_time);
return $sleep_time;
});
\TamerLib\tm::addFunction('calculate_pi', function($iterations){
$pi = 0;
$sign = 1;
for($i = 0; $i < $iterations; $i++)
{
$pi += $sign * (1 / (2 * $i + 1));
$sign *= -1;
}
return $pi * 4;
});
// Function pointer examples
$example_class = new ExampleClass();
\TamerLib\tm::addFunction('getValue', [$example_class, 'get']);
\TamerLib\tm::addFunction('setValue', [$example_class, 'set']);
\TamerLib\tm::addFunction('valueExists', [$example_class, 'exists']);
\TamerLib\tm::addFunction('clearValues', [$example_class, 'clear']);
// Run forest, run!
while (true)
{
try
{
\TamerLib\tm::run();
}
catch(Exception $e)
{
print($e->getMessage() . PHP_EOL);
}
}