rosavox/lib/alveolata/server/wrapper-class.php
2025-05-23 07:33:29 +00:00

55 lines
1.1 KiB
PHP

<?php
namespace alveolata\server;
/**
* @author Christian Fraß <frass@greenscale.de>
*/
class class_server/*<type_input,type_output>*/ {
/*
* @var struct_server<type_input,type_output>
*/
private $subject;
/**
* @var struct_server<type_input,type_output> $subject
* @author Christian Fraß <frass@greenscale.de>
*/
private function __construct(
struct_server/*<type_input,type_output>*/ $subject
)
{
$this->subject = $subject;
}
/**
* @author Christian Fraß <frass@greenscale.de>
*/
public static function make/*<type_input,type_output>*/(
int $port,
\Closure $handler,
bool $install_killhandler = false,
\Closure $on_starting = null,
\Closure $on_stopping = null,
\Closure $on_started = null,
\Closure $on_stopped = null
) : class_server/*<type_input,type_output>*/
{
$subject = make($port, $handler, $install_killhandler, $on_starting, $on_stopping, $on_started, $on_stopped);
return (new class_server($subject));
}
/**
* @author Christian Fraß <frass@greenscale.de>
*/
function start() : void {start($this->subject);}
function stop() : void {stop($this->subject);}
}
?>