| // Copyright 2016 The ChromiumOS Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef LIBBRILLO_BRILLO_DBUS_DBUS_CONNECTION_H_ | |
| #define LIBBRILLO_BRILLO_DBUS_DBUS_CONNECTION_H_ | |
| #include <base/memory/ref_counted.h> | |
| #include <base/time/time.h> | |
| #include <dbus/bus.h> | |
| #include <brillo/brillo_export.h> | |
| namespace brillo { | |
| // DBusConnection adds D-Bus support to Daemon. | |
| class BRILLO_EXPORT DBusConnection final { | |
| public: | |
| DBusConnection(); | |
| DBusConnection(const DBusConnection&) = delete; | |
| DBusConnection& operator=(const DBusConnection&) = delete; | |
| ~DBusConnection(); | |
| // Instantiates dbus::Bus and establishes a D-Bus connection. Returns a | |
| // reference to the connected bus, or an empty pointer in case of error. | |
| scoped_refptr<::dbus::Bus> Connect(); | |
| // Instantiates dbus::Bus and tries to establish a D-Bus connection for up to | |
| // |timeout|. If the connection can't be established after the timeout, fails | |
| // returning an empty pointer. | |
| scoped_refptr<::dbus::Bus> ConnectWithTimeout(base::TimeDelta timeout); | |
| private: | |
| scoped_refptr<::dbus::Bus> bus_; | |
| }; | |
| } // namespace brillo | |
| #endif // LIBBRILLO_BRILLO_DBUS_DBUS_CONNECTION_H_ |