From 509bb577befdd86dc1f6ecb0171cb58a090facfe Mon Sep 17 00:00:00 2001 From: Dawid Drozd Date: Sun, 10 Sep 2017 14:32:21 +0200 Subject: [PATCH] Update README --- EventBusDiagram.png | Bin 43217 -> 46875 bytes README.md | 95 ++++++++++++++++++++++++------------ test/eventbus/sample.cpp | 103 --------------------------------------- 3 files changed, 64 insertions(+), 134 deletions(-) delete mode 100644 test/eventbus/sample.cpp diff --git a/EventBusDiagram.png b/EventBusDiagram.png index 1ba21b47281a5594c670ccaabba87dd63022450b..ef5a1b231ab5ac6670234d2a7f6512dd08561892 100644 GIT binary patch literal 46875 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

OdsLQY4-!i2?T4vM>22hoN8DAUN=ovQl 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 literal 43217 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 simpleEvent{"simple"}; -//... -bus.notify(simpleEvent, 2);//Everyone who listens will receive this notification. ``` -Notify without Event object: +1. Define events + ```cpp -Dexode::EventBus bus; -//... -bus.notify("simple", 2);//Everyone who listens will receive this notification. +namespace Event // optional namespace +{ + struct Gold + { + int goldReceived = 0; + }; + + struct OK {}; // Simple event when user press "OK" button +} +``` + +2. Subscribe + +```cpp +// ... +bus.listen + ([](const auto& event) // listen with lambda + { + std::cout << "I received gold: " << event.goldReceived << "!" << std::endl; + }); + +HudLayer* hudLayer; +// Hud layer will receive info about gold +bus.listen(std::bind(&HudLayer::onGoldReceived,hudLayer,std::placeholders::_1)); +``` + +3. Notify + +```cpp +//Inform listeners about event +bus.notify(Event::Gold{12}); // 1 way + +bus.notify({12}); // 2 way + +Event::Gold myGold{12}; +bus.notify(myGold); // 3 way ``` Lambda listener: ```cpp +struct SampleEvent {}; Dexode::EventBus bus; //... -int token = bus.listen("simple", [](int value) // register listener +int token = bus.listen([](const SampleEvent& event) // register listener { }); + //If we want unlisten exact listener we can use token for it bus.unlistenAll(token); ``` @@ -54,13 +90,13 @@ Listener is identified by `token`. Token is returned from EventBus::listen metho We can register multiple listeners on one token: ```cpp Dexode::EventBus bus; -Dexode::Event event{"simple"}; +struct SampleEvent {}; //... -int token = bus.listen(event, [](int value) // register listener +int token = bus.listen([](const auto& event) // register listener { }); -bus.listen(token, event, [](int value) // another listener +bus.listen(token, [](const auto& event) // another listener { }); @@ -72,14 +108,14 @@ It is useful when we want to have multiple listeners in one class. So above exam ```cpp Dexode::EventBus bus; -Dexode::Event event{"simple"}; +struct SampleEvent {}; Dexode::EventCollector collector{&bus}; //... -collector.listen(event, [](int value) // register listener +collector.listen([](const SampleEvent& event) // register listener { }); -collector.listen(event, [](int value) // another listener +collector.listen([](const SampleEvent& event) // another listener { }); @@ -91,18 +127,18 @@ Or as component of class: class Example { public: - Example(Dexode::EventBus& bus) - : _collector{&bus} + Example(const std::shared_ptr& bus) + : _collector{bus} { - _collector.listen("event1", std::bind(&Example::onEvent1, this, std::placeholders::_1)); - _collector.listen("event2", std::bind(&Example::onEvent2, this, std::placeholders::_1)); + _collector.listen(std::bind(&Example::onEvent1, this, std::placeholders::_1)); + _collector.listen(std::bind(&Example::onEvent2, this, std::placeholders::_1)); } - void onEvent1(int value) + void onEvent1(const SimpleEvent& event) { } - void onEvent2(std::string value) + void onEvent2(const OtherEvent& event) { } @@ -111,7 +147,7 @@ private: }; //EventCollector sample -Dexode::EventBus bus; +std::shared_ptr bus; Example ex{bus}; //... bus.notify("event1", 2); @@ -128,21 +164,18 @@ ADD_EXECUTABLE(MyExecutable main.cpp ) -SET_TARGET_PROPERTIES(MyExecutable PROPERTIES - CXX_STANDARD 14 - CXX_STANDARD_REQUIRED YES - ) - TARGET_LINK_LIBRARIES(MyExecutable PUBLIC Dexode::EventBus) ``` Also if you want you can install library and add it at any way you want. Eg. ```commandline -cmake -DCMAKE_INSTALL_PREFIX=./install .. +mkdir Release && cd Release +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./install .. make && make install ``` +Now in `Release/install` library is placed. # Performance I have prepared some performance results. You can read about them [here](performance/README.md) @@ -158,10 +191,10 @@ checkNotifyFor10kListenersWhenNoOneListens_CCNotificationCenter 127388 ns # Future plans -- Thread safe EventBus -- Verbose messages for easy debugging -- Fix removing/adding listeners during other notification - Write more and better tests +- Thread safe EventBus ? +- Verbose messages for easy debugging ? +- Generating graph flow ? - ... # Thanks to diff --git a/test/eventbus/sample.cpp b/test/eventbus/sample.cpp deleted file mode 100644 index 82fa4ca..0000000 --- a/test/eventbus/sample.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// -// Created by Dawid Drozd aka Gelldur on 06.08.17. -// - -#include -#include - -void sampleUsages() -{ - { - //Notify by Event object - Dexode::EventBus bus; - Dexode::Event simpleEvent{"simple"}; - //... - bus.notify(simpleEvent, 2);//Everyone who listens will receive this notification. - } - { - //Notify without Event object - Dexode::EventBus bus; - //... - bus.notify("simple", 2);//Everyone who listens will receive this notification. - } - { - //Lambda listener - Dexode::EventBus bus; - //... - int token = bus.listen("simple", [](int value) // register listener - { - }); - //If we want unlisten exact listener we can use token for it - bus.unlistenAll(token); - } - { - //Unlisten everyone who is waiting for event X //TODO - Dexode::EventBus bus; - Dexode::Event event{"simple"}; - //... - int token = bus.listen(event, [](int value) // register listener - { - }); - //If we want unlisten exact listener we can use token for it - } - { - //Listen on some token - Dexode::EventBus bus; - Dexode::Event event{"simple"}; - //... - int token = bus.listen(event, [](int value) // register listener - { - }); - - bus.listen(token, event, [](int value) // another listener - { - }); - - bus.unlistenAll(token);//Now those two lambdas will be removed from listeners - } - { - //EventCollector sample - Dexode::EventBus bus; - Dexode::Event event{"simple"}; - Dexode::EventCollector collector{&bus}; - //... - collector.listen(event, [](int value) // register listener - { - }); - - collector.listen(event, [](int value) // another listener - { - }); - - collector.unlistenAll();//Now those two lambdas will be removed from listeners - } - { - class Example - { - public: - Example(Dexode::EventBus& bus) - : _collector{&bus} - { - _collector.listen("event1", std::bind(&Example::onEvent1, this, std::placeholders::_1)); - _collector.listen("event2", std::bind(&Example::onEvent2, this, std::placeholders::_1)); - } - - void onEvent1(int value) - { - } - - void onEvent2(std::string value) - { - } - - private: - Dexode::EventCollector _collector;// use RAII - }; - - //EventCollector sample - Dexode::EventBus bus; - Example ex{bus}; - //... - bus.notify("event1", 2); - } -}