1 #pragma once 2 3 #include "file_io_by_type.hpp" 4 5 namespace pldm 6 { 7 8 namespace responder 9 { 10 11 /** @class ProgressCodeHandler 12 * 13 * @brief Inherits and implemented FileHandler. This class is used 14 * to read the Progress SRC's from the Host. 15 */ 16 class ProgressCodeHandler : public FileHandler 17 { 18 public: 19 /** @brief ProgressCodeHandler constructor 20 */ 21 ProgressCodeHandler(uint32_t fileHandle) : FileHandler(fileHandle) {} 22 23 int writeFromMemory(uint32_t /*offset*/, uint32_t /*length*/, 24 uint64_t /*address*/, 25 oem_platform::Handler* /*oemPlatformHandler*/) override 26 { 27 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 28 } 29 30 int write(const char* buffer, uint32_t offset, uint32_t& length, 31 oem_platform::Handler* oemPlatformHandler) override; 32 33 int readIntoMemory(uint32_t /*offset*/, uint32_t& /*length*/, 34 uint64_t /*address*/, 35 oem_platform::Handler* /*oemPlatformHandler*/) override 36 { 37 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 38 } 39 40 int read(uint32_t /*offset*/, uint32_t& /*length*/, Response& /*response*/, 41 oem_platform::Handler* /*oemPlatformHandler*/) override 42 { 43 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 44 } 45 46 int fileAck(uint8_t /*fileStatus*/) override 47 { 48 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 49 } 50 51 int newFileAvailable(uint64_t /*length*/) override 52 { 53 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 54 } 55 56 /** @brief method to set the dbus Raw value Property with 57 * the obtained progress code from the host. 58 * 59 * @param[in] progressCodeBuffer - the progress Code SRC Buffer 60 */ 61 virtual int setRawBootProperty( 62 const std::tuple<uint64_t, std::vector<uint8_t>>& progressCodeBuffer); 63 64 /** @brief ProgressCodeHandler destructor 65 */ 66 67 ~ProgressCodeHandler() {} 68 }; 69 70 } // namespace responder 71 } // namespace pldm 72