3 namespace Thrift\Server
;
5 use Thrift\Factory\TTransportFactory
;
6 use Thrift\Factory\TProtocolFactory
;
9 * Generic class for a Thrift server.
11 * @package thrift.server
13 abstract class TServer
16 * Processor to handle new clients
20 protected $processor_;
23 * Server transport to be used for listening
24 * and accepting new clients
26 * @var TServerTransport
28 protected $transport_;
31 * Input transport factory
33 * @var TTransportFactory
35 protected $inputTransportFactory_;
38 * Output transport factory
40 * @var TTransportFactory
42 protected $outputTransportFactory_;
45 * Input protocol factory
47 * @var TProtocolFactory
49 protected $inputProtocolFactory_;
52 * Output protocol factory
54 * @var TProtocolFactory
56 protected $outputProtocolFactory_;
59 * Sets up all the factories, etc
61 * @param object $processor
62 * @param TServerTransport $transport
63 * @param TTransportFactory $inputTransportFactory
64 * @param TTransportFactory $outputTransportFactory
65 * @param TProtocolFactory $inputProtocolFactory
66 * @param TProtocolFactory $outputProtocolFactory
69 public function __construct(
71 TServerTransport
$transport,
72 TTransportFactory
$inputTransportFactory,
73 TTransportFactory
$outputTransportFactory,
74 TProtocolFactory
$inputProtocolFactory,
75 TProtocolFactory
$outputProtocolFactory
77 $this->processor_
= $processor;
78 $this->transport_
= $transport;
79 $this->inputTransportFactory_
= $inputTransportFactory;
80 $this->outputTransportFactory_
= $outputTransportFactory;
81 $this->inputProtocolFactory_
= $inputProtocolFactory;
82 $this->outputProtocolFactory_
= $outputProtocolFactory;
86 * Serves the server. This should never return
87 * unless a problem permits it to do so or it
88 * is interrupted intentionally
93 abstract public function serve();
96 * Stops the server serving
101 abstract public function stop();