Remove findStringName/Handle functions

Use the `find` functions in BiosStringTable.

Tested: all the code changes are about building bios tables.
tested on fp5280g2, with json
https://gist.github.com/wangzqbj/b24558331cb35d14fca3b555ef03e458

saw the built tables are as expected.

$ pldmtool bios GetBIOSTable -t 0
...
...
PLDM StringTable:
BIOSStringHandle : BIOSString
0 : CodeUpdatePolicy
1 : Concurrent
2 : Disruptive
3 : Led
4 : Model
5 : OUTLET
6 : Off
7 : On
8 : str_example3

$ pldmtool bios GetBIOSTable -t 1
...
...
PLDM AttributeTable:
AttributeHandle: 0, AttributeNameHandle: 0(CodeUpdatePolicy)
	AttributeType: BIOSEnumerationReadOnly
	NumberOfPossibleValues: 2
		PossibleValueStringHandle[0] = 1(Concurrent)
		PossibleValueStringHandle[1] = 2(Disruptive)
	NumberOfDefaultValues: 1
		DefaultValueStringHandleIndex[0] = 0, StringHandle = 1(Concurrent)
AttributeHandle: 1, AttributeNameHandle: 3(Led)
	AttributeType: BIOSEnumeration
	NumberOfPossibleValues: 2
		PossibleValueStringHandle[0] = 7(On)
		PossibleValueStringHandle[1] = 6(Off)
	NumberOfDefaultValues: 1
		DefaultValueStringHandleIndex[0] = 1, StringHandle = 6(Off)
AttributeHandle: 2, AttributeNameHandle: 5(OUTLET)
	AttributeType: BIOSInteger
	LowerBound: 0
	UpperBound: 68002
	ScalarIncrement: 1
	DefaultValue: 0
AttributeHandle: 3, AttributeNameHandle: 4(Model)
	AttributeType: BIOSString
	StringType: 0x01
	MinimumStringLength: 1
	MaximumStringLength: 100
	DefaultStringLength: 8
	DefaultString: FP5280G2
AttributeHandle: 4, AttributeNameHandle: 8(str_example3)
	AttributeType: BIOSStringReadOnly
	StringType: 0x00
	MinimumStringLength: 1
	MaximumStringLength: 100
	DefaultStringLength: 2
	DefaultString: ef

$ pldmtool bios GetBIOSTable -t 2
...
...
PLDM AttributeValueTable:
AttributeHandle: 0
	AttributeType: BIOSEnumerationReadOnly
	NumberOfCurrentValues: 1
	CurrentValueStringHandleIndex[0] = 0, StringHandle = 1(Concurrent)
AttributeHandle: 1
	AttributeType: BIOSEnumeration
	NumberOfCurrentValues: 1
	CurrentValueStringHandleIndex[0] = 1, StringHandle = 6(Off)
AttributeHandle: 2
	AttributeType: BIOSInteger
	CurrentValue: 0
AttributeHandle: 3
	AttributeType: BIOSString
	CurrentStringLength: 12
	CurrentString: powersupply0
AttributeHandle: 4
	AttributeType: BIOSStringReadOnly
	CurrentStringLength: 2
	CurrentString: ef

Signed-off-by: John Wang <wangzqbj@inspur.com>
Change-Id: Iba775caffcdfa51d780cd9c211572d3a359b80b4
diff --git a/libpldmresponder/bios.cpp b/libpldmresponder/bios.cpp
index 61b5e49..3f379cb 100644
--- a/libpldmresponder/bios.cpp
+++ b/libpldmresponder/bios.cpp
@@ -299,59 +299,6 @@
     return response;
 }
 
