Chromium Code Reviews| Index: chrome/browser/chromeos/policy/remote_commands/remote_commands_invalidator.h |
| diff --git a/chrome/browser/chromeos/policy/remote_commands/remote_commands_invalidator.h b/chrome/browser/chromeos/policy/remote_commands/remote_commands_invalidator.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e311b1128811fdc77f114c57c5857058a1e0203c |
| --- /dev/null |
| +++ b/chrome/browser/chromeos/policy/remote_commands/remote_commands_invalidator.h |
| @@ -0,0 +1,76 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROME_BROWSER_CHROMEOS_POLICY_REMOTE_COMMANDS_REMOTE_COMMANDS_INVALIDATOR_H_ |
| +#define CHROME_BROWSER_CHROMEOS_POLICY_REMOTE_COMMANDS_REMOTE_COMMANDS_INVALIDATOR_H_ |
| + |
| +#include "base/macros.h" |
| +#include "base/memory/scoped_ptr.h" |
| +#include "chrome/browser/chromeos/policy/affiliated_invalidation_service_provider.h" |
| +#include "chrome/browser/policy/cloud/remote_commands_invalidator_base.h" |
| +#include "components/policy/core/common/cloud/cloud_policy_core.h" |
| +#include "components/policy/core/common/cloud/cloud_policy_store.h" |
| + |
| +namespace invalidation { |
| +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.
|
| +} |
| + |
| +namespace policy { |
| + |
| +// Implementation of invalidator for remote commands services. This class |
| +// 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.
|
| +// with RemoteCommandsInvalidatorBase to complete the tasks. |
| +class RemoteCommandsInvalidator : public RemoteCommandsInvalidatorBase, |
| + public CloudPolicyCore::Observer, |
| + public CloudPolicyStore::Observer { |
| + public: |
| + explicit RemoteCommandsInvalidator(CloudPolicyCore* core); |
| + |
| + // RemoteCommandsInvalidatorBase: |
| + void OnInitialize() override; |
| + void OnShutdown() override; |
| + void OnStart() override; |
| + void OnStop() override; |
| + void DoRemoteCommandsFetch() override; |
| + |
| + // CloudPolicyCore::Observer: |
| + void OnCoreConnected(CloudPolicyCore* core) override; |
| + void OnRefreshSchedulerStarted(CloudPolicyCore* core) override; |
| + void OnCoreDisconnecting(CloudPolicyCore* core) override; |
| + void OnRemoteCommandsServiceStarted(CloudPolicyCore* core) override; |
| + |
| + // CloudPolicyStore::Observer: |
| + void OnStoreLoaded(CloudPolicyStore* store) override; |
| + void OnStoreError(CloudPolicyStore* store) override; |
| + |
| + private: |
| + CloudPolicyCore* const core_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(RemoteCommandsInvalidator); |
| +}; |
| + |
| +class AffiliatedRemoteCommandsInvalidator |
| + : public AffiliatedInvalidationServiceProvider::Consumer { |
| + public: |
| + AffiliatedRemoteCommandsInvalidator( |
| + CloudPolicyCore* core, |
| + AffiliatedInvalidationServiceProvider* invalidation_service_provider); |
| + ~AffiliatedRemoteCommandsInvalidator() override; |
| + |
| + // AffiliatedInvalidationServiceProvider::Consumer: |
| + void OnInvalidationServiceSet( |
| + invalidation::InvalidationService* invalidation_service) override; |
| + |
| + private: |
| + CloudPolicyCore* const core_; |
| + AffiliatedInvalidationServiceProvider* const invalidation_service_provider_; |
| + |
| + scoped_ptr<RemoteCommandsInvalidator> invalidator_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(AffiliatedRemoteCommandsInvalidator); |
| +}; |
| + |
| +} // namespace policy |
| + |
| +#endif // CHROME_BROWSER_CHROMEOS_POLICY_REMOTE_COMMANDS_REMOTE_COMMANDS_INVALIDATOR_H_ |