1 #pragma once
2 
3 #include "file_io_by_type.hpp"
4 
5 namespace pldm
6 {
7 namespace responder
8 {
9 
10 using namespace pldm::responder::dma;
11 
12 /** @class PelHandler
13  *
14  *  @brief Inherits and implements FileHandler. This class is used
15  *  to read/write pels.
16  */
17 class PelHandler : public FileHandler
18 {
19   public:
20     /** @brief PelHandler constructor
21      */
22     PelHandler(uint32_t fileHandle) : FileHandler(fileHandle)
23     {
24     }
25 
26     virtual int writeFromMemory(uint32_t offset, uint32_t length,
27                                 uint64_t address);
28     virtual int readIntoMemory(uint32_t offset, uint32_t length,
29                                uint64_t address);
30 
31     /** @brief method to store a pel file in tempfs and send
32      *  d-bus notification to pel daemon that it is ready for consumption
33      *
34      *  @param[in] pelFileName - the pel file path
35      */
36     virtual int storePel(std::string&& pelFileName);
37 
38     /** @brief PelHandler destructor
39      */
40     ~PelHandler()
41     {
42     }
43 };
44 
45 } // namespace responder
46 } // namespace pldm
47