diff --git a/README.md b/README.md index f4ce1ed..27914d7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,12 @@ -# Sprocket-Lib +# Sprocket-Core +A lightweight Arduino framework for event driven programming. + +## Concepts +... PubSub pattern +... plugin system -## Lifecycle + +## Sprocket Lifecycle TODO # Useful commands diff --git a/src/Mediator.h b/src/EventChannel.h similarity index 97% rename from src/Mediator.h rename to src/EventChannel.h index 88f6d68..d82e933 100644 --- a/src/Mediator.h +++ b/src/EventChannel.h @@ -12,7 +12,7 @@ using namespace std; typedef std::function subscriptionHandler_t; -class Mediator { +class EventChannel { public: std::map> subscriptions; void subscribe(String topic, subscriptionHandler_t handler) { diff --git a/src/Plugin.h b/src/Plugin.h index 9c83644..51678bf 100644 --- a/src/Plugin.h +++ b/src/Plugin.h @@ -8,24 +8,24 @@ #include #include #include -#include +#include class Plugin { public: - Mediator* mediator; + EventChannel* eventChannel; virtual void activate(Scheduler*); virtual void enable(){} virtual void disable(){} virtual void onMessage(SprocketMessage msg){} - Plugin* mediate(Mediator* m) { - mediator = m; + Plugin* mount(EventChannel* ec) { + eventChannel = ec; return this; } void subscribe(String topic, subscriptionHandler_t handler){ - mediator->subscribe(topic, handler); + eventChannel->subscribe(topic, handler); } void publish(String topic, String str){ - mediator->publish(topic, str); + eventChannel->publish(topic, str); } }; diff --git a/src/Sprocket.cpp b/src/Sprocket.cpp index 7a63ec0..aff075f 100644 --- a/src/Sprocket.cpp +++ b/src/Sprocket.cpp @@ -40,7 +40,7 @@ void Sprocket::dispatch( uint32_t from, String &msg ) { } void Sprocket::addPlugin(Plugin* p){ - p->mediate(this); + p->mount(this); plugins.reserve(1); plugins.push_back(p); } diff --git a/src/Sprocket.h b/src/Sprocket.h index bf378fc..b75fdc6 100644 --- a/src/Sprocket.h +++ b/src/Sprocket.h @@ -19,7 +19,7 @@ using namespace std; using namespace std::placeholders; -class Sprocket : public Mediator { +class Sprocket : public EventChannel { protected: // TODO move scheduler out of Sprocket // => see difference between standalone and mesh sprochet usage of scheduler