blob: cb4a1ad558272bc2d0a4085fdbfa096244949a6d [file] [log] [blame]
#pragma once
#include "file_io_by_type.hpp"
namespace pldm
{
namespace responder
{
/** @class DumpHandler
*
* @brief Inherits and implements FileHandler. This class is used
* handle the dump offload/streaming from host to the destination via bmc
*/
class DumpHandler : public FileHandler
{
public:
/** @brief DumpHandler constructor
*/
DumpHandler(uint32_t fileHandle) : FileHandler(fileHandle)
{}
virtual int writeFromMemory(uint32_t offset, uint32_t length,
uint64_t address,
oem_platform::Handler* /*oemPlatformHandler*/);
virtual int readIntoMemory(uint32_t /*offset*/, uint32_t& /*length*/,
uint64_t /*address*/,
oem_platform::Handler* /*oemPlatformHandler*/)
{
return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
}
virtual int read(uint32_t /*offset*/, uint32_t& /*length*/,
Response& /*response*/,
oem_platform::Handler* /*oemPlatformHandler*/)
{
return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
}
virtual int write(const char* buffer, uint32_t offset, uint32_t& length,
oem_platform::Handler* /*oemPlatformHandler*/);
virtual int newFileAvailable(uint64_t length);
virtual int fileAck(uint8_t /*fileStatus*/);
/** @brief DumpHandler destructor
*/
~DumpHandler()
{}
private:
static int fd; //!< fd to manage the dump offload to bmc
};
} // namespace responder
} // namespace pldm