blob: dbb5ba74f1c445fc12890ae44530ee06c1daf671 [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{
Jayashankar Padathe7cc8692022-09-06 13:26:22 -05009using DumpEntryInterface = std::string;
Sampa Misra18967162020-01-14 02:31:41 -060010
11/** @class DumpHandler
12 *
13 * @brief Inherits and implements FileHandler. This class is used
14 * handle the dump offload/streaming from host to the destination via bmc
15 */
16class DumpHandler : public FileHandler
17{
18 public:
19 /** @brief DumpHandler constructor
20 */
Jayashankar Padathdb124362021-01-28 21:12:34 -060021 DumpHandler(uint32_t fileHandle, uint16_t fileType) :
22 FileHandler(fileHandle), dumpType(fileType)
George Liu6492f522020-06-16 10:34:05 +080023 {}
Sampa Misra18967162020-01-14 02:31:41 -060024
25 virtual int writeFromMemory(uint32_t offset, uint32_t length,
Sampa Misra69508502020-09-08 00:08:21 -050026 uint64_t address,
27 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra18967162020-01-14 02:31:41 -060028
Jayashankar Padathdb124362021-01-28 21:12:34 -060029 virtual int readIntoMemory(uint32_t offset, uint32_t& length,
30 uint64_t address,
31 oem_platform::Handler* /*oemPlatformHandler*/);
32
33 virtual int read(uint32_t offset, uint32_t& length, Response& response,
34 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra18967162020-01-14 02:31:41 -060035
Sampa Misra69508502020-09-08 00:08:21 -050036 virtual int write(const char* buffer, uint32_t offset, uint32_t& length,
37 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra18967162020-01-14 02:31:41 -060038
39 virtual int newFileAvailable(uint64_t length);
40
Jayashankar Padathdb124362021-01-28 21:12:34 -060041 virtual int fileAck(uint8_t fileStatus);
42
43 std::string findDumpObjPath(uint32_t fileHandle);
44 std::string getOffloadUri(uint32_t fileHandle);
Sampa Misra18967162020-01-14 02:31:41 -060045
46 /** @brief DumpHandler destructor
47 */
Patrick Williams6da4f912023-05-10 07:50:53 -050048 ~DumpHandler() {}
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