1 #pragma once 2 3 #include "file_io_by_type.hpp" 4 5 namespace pldm 6 { 7 namespace responder 8 { 9 10 /** @class PelHandler 11 * 12 * @brief Inherits and implements FileHandler. This class is used 13 * to read/write pels. 14 */ 15 class PelHandler : public FileHandler 16 { 17 public: 18 /** @brief PelHandler constructor 19 */ 20 PelHandler(uint32_t fileHandle) : FileHandler(fileHandle) 21 {} 22 23 virtual int writeFromMemory(uint32_t offset, uint32_t length, 24 uint64_t address, 25 oem_platform::Handler* /*oemPlatformHandler*/); 26 27 virtual int readIntoMemory(uint32_t offset, uint32_t& length, 28 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*/); 33 34 virtual int write(const char* /*buffer*/, uint32_t /*offset*/, 35 uint32_t& /*length*/, 36 oem_platform::Handler* /*oemPlatformHandler*/); 37 38 virtual int fileAck(uint8_t fileStatus); 39 40 /** @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 47 virtual int newFileAvailable(uint64_t /*length*/) 48 { 49 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 50 } 51 52 /** @brief PelHandler destructor 53 */ 54 ~PelHandler() 55 {} 56 }; 57 58 } // namespace responder 59 } // namespace pldm 60