summaryrefslogtreecommitdiff
path: root/src/CommonAPI/DBus/DBusProxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/CommonAPI/DBus/DBusProxy.cpp')
-rw-r--r--src/CommonAPI/DBus/DBusProxy.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/CommonAPI/DBus/DBusProxy.cpp b/src/CommonAPI/DBus/DBusProxy.cpp
index 990021c..cc04a91 100644
--- a/src/CommonAPI/DBus/DBusProxy.cpp
+++ b/src/CommonAPI/DBus/DBusProxy.cpp
@@ -13,6 +13,7 @@
#include "DBusUtils.h"
#include <cassert>
+#include <sstream>
namespace CommonAPI {
@@ -28,12 +29,14 @@ void DBusProxyStatusEvent::onListenerAdded(const CancellableListener& listener)
}
-DBusProxy::DBusProxy(const std::string& commonApiAddress,
+DBusProxy::DBusProxy(const std::shared_ptr<DBusFactory>& factory,
+ const std::string& commonApiAddress,
const std::string& dbusInterfaceName,
const std::string& dbusBusName,
const std::string& dbusObjectPath,
const std::shared_ptr<DBusProxyConnection>& dbusConnection):
DBusProxyBase(dbusConnection),
+ factory_(factory),
commonApiServiceId_(split(commonApiAddress, ':')[1]),
commonApiParticipantId_(split(commonApiAddress, ':')[2]),
dbusBusName_(dbusBusName),
@@ -43,12 +46,13 @@ DBusProxy::DBusProxy(const std::string& commonApiAddress,
availabilityStatus_(AvailabilityStatus::UNKNOWN),
interfaceVersionAttribute_(*this, "getInterfaceVersion", "uu"),
dbusServiceRegistry_(dbusConnection->getDBusServiceRegistry()) {
+}
- const std::string commonApiDomain = split(commonApiAddress, ':')[0];
- assert(commonApiDomain == "local");
-
+void DBusProxy::init() {
+ std::stringstream ss;
+ ss << "local:" << commonApiServiceId_ << ":" << commonApiParticipantId_;
dbusServiceRegistrySubscription_ = dbusServiceRegistry_->subscribeAvailabilityListener(
- commonApiAddress,
+ ss.str(),
std::bind(&DBusProxy::onDBusServiceInstanceStatus, this, std::placeholders::_1));
}