Open Lighting Architecture: include/ola/CallbackRunner.h Source File

| Open Lighting Architecture 0.10.9

Loading...
Searching...
No Matches
CallbackRunner.h
Go to the documentation of this file.
1/*
2 * This library is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU Lesser General Public
4 * License as published by the Free Software Foundation; either
5 * version 2.1 of the License, or (at your option) any later version.
6 *
7 * This library is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * Lesser General Public License for more details.
11 *
12 * You should have received a copy of the GNU Lesser General Public
13 * License along with this library; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15 *
16 * CallbackRunner.h
17 * Automatically execute a 0-arg callback when this object goes out of scope.
18 * Copyright (C) 2011 Simon Newton
19 */
20
40
41#ifndef INCLUDE_OLA_CALLBACKRUNNER_H_
42#define INCLUDE_OLA_CALLBACKRUNNER_H_
43
44#include <ola/base/Macro.h>
45
46namespace ola {
47
52
81template <typename CallbackClass>
82 class CallbackRunner {
83 public:
88 explicit CallbackRunner(CallbackClass *callback)
89 : m_callback(callback) {
90 }
91
95 ~CallbackRunner() {
96 m_callback->Run();
97 }
98
99 private:
100 CallbackClass *m_callback;
101
102 CallbackRunner(const CallbackRunner &) = delete;
103 const CallbackRunner &operator=(const CallbackRunner &) = delete;
104};
105
109} // namespace ola
110#endif // INCLUDE_OLA_CALLBACKRUNNER_H_
Macro.h
Helper macros.
ola::CallbackRunner
Automatically execute a callback when it goes out of scope.
Definition CallbackRunner.h:82
ola::CallbackRunner::~CallbackRunner
~CallbackRunner()
Definition CallbackRunner.h:95
ola::CallbackRunner::CallbackRunner
CallbackRunner(CallbackClass *callback)
Definition CallbackRunner.h:88
ola
The namespace containing all OLA symbols.
Definition Credentials.cpp:44