Dawid Drozd
a58aa21934
Fix implicit move that could lead to UB
...
In some scenarios we could end up with UB. I added simple example in test case where we add class
instance to vector and as we know it may move its elements when resizing.
Maybe we could allow to move and just unlisten previous listener but this would be very annoying as
user needs to remember what would happen in every case. It is better to let user decide and force
him to think about it.
2020-03-26 11:53:05 +01:00
Dawid Drozd
b4bceafb40
Fix data race
...
Bad usage of condition variable
2020-03-13 09:59:50 +01:00
Dawid Drozd
35efe42884
Fix WaitPerk for dummy waiting case
...
It could happen that we had some events in queue but we still would wait for new events.
2020-03-12 13:59:40 +01:00
Dawid Drozd
7c63021ea3
Add integration tests
...
- Refactor unit tests
2020-03-12 09:48:03 +01:00
Dawid Drozd
0985cd62d2
Move test into new file layout
...
No code changes only moving stuff
2020-03-12 09:40:26 +01:00
Dawid Drozd
d7c9690cc7
Fix Travis build
...
- Update Travis
- Fix option
- Update Catch2 required version to 2.10
2020-01-02 12:48:14 +01:00
Dawid Drozd
2bc2858a8a
New EventBus 3.0
2019-12-27 11:24:34 +01:00
Dawid Drozd
2bb9c3e679
Add TagEventBus
2019-10-30 17:44:52 +01:00
Dawid Drozd
54b3fae30a
Remove old EventBus 2.X and make room for 3.X
2019-09-14 23:46:12 +02:00
Dawid Drozd
7e6bb32e27
Update CXX_STANDARD to C++17 and minimum required cmake version to 3.11
2019-06-30 14:14:43 +02:00
Dawid Drozd
02b45437b6
Update clang-format config file and reformat whole code according to it
...
- Clang-tidy applied
- No logic changes, just code style improvement.
2019-06-29 11:27:38 +02:00
Dawid Drozd
cf44a59ca3
Rename Dexode::Internal::type_id to Dexode::Internal::event_id
2019-06-29 11:10:02 +02:00
Dawid Drozd
2edc809a74
Update code format according to clang-format
...
No code changes
2019-03-30 15:31:18 +01:00
Dawid Drozd
0d2fa6ef85
Update required Catch2 to 2.6
2019-03-30 15:12:09 +01:00
Dawid Drozd
42c690e774
Fix gcc warning
2019-01-20 20:47:53 +01:00
Dawid Drozd
34902c481d
Fix type_id<T>() helper function for Visual Studio
...
Issue: #19
Visual Studio optimize not so portable version of type_id<T>()
so each time we get same id for different types.
Added small test to check this behavior in future.
2019-01-20 20:39:07 +01:00
Dawid Drozd
7cf4465168
Add AsyncEventBus
...
Now it is possible to schedule events from different threads.
2018-09-08 19:56:19 +02:00
Dawid Drozd
3c282b5139
Update Catch2 to version at least 2.3
...
They broke target name ;(
2018-09-05 20:44:44 +02:00
Dawid Drozd
3688c145cb
Reorganize project structure
...
commit f7dd4172cf535cf52601a8819cf5c8bfabcd1fe4
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 31 10:26:27 2018 +0200
Improve Travis script
Fixed after reordering project structure
commit d054e5c91762da15defa458404e355d7c670e301
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Mon Jul 30 15:11:21 2018 +0200
Update Travis CI for linux and OSX
commit 63395f5a7e3dd9f2a52b2d6a254da89ec1d6e5e9
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Fri Jul 27 14:38:40 2018 +0200
Secure EventBus from wrong usage
For example user previously could do such thing:
bus.listen<const MyEvent>(...)
bus.listen<MyEvent>(...)
Those we 2 different events :/
commit f9195316d3ba6313ee425e3194b65b32fe52d641
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Thu Jul 26 12:44:17 2018 +0200
Update for better managing Debug/Release
Updated project for easy switch between debug/release versions of library
Thanks to that we can do only find_package and don't have to care about if's switching between
debug/release
Thanks: https://github.com/forexample/package-example
commit 7d708959d9e96176875ca882f0f69a72622added
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Wed Jul 25 13:45:55 2018 +0200
Update clang-format style
commit beb1d3b863379490f321e43f3e42ab272954ea67
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 16:05:16 2018 +0200
Add some docs
commit ca450dfeee2d4bc604bbb9bf0599f373c21a4173
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 15:49:52 2018 +0200
Remove not needed includes
commit 6473b80e8e60408675bcc4adc88653390576c4bd
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 15:41:57 2018 +0200
Code format
commit 8abb56e1dd4b71df2b05bb34bef0530567e4ff2e
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 15:41:40 2018 +0200
Improve performance
Thanks to that we don't need RTTI
commit 1feacbb1f9ae6a5ac2209a6dc1df5c868ead8fd4
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 15:14:16 2018 +0200
Remove trash
commit b5dc5c05589b969dd61eb65b68e4cdce69c5a5fb
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 15:00:15 2018 +0200
Fix include path
commit 9939fd09805191f0bdada6cb85193a291d519116
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 14:51:02 2018 +0200
Update install lib
commit 9eaa09f9ec5a29045b03ffc7632878863a2b2b9b
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 14:50:47 2018 +0200
Fix
commit 7a5b3323af0b728f7e511ac22ff5027c6d06402e
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 14:16:12 2018 +0200
Update README
commit beb6599ee4385fdffc747dc866db46e160be1358
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 14:16:05 2018 +0200
Add performance compare to Poco::NotifactionCenter
commit 1d25b997580a9ee09c9db86135b4ca9e1b1a10c6
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 14:14:08 2018 +0200
Update clang-format
commit 4f4cb4a7e8a849c067a42085eb3e76c3df894bc7
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 13:04:30 2018 +0200
Remove bad flag
It is only working for GCC
commit 66a7945084607f94d9d0c803008398e8d281fd06
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 13:03:15 2018 +0200
Remove deprecated stuff
It was breaking encapsulation
commit 1e7500607b42bff3632250f623888b95a503dfd0
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 13:01:37 2018 +0200
Update sample
commit 11a146bb9145fa55f9b9a39a9e033387007a7151
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 13:01:27 2018 +0200
Add clang-format rules
commit 685562c632d9751f50a2f05b92ef9ebf53a5d6e0
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 12:47:10 2018 +0200
Reorganize project layout
Inspired by: https://www.youtube.com/watch?v=6sWec7b0JIc
commit 40d1d6487814730533d7dd7cbedbaf2b4e34ef19
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 12:45:55 2018 +0200
Remove Catch2 submodule
Switch to own dependency
commit ca21df04f392adcb027a5b4f25ffac085b51f48c
Author: Dawid Drozd <dawid.drozd@mobica.com>
Date: Tue Jul 24 11:28:51 2018 +0200
Remove old code
2018-07-31 11:33:35 +02:00
Dawid Drozd
caec657b07
Fix GCC compile
2017-12-07 12:07:24 +01:00
Dawid Drozd
b41c6254ff
Update compile flags
2017-12-05 13:14:20 +01:00
Dawid Drozd
636b63865d
Fix compiler flags
2017-12-04 13:46:51 +01:00
Dawid Drozd
c02c69c083
Add tests
2017-09-10 15:03:06 +02:00
Dawid Drozd
509bb577be
Update README
2017-09-10 14:32:21 +02:00
Dawid Drozd
c4f0b8b233
Update cmake flags
2017-09-10 13:05:36 +02:00
Dawid Drozd
9126286acc
Add transaction safety
...
Fix case when during notification we start add/remove listeners.
2017-08-27 22:59:40 +02:00
Dawid Drozd
fc1dbe335f
Update EventBus to 2.1.0 inspired by Boost::MSM
...
I was wondering if it is a good step for EventBus. Of course, it will break back
compatibility again as well as it was when changing v1 -> v2, but this change is
smaller. Those changes were inspired by Boost::MSM how it handles events.
Why i decided to change:
+ It will prevent from bugs like typo in Event string eg. Event<int>{"text"}
+ If we want to change signature of Event, we won't have to update all listeners
and their signature
+ Less includes for listener. Simply in our class header we will have eg.
pointer/ref to event type not to all args
+ Strongly typed (this is always better)
+ Storing event for future reuse
+ More easy to introduce thread safe EventBus in future
+ EventBus is more simple
+ const Event forbids some kind of communication. Eg. passing and modifying
reference
+ Less errors when using std::bind
- Breaking back compatibility
- Need fixes in projects that using this lib
- Someone can add methods etc. to Event :(
- We can't generate easily multiple "types" of events like in 'for' loop
- Worst performance (still not such bad as CCNotificationCenter)
2017-08-26 13:28:45 +02:00
Dawid Drozd
23ab070061
Add EventBus::notify for simple strings
2017-08-25 16:02:25 +02:00
Dawid Drozd
257cc90c86
Add test for checking validating different notifications keys
2017-08-25 11:38:13 +02:00
Dawid Drozd
8f0b5f3b08
Fix test
2017-08-15 21:48:09 +02:00
Dawid Drozd
2d14ca521d
Update documentation and naming
2017-08-06 17:24:13 +02:00
Dawid Drozd
ffbf4b91a9
Update compile flags
2017-08-06 17:13:00 +02:00
Dawid Drozd
94973b5779
EventBus 2.0.0
2017-08-06 11:22:59 +02:00
Dawid Drozd
1db41d903a
Add new implementation of EventBus
...
Simply new version breaks back compability and simply is better ;)
2017-08-06 00:14:35 +02:00
Dawid Drozd
7b81d56794
Add some unit tests
2017-08-05 12:15:33 +02:00
Dawid Drozd
0012c21709
Add CATCH unit test library v1.9.6
2017-08-05 11:42:54 +02:00