Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(671)

Side by Side Diff: chrome/browser/chromeos/policy/device_cloud_policy_invalidator.h

Issue 822523003: Implement device-local account policy pushing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@f_2_442800_switch_device_cloud_policy_invalidator
Patch Set: Rebased. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 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 CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_CLOUD_POLICY_INVALIDATOR_H_
6 #define CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_CLOUD_POLICY_INVALIDATOR_H_
7
8 #include "base/basictypes.h"
9 #include "base/macros.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "chrome/browser/chromeos/policy/affiliated_invalidation_service_provide r.h"
12
13 namespace invalidation {
14 class InvalidationService;
15 }
16
17 namespace policy {
18
19 class CloudPolicyInvalidator;
20
21 // This class manages the lifetime of a device-global |CloudPolicyInvalidator|
22 // that handles device policy invalidations. It relies on an
23 // |AffiliatedInvalidationServiceProvider| to provide it with access to a shared
24 // |InvalidationService| to back the |CloudPolicyInvalidator|. Whenever the
25 // shared |InvalidationService| changes, the |CloudPolicyInvalidator| destroyed
26 // and re-created.
27 class DeviceCloudPolicyInvalidator
28 : public AffiliatedInvalidationServiceProvider::Consumer {
29 public:
30 explicit DeviceCloudPolicyInvalidator(
31 AffiliatedInvalidationServiceProvider* invalidation_service_provider);
32 ~DeviceCloudPolicyInvalidator() override;
33
34 // AffiliatedInvalidationServiceProvider::Consumer:
35 void OnInvalidationServiceSet(
36 invalidation::InvalidationService* invalidation_service) override;
37
38 CloudPolicyInvalidator* GetInvalidatorForTest() const;
39
40 private:
41 // Create a |CloudPolicyInvalidator| backed by the |invalidation_service|.
42 void CreateInvalidator(
43 invalidation::InvalidationService* invalidation_service);
44
45 // Destroy the current |CloudPolicyInvalidator|, if any.
46 void DestroyInvalidator();
47
48 AffiliatedInvalidationServiceProvider* invalidation_service_provider_;
49
50 // The highest invalidation version that was handled already.
51 int64 highest_handled_invalidation_version_;
52
53 // The current |CloudPolicyInvalidator|. nullptr if no connected invalidation
54 // service is available.
55 scoped_ptr<CloudPolicyInvalidator> invalidator_;
56
57 DISALLOW_COPY_AND_ASSIGN(DeviceCloudPolicyInvalidator);
58 };
59
60 } // namespace policy
61
62 #endif // CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_CLOUD_POLICY_INVALIDATOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698