55 lines
1.1 KiB
PHP
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);}
|
|
|
|
}
|
|
|
|
?>
|