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

Unified Diff: components/policy/core/common/cloud/cloud_policy_client.h

Issue 879233003: Initial RemoteCommandService (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remote-commands
Patch Set: more fixes Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: components/policy/core/common/cloud/cloud_policy_client.h
diff --git a/components/policy/core/common/cloud/cloud_policy_client.h b/components/policy/core/common/cloud/cloud_policy_client.h
index 4fefa864743c5f32ba3a94d1219c20c9f4d4bb97..f2377834bde0af7563c88f766d43f6c51d99b59d 100644
--- a/components/policy/core/common/cloud/cloud_policy_client.h
+++ b/components/policy/core/common/cloud/cloud_policy_client.h
@@ -18,6 +18,7 @@
#include "base/observer_list.h"
#include "base/time/time.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h"
+#include "components/policy/core/common/remote_commands/remote_command_job.h"
#include "components/policy/policy_export.h"
#include "policy/proto/device_management_backend.pb.h"
@@ -42,12 +43,17 @@ class POLICY_EXPORT CloudPolicyClient {
public:
// Maps a (policy type, settings entity ID) pair to its corresponding
// PolicyFetchResponse.
- typedef std::map<std::pair<std::string, std::string>,
- enterprise_management::PolicyFetchResponse*> ResponseMap;
+ using ResponseMap = std::map<std::pair<std::string, std::string>,
+ enterprise_management::PolicyFetchResponse*>;
// A callback which receives boolean status of an operation. If the operation
// succeeded, |status| is true.
- typedef base::Callback<void(bool status)> StatusCallback;
+ using StatusCallback = base::Callback<void(bool status)>;
+
+ // A callback which received fetched remote commands.
bartfab (slow) 2015/03/10 16:09:21 Nit: Sorry, I mistyped. I meant s/received/receive
binjin 2015/03/12 11:03:15 Done.
+ using RemoteCommandCallback = base::Callback<void(
+ DeviceManagementStatus,
+ const std::vector<enterprise_management::RemoteCommand>&)>;
// Observer interface for state and policy changes.
class POLICY_EXPORT Observer {
@@ -138,6 +144,17 @@ class POLICY_EXPORT CloudPolicyClient {
const enterprise_management::SessionStatusReportRequest* session_status,
const StatusCallback& callback);
+ // Attempts to fetch remote commands, with |last_command_id| being the last
+ // recorded command ID and |command_results| being results for previous
+ // commands which have not been reported yet. The |callback| will be called
+ // when the operation completes. A negative last command ID indicates that
bartfab (slow) 2015/03/10 16:09:20 Sorry, but a negative command ID cannot be used as
binjin 2015/03/12 11:03:15 Done.
+ // no command was recorded.
+ virtual void FetchRemoteCommands(
+ RemoteCommandJob::UniqueIDType last_command_id,
+ const std::vector<enterprise_management::RemoteCommandResult>&
+ command_results,
+ const RemoteCommandCallback& callback);
+
// Adds an observer to be called back upon policy and state changes.
void AddObserver(Observer* observer);
@@ -267,6 +284,14 @@ class POLICY_EXPORT CloudPolicyClient {
int net_error,
const enterprise_management::DeviceManagementResponse& response);
+ // Callback for remote command fetch requests.
+ void OnRemoteCommandsFetched(
+ const DeviceManagementRequestJob* job,
+ const RemoteCommandCallback& callback,
+ DeviceManagementStatus status,
+ int net_error,
+ const enterprise_management::DeviceManagementResponse& response);
+
// Helper to remove a job from request_jobs_.
void RemoveJob(const DeviceManagementRequestJob* job);

Powered by Google App Engine
This is Rietveld 408576698