Roll WebRTC 8987:8989, Libjingle 8985:8990
[chromium-blink-merge.git] / ash / display / display_pref_util.h
blob5047774c479356fd7c901ce3c2877556da47a869
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef ASH_DISPLAY_DISPLAY_PREF_UTIL_H
6 #define ASH_DISPLAY_DISPLAY_PREF_UTIL_H
8 #include <map>
9 #include <string>
11 #include "base/strings/string_piece.h"
13 namespace ash {
15 // Utility templates to create enum to string map and
16 // a function to find an enum value from a string.
17 template<typename T>
18 std::map<T, std::string>* CreateToStringMap(T k1, const std::string& v1,
19 T k2, const std::string& v2,
20 T k3, const std::string& v3,
21 T k4, const std::string& v4) {
22 std::map<T, std::string>* map = new std::map<T, std::string>();
23 (*map)[k1] = v1;
24 (*map)[k2] = v2;
25 (*map)[k3] = v3;
26 (*map)[k4] = v4;
27 return map;
30 template<typename T>
31 std::map<T, std::string>* CreateToStringMap(T k1, const std::string& v1,
32 T k2, const std::string& v2,
33 T k3, const std::string& v3) {
34 std::map<T, std::string>* map = new std::map<T, std::string>();
35 (*map)[k1] = v1;
36 (*map)[k2] = v2;
37 (*map)[k3] = v3;
38 return map;
41 template<typename T>
42 bool ReverseFind(const std::map<T, std::string>* map,
43 const base::StringPiece& value,
44 T* key) {
45 typename std::map<T, std::string>::const_iterator iter = map->begin();
46 for (;
47 iter != map->end();
48 ++iter) {
49 if (iter->second == value) {
50 *key = iter->first;
51 return true;
54 return false;
57 } // namespace ash
59 #endif // ASH_DISPLAY_DISPLAY_PREF_UTIL_H