blob: 1ba671d1e2c187f19cde7f2508e2941fdcde858e [file] [log] [blame]
#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.
*
* Watches of any type can be started.
*/
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;
};
} // namespace monitoring
} // namespace dbus
} // namespace phosphor