| // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef ASH_DISPLAY_DISPLAY_PREF_UTIL_H |
| #define ASH_DISPLAY_DISPLAY_PREF_UTIL_H |
| |
| #include <map> |
| #include <string> |
| |
| #include "base/strings/string_piece.h" |
| |
| namespace ash { |
| |
| // Utility templates to create enum to string map and |
| // a function to find an enum value from a string. |
| template <typename T> |
| std::map<T, std::string>* CreateToStringMap(T k1, |
| const std::string& v1, |
| T k2, |
| const std::string& v2, |
| T k3, |
| const std::string& v3, |
| T k4, |
| const std::string& v4) { |
| std::map<T, std::string>* map = new std::map<T, std::string>(); |
| (*map)[k1] = v1; |
| (*map)[k2] = v2; |
| (*map)[k3] = v3; |
| (*map)[k4] = v4; |
| return map; |
| } |
| |
| template <typename T> |
| std::map<T, std::string>* CreateToStringMap(T k1, |
| const std::string& v1, |
| T k2, |
| const std::string& v2, |
| T k3, |
| const std::string& v3) { |
| std::map<T, std::string>* map = new std::map<T, std::string>(); |
| (*map)[k1] = v1; |
| (*map)[k2] = v2; |
| (*map)[k3] = v3; |
| return map; |
| } |
| |
| template <typename T> |
| bool ReverseFind(const std::map<T, std::string>* map, |
| const base::StringPiece& value, |
| T* key) { |
| typename std::map<T, std::string>::const_iterator iter = map->begin(); |
| for (; iter != map->end(); ++iter) { |
| if (iter->second == value) { |
| *key = iter->first; |
| return true; |
| } |
| } |
| return false; |
| } |
| |
| } // namespace ash |
| |
| #endif // ASH_DISPLAY_DISPLAY_PREF_UTIL_H |