summaryrefslogtreecommitdiff
path: root/vendor/packaged/thrift/src/Server/TSimpleServer.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/packaged/thrift/src/Server/TSimpleServer.php')
-rw-r--r--vendor/packaged/thrift/src/Server/TSimpleServer.php60
1 files changed, 60 insertions, 0 deletions
diff --git a/vendor/packaged/thrift/src/Server/TSimpleServer.php b/vendor/packaged/thrift/src/Server/TSimpleServer.php
new file mode 100644
index 000000000..4c1dda5a5
--- /dev/null
+++ b/vendor/packaged/thrift/src/Server/TSimpleServer.php
@@ -0,0 +1,60 @@
+<?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;
+ }
+}