mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-19 04:42:37 +00:00
70 lines
1.4 KiB
C++
70 lines
1.4 KiB
C++
//
|
|
// 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/TimerTask.h"
|
|
#include "Poco/Util/Util.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
|