OLD | NEW |
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 CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_TRACKER_ID_SET_H_ | 5 #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_TRACKER_ID_SET_H_ |
6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_TRACKER_ID_SET_H_ | 6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_TRACKER_ID_SET_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
11 #include <set> | 11 #include <set> |
12 | 12 |
13 | 13 |
14 namespace sync_file_system { | 14 namespace sync_file_system { |
15 namespace drive_backend { | 15 namespace drive_backend { |
16 | 16 |
17 class FileTracker; | 17 class FileTracker; |
18 | 18 |
19 class TrackerIDSet { | 19 class TrackerIDSet { |
20 public: | 20 public: |
21 typedef std::set<int64_t> RawTrackerIDSet; | 21 typedef std::set<int64_t> RawTrackerIDSet; |
22 typedef RawTrackerIDSet::iterator iterator; | 22 typedef RawTrackerIDSet::iterator iterator; |
23 typedef RawTrackerIDSet::const_iterator const_iterator; | 23 typedef RawTrackerIDSet::const_iterator const_iterator; |
24 | 24 |
25 TrackerIDSet(); | 25 TrackerIDSet(); |
| 26 TrackerIDSet(const TrackerIDSet& other); |
26 ~TrackerIDSet(); | 27 ~TrackerIDSet(); |
27 | 28 |
28 bool has_active() const { return !!active_tracker_; } | 29 bool has_active() const { return !!active_tracker_; } |
29 void Insert(const FileTracker& tracker); | 30 void Insert(const FileTracker& tracker); |
30 void InsertActiveTracker(int64_t tracker_id); | 31 void InsertActiveTracker(int64_t tracker_id); |
31 void InsertInactiveTracker(int64_t tracker_id); | 32 void InsertInactiveTracker(int64_t tracker_id); |
32 void Erase(int64_t tracker_id); | 33 void Erase(int64_t tracker_id); |
33 void Activate(int64_t tracker_id); | 34 void Activate(int64_t tracker_id); |
34 void Deactivate(int64_t tracker_id); | 35 void Deactivate(int64_t tracker_id); |
35 | 36 |
36 int64_t active_tracker() const { return active_tracker_; } | 37 int64_t active_tracker() const { return active_tracker_; } |
37 const RawTrackerIDSet& tracker_set() const { return tracker_ids_; } | 38 const RawTrackerIDSet& tracker_set() const { return tracker_ids_; } |
38 | 39 |
39 iterator begin() { return tracker_ids_.begin(); } | 40 iterator begin() { return tracker_ids_.begin(); } |
40 iterator end() { return tracker_ids_.end(); } | 41 iterator end() { return tracker_ids_.end(); } |
41 const_iterator begin() const { return tracker_ids_.begin(); } | 42 const_iterator begin() const { return tracker_ids_.begin(); } |
42 const_iterator end() const { return tracker_ids_.end(); } | 43 const_iterator end() const { return tracker_ids_.end(); } |
43 bool empty() const { return tracker_ids_.empty(); } | 44 bool empty() const { return tracker_ids_.empty(); } |
44 size_t size() const { return tracker_ids_.size(); } | 45 size_t size() const { return tracker_ids_.size(); } |
45 | 46 |
46 private: | 47 private: |
47 int64_t active_tracker_; | 48 int64_t active_tracker_; |
48 RawTrackerIDSet tracker_ids_; | 49 RawTrackerIDSet tracker_ids_; |
49 }; | 50 }; |
50 | 51 |
51 } // namespace drive_backend | 52 } // namespace drive_backend |
52 } // namespace sync_file_system | 53 } // namespace sync_file_system |
53 | 54 |
54 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_TRACKER_ID_SET_H_ | 55 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_TRACKER_ID_SET_H_ |
OLD | NEW |