blob: 3d5019a035cefa42d41c98656506a3a4b195d820 [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
10using namespace pldm::responder::dma;
11
12/** @class PelHandler
13 *
14 * @brief Inherits and implements FileHandler. This class is used
15 * to read/write pels.
16 */
17class PelHandler : public FileHandler
18{
19 public:
20 /** @brief PelHandler constructor
21 */
22 PelHandler(uint32_t fileHandle) : FileHandler(fileHandle)
23 {
24 }
25
26 virtual int writeFromMemory(uint32_t offset, uint32_t length,
27 uint64_t address);
Deepak Kodihalli75e02f82019-11-20 02:51:05 -060028 virtual int readIntoMemory(uint32_t offset, uint32_t& length,
Deepak Kodihallif6d3a832019-11-19 07:00:29 -060029 uint64_t address);
Deepak Kodihalli75e02f82019-11-20 02:51:05 -060030 virtual int read(uint32_t offset, uint32_t& length, Response& response);
Sampa Misra854e61f2019-08-22 04:36:47 -050031
Sampa Misra18967162020-01-14 02:31:41 -060032 virtual int write(const char* /*buffer*/, uint32_t /*offset*/,
33 uint32_t& /*length*/)
34 {
35 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
36 }
37
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()
55 {
56 }
57};
58
59} // namespace responder
60} // namespace pldm