Home | History | Annotate | Download | only in network
      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