blob: 9edf96b4a5399b20cf9f2f9343d81a900c20ea5d [file] [log] [blame]
// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_DBUS_THREAD_LINUX_DBUS_THREAD_LINUX_H_
#define COMPONENTS_DBUS_THREAD_LINUX_DBUS_THREAD_LINUX_H_
#include "base/component_export.h"
#include "base/memory/scoped_refptr.h"
#include "build/build_config.h"
#if BUILDFLAG(IS_CHROMEOS)
#error On ChromeOS, use DBusThreadManager instead.
#endif
namespace dbus {
class Bus;
}
namespace dbus_thread_linux {
// Obtains a shared session bus for usage on desktop Linux. This should be used
// for all session bus operations. Must be called on the UI thread. A bus will
// be created on the first call to this function.
COMPONENT_EXPORT(COMPONENTS_DBUS)
scoped_refptr<dbus::Bus> GetSharedSessionBus();
// The same as GetSharedSessionBus(), but for the system bus.
COMPONENT_EXPORT(COMPONENTS_DBUS)
scoped_refptr<dbus::Bus> GetSharedSystemBus();
// Shuts down the shared session and system buses. Must be called on the UI
// thread. This is intended to be called late in browser shutdown, or
// in tests before task environments are destroyed.
COMPONENT_EXPORT(COMPONENTS_DBUS)
void ShutdownOnDBusThreadAndBlock();
} // namespace dbus_thread_linux
#endif // COMPONENTS_DBUS_THREAD_LINUX_DBUS_THREAD_LINUX_H_