📄 splfserver.hpp
字号:
/* * Copyright 2007 Stephen Liu * For license terms, see the file COPYING along with this library. */#ifndef __splfserver_hpp__#define __splfserver_hpp__#include <pthread.h>class SP_EventArg;class SP_ThreadPool;class SP_HandlerFactory;class SP_CompletionHandler;class SP_IOChannelFactory;typedef struct tagSP_AcceptArg SP_AcceptArg_t;struct event;// leader/follower thread pool serverclass SP_LFServer {public: SP_LFServer( const char * bindIP, int port, SP_HandlerFactory * handlerFactory ); ~SP_LFServer(); void setTimeout( int timeout ); void setMaxConnections( int maxConnections ); void setMaxThreads( int maxThreads ); void setReqQueueSize( int reqQueueSize, const char * refusedMsg ); void setIOChannelFactory( SP_IOChannelFactory * ioChannelFactory ); void shutdown(); int isRunning(); // return -1 : cannot listen on ip:port, 0 : ok int run(); void runForever();private: char mBindIP[ 64 ]; int mPort; int mIsShutdown; int mIsRunning; SP_AcceptArg_t * mAcceptArg; SP_EventArg * mEventArg; int mMaxThreads; SP_ThreadPool * mThreadPool; SP_CompletionHandler * mCompletionHandler; struct event * mEvAccept; struct event * mEvSigInt, * mEvSigTerm; pthread_mutex_t mMutex; void handleOneEvent(); static void lfHandler( void * arg ); static void sigHandler( int, short, void * arg );};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -