1 #pragma once 2 3 #include "file_io_by_type.hpp" 4 5 namespace pldm 6 { 7 namespace responder 8 { 9 10 using 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 */ 17 class PelHandler : public FileHandler 18 { 19 public: 20 /** @brief PelHandler constructor 21 */ 22 PelHandler(uint32_t fileHandle) : FileHandler(fileHandle) 23 {} 24 25 virtual int writeFromMemory(uint32_t offset, uint32_t length, 26 uint64_t address, 27 oem_platform::Handler* /*oemPlatformHandler*/); 28 29 virtual int readIntoMemory(uint32_t offset, uint32_t& length, 30 uint64_t address, 31 oem_platform::Handler* /*oemPlatformHandler*/); 32 33 virtual int read(uint32_t offset, uint32_t& length, Response& response, 34 oem_platform::Handler* /*oemPlatformHandler*/); 35 36 virtual int write(const char* /*buffer*/, uint32_t /*offset*/, 37 uint32_t& /*length*/, 38 oem_platform::Handler* /*oemPlatformHandler*/) 39 { 40 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 41 } 42 43 virtual int fileAck(uint8_t fileStatus); 44 45 /** @brief method to store a pel file in tempfs and send 46 * d-bus notification to pel daemon that it is ready for consumption 47 * 48 * @param[in] pelFileName - the pel file path 49 */ 50 virtual int storePel(std::string&& pelFileName); 51 52 virtual int newFileAvailable(uint64_t /*length*/) 53 { 54 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 55 } 56 57 /** @brief PelHandler destructor 58 */ 59 ~PelHandler() 60 {} 61 }; 62 63 } // namespace responder 64 } // namespace pldm 65