tracker_id_set.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
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 11namespace sync_file_system { 12namespace drive_backend { 13 14TrackerIDSet::TrackerIDSet() : active_tracker_(0) {} 15 16TrackerIDSet::~TrackerIDSet() {} 17 18void TrackerIDSet::Insert(const FileTracker& tracker) { 19 if (tracker.active()) 20 InsertActiveTracker(tracker.tracker_id()); 21 else 22 InsertInactiveTracker(tracker.tracker_id()); 23} 24 25void 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 33void 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 40void 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 48void TrackerIDSet::Activate(int64 tracker_id) { 49 DCHECK(!active_tracker_); 50 DCHECK(ContainsKey(tracker_ids_, tracker_id)); 51 active_tracker_ = tracker_id; 52} 53 54void 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