diff options
Diffstat (limited to 'src/CommonAPI/DBus/DBusProxy.cpp')
-rw-r--r-- | src/CommonAPI/DBus/DBusProxy.cpp | 14 |
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)); } |