118967161SSampa Misra #pragma once 218967161SSampa Misra 318967161SSampa Misra #include "file_io_by_type.hpp" 418967161SSampa Misra 518967161SSampa Misra namespace pldm 618967161SSampa Misra { 718967161SSampa Misra namespace responder 818967161SSampa Misra { 9e7cc8690SJayashankar Padath using DumpEntryInterface = std::string; 1018967161SSampa Misra 1118967161SSampa Misra /** @class DumpHandler 1218967161SSampa Misra * 1318967161SSampa Misra * @brief Inherits and implements FileHandler. This class is used 1418967161SSampa Misra * handle the dump offload/streaming from host to the destination via bmc 1518967161SSampa Misra */ 1618967161SSampa Misra class DumpHandler : public FileHandler 1718967161SSampa Misra { 1818967161SSampa Misra public: 1918967161SSampa Misra /** @brief DumpHandler constructor 2018967161SSampa Misra */ DumpHandler(uint32_t fileHandle,uint16_t fileType)21db12436aSJayashankar Padath DumpHandler(uint32_t fileHandle, uint16_t fileType) : 22db12436aSJayashankar Padath FileHandler(fileHandle), dumpType(fileType) 236492f524SGeorge Liu {} 2418967161SSampa Misra 2518967161SSampa Misra virtual int writeFromMemory(uint32_t offset, uint32_t length, 2669508503SSampa Misra uint64_t address, 2769508503SSampa Misra oem_platform::Handler* /*oemPlatformHandler*/); 2818967161SSampa Misra 29*56c78807SKamalkumar Patel virtual int readIntoMemory(uint32_t offset, uint32_t length, 30db12436aSJayashankar Padath uint64_t address, 31db12436aSJayashankar Padath oem_platform::Handler* /*oemPlatformHandler*/); 32db12436aSJayashankar Padath 33db12436aSJayashankar Padath virtual int read(uint32_t offset, uint32_t& length, Response& response, 34db12436aSJayashankar Padath oem_platform::Handler* /*oemPlatformHandler*/); 3518967161SSampa Misra 3669508503SSampa Misra virtual int write(const char* buffer, uint32_t offset, uint32_t& length, 3769508503SSampa Misra oem_platform::Handler* /*oemPlatformHandler*/); 3818967161SSampa Misra 3918967161SSampa Misra virtual int newFileAvailable(uint64_t length); 4018967161SSampa Misra 41db12436aSJayashankar Padath virtual int fileAck(uint8_t fileStatus); 42db12436aSJayashankar Padath 43db12436aSJayashankar Padath std::string findDumpObjPath(uint32_t fileHandle); 44db12436aSJayashankar Padath std::string getOffloadUri(uint32_t fileHandle); 4518967161SSampa Misra 4618967161SSampa Misra /** @brief DumpHandler destructor 4718967161SSampa Misra */ ~DumpHandler()486da4f91bSPatrick Williams ~DumpHandler() {} 4918967161SSampa Misra 5018967161SSampa Misra private: 5118967161SSampa Misra static int fd; //!< fd to manage the dump offload to bmc 52db12436aSJayashankar Padath uint16_t dumpType; //!< type of the dump 5318967161SSampa Misra }; 5418967161SSampa Misra 5518967161SSampa Misra } // namespace responder 5618967161SSampa Misra } // namespace pldm 57