OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2015 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_REMOTE_COMMANDS_REMOTE_COMMANDS_INVALIDAT OR_H_ | |
6 #define CHROME_BROWSER_CHROMEOS_POLICY_REMOTE_COMMANDS_REMOTE_COMMANDS_INVALIDAT OR_H_ | |
7 | |
8 #include "base/macros.h" | |
9 #include "base/memory/scoped_ptr.h" | |
10 #include "chrome/browser/chromeos/policy/affiliated_invalidation_service_provide r.h" | |
11 #include "chrome/browser/policy/cloud/remote_commands_invalidator_base.h" | |
12 #include "components/policy/core/common/cloud/cloud_policy_core.h" | |
13 #include "components/policy/core/common/cloud/cloud_policy_store.h" | |
14 | |
15 namespace invalidation { | |
16 class InvalidationService; | |
bartfab (slow)
2015/05/15 15:37:12
Nit: No need to forward-declare this as you use it
binjin
2015/05/15 15:46:46
Done.
| |
17 } | |
18 | |
19 namespace policy { | |
20 | |
21 // Implementation of invalidator for remote commands services. This class | |
22 // listens to events from CloudPolicyCore and CloudPolicyStore and interact | |
bartfab (slow)
2015/05/15 15:37:12
Nit: s/interact/interacts/
binjin
2015/05/15 15:46:46
Done.
| |
23 // with RemoteCommandsInvalidatorBase to complete the tasks. | |
24 class RemoteCommandsInvalidator : public RemoteCommandsInvalidatorBase, | |
25 public CloudPolicyCore::Observer, | |
26 public CloudPolicyStore::Observer { | |
27 public: | |
28 explicit RemoteCommandsInvalidator(CloudPolicyCore* core); | |
29 | |
30 // RemoteCommandsInvalidatorBase: | |
31 void OnInitialize() override; | |
32 void OnShutdown() override; | |
33 void OnStart() override; | |
34 void OnStop() override; | |
35 void DoRemoteCommandsFetch() override; | |
36 | |
37 // CloudPolicyCore::Observer: | |
38 void OnCoreConnected(CloudPolicyCore* core) override; | |
39 void OnRefreshSchedulerStarted(CloudPolicyCore* core) override; | |
40 void OnCoreDisconnecting(CloudPolicyCore* core) override; | |
41 void OnRemoteCommandsServiceStarted(CloudPolicyCore* core) override; | |
42 | |
43 // CloudPolicyStore::Observer: | |
44 void OnStoreLoaded(CloudPolicyStore* store) override; | |
45 void OnStoreError(CloudPolicyStore* store) override; | |
46 | |
47 private: | |
48 CloudPolicyCore* const core_; | |
49 | |
50 DISALLOW_COPY_AND_ASSIGN(RemoteCommandsInvalidator); | |
51 }; | |
52 | |
53 class AffiliatedRemoteCommandsInvalidator | |
54 : public AffiliatedInvalidationServiceProvider::Consumer { | |
55 public: | |
56 AffiliatedRemoteCommandsInvalidator( | |
57 CloudPolicyCore* core, | |
58 AffiliatedInvalidationServiceProvider* invalidation_service_provider); | |
59 ~AffiliatedRemoteCommandsInvalidator() override; | |
60 | |
61 // AffiliatedInvalidationServiceProvider::Consumer: | |
62 void OnInvalidationServiceSet( | |
63 invalidation::InvalidationService* invalidation_service) override; | |
64 | |
65 private: | |
66 CloudPolicyCore* const core_; | |
67 AffiliatedInvalidationServiceProvider* const invalidation_service_provider_; | |
68 | |
69 scoped_ptr<RemoteCommandsInvalidator> invalidator_; | |
70 | |
71 DISALLOW_COPY_AND_ASSIGN(AffiliatedRemoteCommandsInvalidator); | |
72 }; | |
73 | |
74 } // namespace policy | |
75 | |
76 #endif // CHROME_BROWSER_CHROMEOS_POLICY_REMOTE_COMMANDS_REMOTE_COMMANDS_INVALI DATOR_H_ | |
OLD | NEW |