12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- namespace Thrift\Server;
- use Thrift\Exception\TTransportException;
- /**
- * Simple implemtation of a Thrift server.
- *
- * @package thrift.server
- */
- class TSimpleServer extends TServer
- {
- /**
- * Flag for the main serving loop
- *
- * @var bool
- */
- private $stop_ = false;
- /**
- * Listens for new client using the supplied
- * transport. It handles TTransportExceptions
- * to avoid timeouts etc killing it
- *
- * @return void
- */
- public function serve()
- {
- $this->transport_->listen();
- while (!$this->stop_) {
- try {
- $transport = $this->transport_->accept();
- if ($transport != null) {
- $inputTransport = $this->inputTransportFactory_->getTransport($transport);
- $outputTransport = $this->outputTransportFactory_->getTransport($transport);
- $inputProtocol = $this->inputProtocolFactory_->getProtocol($inputTransport);
- $outputProtocol = $this->outputProtocolFactory_->getProtocol($outputTransport);
- while ($this->processor_->process($inputProtocol, $outputProtocol)) { }
- }
- } catch (TTransportException $e) { }
- }
- }
- /**
- * Stops the server running. Kills the transport
- * and then stops the main serving loop
- *
- * @return void
- */
- public function stop()
- {
- $this->transport_->close();
- $this->stop_ = true;
- }
- }
|