1 #pragma once
2 
3 namespace phosphor
4 {
5 namespace dbus
6 {
7 namespace monitoring
8 {
9 
10 /** @class Watch
11  *  @brief Watch interface.
12  *
13  *  The start method is invoked by main() on all watches of any type
14  *  at application startup, to allow watches to perform custom setup
15  *  or initialization.  Typical implementations might register dbus
16  *  callbacks or perform queries.
17  *
18  *  Watches of any type can be started.
19  */
20 class Watch
21 {
22     public:
23         Watch() = default;
24         Watch(const Watch&) = default;
25         Watch(Watch&&) = default;
26         Watch& operator=(const Watch&) = default;
27         Watch& operator=(Watch&&) = default;
28         virtual ~Watch() = default;
29 
30         /** @brief Start the watch. */
31         virtual void start() = 0;
32 };
33 
34 } // namespace monitoring
35 } // namespace dbus
36 } // namespace phosphor
37