+ class ThreadPoolSocketObserver : public yazpp_1::ISocketObserver {
+ private:
+ class Worker {
+ public:
+ Worker(ThreadPoolSocketObserver *s) : m_s(s) {};
+ ThreadPoolSocketObserver *m_s;
+ void operator() (void) {
+ m_s->run(0);
+ }
+ };
+ public:
+ ThreadPoolSocketObserver(yazpp_1::ISocketObservable *obs,
+ int no_threads);
+ virtual ~ThreadPoolSocketObserver();
+ void socketNotify(int event);
+ void put(IThreadPoolMsg *m);
+ IThreadPoolMsg *get();
+ void run(void *p);
+ int m_fd[2];
+ private:
+ yazpp_1::ISocketObservable *m_SocketObservable;
+ int m_no_threads;
+ boost::thread_group m_thrds;