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

Side by Side Diff: components/domain_reliability/scheduler.h

Issue 252613002: Domain Reliability: More security review. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 6 years, 8 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 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_DOMAIN_RELIABILITY_SCHEDULER_H_ 5 #ifndef COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_
6 #define COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_ 6 #define COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 static Params GetFromFieldTrialsOrDefaults(); 43 static Params GetFromFieldTrialsOrDefaults();
44 }; 44 };
45 45
46 DomainReliabilityScheduler(MockableTime* time, 46 DomainReliabilityScheduler(MockableTime* time,
47 size_t num_collectors, 47 size_t num_collectors,
48 const Params& params, 48 const Params& params,
49 const ScheduleUploadCallback& callback); 49 const ScheduleUploadCallback& callback);
50 ~DomainReliabilityScheduler(); 50 ~DomainReliabilityScheduler();
51 51
52 // Called when a beacon is added to the context. May call the provided 52 // Called when a beacon is added to the context. May call the provided
53 // ScheduleUploadCallback (if all previous beacons have been uploaded). 53 // ScheduleUploadCallback (if all previous beacons have been uploaded).
Ryan Sleevi 2014/04/26 02:37:39 Comment nit: Don't describe how this *is* used, de
Deprecated (see juliatuttle) 2014/04/28 22:01:13 Done.
54 void OnBeaconAdded(); 54 void OnBeaconAdded();
55 55
56 // Called when an upload is about to start. 56 // Called when an upload is about to start.
57 void OnUploadStart(int* collector_index_out); 57 void OnUploadStart(int* collector_index_out);
Ryan Sleevi 2014/04/26 02:37:39 BUG: You define |num_collectors| as a size_t, but
Deprecated (see juliatuttle) 2014/04/28 22:01:13 Done.
58 58
59 // Called when an upload has finished. May call the provided 59 // Called when an upload has finished. May call the provided
60 // ScheduleUploadCallback (if the upload failed, or if beacons arrived 60 // ScheduleUploadCallback (if the upload failed, or if beacons arrived
61 // during the upload). 61 // during the upload).
62 void OnUploadComplete(bool success); 62 void OnUploadComplete(bool success);
63 63
64 private: 64 private:
65 struct CollectorState { 65 struct CollectorState {
66 CollectorState(); 66 CollectorState();
67 67
68 // The number of consecutive failures to upload to this collector, or 0 if 68 // The number of consecutive failures to upload to this collector, or 0 if
69 // the most recent upload succeeded. 69 // the most recent upload succeeded.
70 int failures; 70 int failures;
71 base::TimeTicks next_upload; 71 base::TimeTicks next_upload;
72 }; 72 };
73 73
74 void MaybeScheduleUpload(); 74 void MaybeScheduleUpload();
75 75
76 void GetNextUploadTimeAndCollector(base::TimeTicks now, 76 void GetNextUploadTimeAndCollector(base::TimeTicks now,
77 base::TimeTicks* upload_time_out, 77 base::TimeTicks* upload_time_out,
78 int* collector_index_out); 78 int* collector_index_out);
79
79 base::TimeDelta GetUploadRetryInterval(int failures); 80 base::TimeDelta GetUploadRetryInterval(int failures);
80 81
81 MockableTime* time_; 82 MockableTime* time_;
82 std::vector<CollectorState> collectors_; 83 std::vector<CollectorState> collectors_;
83 Params params_; 84 Params params_;
84 ScheduleUploadCallback callback_; 85 ScheduleUploadCallback callback_;
85 86
86 // Whether there are beacons that have not yet been uploaded. Set when a 87 // Whether there are beacons that have not yet been uploaded. Set when a
87 // beacon arrives or an upload fails, and cleared when an upload starts. 88 // beacon arrives or an upload fails, and cleared when an upload starts.
88 bool upload_pending_; 89 bool upload_pending_;
(...skipping 15 matching lines...) Expand all
104 // upload. 105 // upload.
105 base::TimeTicks first_beacon_time_; 106 base::TimeTicks first_beacon_time_;
106 107
107 // first_beacon_time_ saved during uploads. Restored if upload fails. 108 // first_beacon_time_ saved during uploads. Restored if upload fails.
108 base::TimeTicks old_first_beacon_time_; 109 base::TimeTicks old_first_beacon_time_;
109 }; 110 };
110 111
111 } // namespace domain_reliability 112 } // namespace domain_reliability
112 113
113 #endif // COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_ 114 #endif // COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698