pred@2129: #ifndef _INCLUDE_SMUD_H_ pred@2129: #define _INCLUDE_SMUD_H_ pred@2129: pred@2129: #include "smud.h" pred@2129: #include "smud_connections.h" pred@2129: pred@2129: void *ThreadCallback(void *data); pred@2129: pred@2129: class ThreadWorker pred@2129: { pred@2129: public: pred@2129: ThreadWorker(); pred@2129: ~ThreadWorker(); pred@2129: public: pred@2129: bool Start(); pred@2129: void CancelAndWait(); pred@2129: void AddConnection(int fd); pred@2129: void Process(); pred@2129: private: pred@2129: ConnectionPool *m_pPool; pred@2129: pthread_t m_Thread; pred@2129: pthread_mutex_t m_NotifyLock; pred@2129: pthread_cond_t m_Notify; pred@2129: bool m_bShouldCancel; pred@2129: }; pred@2129: pred@2129: class ThreadPool pred@2129: { pred@2129: public: pred@2129: ThreadPool(); pred@2129: ~ThreadPool(); pred@2129: public: pred@2129: void AddConnection(int fd); pred@2129: bool Start(); pred@2129: void Stop(); pred@2129: private: pred@2129: ThreadWorker *m_pWorker; pred@2129: }; pred@2129: pred@2129: #endif //_INCLUDE_SMUD_H_ pred@2129: