summaryrefslogtreecommitdiff
path: root/src/CommonAPI/DBus/DBusDaemonProxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/CommonAPI/DBus/DBusDaemonProxy.cpp')
-rw-r--r--src/CommonAPI/DBus/DBusDaemonProxy.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/CommonAPI/DBus/DBusDaemonProxy.cpp b/src/CommonAPI/DBus/DBusDaemonProxy.cpp
index 1c804ee..24d4d16 100644
--- a/src/CommonAPI/DBus/DBusDaemonProxy.cpp
+++ b/src/CommonAPI/DBus/DBusDaemonProxy.cpp
@@ -42,6 +42,10 @@ DBusDaemonProxy::DBusDaemonProxy(const std::shared_ptr<DBusProxyConnection>& dbu
nameOwnerChangedEvent_(*this, "NameOwnerChanged", "sss") {
}
+void DBusDaemonProxy::init() {
+
+}
+
std::string DBusDaemonProxy::getAddress() const {
return getDomain() + ":" + getServiceId() + ":" + getInstanceId();
}
@@ -69,6 +73,10 @@ bool DBusDaemonProxy::isAvailable() const {
return getDBusConnection()->isConnected();
}
+bool DBusDaemonProxy::isAvailableBlocking() const {
+ return isAvailable();
+}
+
ProxyStatusEvent& DBusDaemonProxy::getProxyStatusEvent() {
return getDBusConnection()->getConnectionStatusEvent();
}
@@ -173,6 +181,24 @@ std::future<CallStatus> DBusDaemonProxy::getManagedObjectsAsync(const std::strin
2000);
}
+std::future<CallStatus> DBusDaemonProxy::getNameOwnerAsync(const std::string& busName, GetNameOwnerAsyncCallback getNameOwnerAsyncCallback) const {
+ DBusMessage dbusMessage = createMethodCall("GetNameOwner", "s");
+
+ DBusOutputStream outputStream(dbusMessage);
+ const bool success = DBusSerializableArguments<std::string>::serialize(outputStream, busName);
+ if (!success) {
+ std::promise<CallStatus> promise;
+ promise.set_value(CallStatus::OUT_OF_MEMORY);
+ return promise.get_future();
+ }
+ outputStream.flush();
+
+ return getDBusConnection()->sendDBusMessageWithReplyAsync(
+ dbusMessage,
+ DBusProxyAsyncCallbackHandler<std::string>::create(getNameOwnerAsyncCallback),
+ 2000);
+}
+
} // namespace DBus
} // namespace CommonAPI