25 #ifndef DBUS_CONNECTION_HPP
26 #define DBUS_CONNECTION_HPP
40 typedef std::unique_ptr<GVariant, void(*)(GVariant*)>
GVariantPtr;
47 typedef std::shared_ptr<MethodResultBuilder>
Pointer;
50 virtual void set(GVariant* parameters) = 0;
52 virtual void setError(
const std::string& name,
const std::string& message) = 0;
62 virtual GVariant*
get() = 0;
74 typedef std::unique_ptr<DbusConnection>
Pointer;
78 typedef std::function<void(
const std::string& objectPath,
79 const std::string& interface,
80 const std::string& methodName,
85 typedef std::function<void(
const std::string& name
88 typedef std::function<void(
const std::string& senderBusName,
89 const std::string& objectPath,
90 const std::string& interface,
91 const std::string& signalName,
116 void setName(
const std::string& name,
123 void emitSignal(
const std::string& objectPath,
124 const std::string& interface,
125 const std::string& name,
126 GVariant* parameters);
134 const std::string& senderBusName =
"",
135 const std::string& interface =
"",
136 const std::string& objectPath =
"",
137 const std::string& member =
"");
149 const std::string& objectDefinitionXml,
157 const std::string& objectPath,
158 const std::string& interface,
159 const std::string& method,
160 GVariant* parameters,
161 const std::string& replyType,
168 const std::string& objectPath,
169 const std::string& interface,
170 const std::string& method,
171 GVariant* parameters,
172 const std::string& replyType,
179 std::string
introspect(
const std::string& busName,
const std::string& objectPath);
221 static void onNameAcquired(GDBusConnection* connection,
const gchar* name, gpointer userData);
222 static void onNameLost(GDBusConnection* connection,
const gchar* name, gpointer userData);
223 static void onSignal(GDBusConnection* connection,
226 const gchar* interface,
228 GVariant* parameters,
232 const gchar* objectPath,
233 const gchar* interface,
235 GVariant* parameters,
236 GDBusMethodInvocation* invocation,
239 GAsyncResult* asyncResult,
249 #endif // DBUS_CONNECTION_HPP
std::function< void(const std::string &name)> ClientVanishedCallback
Definition: connection.hpp:86
MethodCallCallback methodCall
Definition: connection.hpp:193
virtual void set(GVariant *parameters)=0
static void onSignal(GDBusConnection *connection, const gchar *sender, const gchar *object, const gchar *interface, const gchar *name, GVariant *parameters, gpointer userData)
Definition: connection.cpp:246
void setName(const std::string &name, const VoidCallback &onNameAcquired, const VoidCallback &onNameLost)
Sets a name to the dbus connection.
Definition: connection.cpp:169
void signalUnsubscribe(SubscriptionId subscriptionId)
Unsubscribes from a signal.
Definition: connection.cpp:241
~DbusConnection()
Definition: connection.cpp:150
Definition: connection.hpp:203
static void onClientVanish(GDBusConnection *connection, const gchar *name, gpointer userData)
Definition: connection.cpp:359
static Pointer createSystem()
Creates a connection to the system dbus.
Definition: connection.cpp:123
std::function< void(const std::string &senderBusName, const std::string &objectPath, const std::string &interface, const std::string &signalName, GVariant *parameters)> SignalCallback
Definition: connection.hpp:93
static Pointer create(const std::string &address)
Creates a connection to the dbus with given address.
Definition: connection.cpp:118
Definition: connection.hpp:192
Callback guard.
Definition: callback-guard.hpp:38
virtual ~AsyncMethodCallResult()
Definition: connection.hpp:61
DbusConnection * dbusConn
Definition: connection.hpp:195
static void onMethodCall(GDBusConnection *connection, const gchar *sender, const gchar *objectPath, const gchar *interface, const gchar *method, GVariant *parameters, GDBusMethodInvocation *invocation, gpointer userData)
Definition: connection.cpp:321
Definition: connection.hpp:182
std::map< std::string, guint > ClientsMap
Definition: connection.hpp:190
ClientVanishedCallback clientVanished
Definition: connection.hpp:194
Dbus connection.
Definition: connection.hpp:72
ClientsMap mWatchedClients
Definition: connection.hpp:214
std::function< void(const std::string &objectPath, const std::string &interface, const std::string &methodName, GVariant *parameters, MethodResultBuilder::Pointer result)> MethodCallCallback
Definition: connection.hpp:83
An interface used to get result from async response.
Definition: connection.hpp:59
VanishedCallbacks(const ClientVanishedCallback &vanish, ClientsMap &clients)
Definition: connection.hpp:207
VoidCallback nameAcquired
Definition: connection.hpp:183
SubscriptionId signalSubscribe(const SignalCallback &callback, const std::string &senderBusName="", const std::string &interface="", const std::string &objectPath="", const std::string &member="")
Subscribes to a signal.
Definition: connection.cpp:222
utils::CallbackGuard mGuard
Definition: connection.hpp:217
guint mNameId
Definition: connection.hpp:212
void registerObject(const std::string &objectPath, const std::string &objectDefinitionXml, const MethodCallCallback &method, const ClientVanishedCallback &vanish)
Registers an object with given definition.
Definition: connection.cpp:276
GVariantPtr callMethod(const std::string &busName, const std::string &objectPath, const std::string &interface, const std::string &method, GVariant *parameters, const std::string &replyType, int timeoutMs=-1)
Call a dbus method.
Definition: connection.cpp:380
NameCallbacks(const VoidCallback &acquired, const VoidCallback &lost)
Definition: connection.hpp:186
ClientVanishedCallback clientVanished
Definition: connection.hpp:204
std::unique_ptr< GVariant, void(*)(GVariant *)> GVariantPtr
Definition: connection.hpp:40
ClientsMap & watchedClients
Definition: connection.hpp:205
An interface used to set a result to a method call.
Definition: connection.hpp:45
std::unique_ptr< DbusConnection > Pointer
Definition: connection.hpp:74
std::function< void()> VoidCallback
Definition: connection.hpp:76
std::function< void(AsyncMethodCallResult &asyncMethodCallResult)> AsyncMethodCallCallback
Definition: connection.hpp:96
std::shared_ptr< MethodResultBuilder > Pointer
Definition: connection.hpp:47
MethodCallbacks(const MethodCallCallback &method, const ClientVanishedCallback &vanish, DbusConnection *dbus)
Definition: connection.hpp:197
static void onNameAcquired(GDBusConnection *connection, const gchar *name, gpointer userData)
Definition: connection.cpp:184
DbusConnection(const std::string &address)
Definition: connection.cpp:128
virtual void setError(const std::string &name, const std::string &message)=0
std::string introspect(const std::string &busName, const std::string &objectPath)
Returns an xml with meta description of specified dbus object.
Definition: connection.cpp:263
virtual ~MethodResultBuilder()
Definition: connection.hpp:49
void emitSignal(const std::string &objectPath, const std::string &interface, const std::string &name, GVariant *parameters)
Emits dbus signal.
Definition: connection.cpp:202
static void onAsyncReady(GObject *source, GAsyncResult *asyncResult, gpointer userData)
Definition: connection.cpp:433
unsigned int SubscriptionId
Definition: connection.hpp:98
virtual std::string getPeerName()=0
void callMethodAsync(const std::string &busName, const std::string &objectPath, const std::string &interface, const std::string &method, GVariant *parameters, const std::string &replyType, const AsyncMethodCallCallback &callback, int timeoutMs=-1)
Async call a dbus method.
Definition: connection.cpp:409
VoidCallback nameLost
Definition: connection.hpp:184
static void onNameLost(GDBusConnection *connection, const gchar *name, gpointer userData)
Definition: connection.cpp:193
GDBusConnection * mConnection
Definition: connection.hpp:211