4 #ifndef SWIFT_SIM_XSWIFTBUS_DBUSCONNECTION_H
5 #define SWIFT_SIM_XSWIFTBUS_DBUSCONNECTION_H
8 #include <event2/event.h>
12 #include <unordered_map>
14 #include "dbuscallbacks.h"
15 #include "dbusdispatcher.h"
16 #include "dbuserror.h"
17 #include "dbusmessage.h"
75 const DBusObjectPathVTable &dbusObjectPathVTable);
88 virtual void dispatch() override final;
91 void setDispatchStatus(DBusConnection *connection, DBusDispatchStatus status);
92 static
void setDispatchStatus(DBusConnection *connection, DBusDispatchStatus status,
void *data);
93 static DBusHandlerResult filterDisconnectedFunction(DBusConnection *connection, DBusMessage *message,
96 struct DBusConnectionDeleter
98 void operator()(DBusConnection *obj)
const { dbus_connection_unref(obj); }
101 CDBusDispatcher *m_dispatcher =
nullptr;
102 std::unique_ptr<DBusConnection, DBusConnectionDeleter> m_connection;
103 CDBusError m_lastError;
104 std::unordered_map<CDBusObject *, DisconnectedCallback> m_disconnectedCallbacks;
virtual void dispatch() final
Dispatch execution method.
~CDBusConnection()
Destructor.
void registerDisconnectedCallback(CDBusObject *obj, DisconnectedCallback func)
Register a disconnected callback.
std::function< void()> DisconnectedCallback
Disconnect Callback.
void requestName(const std::string &name)
Request name to the bus.
void sendMessage(const CDBusMessage &message)
Send message to bus.
void setDispatcher(CDBusDispatcher *dispatcher)
Set dispatcher.
CDBusConnection()
Default constructor.
CDBusError lastError() const
Get the last error.
void close()
Close connection.
bool isConnected() const
Is connected?
void unregisterDisconnectedCallback(CDBusObject *obj)
Register a disconnected callback.
void registerObjectPath(CDBusObject *object, const std::string &interfaceName, const std::string &objectPath, const DBusObjectPathVTable &dbusObjectPathVTable)
Register DBus object with interfaceName and objectPath.
bool connect(BusType type)
Connect to bus.
Plugin loaded by X-Plane which publishes a DBus service.