blob: 15f4470f146dcec43afb5fb424af5140909924bf [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_TRACKER_ID_SET_H_
#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_TRACKER_ID_SET_H_
#include <set>
#include "base/basictypes.h"
namespace sync_file_system {
namespace drive_backend {
class FileTracker;
class TrackerIDSet {
public:
typedef std::set<int64> RawTrackerIDSet;
typedef RawTrackerIDSet::iterator iterator;
typedef RawTrackerIDSet::const_iterator const_iterator;
TrackerIDSet();
~TrackerIDSet();
bool has_active() const { return !!active_tracker_; }
void Insert(const FileTracker& tracker);
void InsertActiveTracker(int64 tracker_id);
void InsertInactiveTracker(int64 tracker_id);
void Erase(int64 tracker_id);
void Activate(int64 tracker_id);
void Deactivate(int64 tracker_id);
int64 active_tracker() const { return active_tracker_; }
const RawTrackerIDSet& tracker_set() const { return tracker_ids_; }
iterator begin() { return tracker_ids_.begin(); }
iterator end() { return tracker_ids_.end(); }
const_iterator begin() const { return tracker_ids_.begin(); }
const_iterator end() const { return tracker_ids_.end(); }
bool empty() const { return tracker_ids_.empty(); }
size_t size() const { return tracker_ids_.size(); }
private:
int64 active_tracker_;
RawTrackerIDSet tracker_ids_;
};
} // namespace drive_backend
} // namespace sync_file_system
#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_TRACKER_ID_SET_H_