summaryrefslogtreecommitdiffstats
path: root/src/monitor.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/monitor.hpp')
-rw-r--r--src/monitor.hpp40
1 files changed, 37 insertions, 3 deletions
diff --git a/src/monitor.hpp b/src/monitor.hpp
index 5256582..63afebe 100644
--- a/src/monitor.hpp
+++ b/src/monitor.hpp
@@ -11,6 +11,12 @@ namespace dbus
namespace monitoring
{
+/**
+ * @class Monitor
+ * @brief OpenBMC DBus Monitoring application
+ * @details A configurable application to perform a set of actions based on one
+ * or more conditions for items within a group
+ */
class Monitor
{
public:
@@ -21,15 +27,33 @@ class Monitor
Monitor& operator=(Monitor&&) = default;
~Monitor() = default;
+ /**
+ * @brief Constructs monitor object
+ *
+ * @param[in] bus - Dbus bus object
+ */
explicit Monitor(sdbusplus::bus::bus& bus);
+ /**
+ * @brief Process events triggered by the application starting
+ */
void processStart() noexcept;
+ /**
+ * @brief Handle an event being processed
+ *
+ * @param[in] msg - Dbus msg
+ * @param[in] event - Event to be handled
+ * @param[in] eventDef - The event's full definition
+ */
void handleEvent(sdbusplus::message::message& msg,
const Event& event,
const std::tuple<std::vector<std::shared_ptr<Event>>,
std::vector<Action>>& eventDef);
+ /**
+ * @brief An event's set of arguments
+ */
using eventArg = std::tuple<Monitor*,
const SignalEvent*,
const std::tuple<
@@ -37,16 +61,26 @@ class Monitor
std::vector<Action>>*>;
private:
+ /** @brief Connection for sdbusplus bus */
sdbusplus::bus::bus& bus;
-
+ /** @brief List of events to process */
static const std::vector<
std::tuple<std::vector<std::shared_ptr<Event>>,
std::vector<Action>>> events;
-
+ /** @brief List of event arguments */
std::vector<std::unique_ptr<eventArg>> eventArgs;
-
+ /** @brief list of Dbus matches for callbacks */
std::vector<sdbusplus::server::match::match> matches;
+ /**
+ * @brief Handle an event signal
+ *
+ * @param[in] msg - Data associated with the subscribed signal
+ * @param[in] data - Pointer to the event items's data
+ * @param[in] err - Contains any sdbus error reference if occurred
+ *
+ * @return 0
+ */
static int handleSignal(sd_bus_message* msg,
void* data,
sd_bus_error* err);
OpenPOWER on IntegriCloud