| John Wang | 95e6b3c | 2020-02-13 09:43:24 +0800 | [diff] [blame^] | 1 | #pragma once | 
|  | 2 |  | 
|  | 3 | #include "bios_attribute.hpp" | 
|  | 4 |  | 
|  | 5 | class TestBIOSIntegerAttribute; | 
|  | 6 |  | 
|  | 7 | namespace pldm | 
|  | 8 | { | 
|  | 9 | namespace responder | 
|  | 10 | { | 
|  | 11 | namespace bios | 
|  | 12 | { | 
|  | 13 |  | 
|  | 14 | /** @class BIOSIntegerAttribute | 
|  | 15 | *  @brief Associate integer entry(attr table and attribute value table) and | 
|  | 16 | *         dbus attribute | 
|  | 17 | */ | 
|  | 18 | class BIOSIntegerAttribute : public BIOSAttribute | 
|  | 19 | { | 
|  | 20 | public: | 
|  | 21 | friend class ::TestBIOSIntegerAttribute; | 
|  | 22 |  | 
|  | 23 | /** @brief Construct a bios integer attribute | 
|  | 24 | *  @param[in] entry - Json Object | 
|  | 25 | *  @param[in] dbusHandler - Dbus Handler | 
|  | 26 | */ | 
|  | 27 | BIOSIntegerAttribute(const Json& entry, DBusHandler* const dbusHandler); | 
|  | 28 |  | 
|  | 29 | /** @brief Set Attribute value On Dbus according to the attribute value | 
|  | 30 | *         entry | 
|  | 31 | *  @param[in] attrValueEntry - The attribute value entry | 
|  | 32 | *  @param[in] attrEntry - The attribute entry corresponding to the | 
|  | 33 | *                         attribute value entry | 
|  | 34 | *  @param[in] stringTable - The string table | 
|  | 35 | */ | 
|  | 36 | void | 
|  | 37 | setAttrValueOnDbus(const pldm_bios_attr_val_table_entry* attrValueEntry, | 
|  | 38 | const pldm_bios_attr_table_entry* attrEntry, | 
|  | 39 | const BIOSStringTable& stringTable) override; | 
|  | 40 |  | 
|  | 41 | /** @brief Construct corresponding entries at the end of the attribute table | 
|  | 42 | *         and attribute value tables | 
|  | 43 | *  @param[in] stringTable - The string Table | 
|  | 44 | *  @param[in,out] attrTable - The attribute table | 
|  | 45 | *  @param[in,out] attrValueTable - The attribute value table | 
|  | 46 | */ | 
|  | 47 | void constructEntry(const BIOSStringTable& stringTable, Table& attrTable, | 
|  | 48 | Table& attrValueTable) override; | 
|  | 49 |  | 
|  | 50 | private: | 
|  | 51 | /** @brief Integer field from json */ | 
|  | 52 | table::attribute::IntegerField integerInfo; | 
|  | 53 |  | 
|  | 54 | /** @brief Get pldm value from dbus propertyValue */ | 
|  | 55 | uint64_t getAttrValue(PropertyValue value); | 
|  | 56 |  | 
|  | 57 | /** @brief Get value on dbus */ | 
|  | 58 | uint64_t getAttrValue(); | 
|  | 59 | }; | 
|  | 60 |  | 
|  | 61 | } // namespace bios | 
|  | 62 | } // namespace responder | 
|  | 63 | } // namespace pldm |