blob: 043454dc9fbcefc0ab8b1f77908ca263a4c9b387 [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 */
20 PelHandler(uint32_t fileHandle) : FileHandler(fileHandle)
George Liu6492f522020-06-16 10:34:05 +080021 {}
Sampa Misra854e61f2019-08-22 04:36:47 -050022
23 virtual int writeFromMemory(uint32_t offset, uint32_t length,
Sampa Misra69508502020-09-08 00:08:21 -050024 uint64_t address,
25 oem_platform::Handler* /*oemPlatformHandler*/);
26
Deepak Kodihalli75e02f82019-11-20 02:51:05 -060027 virtual int readIntoMemory(uint32_t offset, uint32_t& length,
Sampa Misra69508502020-09-08 00:08:21 -050028 uint64_t address,
29 oem_platform::Handler* /*oemPlatformHandler*/);
30
31 virtual int read(uint32_t offset, uint32_t& length, Response& response,
32 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra854e61f2019-08-22 04:36:47 -050033
Sampa Misra18967162020-01-14 02:31:41 -060034 virtual int write(const char* /*buffer*/, uint32_t /*offset*/,
Sampa Misra69508502020-09-08 00:08:21 -050035 uint32_t& /*length*/,
George Liud37b4952021-06-28 15:14:29 +080036 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra18967162020-01-14 02:31:41 -060037
Deepak Kodihalli2da1bfe2019-12-14 08:28:09 -060038 virtual int fileAck(uint8_t fileStatus);
39
Sampa Misra854e61f2019-08-22 04:36:47 -050040 /** @brief method to store a pel file in tempfs and send
41 * d-bus notification to pel daemon that it is ready for consumption
42 *
43 * @param[in] pelFileName - the pel file path
44 */
45 virtual int storePel(std::string&& pelFileName);
46
Sampa Misra18967162020-01-14 02:31:41 -060047 virtual int newFileAvailable(uint64_t /*length*/)
48 {
49 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
50 }
51
Sampa Misra854e61f2019-08-22 04:36:47 -050052 /** @brief PelHandler destructor
53 */
54 ~PelHandler()
George Liu6492f522020-06-16 10:34:05 +080055 {}
Sampa Misra854e61f2019-08-22 04:36:47 -050056};
57
58} // namespace responder
59} // namespace pldm