• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 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.
4 
5 #ifndef CHROMEOS_NETWORK_POLICY_UTIL_H_
6 #define CHROMEOS_NETWORK_POLICY_UTIL_H_
7 
8 #include <map>
9 #include <string>
10 
11 #include "base/memory/scoped_ptr.h"
12 
13 namespace base {
14 class DictionaryValue;
15 }
16 
17 namespace chromeos {
18 
19 struct NetworkProfile;
20 
21 namespace policy_util {
22 
23 typedef std::map<std::string, const base::DictionaryValue*> GuidToPolicyMap;
24 
25 // Creates a Shill property dictionary from the given arguments. The resulting
26 // dictionary will be sent to Shill by the caller. Depending on the profile
27 // type, |policy| is interpreted as the user or device policy and |settings| as
28 // the user or shared settings. |policy| or |settings| can be NULL, but not
29 // both.
30 scoped_ptr<base::DictionaryValue> CreateShillConfiguration(
31     const NetworkProfile& profile,
32     const std::string& guid,
33     const base::DictionaryValue* policy,
34     const base::DictionaryValue* settings);
35 
36 // Returns the policy from |policies| matching |actual_network|, if any exists.
37 // Returns NULL otherwise. |actual_network| must be part of a ONC
38 // NetworkConfiguration.
39 const base::DictionaryValue* FindMatchingPolicy(
40     const GuidToPolicyMap& policies,
41     const base::DictionaryValue& actual_network);
42 
43 }  // namespace policy_util
44 
45 }  // namespace chromeos
46 
47 #endif  // CHROMEOS_NETWORK_POLICY_UTIL_H_
48