| <?php |
| |
| /** |
| * Generic class for a Thrift server. |
| * |
| * @package thrift.server |
| */ |
| abstract class TServer { |
| |
| /** |
| * Processor to handle new clients |
| * |
| * @var TProcessor |
| */ |
| protected $processor_; |
| |
| /** |
| * Server transport to be used for listening |
| * and accepting new clients |
| * |
| * @var TServerTransport |
| */ |
| protected $transport_; |
| |
| /** |
| * Input transport factory |
| * |
| * @var TTransportFactory |
| */ |
| protected $inputTransportFactory_; |
| |
| /** |
| * Output transport factory |
| * |
| * @var TTransportFactory |
| */ |
| protected $outputTransportFactory_; |
| |
| /** |
| * Input protocol factory |
| * |
| * @var TProtocolFactory |
| */ |
| protected $inputProtocolFactory_; |
| |
| /** |
| * Output protocol factory |
| * |
| * @var TProtocolFactory |
| */ |
| protected $outputProtocolFactory_; |
| |
| /** |
| * Sets up all the factories, etc |
| * |
| * @param object $processor |
| * @param TServerTransport $transport |
| * @param TTransportFactory $inputTransportFactory |
| * @param TTransportFactory $outputTransportFactory |
| * @param TProtocolFactory $inputProtocolFactory |
| * @param TProtocolFactory $outputProtocolFactory |
| * @return void |
| */ |
| public function __construct($processor, |
| TServerTransport $transport, |
| TTransportFactory $inputTransportFactory, |
| TTransportFactory $outputTransportFactory, |
| TProtocolFactory $inputProtocolFactory, |
| TProtocolFactory $outputProtocolFactory) { |
| $this->processor_ = $processor; |
| $this->transport_ = $transport; |
| $this->inputTransportFactory_ = $inputTransportFactory; |
| $this->outputTransportFactory_ = $outputTransportFactory; |
| $this->inputProtocolFactory_ = $inputProtocolFactory; |
| $this->outputProtocolFactory_ = $outputProtocolFactory; |
| } |
| |
| /** |
| * Serves the server. This should never return |
| * unless a problem permits it to do so or it |
| * is interrupted intentionally |
| * |
| * @abstract |
| * @return void |
| */ |
| abstract public function serve(); |
| |
| /** |
| * Stops the server serving |
| * |
| * @abstract |
| * @return void |
| */ |
| abstract public function stop(); |
| } |