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

Side by Side Diff: components/policy/core/common/cloud/cloud_policy_client.h

Issue 885653007: Modify CloudPolicyClient to support multiple concurrent requests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More review feedback 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
« no previous file with comments | « no previous file | components/policy/core/common/cloud/cloud_policy_client.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_POLICY_CLIENT_H_ 5 #ifndef COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_POLICY_CLIENT_H_
6 #define COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_POLICY_CLIENT_H_ 6 #define COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_POLICY_CLIENT_H_
7 7
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
11 #include <utility> 11 #include <utility>
12 #include <vector> 12 #include <vector>
13 13
14 #include "base/basictypes.h" 14 #include "base/basictypes.h"
15 #include "base/callback.h" 15 #include "base/callback.h"
16 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
17 #include "base/memory/scoped_vector.h"
17 #include "base/observer_list.h" 18 #include "base/observer_list.h"
18 #include "base/time/time.h" 19 #include "base/time/time.h"
19 #include "components/policy/core/common/cloud/cloud_policy_constants.h" 20 #include "components/policy/core/common/cloud/cloud_policy_constants.h"
20 #include "components/policy/policy_export.h" 21 #include "components/policy/policy_export.h"
21 #include "policy/proto/device_management_backend.pb.h" 22 #include "policy/proto/device_management_backend.pb.h"
22 23
23 namespace net { 24 namespace net {
24 class URLRequestContextGetter; 25 class URLRequestContextGetter;
25 } 26 }
26 27
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 210
210 // Returns the invalidation version that was used for the last FetchPolicy. 211 // Returns the invalidation version that was used for the last FetchPolicy.
211 // Observers can call this method from their OnPolicyFetched method to 212 // Observers can call this method from their OnPolicyFetched method to
212 // determine which at which invalidation version the policy was fetched. 213 // determine which at which invalidation version the policy was fetched.
213 int64 fetched_invalidation_version() const { 214 int64 fetched_invalidation_version() const {
214 return fetched_invalidation_version_; 215 return fetched_invalidation_version_;
215 } 216 }
216 217
217 scoped_refptr<net::URLRequestContextGetter> GetRequestContext(); 218 scoped_refptr<net::URLRequestContextGetter> GetRequestContext();
218 219
220 // Returns the number of active requests.
221 int GetActiveRequestCountForTest() const;
222
219 protected: 223 protected:
220 // A set of (policy type, settings entity ID) pairs to fetch. 224 // A set of (policy type, settings entity ID) pairs to fetch.
221 typedef std::set<std::pair<std::string, std::string>> PolicyTypeSet; 225 typedef std::set<std::pair<std::string, std::string>> PolicyTypeSet;
222 226
223 // Callback for retries of registration requests. 227 // Callback for retries of registration requests.
224 void OnRetryRegister(DeviceManagementRequestJob* job); 228 void OnRetryRegister(DeviceManagementRequestJob* job);
225 229
226 // Callback for registration requests. 230 // Callback for registration requests.
227 void OnRegisterCompleted( 231 void OnRegisterCompleted(
228 DeviceManagementStatus status, 232 DeviceManagementStatus status,
(...skipping 13 matching lines...) Expand all
242 const enterprise_management::DeviceManagementResponse& response); 246 const enterprise_management::DeviceManagementResponse& response);
243 247
244 // Callback for unregistration requests. 248 // Callback for unregistration requests.
245 void OnUnregisterCompleted( 249 void OnUnregisterCompleted(
246 DeviceManagementStatus status, 250 DeviceManagementStatus status,
247 int net_error, 251 int net_error,
248 const enterprise_management::DeviceManagementResponse& response); 252 const enterprise_management::DeviceManagementResponse& response);
249 253
250 // Callback for certificate upload requests. 254 // Callback for certificate upload requests.
251 void OnCertificateUploadCompleted( 255 void OnCertificateUploadCompleted(
256 const DeviceManagementRequestJob* job,
252 const StatusCallback& callback, 257 const StatusCallback& callback,
253 DeviceManagementStatus status, 258 DeviceManagementStatus status,
254 int net_error, 259 int net_error,
255 const enterprise_management::DeviceManagementResponse& response); 260 const enterprise_management::DeviceManagementResponse& response);
256 261
257 // Callback for status upload requests. 262 // Callback for status upload requests.
258 void OnStatusUploadCompleted( 263 void OnStatusUploadCompleted(
264 const DeviceManagementRequestJob* job,
259 const StatusCallback& callback, 265 const StatusCallback& callback,
260 DeviceManagementStatus status, 266 DeviceManagementStatus status,
261 int net_error, 267 int net_error,
262 const enterprise_management::DeviceManagementResponse& response); 268 const enterprise_management::DeviceManagementResponse& response);
263 269
270 // Helper to remove a job from request_jobs_.
271 void RemoveJob(const DeviceManagementRequestJob* job);
272
264 // Observer notification helpers. 273 // Observer notification helpers.
265 void NotifyPolicyFetched(); 274 void NotifyPolicyFetched();
266 void NotifyRegistrationStateChanged(); 275 void NotifyRegistrationStateChanged();
267 void NotifyRobotAuthCodesFetched(); 276 void NotifyRobotAuthCodesFetched();
268 void NotifyClientError(); 277 void NotifyClientError();
269 278
270 // Data necessary for constructing policy requests. 279 // Data necessary for constructing policy requests.
271 const std::string machine_id_; 280 const std::string machine_id_;
272 const std::string machine_model_; 281 const std::string machine_model_;
273 const std::string verification_key_hash_; 282 const std::string verification_key_hash_;
(...skipping 12 matching lines...) Expand all
286 295
287 // Information for the latest policy invalidation received. 296 // Information for the latest policy invalidation received.
288 int64 invalidation_version_; 297 int64 invalidation_version_;
289 std::string invalidation_payload_; 298 std::string invalidation_payload_;
290 299
291 // The invalidation version used for the most recent fetch operation. 300 // The invalidation version used for the most recent fetch operation.
292 int64 fetched_invalidation_version_; 301 int64 fetched_invalidation_version_;
293 302
294 // Used for issuing requests to the cloud. 303 // Used for issuing requests to the cloud.
295 DeviceManagementService* service_; 304 DeviceManagementService* service_;
296 scoped_ptr<DeviceManagementRequestJob> request_job_; 305
306 // Only one outstanding policy fetch is allowed, so this is tracked in
307 // its own member variable.
308 scoped_ptr<DeviceManagementRequestJob> policy_fetch_request_job_;
309
310 // All of the outstanding non-policy-fetch request jobs. These jobs are
311 // silently cancelled if Unregister() is called.
312 ScopedVector<DeviceManagementRequestJob> request_jobs_;
297 313
298 // The policy responses returned by the last policy fetch operation. 314 // The policy responses returned by the last policy fetch operation.
299 ResponseMap responses_; 315 ResponseMap responses_;
300 DeviceManagementStatus status_; 316 DeviceManagementStatus status_;
301 317
302 ObserverList<Observer, true> observers_; 318 ObserverList<Observer, true> observers_;
303 scoped_refptr<net::URLRequestContextGetter> request_context_; 319 scoped_refptr<net::URLRequestContextGetter> request_context_;
304 320
305 private: 321 private:
306 DISALLOW_COPY_AND_ASSIGN(CloudPolicyClient); 322 DISALLOW_COPY_AND_ASSIGN(CloudPolicyClient);
307 }; 323 };
308 324
309 } // namespace policy 325 } // namespace policy
310 326
311 #endif // COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_POLICY_CLIENT_H_ 327 #endif // COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_POLICY_CLIENT_H_
OLDNEW
« no previous file with comments | « no previous file | components/policy/core/common/cloud/cloud_policy_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698