app/libraries/Thrift/Server/TSimpleServer.php (27 lines of code) (raw):

<?php namespace Thrift\Server; use Thrift\Server\TServer; 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; } }