blob: cb4a1ad558272bc2d0a4085fdbfa096244949a6d [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,
Sampa Misra69508502020-09-08 00:08:21 -050024 uint64_t address,
25 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra18967162020-01-14 02:31:41 -060026
27 virtual int readIntoMemory(uint32_t /*offset*/, uint32_t& /*length*/,
Sampa Misra69508502020-09-08 00:08:21 -050028 uint64_t /*address*/,
29 oem_platform::Handler* /*oemPlatformHandler*/)
Sampa Misra18967162020-01-14 02:31:41 -060030 {
31 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
32 }
33 virtual int read(uint32_t /*offset*/, uint32_t& /*length*/,
Sampa Misra69508502020-09-08 00:08:21 -050034 Response& /*response*/,
35 oem_platform::Handler* /*oemPlatformHandler*/)
Sampa Misra18967162020-01-14 02:31:41 -060036 {
37 return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
38 }
39
Sampa Misra69508502020-09-08 00:08:21 -050040 virtual int write(const char* buffer, uint32_t offset, uint32_t& length,
41 oem_platform::Handler* /*oemPlatformHandler*/);
Sampa Misra18967162020-01-14 02:31:41 -060042
43 virtual int newFileAvailable(uint64_t length);
44
Deepak Kodihallifd279e12020-02-02 05:20:43 -060045 virtual int fileAck(uint8_t /*fileStatus*/);
Sampa Misra18967162020-01-14 02:31:41 -060046
47 /** @brief DumpHandler destructor
48 */
49 ~DumpHandler()
George Liu6492f522020-06-16 10:34:05 +080050 {}
Sampa Misra18967162020-01-14 02:31:41 -060051
52 private:
53 static int fd; //!< fd to manage the dump offload to bmc
54};
55
56} // namespace responder
57} // namespace pldm