1//
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//
16
17#include "apmanager/event_dispatcher.h"
18
19#include <base/location.h>
20#include <base/message_loop/message_loop.h>
21#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) {
40  if (!base::MessageLoop::current())
41    return false;
42  base::MessageLoop::current()->PostTask(FROM_HERE, task);
43  return true;
44}
45
46bool EventDispatcher::PostDelayedTask(const base::Closure& task,
47                                      int64_t delay_ms) {
48  if (!base::MessageLoop::current())
49    return false;
50  base::MessageLoop::current()->PostDelayedTask(
51      FROM_HERE, task, base::TimeDelta::FromMilliseconds(delay_ms));
52  return true;
53}
54
55}  // namespace apmanager
56