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 3 // found in the LICENSE file. 4 5 #include "chrome/browser/sync_file_system/drive_backend/tracker_id_set.h" 6 7 #include "base/logging.h" 8 #include "base/stl_util.h" 9 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h" 10 11 namespace sync_file_system { 12 namespace drive_backend { 13 14 TrackerIDSet::TrackerIDSet() : active_tracker_(0) {} 15 16 TrackerIDSet::~TrackerIDSet() {} 17 18 void TrackerIDSet::Insert(const FileTracker& tracker) { 19 if (tracker.active()) 20 InsertActiveTracker(tracker.tracker_id()); 21 else 22 InsertInactiveTracker(tracker.tracker_id()); 23 } 24 25 void TrackerIDSet::InsertActiveTracker(int64 tracker_id) { 26 DCHECK(tracker_id); 27 DCHECK(!active_tracker_); 28 29 active_tracker_ = tracker_id; 30 tracker_ids_.insert(tracker_id); 31 } 32 33 void TrackerIDSet::InsertInactiveTracker(int64 tracker_id) { 34 DCHECK(tracker_id); 35 DCHECK_NE(active_tracker_, tracker_id); 36 37 tracker_ids_.insert(tracker_id); 38 } 39 40 void TrackerIDSet::Erase(int64 tracker_id) { 41 DCHECK(ContainsKey(tracker_ids_, tracker_id)); 42 43 if (active_tracker_ == tracker_id) 44 active_tracker_ = 0; 45 tracker_ids_.erase(tracker_id); 46 } 47 48 void TrackerIDSet::Activate(int64 tracker_id) { 49 DCHECK(!active_tracker_); 50 DCHECK(ContainsKey(tracker_ids_, tracker_id)); 51 active_tracker_ = tracker_id; 52 } 53 54 void TrackerIDSet::Deactivate(int64 tracker_id) { 55 DCHECK_EQ(active_tracker_, tracker_id); 56 DCHECK(ContainsKey(tracker_ids_, tracker_id)); 57 active_tracker_ = 0; 58 } 59 60 } // namespace drive_backend 61 } // namespace sync_file_system 62