From c7fed1f90c242b6b77321b7ecc4744872a7cceff Mon Sep 17 00:00:00 2001 From: Bryan Duxbury Date: Mon, 29 Aug 2011 18:01:24 +0000 Subject: [PATCH] THRIFT-1301. cpp: consolidate common code in TNonblockingServer constructors Patch: Adam Simpkins git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1162920 13f79535-47bb-0310-9956-ffa450edef68 --- lib/cpp/src/server/TNonblockingServer.h | 129 ++++++++++-------------- 1 file changed, 51 insertions(+), 78 deletions(-) diff --git a/lib/cpp/src/server/TNonblockingServer.h b/lib/cpp/src/server/TNonblockingServer.h index 20a33409..21b8d953 100644 --- a/lib/cpp/src/server/TNonblockingServer.h +++ b/lib/cpp/src/server/TNonblockingServer.h @@ -227,91 +227,64 @@ class TNonblockingServer : public TServer { */ void handleEvent(int fd, short which); + void init(int port) { + serverSocket_ = -1; + port_ = port; + threadPoolProcessing_ = false; + eventBase_ = NULL; + ownEventBase_ = false; + numTConnections_ = 0; + numActiveProcessors_ = 0; + connectionStackLimit_ = CONNECTION_STACK_LIMIT; + maxActiveProcessors_ = MAX_ACTIVE_PROCESSORS; + maxConnections_ = MAX_CONNECTIONS; + taskExpireTime_ = 0; + overloadHysteresis_ = 0.8; + overloadAction_ = T_OVERLOAD_NO_ACTION; + writeBufferDefaultSize_ = WRITE_BUFFER_DEFAULT_SIZE; + idleReadBufferLimit_ = IDLE_READ_BUFFER_LIMIT; + idleWriteBufferLimit_ = IDLE_WRITE_BUFFER_LIMIT; + resizeBufferEveryN_ = RESIZE_BUFFER_EVERY_N; + overloaded_ = false; + nConnectionsDropped_ = 0; + nTotalConnectionsDropped_ = 0; + } + public: - TNonblockingServer(boost::shared_ptr processor, + TNonblockingServer(const boost::shared_ptr& processor, int port) : - TServer(processor), - serverSocket_(-1), - port_(port), - threadPoolProcessing_(false), - eventBase_(NULL), - ownEventBase_(false), - numTConnections_(0), - numActiveProcessors_(0), - connectionStackLimit_(CONNECTION_STACK_LIMIT), - maxActiveProcessors_(MAX_ACTIVE_PROCESSORS), - maxConnections_(MAX_CONNECTIONS), - taskExpireTime_(0), - overloadHysteresis_(0.8), - overloadAction_(T_OVERLOAD_NO_ACTION), - writeBufferDefaultSize_(WRITE_BUFFER_DEFAULT_SIZE), - idleReadBufferLimit_(IDLE_READ_BUFFER_LIMIT), - idleWriteBufferLimit_(IDLE_WRITE_BUFFER_LIMIT), - resizeBufferEveryN_(RESIZE_BUFFER_EVERY_N), - overloaded_(false), - nConnectionsDropped_(0), - nTotalConnectionsDropped_(0) {} - - TNonblockingServer(boost::shared_ptr processor, - boost::shared_ptr protocolFactory, - int port, - boost::shared_ptr threadManager = boost::shared_ptr()) : - TServer(processor), - serverSocket_(-1), - port_(port), - threadManager_(threadManager), - eventBase_(NULL), - ownEventBase_(false), - numTConnections_(0), - numActiveProcessors_(0), - connectionStackLimit_(CONNECTION_STACK_LIMIT), - maxActiveProcessors_(MAX_ACTIVE_PROCESSORS), - maxConnections_(MAX_CONNECTIONS), - taskExpireTime_(0), - overloadHysteresis_(0.8), - overloadAction_(T_OVERLOAD_NO_ACTION), - writeBufferDefaultSize_(WRITE_BUFFER_DEFAULT_SIZE), - idleReadBufferLimit_(IDLE_READ_BUFFER_LIMIT), - idleWriteBufferLimit_(IDLE_WRITE_BUFFER_LIMIT), - resizeBufferEveryN_(RESIZE_BUFFER_EVERY_N), - overloaded_(false), - nConnectionsDropped_(0), - nTotalConnectionsDropped_(0) { - setInputTransportFactory(boost::shared_ptr(new TTransportFactory())); - setOutputTransportFactory(boost::shared_ptr(new TTransportFactory())); + TServer(processor) { + init(port); + } + + TNonblockingServer( + const boost::shared_ptr& processor, + const boost::shared_ptr& protocolFactory, + int port, + const boost::shared_ptr& threadManager = + boost::shared_ptr()) : + TServer(processor) { + + init(port); + setInputProtocolFactory(protocolFactory); setOutputProtocolFactory(protocolFactory); setThreadManager(threadManager); } - TNonblockingServer(boost::shared_ptr processor, - boost::shared_ptr inputTransportFactory, - boost::shared_ptr outputTransportFactory, - boost::shared_ptr inputProtocolFactory, - boost::shared_ptr outputProtocolFactory, - int port, - boost::shared_ptr threadManager = boost::shared_ptr()) : - TServer(processor), - serverSocket_(-1), - port_(port), - threadManager_(threadManager), - eventBase_(NULL), - ownEventBase_(false), - numTConnections_(0), - numActiveProcessors_(0), - connectionStackLimit_(CONNECTION_STACK_LIMIT), - maxActiveProcessors_(MAX_ACTIVE_PROCESSORS), - maxConnections_(MAX_CONNECTIONS), - taskExpireTime_(0), - overloadHysteresis_(0.8), - overloadAction_(T_OVERLOAD_NO_ACTION), - writeBufferDefaultSize_(WRITE_BUFFER_DEFAULT_SIZE), - idleReadBufferLimit_(IDLE_READ_BUFFER_LIMIT), - idleWriteBufferLimit_(IDLE_WRITE_BUFFER_LIMIT), - resizeBufferEveryN_(RESIZE_BUFFER_EVERY_N), - overloaded_(false), - nConnectionsDropped_(0), - nTotalConnectionsDropped_(0) { + TNonblockingServer( + const boost::shared_ptr& processor, + const boost::shared_ptr& inputTransportFactory, + const boost::shared_ptr& outputTransportFactory, + const boost::shared_ptr& inputProtocolFactory, + const boost::shared_ptr& outputProtocolFactory, + int port, + const boost::shared_ptr& threadManager = + boost::shared_ptr()) : + TServer(processor) { + + init(port); + setInputTransportFactory(inputTransportFactory); setOutputTransportFactory(outputTransportFactory); setInputProtocolFactory(inputProtocolFactory); -- 2.17.1