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