00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _BOGOTEL_DLGCEVTHDLR_H
00011 #define _BOGOTEL_DLGCEVTHDLR_H
00012
00013 #include <boost/thread/mutex.hpp>
00014 #include <boost/thread/condition.hpp>
00015 #include <boost/thread/thread.hpp>
00016
00017 #include <bogotel/STLhelp.h>
00018
00019 namespace bogotel {
00020
00021 class CDlgEvtHdlr
00022 {
00023 public:
00024 typedef long (*ptr_evt_hndlr)(unsigned long parm);
00025
00026 CDlgEvtHdlr(ptr_evt_hndlr pHdlr);
00027 virtual ~CDlgEvtHdlr();
00028 bool matchesHandler(ptr_evt_hndlr testPtr);
00029
00030 static void do_thread(void* param);
00031
00032 protected:
00033 void run();
00034
00035 ptr_evt_hndlr m_pHdlr;
00036
00037 boost::thread* m_pThrd;
00038 boost::mutex m_mutex;
00039 boost::condition m_condition;
00040
00041 };
00042 }
00043
00044 #endif // ! _BOGOTEL_DLGCEVTHDLR_H