13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// found in the LICENSE file.
43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#ifndef CHROMEOS_NETWORK_NETWORK_POLICY_OBSERVER_H_
63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define CHROMEOS_NETWORK_NETWORK_POLICY_OBSERVER_H_
73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include <string>
93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "base/basictypes.h"
113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)namespace chromeos {
133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class NetworkPolicyObserver {
153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) public:
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // Called when the policy for |userhash| was set (also when it was updated).
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // Note that the policy might not have been applied yet at that time.
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // An empty |userhash| designates the device policy.
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void PolicyChanged(const std::string& userhash) {};
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // Called every time a network is create or updated because of a policy.
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void PolicyApplied(const std::string& service_path) {};
233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) protected:
253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  virtual ~NetworkPolicyObserver() {};
263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) private:
283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  DISALLOW_ASSIGN(NetworkPolicyObserver);
293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)};
303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}  // namespace chromeos
323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif  // CHROMEOS_NETWORK_NETWORK_POLICY_OBSERVER_H_
34