Open Lighting Architecture 0.10.9
Loading...
Searching...
No Matches
Watchdog.h
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 * Watchdog.h
17 * Copyright (C) 2015 Simon Newton
18 */
19
20#ifndef INCLUDE_OLA_UTIL_WATCHDOG_H_
21#define INCLUDE_OLA_UTIL_WATCHDOG_H_
22
23#include <ola/Callback.h>
24#include <ola/thread/Mutex.h>
25#include <memory>
26
27namespace ola {
28
70class Watchdog {
71 public:
78 Watchdog(unsigned int cycle_limit, Callback0<void> *reset_callback);
79
83 void Enable();
84
88 void Disable();
89
95 void Kick();
96
103 void Clock();
104
105 private:
106 const unsigned int m_limit;
107 std::auto_ptr<Callback0<void> > m_callback;
109 bool m_enabled; // GUARDED_BY(m_mu);
110 unsigned int m_count; // GUARDED_BY(m_mu);
111 bool m_fired; // GUARDED_BY(m_mu);
112};
113} // namespace ola
114#endif // INCLUDE_OLA_UTIL_WATCHDOG_H_
A 0 argument callback which can be called multiple times.
Definition Callback.h:129
Detects if an operation stalls.
Definition Watchdog.h:70
void Enable()
Enable the watchdog.
Definition Watchdog.cpp:34
void Kick()
Kick the watchdog to avoid a reset.
Definition Watchdog.cpp:47
Watchdog(unsigned int cycle_limit, Callback0< void > *reset_callback)
Create a new Watchdog.
Definition Watchdog.cpp:26
void Clock()
Check if the process has stalled due to a lack of Kick() calls.
Definition Watchdog.cpp:52
void Disable()
Disable the watchdog.
Definition Watchdog.cpp:41
Definition Mutex.h:41
The namespace containing all OLA symbols.
Definition Credentials.cpp:44