6 #ifndef SWIFT_MISC_DBUSSERVER_H
7 #define SWIFT_MISC_DBUSSERVER_H
9 #include <QDBusConnection>
14 #include <QScopedPointer>
23 #define SWIFT_SERVICENAME "org.swift-project"
39 static const QString &coreServiceName();
42 static const QString &coreServiceName(
const QDBusConnection &connection);
45 static const QStringList &getLogCategories();
51 SERVERMODE_SESSIONBUS,
60 CDBusServer(
const QString &service,
const QString &address, QObject *parent =
nullptr);
66 void addObject(
const QString &name, QObject *
object);
69 QDBusError lastQDBusServerError()
const;
72 const QDBusServer *qDBusServer()
const;
75 bool hasQDBusServer()
const;
78 void removeAllObjects();
81 static const QDBusConnection &defaultConnection();
84 static const QString &sessionBusAddress();
87 static const QString &systemBusAddress();
90 static QDBusConnection connectToDBus(
const QString &dbusAddress,
const QString &name = {});
93 static void disconnectFromDBus(
const QDBusConnection &connection,
const QString &dBusAddress);
98 static QString p2pAddress(
const QString &host,
const QString &port =
"");
101 static const QString &p2pConnectionName();
106 static QString normalizeAddress(
const QString &address);
109 static ServerMode modeOfAddress(QString address);
112 static const QString &modeToString(ServerMode mode);
115 static bool isQtDBusAddress(
const QString &address);
119 static bool isSessionOrSystemAddress(
const QString &address);
122 static bool isP2PAddress(
const QString &address);
125 static bool isP2PConnection(
const QDBusConnection &connection);
128 static bool dBusAddressToHostAndPort(
const QString &dbusAddress, QString &o_host,
int &o_port);
131 static bool dBusAddressToHostAndPort(
const QString &dbusAddress, QString &o_host, QString &o_port);
134 static bool isQtDefaultConnection(
const QDBusConnection &connection);
139 static bool isDBusAvailable(
const QString &host,
int port,
int timeoutMs = 1500);
140 static bool isDBusAvailable(
const QString &host,
int port, QString &message,
int timeoutMs = 1500);
141 static bool isDBusAvailable(
const QString &dbusAddress, QString &message,
int timeoutMs = 1500);
142 static bool isDBusAvailable(
const QString &dbusAddress,
int timeoutMs = 1500);
146 ServerMode m_serverMode = SERVERMODE_P2P;
147 QScopedPointer<QDBusServer> m_busServer;
152 static QString getDBusInterfaceFromClassInfo(QObject *
object);
155 static QDBusConnection::RegisterOptions registerOptions();
158 bool registerObjectsWithP2PConnection(QDBusConnection connection);
CDBusServer(const QString &address, QObject *parent=nullptr)
Construct a server for the core service.
Free functions in swift::misc.
#define SWIFT_MISC_EXPORT
Export a class or function from the library.