manager.hpp (77e6fe7ae064915e73760a94ae2c674bc6d3ef8a) manager.hpp (9fc7912818a9fb62af1b7dfca6bd98a5f5377ea4)
1#pragma once
2
3#include "libpldm/pldm.h"
4
5#include "common/instance_id.hpp"
6#include "common/types.hpp"
7#include "event_manager.hpp"
8#include "platform_manager.hpp"

--- 87 unchanged lines hidden (view full) ---

96
97 /** @brief Helper function to stop sensor polling of the terminus TID
98 */
99 void stopSensorPolling(pldm_tid_t tid)
100 {
101 sensorManager.stopPolling(tid);
102 }
103
1#pragma once
2
3#include "libpldm/pldm.h"
4
5#include "common/instance_id.hpp"
6#include "common/types.hpp"
7#include "event_manager.hpp"
8#include "platform_manager.hpp"

--- 87 unchanged lines hidden (view full) ---

96
97 /** @brief Helper function to stop sensor polling of the terminus TID
98 */
99 void stopSensorPolling(pldm_tid_t tid)
100 {
101 sensorManager.stopPolling(tid);
102 }
103
104 /** @brief Sensor event handler funtion
104 /** @brief Sensor event handler function
105 *
106 * @param[in] request - Event message
107 * @param[in] payloadLength - Event message payload size
108 * @param[in] tid - Terminus ID
109 * @param[in] eventDataOffset - Event data offset
110 *
111 * @return PLDM error code: PLDM_SUCCESS when there is no error in handling
112 * the event
113 */
114 int handleSensorEvent(const pldm_msg* request, size_t payloadLength,
115 uint8_t /* formatVersion */, uint8_t tid,
116 size_t eventDataOffset)
117 {
118 auto eventData = reinterpret_cast<const uint8_t*>(request->payload) +
119 eventDataOffset;
120 auto eventDataSize = payloadLength - eventDataOffset;
105 *
106 * @param[in] request - Event message
107 * @param[in] payloadLength - Event message payload size
108 * @param[in] tid - Terminus ID
109 * @param[in] eventDataOffset - Event data offset
110 *
111 * @return PLDM error code: PLDM_SUCCESS when there is no error in handling
112 * the event
113 */
114 int handleSensorEvent(const pldm_msg* request, size_t payloadLength,
115 uint8_t /* formatVersion */, uint8_t tid,
116 size_t eventDataOffset)
117 {
118 auto eventData = reinterpret_cast<const uint8_t*>(request->payload) +
119 eventDataOffset;
120 auto eventDataSize = payloadLength - eventDataOffset;
121 eventManager.handlePlatformEvent(tid, 0x00, PLDM_SENSOR_EVENT,
122 eventData, eventDataSize);
121 eventManager.handlePlatformEvent(tid, PLDM_PLATFORM_EVENT_ID_NULL,
122 PLDM_SENSOR_EVENT, eventData,
123 eventDataSize);
123 return PLDM_SUCCESS;
124 }
125
124 return PLDM_SUCCESS;
125 }
126
127 /** @brief CPER event handler function
128 *
129 * @param[in] request - Event message
130 * @param[in] payloadLength - Event message payload size
131 * @param[in] tid - Terminus ID
132 * @param[in] eventDataOffset - Event data offset
133 *
134 * @return PLDM error code: PLDM_SUCCESS when there is no error in handling
135 * the event
136 */
137 int handleCperEvent(const pldm_msg* request, size_t payloadLength,
138 uint8_t /* formatVersion */, uint8_t tid,
139 size_t eventDataOffset)
140 {
141 auto eventData =
142 const_cast<const uint8_t*>(request->payload) + eventDataOffset;
143 auto eventDataSize = payloadLength - eventDataOffset;
144 eventManager.handlePlatformEvent(tid, PLDM_PLATFORM_EVENT_ID_NULL,
145 PLDM_CPER_EVENT, eventData,
146 eventDataSize);
147 return PLDM_SUCCESS;
148 }
149
126 private:
127 /** @brief List of discovered termini */
128 TerminiMapper termini{};
129
130 /** @brief Terminus interface for calling the hook functions */
131 TerminusManager terminusManager;
132
133 /** @brief Platform interface for calling the hook functions */
134 PlatformManager platformManager;
135
136 /** @brief Store platform manager handler */
137 SensorManager sensorManager;
138
139 /** @brief Store event manager handler */
140 EventManager eventManager;
141};
142} // namespace platform_mc
143} // namespace pldm
150 private:
151 /** @brief List of discovered termini */
152 TerminiMapper termini{};
153
154 /** @brief Terminus interface for calling the hook functions */
155 TerminusManager terminusManager;
156
157 /** @brief Platform interface for calling the hook functions */
158 PlatformManager platformManager;
159
160 /** @brief Store platform manager handler */
161 SensorManager sensorManager;
162
163 /** @brief Store event manager handler */
164 EventManager eventManager;
165};
166} // namespace platform_mc
167} // namespace pldm