blob: 2c425d1bc4602d99cdd9327bd862866b4426df7b [file] [log] [blame]
Sampa Misra18967162020-01-14 02:31:41 -06001#pragma once
2
3#include "file_io_by_type.hpp"
4
5namespace pldm
6{
7namespace responder
8{
9
10/** @class DumpHandler
11 *
12 * @brief Inherits and implements FileHandler. This class is used
13 * handle the dump offload/streaming from host to the destination via bmc
14 */
15class DumpHandler : public FileHandler
16{
17 public:
18 /** @brief DumpHandler constructor
19 */
Jayashankar Padathdb124362021-01-28 21:12:34 -060020 DumpHandler(uint32_t fileHandle, uint16_t fileType) :
21 FileHandler(fileHandle), dumpType(fileType)
George Liu6492f522020-06-16 10:34:05 +080022 {}
Sampa Misra18967162020-01-14 02:31:41 -060023
24 virtual int writeFromMemory(uint32_t offset, uint32_t length,
Sampa Misra69508502020-09-08 00:08:21 -050025 uint64_t address,
26 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra18967162020-01-14 02:31:41 -060027
Jayashankar Padathdb124362021-01-28 21:12:34 -060028 virtual int readIntoMemory(uint32_t offset, uint32_t& length,
29 uint64_t address,
30 oem_platform::Handler* /*oemPlatformHandler*/);
31
32 virtual int read(uint32_t offset, uint32_t& length, Response& response,
33 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra18967162020-01-14 02:31:41 -060034
Sampa Misra69508502020-09-08 00:08:21 -050035 virtual int write(const char* buffer, uint32_t offset, uint32_t& length,
36 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra18967162020-01-14 02:31:41 -060037
38 virtual int newFileAvailable(uint64_t length);
39
Jayashankar Padathdb124362021-01-28 21:12:34 -060040 virtual int fileAck(uint8_t fileStatus);
41
42 std::string findDumpObjPath(uint32_t fileHandle);
43 std::string getOffloadUri(uint32_t fileHandle);
Sampa Misra18967162020-01-14 02:31:41 -060044
45 /** @brief DumpHandler destructor
46 */
47 ~DumpHandler()
George Liu6492f522020-06-16 10:34:05 +080048 {}
Sampa Misra18967162020-01-14 02:31:41 -060049
50 private:
Jayashankar Padathdb124362021-01-28 21:12:34 -060051 static int fd; //!< fd to manage the dump offload to bmc
52 uint16_t dumpType; //!< type of the dump
Sampa Misra18967162020-01-14 02:31:41 -060053};
54
55} // namespace responder
56} // namespace pldm