From 51ee5299a7db41e52da2cf52dd9cd9c05b76740a Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Fri, 22 Sep 2017 18:16:57 +0200 Subject: Finalize subscription to be a simple relay for now Adding new object holding signals subscribed and afb event that observes Signals using Reactive response observer design pattern Change-Id: I96647d36e0d27c25a399c1b3789621a803a845b6 Signed-off-by: Romain Forlot --- signal-composer-binding/signal-composer.cpp | 41 +++++++++-------------------- 1 file changed, 12 insertions(+), 29 deletions(-) (limited to 'signal-composer-binding/signal-composer.cpp') diff --git a/signal-composer-binding/signal-composer.cpp b/signal-composer-binding/signal-composer.cpp index ba1b406..db35e76 100644 --- a/signal-composer-binding/signal-composer.cpp +++ b/signal-composer-binding/signal-composer.cpp @@ -19,11 +19,11 @@ #include #include -#include "signal-composer.hpp" +#include "clientApp.hpp" extern "C" void setSignalValueHandle(const char* aName, long long int timestamp, struct SignalValue value) { - std::vector> signals = Composer::instance().searchSignals(aName); + std::vector signals = Composer::instance().searchSignals(aName); if(!signals.empty()) { for(auto& sig: signals) @@ -328,7 +328,7 @@ int Composer::loadSignals(CtlSectionT* section, json_object *signalsJ) return err; } -void Composer::processOptions(const char** opts, std::shared_ptr sig, json_object* response) const +void Composer::processOptions(const char** opts, Signal* sig, json_object* response) const { for(int idx=0; idx < sizeof(opts); idx++) { @@ -392,10 +392,8 @@ void* Composer::createContext(void* ctx) uuid_t x; char cuid[38]; uuid_generate(x); - ctx = (clientAppCtxT*)calloc(1, sizeof(clientAppCtxT)); - clientAppCtxT* ret = (clientAppCtxT*) ctx; uuid_unparse(x, cuid); - ret->event = afb_daemon_make_event(cuid); + clientAppCtx* ret = new clientAppCtx(cuid); return (void*)ret; } @@ -453,12 +451,12 @@ int Composer::initSourcesAPI() return err; } -std::vector> Composer::getAllSignals() +std::vector Composer::getAllSignals() { - std::vector> allSignals; + std::vector allSignals; for( auto& source : sourcesListV_) { - std::vector> srcSignals = source.getSignals(); + std::vector srcSignals = source.getSignals(); allSignals.insert(allSignals.end(), srcSignals.begin(), srcSignals.end()); } @@ -475,10 +473,10 @@ SourceAPI* Composer::getSourceAPI(const std::string& api) return nullptr; } -std::vector> Composer::searchSignals(const std::string& aName) +std::vector Composer::searchSignals(const std::string& aName) { std::string api; - std::vector> signals; + std::vector signals; size_t sep = aName.find_first_of("/"); if(sep != std::string::npos) { @@ -488,8 +486,8 @@ std::vector> Composer::searchSignals(const std::string& } else { - std::vector> allSignals = getAllSignals(); - for (std::shared_ptr& sig : allSignals) + std::vector allSignals = getAllSignals(); + for (Signal*& sig : allSignals) { if(*sig == aName) {signals.emplace_back(sig);} @@ -509,7 +507,7 @@ json_object* Composer::getSignalValue(const std::string& sig, json_object* optio &opts[2], &opts[3]); - std::vector> sigP = searchSignals(sig); + std::vector sigP = searchSignals(sig); if(!sigP.empty()) { for(auto& sig: sigP) @@ -556,18 +554,3 @@ int Composer::execSignalsSubscription() } return err; } - -void Composer::addSubscription(clientAppCtxT* ctx) -{ - subscriptions_.push_back(ctx); -} - -void Composer::removeSubscription(clientAppCtxT* ctx) -{ - for(std::vector::const_iterator i = subscriptions_.begin(); - i != subscriptions_.end(); ++i) - { - if(ctx == *i) - {subscriptions_.erase(i);} - } -} -- cgit 1.2.3-korg