X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Fthread_pool_observer.hpp;h=c52dca10e81434db34fb2c8cfab2188b2c9d4fd5;hb=5ed8cae5f8518ca4502a51f3884b323f4dbd744a;hp=4f9636d4ab2f28ea1c8ca9b7b1536ccbcfe099c6;hpb=cea1fb12604fd1ddbac6804b95c4aff078d30409;p=metaproxy-moved-to-github.git diff --git a/src/thread_pool_observer.hpp b/src/thread_pool_observer.hpp index 4f9636d..c52dca1 100644 --- a/src/thread_pool_observer.hpp +++ b/src/thread_pool_observer.hpp @@ -1,4 +1,4 @@ -/* $Id: thread_pool_observer.hpp,v 1.2 2005-10-14 10:08:40 adam Exp $ +/* $Id: thread_pool_observer.hpp,v 1.3 2005-10-14 10:27:18 adam Exp $ Copyright (c) 1998-2005, Index Data. This file is part of the yaz-proxy. @@ -33,47 +33,49 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -class IThreadPoolMsg { -public: - virtual IThreadPoolMsg *handle() = 0; - virtual void result() = 0; - virtual ~IThreadPoolMsg(); -}; - -class ThreadPoolSocketObserver : public yazpp_1::ISocketObserver { -private: - class Worker { +namespace yp2 { + class IThreadPoolMsg { public: - Worker(ThreadPoolSocketObserver *s) : m_s(s) {}; - ThreadPoolSocketObserver *m_s; - void operator() (void) { - m_s->run(0); - } + virtual IThreadPoolMsg *handle() = 0; + virtual void result() = 0; + virtual ~IThreadPoolMsg(); }; -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; - std::deque m_input; - std::deque m_output; + 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; - boost::mutex m_mutex_input_data; - boost::condition m_cond_input_data; - boost::mutex m_mutex_output_data; - bool m_stop_flag; + std::deque m_input; + std::deque m_output; - -}; + boost::mutex m_mutex_input_data; + boost::condition m_cond_input_data; + boost::mutex m_mutex_output_data; + bool m_stop_flag; + + }; +} #endif /* * Local variables: