From 27776f5a89ba71cb102e5c2e08b813025c55c663 Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Tue, 24 Apr 2018 15:08:22 +0200 Subject: Use signal subscription args if present By default subscription argument request from signal are passed if present, else the one from the signal's source if present. If nothing is specified for sources then argument is set as a NULL pointer. Change-Id: I18db0a9922039f41d475cd08758a2afd4acaa9d4 Signed-off-by: Romain Forlot --- signal-composer-binding/source.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'signal-composer-binding/source.cpp') diff --git a/signal-composer-binding/source.cpp b/signal-composer-binding/source.cpp index f34b88f..6832320 100644 --- a/signal-composer-binding/source.cpp +++ b/signal-composer-binding/source.cpp @@ -149,6 +149,7 @@ void SourceAPI::makeSubscription() source.uid = api_.c_str(); source.api = nullptr; // We use binding v2, no dynamic API. source.request = {nullptr, nullptr}; + json_object *argsSaveJ = getSignals_->argsJ; for(auto& sig: signalsM_) { @@ -162,15 +163,18 @@ void SourceAPI::makeSubscription() } source.uid = sig.first.c_str(); source.context = getSignals_->type == CTL_TYPE_CB ? - getSignals_->exec.cb.plugin->context: + getSignals_->exec.cb.plugin->context : nullptr; + getSignals_->argsJ = sig.second->getSignalsArgs() ? + sig.second->getSignalsArgs() : + argsSaveJ; ActionExecOne(&source, getSignals_, signalJ); // Considerate signal subscribed no matter what sig.second->subscribed_ = true; - json_object_put(signalJ); } } - source.uid = ""; + getSignals_->argsJ = argsSaveJ; + source.uid = uid_.c_str(); ActionExecOne(&source, getSignals_, nullptr); } } -- cgit 1.2.3-korg