123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- //
- // TimerTaskAdapter.h
- //
- // Library: Util
- // Package: Timer
- // Module: TimerTaskAdapter
- //
- // Definition of the TimerTaskAdapter class template.
- //
- // Copyright (c) 2009, Applied Informatics Software Engineering GmbH.
- // and Contributors.
- //
- // SPDX-License-Identifier: BSL-1.0
- //
- #ifndef Util_TimerTaskAdapter_INCLUDED
- #define Util_TimerTaskAdapter_INCLUDED
- #include "Poco/Util/Util.h"
- #include "Poco/Util/TimerTask.h"
- namespace Poco {
- namespace Util {
- template <class C>
- class TimerTaskAdapter: public TimerTask
- /// This class template simplifies the implementation
- /// of TimerTask objects by allowing a member function
- /// of an object to be called as task.
- {
- public:
- typedef void (C::*Callback)(TimerTask&);
-
- TimerTaskAdapter(C& object, Callback method): _pObject(&object), _method(method)
- /// Creates the TimerTaskAdapter, using the given
- /// object and its member function as task target.
- ///
- /// The member function must accept one argument,
- /// a reference to a TimerTask object.
- {
- }
-
- void run()
- {
- (_pObject->*_method)(*this);
- }
-
- protected:
- ~TimerTaskAdapter()
- /// Destroys the TimerTaskAdapter.
- {
- }
-
- private:
- TimerTaskAdapter();
- C* _pObject;
- Callback _method;
- };
- } } // namespace Poco::Util
- #endif // Util_TimerTaskAdapter_INCLUDED
|