gcm_delayed_task_controller.cc revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/gcm_driver/gcm_delayed_task_controller.h" 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/logging.h" 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace gcm { 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciGCMDelayedTaskController::GCMDelayedTaskController() : ready_(false) { 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciGCMDelayedTaskController::~GCMDelayedTaskController() { 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid GCMDelayedTaskController::AddTask(const base::Closure& task) { 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci delayed_tasks_.push_back(task); 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid GCMDelayedTaskController::SetReady() { 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ready_ = true; 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci RunTasks(); 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccibool GCMDelayedTaskController::CanRunTaskWithoutDelay() const { 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return ready_; 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid GCMDelayedTaskController::RunTasks() { 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DCHECK(ready_); 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci for (size_t i = 0; i < delayed_tasks_.size(); ++i) 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci delayed_tasks_[i].Run(); 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci delayed_tasks_.clear(); 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace gcm 39