From df5e7ee155351ecd6e7ef52b1764149b5fcb258a Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 4 Jun 2014 10:50:57 +0100 Subject: Add language description -> enum. --- src/stl_binary_tables.cc | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/stl_binary_tables.cc') diff --git a/src/stl_binary_tables.cc b/src/stl_binary_tables.cc index 7fdad7b..df571c4 100644 --- a/src/stl_binary_tables.cc +++ b/src/stl_binary_tables.cc @@ -33,7 +33,6 @@ code (map >& m, F k, E v, string d) m[k] = STLBinaryCode (v, d); } - template E file_to_enum (F k, map > m, string name) @@ -72,6 +71,19 @@ enum_to_description (E v, map > const & m) return ""; } + +template +boost::optional +description_to_enum (string d, map > const & m) +{ + for (typename map >::const_iterator i = m.begin(); i != m.end(); ++i) { + if (i->second.description == d) { + return i->second.value; + } + } + + return boost::optional (); +} DisplayStandard STLBinaryTables::display_standard_file_to_enum (string s) const @@ -181,6 +193,12 @@ STLBinaryTables::comment_enum_to_description (Comment v) const return enum_to_description (v, _comment_map); } +boost::optional +STLBinaryTables::language_description_to_enum (string d) const +{ + return description_to_enum (d, _language_map); +} + STLBinaryTables::STLBinaryTables () { code (_display_standard_map, " ", DISPLAY_STANDARD_UNDEFINED, "Undefined"); -- cgit v1.2.3