summaryrefslogtreecommitdiffstats
path: root/src/watch.hpp
blob: e36af9c4faf04bdf0dc439765a60b52c488cd0a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#pragma once

namespace phosphor
{
namespace dbus
{
namespace monitoring
{

/** @class Watch
 *  @brief Watch interface.
 *
 *  The start method is invoked by main() on all watches of any type
 *  at application startup, to allow watches to perform custom setup
 *  or initialization.  Typical implementations might register dbus
 *  callbacks or perform queries.
 *
 *  The callback method is invoked by main() on all watches of any
 *  type at application startup, after all watches have performed
 *  their setup.  Typical implementations will forward the call
 *  to their associated callback.
 */
class Watch
{
    public:
        Watch() = default;
        Watch(const Watch&) = default;
        Watch(Watch&&) = default;
        Watch& operator=(const Watch&) = default;
        Watch& operator=(Watch&&) = default;
        virtual ~Watch() = default;

        /** @brief Start the watch. */
        virtual void start() = 0;

        /** @brief Invoke the callback associated with the watch. */
        virtual void callback() = 0;

};

} // namespace monitoring
} // namespace dbus
} // namespace phosphor
OpenPOWER on IntegriCloud