1 #pragma once
2 
3 #include "file_io_by_type.hpp"
4 
5 namespace pldm
6 {
7 
8 namespace responder
9 {
10 
11 /** @class ProgressCodeHandler
12  *
13  * @brief Inherits and implemented FileHandler. This class is used
14  * to read the Progress SRC's from the Host.
15  */
16 class ProgressCodeHandler : public FileHandler
17 {
18   public:
19     /** @brief ProgressCodeHandler constructor
20      */
21     ProgressCodeHandler(uint32_t fileHandle) : FileHandler(fileHandle)
22     {}
23 
24     int writeFromMemory(uint32_t /*offset*/, uint32_t /*length*/,
25                         uint64_t /*address*/,
26                         oem_platform::Handler* /*oemPlatformHandler*/) override
27     {
28         return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
29     }
30 
31     int write(const char* buffer, uint32_t offset, uint32_t& length,
32               oem_platform::Handler* oemPlatformHandler) override;
33 
34     int readIntoMemory(uint32_t /*offset*/, uint32_t& /*length*/,
35                        uint64_t /*address*/,
36                        oem_platform::Handler* /*oemPlatformHandler*/) override
37     {
38         return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
39     }
40 
41     int read(uint32_t /*offset*/, uint32_t& /*length*/, Response& /*response*/,
42              oem_platform::Handler* /*oemPlatformHandler*/) override
43     {
44         return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
45     }
46 
47     int fileAck(uint8_t /*fileStatus*/) override
48     {
49         return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
50     }
51 
52     int newFileAvailable(uint64_t /*length*/) override
53     {
54         return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
55     }
56 
57     /** @brief method to set the dbus Raw value Property with
58      * the obtained progress code from the host.
59      *
60      *  @param[in] progressCodeBuffer - the progress Code SRC Buffer
61      */
62     virtual int setRawBootProperty(
63         const std::tuple<uint64_t, std::vector<uint8_t>>& progressCodeBuffer);
64 
65     /** @brief ProgressCodeHandler destructor
66      */
67 
68     ~ProgressCodeHandler()
69     {}
70 };
71 
72 } // namespace responder
73 } // namespace pldm
74