Stub for Listener class
This commit has stub for Listener class, which can be used to register
the events and handle the callback functionality for those events.
This commit only adds stub class for Listener.
Change-Id: I8731abc212239823e7062e3ee23f46a150b942a8
Signed-off-by: Anupama B R <anupama.b.r1@ibm.com>
diff --git a/vpd-manager/include/listener.hpp b/vpd-manager/include/listener.hpp
new file mode 100644
index 0000000..ad11152
--- /dev/null
+++ b/vpd-manager/include/listener.hpp
@@ -0,0 +1,37 @@
+#pragma once
+
+#include <sdbusplus/asio/object_server.hpp>
+
+#include <memory>
+
+namespace vpd
+{
+/**
+ * @brief Class to listen on events
+ *
+ * This class will be used for registering and handling events on the system.
+ */
+class Listener
+{
+ public:
+ /**
+ * Deleted methods for Listener
+ */
+ Listener(const Listener&) = delete;
+ Listener& operator=(const Listener&) = delete;
+ Listener& operator=(Listener&&) = delete;
+ Listener(Listener&&) = delete;
+
+ /**
+ * @brief Constructor
+ *
+ * @param[in] i_asioConnection - Dbus Connection.
+ */
+ Listener(
+ const std::shared_ptr<sdbusplus::asio::connection>& i_asioConnection);
+
+ private:
+ // Shared pointer to bus connection.
+ const std::shared_ptr<sdbusplus::asio::connection>& m_asioConnection;
+};
+} // namespace vpd
diff --git a/vpd-manager/meson.build b/vpd-manager/meson.build
index bb71f2b..a7f95c3 100644
--- a/vpd-manager/meson.build
+++ b/vpd-manager/meson.build
@@ -15,6 +15,7 @@
'src/backup_restore.cpp',
'src/gpio_monitor.cpp',
'src/event_logger.cpp',
+ 'src/listener.cpp',
]
vpd_manager_SOURCES = [
diff --git a/vpd-manager/oem-handler/ibm_handler.cpp b/vpd-manager/oem-handler/ibm_handler.cpp
index 49fafe2..745fa57 100644
--- a/vpd-manager/oem-handler/ibm_handler.cpp
+++ b/vpd-manager/oem-handler/ibm_handler.cpp
@@ -63,6 +63,11 @@
// set callback to detect any asset tag change
registerAssetTagChangeCallback();
+ // Instantiate Listener object
+ // ToDo: listening assetTag and HostState properties will move under
+ // Listener class
+ m_eventListener = std::make_shared<Listener>(m_asioConnection);
+
// set async timer to detect if system VPD is published on D-Bus.
SetTimerToDetectSVPDOnDbus();
diff --git a/vpd-manager/oem-handler/ibm_handler.hpp b/vpd-manager/oem-handler/ibm_handler.hpp
index a397f06..094c139 100644
--- a/vpd-manager/oem-handler/ibm_handler.hpp
+++ b/vpd-manager/oem-handler/ibm_handler.hpp
@@ -2,6 +2,7 @@
#include "backup_restore.hpp"
#include "gpio_monitor.hpp"
+#include "listener.hpp"
#include "worker.hpp"
#include <sdbusplus/asio/object_server.hpp>
@@ -178,5 +179,8 @@
// Shared pointer to bus connection.
const std::shared_ptr<sdbusplus::asio::connection>& m_asioConnection;
+
+ // Shared pointer to Listener object.
+ std::shared_ptr<Listener> m_eventListener;
};
} // namespace vpd
diff --git a/vpd-manager/src/listener.cpp b/vpd-manager/src/listener.cpp
new file mode 100644
index 0000000..d079258
--- /dev/null
+++ b/vpd-manager/src/listener.cpp
@@ -0,0 +1,9 @@
+#include "listener.hpp"
+
+namespace vpd
+{
+Listener::Listener(
+ const std::shared_ptr<sdbusplus::asio::connection>& i_asioConnection) :
+ m_asioConnection(i_asioConnection)
+{}
+} // namespace vpd