blob: b7a43b14787fd2589172292b5cbe078b967a99c0 [file] [log] [blame]
Sampa Misra854e61f2019-08-22 04:36:47 -05001#pragma once
2
3#include "file_io_by_type.hpp"
4
5namespace pldm
6{
7namespace responder
8{
9
Sampa Misra854e61f2019-08-22 04:36:47 -050010/** @class PelHandler
11 *
12 * @brief Inherits and implements FileHandler. This class is used
13 * to read/write pels.
14 */
15class PelHandler : public FileHandler
16{
17 public:
18 /** @brief PelHandler constructor
19 */
Patrick Williams6da4f912023-05-10 07:50:53 -050020 PelHandler(uint32_t fileHandle) : FileHandler(fileHandle) {}
Sampa Misra854e61f2019-08-22 04:36:47 -050021
22 virtual int writeFromMemory(uint32_t offset, uint32_t length,
Sampa Misra69508502020-09-08 00:08:21 -050023 uint64_t address,
24 oem_platform::Handler* /*oemPlatformHandler*/);
25
Deepak Kodihalli75e02f82019-11-20 02:51:05 -060026 virtual int readIntoMemory(uint32_t offset, uint32_t& length,
Sampa Misra69508502020-09-08 00:08:21 -050027 uint64_t address,
28 oem_platform::Handler* /*oemPlatformHandler*/);
29
30 virtual int read(uint32_t offset, uint32_t& length, Response& response,
31 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra854e61f2019-08-22 04:36:47 -050032
Sampa Misra18967162020-01-14 02:31:41 -060033 virtual int write(const char* /*buffer*/, uint32_t /*offset*/,
Sampa Misra69508502020-09-08 00:08:21 -050034 uint32_t& /*length*/,
George Liud37b4952021-06-28 15:14:29 +080035 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra18967162020-01-14 02:31:41 -060036
Deepak Kodihalli2da1bfe2019-12-14 08:28:09 -060037 virtual int fileAck(uint8_t fileStatus);
38
Sampa Misra854e61f2019-08-22 04:36:47 -050039 /** @brief method to store a pel file in tempfs and send
40 * d-bus notification to pel daemon that it is ready for consumption
41 *
42 * @param[in] pelFileName - the pel file path
43 */
44 virtual int storePel(std::string&& pelFileName);
45
Sampa Misra18967162020-01-14 02:31:41 -060046 virtual int newFileAvailable(uint64_t /*length*/)
47 {
48 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
49 }
50
Sampa Misra854e61f2019-08-22 04:36:47 -050051 /** @brief PelHandler destructor
52 */
Patrick Williams6da4f912023-05-10 07:50:53 -050053 ~PelHandler() {}
Sampa Misra854e61f2019-08-22 04:36:47 -050054};
55
56} // namespace responder
57} // namespace pldm