version 0.3.0
[fms.git] / include / threadwrapper / cancelablerunnable.h
1 #ifndef _cancelablerunnable_\r
2 #define _cancelablerunnable_\r
3 \r
4 #include <Poco/Runnable.h>\r
5 #include <Poco/Mutex.h>\r
6 \r
7 class CancelableRunnable:public Poco::Runnable\r
8 {\r
9 public:\r
10         CancelableRunnable():m_cancelled(false) {}\r
11 \r
12         void Cancel()                           { Poco::ScopedLock<Poco::FastMutex> g(m_cancelledmutex); m_cancelled=true; }\r
13         const bool IsCancelled()        { Poco::ScopedLock<Poco::FastMutex> g(m_cancelledmutex); return m_cancelled; }\r
14 \r
15 private:\r
16 \r
17         Poco::FastMutex m_cancelledmutex;\r
18         bool m_cancelled;\r
19 \r
20 };\r
21 \r
22 #endif  // _cancelablerunnable_\r