-/** @brief Find the string handle from the BIOS string table given the name
- *
- *  @param[in] name - name of the BIOS string
- *  @param[in] biosStringTable - the string table
- *  @return - uint16_t - handle of the string
- */
-StringHandle findStringHandle(const std::string& name,
-                              const BIOSTable& biosStringTable)
-{
-    Table table;
-    biosStringTable.load(table);
-    auto stringEntry = pldm_bios_table_string_find_by_string(
-        table.data(), table.size(), name.c_str());
-    if (stringEntry == nullptr)
-    {
-        std::cerr << "Reached end of BIOS string table,did not find the "
-                  << "handle for the string, STRING=" << name.c_str() << "\n";
-        throw InternalFailure();
-    }
-
-    return pldm_bios_table_string_entry_decode_handle(stringEntry);
-}
-
-/** @brief Find the string name from the BIOS string table for a string handle
- *
- *  @param[in] stringHdl - string handle
- *  @param[in] biosStringTable - the string table
- *
- *  @return - std::string - name of the corresponding BIOS string
- */
-std::string findStringName(StringHandle stringHdl,
-                           const BIOSTable& biosStringTable)
-{
-    Table table;
-    biosStringTable.load(table);
-    auto stringEntry = pldm_bios_table_string_find_by_handle(
-        table.data(), table.size(), stringHdl);
-    if (stringEntry == nullptr)
-    {
-        std::cerr << "Reached end of BIOS string table,did not find "
-                  << "string name for handle, STRING_HANDLE=" << stringHdl
-                  << "\n";
-        throw InternalFailure();
-    }
-    auto strLength =
-        pldm_bios_table_string_entry_decode_string_length(stringEntry);
-    std::vector<char> buffer(strLength + 1);
-    pldm_bios_table_string_entry_decode_string(stringEntry, buffer.data(),
-                                               buffer.size());
-
-    return std::string(buffer.data(), buffer.data() + strLength);
-}
-
 namespace bios_type_enum
 {
 
@@ -371,7 +318,7 @@
  */
 std::vector<uint8_t> findStrIndices(PossibleValuesByHandle possiVals,
                                     CurrentValues currVals,
-                                    const BIOSTable& biosStringTable)
+                                    const BIOSStringTable& biosStringTable)
 {
     std::vector<uint8_t> stringIndices;
 
@@ -380,9 +327,9 @@
         StringHandle curHdl;
         try
         {
-            curHdl = findStringHandle(currVal, biosStringTable);
+            curHdl = biosStringTable.findHandle(currVal);
         }
-        catch (InternalFailure& e)
+        catch (const std::exception& e)
         {
             std::cerr << "Exception fetching handle for the string, STRING="
                       << currVal.c_str() << "\n";
@@ -437,7 +384,8 @@
  *  @param[in,out] attributeTable - the attribute table
  *
  */
-void constructAttrTable(const BIOSTable& biosStringTable, Table& attributeTable)
+void constructAttrTable(const BIOSStringTable& biosStringTable,
+                        Table& attributeTable)
 {
     const auto& attributeMap = getValues();
     StringHandle strHandle;
@@ -446,9 +394,9 @@
     {
         try
         {
-            strHandle = findStringHandle(key, biosStringTable);
+            strHandle = biosStringTable.findHandle(key);
         }
-        catch (InternalFailure& e)
+        catch (const std::exception& e)
         {
             std::cerr << "Could not find handle for BIOS string, ATTRIBUTE="
                       << key.c_str() << "\n";
@@ -463,10 +411,10 @@
         {
             try
             {
-                auto hdl = findStringHandle(elem, biosStringTable);
+                auto hdl = biosStringTable.findHandle(elem);
                 possiValsByHdl.push_back(std::move(hdl));
             }
-            catch (InternalFailure& e)
+            catch (const std::exception& e)
             {
                 std::cerr << "Could not find handle for BIOS string, STRING="
                           << elem.c_str() << "\n";
@@ -494,7 +442,7 @@
 
 void constructAttrValueEntry(
     const struct pldm_bios_attr_table_entry* attrTableEntry,
-    const std::string& attrName, const BIOSTable& biosStringTable,
+    const std::string& attrName, const BIOSStringTable& biosStringTable,
     Table& attrValueTable)
 {
     CurrentValues currVals;
@@ -541,7 +489,8 @@
  *  @param[in,out] attributeTable - the attribute table
  *
  */
-void constructAttrTable(const BIOSTable& biosStringTable, Table& attributeTable)
+void constructAttrTable(const BIOSStringTable& biosStringTable,
+                        Table& attributeTable)
 {
     const auto& attributeMap = getValues();
     StringHandle strHandle;
@@ -549,9 +498,9 @@
     {
         try
         {
-            strHandle = findStringHandle(key, biosStringTable);
+            strHandle = biosStringTable.findHandle(key);
         }
-        catch (InternalFailure& e)
+        catch (const std::exception& e)
         {
             std::cerr << "Could not find handle for BIOS string, ATTRIBUTE="
                       << key.c_str() << "\n";
@@ -576,7 +525,7 @@
 
 void constructAttrValueEntry(const pldm_bios_attr_table_entry* attrTableEntry,
                              const std::string& attrName,
-                             const BIOSTable& biosStringTable,
+                             const BIOSStringTable& biosStringTable,
                              Table& attrValueTable)
 {
     std::ignore = biosStringTable;
@@ -616,7 +565,8 @@
  *  @param[in,out] attributeTable - the attribute table
  *
  */
-void constructAttrTable(const BIOSTable& biosStringTable, Table& attributeTable)
+void constructAttrTable(const BIOSStringTable& biosStringTable,
+                        Table& attributeTable)
 {
     const auto& attributeMap = getValues();
     StringHandle strHandle;
@@ -624,9 +574,9 @@
     {
         try
         {
-            strHandle = findStringHandle(key, biosStringTable);
+            strHandle = biosStringTable.findHandle(key);
         }
-        catch (InternalFailure& e)
+        catch (const std::exception& e)
         {
             std::cerr << "Could not find handle for BIOS string, ATTRIBUTE="
                       << key.c_str() << "\n";
@@ -650,7 +600,7 @@
 
 void constructAttrValueEntry(const pldm_bios_attr_table_entry* attrTableEntry,
                              const std::string& attrName,
-                             const BIOSTable& biosStringTable,
+                             const BIOSStringTable& biosStringTable,
                              Table& attrValueTable)
 {
     std::ignore = biosStringTable;
@@ -699,7 +649,7 @@
     }
 }
 
-using typeHandler = std::function<void(const BIOSTable& biosStringTable,
+using typeHandler = std::function<void(const BIOSStringTable& biosStringTable,
                                        Table& attributeTable)>;
 std::map<BIOSJsonName, typeHandler> attrTypeHandlers{
     {bios_parser::bIOSEnumJson, bios_type_enum::constructAttrTable},
@@ -715,7 +665,7 @@
  *  @param[in] request - Request message
  */
 Response getBIOSAttributeTable(BIOSTable& biosAttributeTable,
-                               const BIOSTable& biosStringTable,
+                               const BIOSStringTable& biosStringTable,
                                const char* biosJsonDir, const pldm_msg* request)
 {
     Response response(sizeof(pldm_msg_hdr) + PLDM_GET_BIOS_TABLE_MIN_RESP_BYTES,
@@ -778,7 +728,7 @@
 using AttrValTableEntryConstructHandler =
     std::function<void(const struct pldm_bios_attr_table_entry* tableEntry,
                        const std::string& attrName,
-                       const BIOSTable& biosStringTable, Table& table)>;
+                       const BIOSStringTable& biosStringTable, Table& table)>;
 
 using AttrType = uint8_t;
 const std::map<AttrType, AttrValTableEntryConstructHandler>
@@ -795,18 +745,21 @@
 
 void constructAttrValueTableEntry(
     const struct pldm_bios_attr_table_entry* attrEntry,
-    const BIOSTable& biosStringTable, Table& attributeValueTable)
+    const BIOSStringTable& biosStringTable, Table& attributeValueTable)
 {
-    auto attrName = findStringName(attrEntry->string_handle, biosStringTable);
-    if (attrName.empty())
+    auto stringHandle =
+        pldm_bios_table_attr_entry_decode_string_handle(attrEntry);
+    try
     {
-        std::cerr << "invalid string handle, STRING_HANDLE="
-                  << attrEntry->string_handle << "\n";
-        return;
+        auto attrName = biosStringTable.findString(stringHandle);
+        AttrValTableConstructMap.at(attrEntry->attr_type)(
+            attrEntry, attrName, biosStringTable, attributeValueTable);
     }
-
-    AttrValTableConstructMap.at(attrEntry->attr_type)(
-        attrEntry, attrName, biosStringTable, attributeValueTable);
+    catch (const std::exception& e)
+    {
+        std::cerr << "constructAttrValueTableEntry Error: " << e.what()
+                  << std::endl;
+    }
 }
 
 /** @brief Construct the BIOS attribute value table
@@ -818,7 +771,7 @@
  */
 Response getBIOSAttributeValueTable(BIOSTable& biosAttributeValueTable,
                                     const BIOSTable& biosAttributeTable,
-                                    const BIOSTable& biosStringTable,
+                                    const BIOSStringTable& biosStringTable,
                                     const pldm_msg* request)
 {
     Response response(sizeof(pldm_msg_hdr) + PLDM_GET_BIOS_TABLE_MIN_RESP_BYTES,