blob: 34b880fa27f1e8a4a821545b95c544b4e0c563f2 [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 */
20 DumpHandler(uint32_t fileHandle) : FileHandler(fileHandle)
George Liu6492f522020-06-16 10:34:05 +080021 {}
Sampa Misra18967162020-01-14 02:31:41 -060022
23 virtual int writeFromMemory(uint32_t offset, uint32_t length,
24 uint64_t address);
25
26 virtual int readIntoMemory(uint32_t /*offset*/, uint32_t& /*length*/,
27 uint64_t /*address*/)
28 {
29 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
30 }
31 virtual int read(uint32_t /*offset*/, uint32_t& /*length*/,
32 Response& /*response*/)
33 {
34 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
35 }
36
37 virtual int write(const char* buffer, uint32_t offset, uint32_t& length);
38
39 virtual int newFileAvailable(uint64_t length);
40
Deepak Kodihallifd279e12020-02-02 05:20:43 -060041 virtual int fileAck(uint8_t /*fileStatus*/);
Sampa Misra18967162020-01-14 02:31:41 -060042
43 /** @brief DumpHandler destructor
44 */
45 ~DumpHandler()
George Liu6492f522020-06-16 10:34:05 +080046 {}
Sampa Misra18967162020-01-14 02:31:41 -060047
48 private:
49 static int fd; //!< fd to manage the dump offload to bmc
50};
51
52} // namespace responder
53} // namespace pldm