1*18967161SSampa Misra #pragma once 2*18967161SSampa Misra 3*18967161SSampa Misra #include "file_io_by_type.hpp" 4*18967161SSampa Misra 5*18967161SSampa Misra namespace pldm 6*18967161SSampa Misra { 7*18967161SSampa Misra namespace responder 8*18967161SSampa Misra { 9*18967161SSampa Misra 10*18967161SSampa Misra /** @class DumpHandler 11*18967161SSampa Misra * 12*18967161SSampa Misra * @brief Inherits and implements FileHandler. This class is used 13*18967161SSampa Misra * handle the dump offload/streaming from host to the destination via bmc 14*18967161SSampa Misra */ 15*18967161SSampa Misra class DumpHandler : public FileHandler 16*18967161SSampa Misra { 17*18967161SSampa Misra public: 18*18967161SSampa Misra /** @brief DumpHandler constructor 19*18967161SSampa Misra */ 20*18967161SSampa Misra DumpHandler(uint32_t fileHandle) : FileHandler(fileHandle) 21*18967161SSampa Misra { 22*18967161SSampa Misra } 23*18967161SSampa Misra 24*18967161SSampa Misra virtual int writeFromMemory(uint32_t offset, uint32_t length, 25*18967161SSampa Misra uint64_t address); 26*18967161SSampa Misra 27*18967161SSampa Misra virtual int readIntoMemory(uint32_t /*offset*/, uint32_t& /*length*/, 28*18967161SSampa Misra uint64_t /*address*/) 29*18967161SSampa Misra { 30*18967161SSampa Misra return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 31*18967161SSampa Misra } 32*18967161SSampa Misra virtual int read(uint32_t /*offset*/, uint32_t& /*length*/, 33*18967161SSampa Misra Response& /*response*/) 34*18967161SSampa Misra { 35*18967161SSampa Misra return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 36*18967161SSampa Misra } 37*18967161SSampa Misra 38*18967161SSampa Misra virtual int write(const char* buffer, uint32_t offset, uint32_t& length); 39*18967161SSampa Misra 40*18967161SSampa Misra virtual int newFileAvailable(uint64_t length); 41*18967161SSampa Misra 42*18967161SSampa Misra virtual int fileAck(uint8_t /*fileStatus*/) 43*18967161SSampa Misra { 44*18967161SSampa Misra return PLDM_ERROR_UNSUPPORTED_PLDM_CMD; 45*18967161SSampa Misra } 46*18967161SSampa Misra 47*18967161SSampa Misra /** @brief DumpHandler destructor 48*18967161SSampa Misra */ 49*18967161SSampa Misra ~DumpHandler() 50*18967161SSampa Misra { 51*18967161SSampa Misra } 52*18967161SSampa Misra 53*18967161SSampa Misra private: 54*18967161SSampa Misra static int fd; //!< fd to manage the dump offload to bmc 55*18967161SSampa Misra }; 56*18967161SSampa Misra 57*18967161SSampa Misra } // namespace responder 58*18967161SSampa Misra } // namespace pldm 59