// 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 <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

#endif  // LIBBRILLO_BRILLO_VARIANT_DICTIONARY_H_
