1 #pragma once
2 
3 #include "file_io_by_type.hpp"
4 
5 namespace pldm
6 {
7 namespace responder
8 {
9 using vpdFileType = uint16_t;
10 /** @class keywordFileHandler
11  *
12  *  @brief Inherits and implements FileHandler. This class is used
13  *  to read #D keyword file
14  */
15 class keywordHandler : public FileHandler
16 {
17   public:
18     /** @brief Handler constructor
19      */
20     keywordHandler(uint32_t fileHandle, uint16_t fileType) :
21         FileHandler(fileHandle), vpdFileType(fileType)
22     {}
23     virtual int writeFromMemory(uint32_t /*offset*/, uint32_t /*length*/,
24                                 uint64_t /*address*/,
25                                 oem_platform::Handler* /*oemPlatformHandler*/)
26     {
27         return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
28     }
29     virtual int readIntoMemory(uint32_t /*offset*/, uint32_t /*length*/,
30                                uint64_t /*address*/,
31                                oem_platform::Handler* /*oemPlatformHandler*/)
32     {
33         return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
34     }
35     virtual int read(uint32_t offset, uint32_t& length, Response& response,
36                      oem_platform::Handler* /*oemPlatformHandler*/);
37     virtual int write(const char* /*buffer*/, uint32_t /*offset*/,
38                       uint32_t& /*length*/,
39                       oem_platform::Handler* /*oemPlatformHandler*/)
40     {
41         return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
42     }
43     virtual int fileAck(uint8_t /*fileStatus*/)
44     {
45         return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
46     }
47     virtual int newFileAvailable(uint64_t /*length*/)
48     {
49         return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
50     }
51     virtual int fileAckWithMetaData(uint8_t /*fileStatus*/,
52                                     uint32_t /*metaDataValue1*/,
53                                     uint32_t /*metaDataValue2*/,
54                                     uint32_t /*metaDataValue3*/,
55                                     uint32_t /*metaDataValue4*/)
56     {
57         return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
58     }
59     virtual int newFileAvailableWithMetaData(uint64_t /*length*/,
60                                              uint32_t /*metaDataValue1*/,
61                                              uint32_t /*metaDataValue2*/,
62                                              uint32_t /*metaDataValue3*/,
63                                              uint32_t /*metaDataValue4*/)
64     {
65         return PLDM_ERROR_UNSUPPORTED_PLDM_CMD;
66     }
67     /** @brief keywordHandler destructor
68      */
69     ~keywordHandler() {}
70 
71   private:
72     uint16_t vpdFileType; //!< type of the VPD file
73 };
74 } // namespace responder
75 } // namespace pldm
76