blob: 0b71e9cbb0c6276f7b140658f2cfb968779a09f0 [file] [log] [blame]
// 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.
#include <map>
#include <string>
#include <brillo/any.h>
#include <brillo/brillo_export.h>
namespace brillo {
using VariantDictionary = std::map<std::string, brillo::Any>;
// 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<typename T>
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<T>();
} // namespace brillo