blob: 5e7d83120f060bd154d8ff1d4d3298a563d7f901 [file] [log] [blame]
Peter Qiu326b6cf2015-09-02 11:11:42 -07001//
2// Copyright (C) 2015 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
Peter Qiubfd410e2015-01-09 15:14:20 -080016
17#include "apmanager/event_dispatcher.h"
18
19#include <base/location.h>
Alex Vakulenkofca478e2016-01-20 07:53:12 -080020#include <base/message_loop/message_loop.h>
Peter Qiubfd410e2015-01-09 15:14:20 -080021#include <base/time/time.h>
22
23namespace apmanager {
24
25namespace {
26
27base::LazyInstance<EventDispatcher> g_event_dispatcher
28 = LAZY_INSTANCE_INITIALIZER;
29
30} // namespace
31
32EventDispatcher::EventDispatcher() {}
33EventDispatcher::~EventDispatcher() {}
34
35EventDispatcher* EventDispatcher::GetInstance() {
36 return g_event_dispatcher.Pointer();
37}
38
39bool EventDispatcher::PostTask(const base::Closure& task) {
Alex Vakulenkofca478e2016-01-20 07:53:12 -080040 if (!base::MessageLoop::current())
41 return false;
42 base::MessageLoop::current()->PostTask(FROM_HERE, task);
43 return true;
Peter Qiubfd410e2015-01-09 15:14:20 -080044}
45
46bool EventDispatcher::PostDelayedTask(const base::Closure& task,
47 int64_t delay_ms) {
Alex Vakulenkofca478e2016-01-20 07:53:12 -080048 if (!base::MessageLoop::current())
49 return false;
50 base::MessageLoop::current()->PostDelayedTask(
Peter Qiubfd410e2015-01-09 15:14:20 -080051 FROM_HERE, task, base::TimeDelta::FromMilliseconds(delay_ms));
Alex Vakulenkofca478e2016-01-20 07:53:12 -080052 return true;
Peter Qiubfd410e2015-01-09 15:14:20 -080053}
54
55} // namespace apmanager