5#include <QtCore/qglobal.h>
6#include <QtCore/qlatin1stringview.h>
8#include <QtCore/qlibrary.h>
9#include <QtCore/private/qlocking_p.h>
11#include <QtCore/qmutex.h>
23#if !defined QT_LINKED_LIBDBUS
26Q_CONSTINIT
static QLibrary *qdbus_libdbus =
nullptr;
28void qdbus_unloadLibDBus()
32 qdbus_libdbus->
resolve(
"dbus_shutdown")();
33 qdbus_libdbus->unload();
36 qdbus_libdbus =
nullptr;
43#ifdef QT_BUILD_INTERNAL
49 Q_CONSTINIT
static bool triedToLoadLibrary =
false;
51 const auto locker = qt_scoped_lock(
mutex);
54 if (triedToLoadLibrary)
59 triedToLoadLibrary =
true;
61 static int majorversions[] = { 3, 2, -1 };
70 for (
const int majorversion : majorversions) {
71 for (
const QString &baseName : baseNames) {
74 if (majorversion != -1)
80 if (lib->
load() && lib->
resolve(
"dbus_connection_open_private"))
99 return qdbus_libdbus->resolve(
name);
108#if QT_CONFIG(library)
110 qFatal(
"Cannot find libdbus-1 in your system to resolve symbol '%s'.",
name);
112 QFunctionPointer
ptr = qdbus_libdbus->resolve(
name);
114 qFatal(
"Cannot resolve '%s' in your libdbus-1.",
name);
124static void qdbus_unloadLibDBus()
132#if defined(QT_LINKED_LIBDBUS) || QT_CONFIG(library)
133Q_DESTRUCTOR_FUNCTION(qdbus_unloadLibDBus)
\inmodule QtCore \reentrant
bool load()
Loads the library and returns true if the library was loaded successfully; otherwise returns false.
@ ExportExternalSymbolsHint
void setFileNameAndVersion(const QString &fileName, int verNum)
Sets the fileName property and major version number to fileName and versionNumber respectively.
void setFileName(const QString &fileName)
bool isLoaded() const
Returns true if load() succeeded; otherwise returns false.
bool unload()
Unloads the library and returns true if the library could be unloaded; otherwise returns false.
void setLoadHints(LoadHints hints)
QFunctionPointer resolve(const char *symbol)
Returns the address of the exported symbol symbol.
\macro QT_RESTRICTED_CAST_FROM_ASCII
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Combined button and popup list for selecting options.
void(*)() qdbus_resolve_me(const char *name)
void(*)() qdbus_resolve_conditionally(const char *name)
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
static ControlElement< T > * ptr(QWidget *widget)
Q_CORE_EXPORT bool qEnvironmentVariableIsEmpty(const char *varName) noexcept
Q_CORE_EXPORT bool qEnvironmentVariableIsSet(const char *varName) noexcept