| // Copyright 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 CHROMEOS_NETWORK_POLICY_UTIL_H_ |
| #define CHROMEOS_NETWORK_POLICY_UTIL_H_ |
| |
| #include <map> |
| #include <string> |
| |
| #include "base/memory/scoped_ptr.h" |
| |
| namespace base { |
| class DictionaryValue; |
| } |
| |
| namespace chromeos { |
| |
| struct NetworkProfile; |
| |
| namespace policy_util { |
| |
| typedef std::map<std::string, const base::DictionaryValue*> GuidToPolicyMap; |
| |
| // Creates a Shill property dictionary from the given arguments. The resulting |
| // dictionary will be sent to Shill by the caller. Depending on the profile |
| // type, |policy| is interpreted as the user or device policy and |settings| as |
| // the user or shared settings. |policy| or |settings| can be NULL, but not |
| // both. |
| scoped_ptr<base::DictionaryValue> CreateShillConfiguration( |
| const NetworkProfile& profile, |
| const std::string& guid, |
| const base::DictionaryValue* policy, |
| const base::DictionaryValue* settings); |
| |
| // Returns the policy from |policies| matching |actual_network|, if any exists. |
| // Returns NULL otherwise. |actual_network| must be part of a ONC |
| // NetworkConfiguration. |
| const base::DictionaryValue* FindMatchingPolicy( |
| const GuidToPolicyMap& policies, |
| const base::DictionaryValue& actual_network); |
| |
| } // namespace policy_util |
| |
| } // namespace chromeos |
| |
| #endif // CHROMEOS_NETWORK_POLICY_UTIL_H_ |