1299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang//
2299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang// Copyright (C) 2016 The Android Open Source Project
3299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang//
4299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang// Licensed under the Apache License, Version 2.0 (the "License");
5299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang// you may not use this file except in compliance with the License.
6299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang// You may obtain a copy of the License at
7299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang//
8299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang//      http://www.apache.org/licenses/LICENSE-2.0
9299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang//
10299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang// Unless required by applicable law or agreed to in writing, software
11299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang// distributed under the License is distributed on an "AS IS" BASIS,
12299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang// See the License for the specific language governing permissions and
14299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang// limitations under the License.
15299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang//
16299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang
17299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang#ifndef UPDATE_ENGINE_DBUS_CONNECTION_H_
18299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang#define UPDATE_ENGINE_DBUS_CONNECTION_H_
19299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang
20299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang#include <base/memory/ref_counted.h>
21299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang#include <brillo/dbus/dbus_connection.h>
22299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang#include <dbus/bus.h>
23299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang
24299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiangnamespace chromeos_update_engine {
25299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang
26299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiangclass DBusConnection {
27299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang public:
28299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang  DBusConnection();
29299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang
30299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang  const scoped_refptr<dbus::Bus>& GetDBus();
31299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang
32299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang  static DBusConnection* Get();
33299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang
34299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang private:
35299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang  scoped_refptr<dbus::Bus> bus_;
36299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang
37299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang  brillo::DBusConnection dbus_connection_;
38299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang
39299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang  DISALLOW_COPY_AND_ASSIGN(DBusConnection);
40299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang};
41299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang
42299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang}  // namespace chromeos_update_engine
43299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang
44299128ee0f9009f79a62d5f57d75270f62353c9dSen Jiang#endif  // UPDATE_ENGINE_DBUS_CONNECTION_H_
45