diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-09-22 18:16:57 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-12-14 11:00:25 +0100 |
commit | 51ee5299a7db41e52da2cf52dd9cd9c05b76740a (patch) | |
tree | ecdc922c7c7573ddb0dc091c9cbc3b111a0cc981 /signal-composer-binding/signal-composer.cpp | |
parent | a758f4a632adc7fff4769d97379264de6c68685d (diff) |
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 <romain.forlot@iot.bzh>
Diffstat (limited to 'signal-composer-binding/signal-composer.cpp')
-rw-r--r-- | signal-composer-binding/signal-composer.cpp | 41 |
1 files changed, 12 insertions, 29 deletions
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 <string.h> #include <fnmatch.h> -#include "signal-composer.hpp" +#include "clientApp.hpp" extern "C" void setSignalValueHandle(const char* aName, long long int timestamp, struct SignalValue value) { - std::vector<std::shared_ptr<Signal>> signals = Composer::instance().searchSignals(aName); + std::vector<Signal*> 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<Signal> 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<std::shared_ptr<Signal>> Composer::getAllSignals() +std::vector<Signal*> Composer::getAllSignals() { - std::vector<std::shared_ptr<Signal>> allSignals; + std::vector<Signal*> allSignals; for( auto& source : sourcesListV_) { - std::vector<std::shared_ptr<Signal>> srcSignals = source.getSignals(); + std::vector<Signal*> 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<std::shared_ptr<Signal>> Composer::searchSignals(const std::string& aName) +std::vector<Signal*> Composer::searchSignals(const std::string& aName) { std::string api; - std::vector<std::shared_ptr<Signal>> signals; + std::vector<Signal*> signals; size_t sep = aName.find_first_of("/"); if(sep != std::string::npos) { @@ -488,8 +486,8 @@ std::vector<std::shared_ptr<Signal>> Composer::searchSignals(const std::string& } else { - std::vector<std::shared_ptr<Signal>> allSignals = getAllSignals(); - for (std::shared_ptr<Signal>& sig : allSignals) + std::vector<Signal*> 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<std::shared_ptr<Signal>> sigP = searchSignals(sig); + std::vector<Signal*> 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<clientAppCtxT*>::const_iterator i = subscriptions_.begin(); - i != subscriptions_.end(); ++i) - { - if(ctx == *i) - {subscriptions_.erase(i);} - } -} |