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 */ PelHandler(uint32_t fileHandle)20 PelHandler(uint32_t fileHandle) : FileHandler(fileHandle) {} 21 22 virtual int writeFromMemory(uint32_t offset, uint32_t length, 23 uint64_t address, 24 oem_platform::Handler* /*oemPlatformHandler*/); 25 26 virtual int readIntoMemory(uint32_t offset, uint32_t length, 27 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*/); 32 33 virtual int write(const char* /*buffer*/, uint32_t /*offset*/, 34 uint32_t& /*length*/, 35 oem_platform::Handler* /*oemPlatformHandler*/); 36 37 virtual int fileAck(uint8_t fileStatus); 38 fileAckWithMetaData(uint8_t,uint32_t,uint32_t,uint32_t,uint32_t)39 virtual int fileAckWithMetaData( 40 uint8_t /*fileStatus*/, uint32_t /*metaDataValue1*/, 41 uint32_t /*metaDataValue2*/, uint32_t /*metaDataValue3*/, 42 uint32_t /*metaDataValue4*/) 43 { 44 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 45 } 46 47 /** @brief method to store a pel file in tempfs and send 48 * d-bus notification to pel daemon that it is ready for consumption 49 * 50 * @param[in] pelFileName - the pel file path 51 */ 52 virtual int storePel(std::string&& pelFileName); 53 newFileAvailable(uint64_t)54 virtual int newFileAvailable(uint64_t /*length*/) 55 { 56 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 57 } 58 newFileAvailableWithMetaData(uint64_t,uint32_t,uint32_t,uint32_t,uint32_t)59 virtual int newFileAvailableWithMetaData( 60 uint64_t /*length*/, uint32_t /*metaDataValue1*/, 61 uint32_t /*metaDataValue2*/, uint32_t /*metaDataValue3*/, 62 uint32_t /*metaDataValue4*/) 63 { 64 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 65 } 66 67 /** @brief PelHandler destructor 68 */ ~PelHandler()69 ~PelHandler() {} 70 }; 71 72 } // namespace responder 73 } // namespace pldm 74