// Copyright 2014 The Chromium OS 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 LIBBRILLO_BRILLO_VARIANT_DICTIONARY_H_ #define LIBBRILLO_BRILLO_VARIANT_DICTIONARY_H_ #include #include #include #include namespace brillo { using VariantDictionary = std::map; // GetVariantValueOrDefault tries to retrieve the named key from the dictionary // and convert it to the type T. If the value does not exist, or the type // conversion fails, the default value of type T is returned. template const T GetVariantValueOrDefault(const VariantDictionary& dictionary, const std::string& key) { VariantDictionary::const_iterator it = dictionary.find(key); if (it == dictionary.end()) { return T(); } return it->second.TryGet(); } } // namespace brillo #endif // LIBBRILLO_BRILLO_VARIANT_DICTIONARY_H_