Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6666)

Unified Diff: chrome/browser/policy/logging_work_scheduler.cc

Issue 11946017: Remove old cloud policy code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address nits. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/policy/logging_work_scheduler.cc
diff --git a/chrome/browser/policy/logging_work_scheduler.cc b/chrome/browser/policy/logging_work_scheduler.cc
deleted file mode 100644
index 841df96e5a68c5003305a3305c8ec87ac54a06da..0000000000000000000000000000000000000000
--- a/chrome/browser/policy/logging_work_scheduler.cc
+++ /dev/null
@@ -1,190 +0,0 @@
-// Copyright (c) 2011 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/policy/logging_work_scheduler.h"
-
-#include <algorithm>
-
-#include "base/bind.h"
-#include "base/message_loop.h"
-#include "content/public/browser/browser_thread.h"
-
-using content::BrowserThread;
-
-namespace policy {
-
-// Objects of this class are used in the priority-queue of future tasks
-// in EventLogger.
-class EventLogger::Task {
- public:
- Task();
- Task(int64 trigger_time,
- int64 secondary_key,
- linked_ptr<base::Closure> callback);
- ~Task();
-
- // Returns true if |this| should be executed before |rhs|.
- // Used for sorting by the priority queue.
- bool operator< (const Task& rhs) const;
-
- int64 trigger_time() const;
-
- // Returns a copy of the callback object of this task, and resets the
- // original callback object. (LoggingTaskScheduler owns a linked_ptr to
- // its task's callback objects and it only allows firing new tasks if the
- // previous task's callback object has been reset.)
- base::Closure GetAndResetCallback();
-
- private:
- // The virtual time when this task will trigger.
- // Smaller times win.
- int64 trigger_time_;
- // Used for sorting tasks that have the same trigger_time.
- // Bigger keys win.
- int64 secondary_key_;
-
- linked_ptr<base::Closure> callback_;
-};
-
-EventLogger::Task::Task() {
-}
-
-EventLogger::Task::Task(int64 trigger_time,
- int64 secondary_key,
- linked_ptr<base::Closure> callback)
- : trigger_time_(trigger_time),
- secondary_key_(secondary_key),
- callback_(callback) {
-}
-
-EventLogger::Task::~Task() {
-}
-
-bool EventLogger::Task::operator< (const Task& rhs) const {
- if (trigger_time_ == rhs.trigger_time_) {
- return secondary_key_ < rhs.secondary_key_;
- } else {
- return trigger_time_ > rhs.trigger_time_;
- }
-}
-
-int64 EventLogger::Task::trigger_time() const {
- return trigger_time_;
-}
-
-base::Closure EventLogger::Task::GetAndResetCallback() {
- // Make a copy.
- base::Closure callback = *(callback_.get());
- // Reset the original callback, which is shared with LoggingTaskScheduler.
- callback_->Reset();
- return callback;
-}
-
-EventLogger::EventLogger()
- : step_pending_(false),
- ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)),
- current_time_(0),
- task_counter_(0) {
-}
-
-EventLogger::~EventLogger() {
-}
-
-void EventLogger::PostDelayedWork(
- linked_ptr<base::Closure> callback,
- int64 delay) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- int64 trigger_time = current_time_ + delay;
- task_counter_++;
- scheduled_tasks_.push(Task(trigger_time, task_counter_, callback));
- if (!step_pending_) {
- step_pending_ = true;
- MessageLoop::current()->PostTask(
- FROM_HERE,
- base::Bind(&EventLogger::Step, weak_ptr_factory_.GetWeakPtr()));
- }
-}
-
-void EventLogger::RegisterEvent() {
- events_.push_back(current_time_);
-}
-
-void EventLogger::Swap(std::vector<int64>* events) {
- std::swap(events_, *events);
-}
-
-// static
-// Counts the number of elements in a sorted integer vector that are
-// >= |start| but < |start| + |length|.
-int EventLogger::CountEvents(const std::vector<int64>& events,
- int64 start, int64 length) {
- // The first interesting event.
- std::vector<int64>::const_iterator begin_it =
- std::lower_bound(events.begin(), events.end(), start);
- // The event after the last interesting event.
- std::vector<int64>::const_iterator end_it =
- std::lower_bound(begin_it, events.end(), start + length);
- return end_it - begin_it;
-}
-
-void EventLogger::Step() {
- DCHECK(step_pending_);
- step_pending_ = false;
- if (scheduled_tasks_.empty())
- return;
- // Take the next scheduled task from the queue.
- Task next = scheduled_tasks_.top();
- scheduled_tasks_.pop();
- base::Closure callback = next.GetAndResetCallback();
- int64 trigger_time = next.trigger_time();
- DCHECK(trigger_time >= current_time_);
- // Execute the next scheduled task if it was not cancelled.
- if (!callback.is_null()) {
- current_time_ = trigger_time;
- callback.Run(); // Note: new items may be added to scheduled_tasks_ here.
- }
- // Trigger calling this method if there are remaining tasks.
- if (!step_pending_ && !scheduled_tasks_.empty()) {
- step_pending_ = true;
- MessageLoop::current()->PostTask(
- FROM_HERE,
- base::Bind(&EventLogger::Step, weak_ptr_factory_.GetWeakPtr()));
- }
-}
-
-DummyWorkScheduler::DummyWorkScheduler() {
-}
-
-DummyWorkScheduler::~DummyWorkScheduler() {
- CancelDelayedWork();
-}
-
-void DummyWorkScheduler::PostDelayedWork(
- const base::Closure& callback, int64 delay) {
- DelayedWorkScheduler::PostDelayedWork(callback, 0);
-}
-
-LoggingWorkScheduler::LoggingWorkScheduler(EventLogger* logger)
- : logger_(logger) {
-}
-
-LoggingWorkScheduler::~LoggingWorkScheduler() {
- if (callback_.get())
- callback_->Reset();
-}
-
-void LoggingWorkScheduler::PostDelayedWork(
- const base::Closure& callback, int64 delay) {
- DCHECK(!callback_.get() || callback_->is_null());
- callback_.reset(new base::Closure(callback));
- logger_->PostDelayedWork(callback_, delay);
-}
-
-void LoggingWorkScheduler::CancelDelayedWork() {
- if (!callback_.get()) return;
- callback_->Reset(); // Erase the callback to the delayed work.
- callback_.reset(NULL); // Erase the pointer to the callback.
-}
-
-} // namespace policy
« no previous file with comments | « chrome/browser/policy/logging_work_scheduler.h ('k') | chrome/browser/policy/logging_work_scheduler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698