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

Side by Side Diff: chrome/browser/sync_file_system/sync_process_runner.h

Issue 1545223002: Switch to standard integer types in chrome/browser/, part 4 of 4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 4 years, 12 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_PROCESS_RUNNER_H_ 5 #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_PROCESS_RUNNER_H_
6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_PROCESS_RUNNER_H_ 6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_PROCESS_RUNNER_H_
7 7
8 #include <stddef.h>
9 #include <stdint.h>
10
8 #include <string> 11 #include <string>
9 12
10 #include "base/basictypes.h" 13 #include "base/macros.h"
11 #include "base/memory/weak_ptr.h" 14 #include "base/memory/weak_ptr.h"
12 #include "base/timer/timer.h" 15 #include "base/timer/timer.h"
13 #include "chrome/browser/sync_file_system/sync_callbacks.h" 16 #include "chrome/browser/sync_file_system/sync_callbacks.h"
14 #include "chrome/browser/sync_file_system/sync_service_state.h" 17 #include "chrome/browser/sync_file_system/sync_service_state.h"
15 18
16 namespace sync_file_system { 19 namespace sync_file_system {
17 20
18 class SyncFileSystemService; 21 class SyncFileSystemService;
19 22
20 // A base class to schedule a sync. 23 // A base class to schedule a sync.
21 // Each subclass must implement StartSync(). 24 // Each subclass must implement StartSync().
22 // An instance of this class is supposed to be owned by SyncFileSystemService. 25 // An instance of this class is supposed to be owned by SyncFileSystemService.
23 // 26 //
24 // Note that multiple SyncProcessRunner doesn't coordinate its sync schedule 27 // Note that multiple SyncProcessRunner doesn't coordinate its sync schedule
25 // with each other. 28 // with each other.
26 class SyncProcessRunner { 29 class SyncProcessRunner {
27 public: 30 public:
28 // Default delay when more changes are available. 31 // Default delay when more changes are available.
29 static const int64 kSyncDelayInMilliseconds; 32 static const int64_t kSyncDelayInMilliseconds;
30 33
31 // Default delay when the previous change has had an error (but remote service 34 // Default delay when the previous change has had an error (but remote service
32 // is running). 35 // is running).
33 static const int64 kSyncDelayWithSyncError; 36 static const int64_t kSyncDelayWithSyncError;
34 37
35 // Default delay when there're more than 10 pending changes. 38 // Default delay when there're more than 10 pending changes.
36 static const int64 kSyncDelayFastInMilliseconds; 39 static const int64_t kSyncDelayFastInMilliseconds;
37 static const int kPendingChangeThresholdForFastSync; 40 static const int kPendingChangeThresholdForFastSync;
38 41
39 // Default delay when remote service is temporarily unavailable. 42 // Default delay when remote service is temporarily unavailable.
40 // The delay backs off exponentially from initial value on repeated failure. 43 // The delay backs off exponentially from initial value on repeated failure.
41 static const int64 kSyncDelaySlowInMilliseconds; 44 static const int64_t kSyncDelaySlowInMilliseconds;
42 45
43 // Default delay when there're no changes. 46 // Default delay when there're no changes.
44 static const int64 kSyncDelayMaxInMilliseconds; 47 static const int64_t kSyncDelayMaxInMilliseconds;
45 48
46 class Client { 49 class Client {
47 public: 50 public:
48 virtual ~Client() {} 51 virtual ~Client() {}
49 virtual void OnSyncIdle() {} 52 virtual void OnSyncIdle() {}
50 virtual SyncServiceState GetSyncServiceState() = 0; 53 virtual SyncServiceState GetSyncServiceState() = 0;
51 virtual SyncFileSystemService* GetSyncService() = 0; 54 virtual SyncFileSystemService* GetSyncService() = 0;
52 }; 55 };
53 56
54 class TimerHelper { 57 class TimerHelper {
(...skipping 14 matching lines...) Expand all
69 scoped_ptr<TimerHelper> timer_helper, 72 scoped_ptr<TimerHelper> timer_helper,
70 size_t max_parallel_task); 73 size_t max_parallel_task);
71 virtual ~SyncProcessRunner(); 74 virtual ~SyncProcessRunner();
72 75
73 // Subclass must implement this. 76 // Subclass must implement this.
74 virtual void StartSync(const SyncStatusCallback& callback) = 0; 77 virtual void StartSync(const SyncStatusCallback& callback) = 0;
75 78
76 // Schedules a new sync. 79 // Schedules a new sync.
77 void Schedule(); 80 void Schedule();
78 81
79 int64 pending_changes() const { return pending_changes_; } 82 int64_t pending_changes() const { return pending_changes_; }
80 83
81 // Returns the current service state. Default implementation returns 84 // Returns the current service state. Default implementation returns
82 // sync_service()->GetSyncServiceState(). 85 // sync_service()->GetSyncServiceState().
83 virtual SyncServiceState GetServiceState(); 86 virtual SyncServiceState GetServiceState();
84 87
85 protected: 88 protected:
86 void OnChangesUpdated(int64 pending_changes); 89 void OnChangesUpdated(int64_t pending_changes);
87 SyncFileSystemService* GetSyncService(); 90 SyncFileSystemService* GetSyncService();
88 91
89 private: 92 private:
90 void Finished(const base::TimeTicks& start_time, SyncStatusCode status); 93 void Finished(const base::TimeTicks& start_time, SyncStatusCode status);
91 void Run(); 94 void Run();
92 void ScheduleInternal(int64 delay); 95 void ScheduleInternal(int64_t delay);
93 96
94 // Throttles new sync for |base_delay| milliseconds for an error case. 97 // Throttles new sync for |base_delay| milliseconds for an error case.
95 // If new sync is already throttled, back off the duration. 98 // If new sync is already throttled, back off the duration.
96 void ThrottleSync(int64 base_delay); 99 void ThrottleSync(int64_t base_delay);
97 100
98 // Clears old throttling setting that is already over. 101 // Clears old throttling setting that is already over.
99 void ResetOldThrottling(); 102 void ResetOldThrottling();
100 void ResetThrottling(); 103 void ResetThrottling();
101 104
102 void CheckIfIdle(); 105 void CheckIfIdle();
103 106
104 std::string name_; 107 std::string name_;
105 Client* client_; 108 Client* client_;
106 size_t max_parallel_task_; 109 size_t max_parallel_task_;
107 size_t running_tasks_; 110 size_t running_tasks_;
108 scoped_ptr<TimerHelper> timer_helper_; 111 scoped_ptr<TimerHelper> timer_helper_;
109 base::TimeTicks last_run_; 112 base::TimeTicks last_run_;
110 base::TimeTicks last_scheduled_; 113 base::TimeTicks last_scheduled_;
111 SyncServiceState service_state_; 114 SyncServiceState service_state_;
112 115
113 base::TimeTicks throttle_from_; 116 base::TimeTicks throttle_from_;
114 base::TimeTicks throttle_until_; 117 base::TimeTicks throttle_until_;
115 118
116 int64 pending_changes_; 119 int64_t pending_changes_;
117 base::WeakPtrFactory<SyncProcessRunner> factory_; 120 base::WeakPtrFactory<SyncProcessRunner> factory_;
118 121
119 DISALLOW_COPY_AND_ASSIGN(SyncProcessRunner); 122 DISALLOW_COPY_AND_ASSIGN(SyncProcessRunner);
120 }; 123 };
121 124
122 } // namespace sync_file_system 125 } // namespace sync_file_system
123 126
124 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_PROCESS_RUNNER_H_ 127 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_PROCESS_RUNNER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698