| Index: chrome/browser/sync_file_system/task_logger.cc
|
| diff --git a/chrome/browser/sync_file_system/task_logger.cc b/chrome/browser/sync_file_system/task_logger.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..edaa28effa447fa06c74bad3bfef1bfe27694454
|
| --- /dev/null
|
| +++ b/chrome/browser/sync_file_system/task_logger.cc
|
| @@ -0,0 +1,51 @@
|
| +// 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.
|
| +
|
| +#include "chrome/browser/sync_file_system/task_logger.h"
|
| +
|
| +#include "base/stl_util.h"
|
| +
|
| +namespace sync_file_system {
|
| +
|
| +typedef TaskLogger::TaskLog TaskLog;
|
| +
|
| +TaskLogger::TaskLog::TaskLog() {}
|
| +TaskLogger::TaskLog::~TaskLog() {}
|
| +
|
| +TaskLogger::TaskLogger() : log_size_(500) {}
|
| +
|
| +TaskLogger::~TaskLogger() {
|
| + ClearLog();
|
| +}
|
| +
|
| +void TaskLogger::RecordLog(scoped_ptr<TaskLog> log) {
|
| + if (log_history_.size() >= log_size_) {
|
| + delete log_history_.front();
|
| + log_history_.pop_front();
|
| + }
|
| +
|
| + log_history_.push_back(log.release());
|
| +
|
| + FOR_EACH_OBSERVER(Observer, observers_,
|
| + OnLogRecorded(*log_history_.back()));
|
| +}
|
| +
|
| +void TaskLogger::ClearLog() {
|
| + STLDeleteContainerPointers(log_history_.begin(), log_history_.end());
|
| + log_history_.clear();
|
| +}
|
| +
|
| +void TaskLogger::AddObserver(Observer* observer) {
|
| + observers_.AddObserver(observer);
|
| +}
|
| +
|
| +void TaskLogger::RemoveObserver(Observer* observer) {
|
| + observers_.RemoveObserver(observer);
|
| +}
|
| +
|
| +const std::deque<TaskLog*>& TaskLogger::GetLog() const {
|
| + return log_history_;
|
| +}
|
| +
|
| +} // namespace sync_file_system
|
|
|