blob: b5cc99daf0b76897a60a6702c3a5d7861c45d423 [file] [log] [blame]
fgorski05d507c2014-09-10 17:28:101// 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 "components/gcm_driver/gcm_delayed_task_controller.h"
6
avi26062922015-12-26 00:14:187#include <stddef.h>
8
fgorski05d507c2014-09-10 17:28:109#include "base/logging.h"
10
11namespace gcm {
12
13GCMDelayedTaskController::GCMDelayedTaskController() : ready_(false) {
14}
15
16GCMDelayedTaskController::~GCMDelayedTaskController() {
17}
18
19void GCMDelayedTaskController::AddTask(const base::Closure& task) {
20 delayed_tasks_.push_back(task);
21}
22
23void GCMDelayedTaskController::SetReady() {
24 ready_ = true;
25 RunTasks();
26}
27
28bool GCMDelayedTaskController::CanRunTaskWithoutDelay() const {
29 return ready_;
30}
31
32void GCMDelayedTaskController::RunTasks() {
33 DCHECK(ready_);
34
35 for (size_t i = 0; i < delayed_tasks_.size(); ++i)
36 delayed_tasks_[i].Run();
37 delayed_tasks_.clear();
38}
39
40} // namespace gcm