Skip to content

Commit ad37e61

Browse files
committed
- Prepared for release 1.0.0
1 parent 1f5aae6 commit ad37e61

File tree

6 files changed

+368
-44
lines changed

6 files changed

+368
-44
lines changed

README.md

Lines changed: 332 additions & 9 deletions
Large diffs are not rendered by default.

component.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
COMPONENT_ADD_INCLUDEDIRS := include
22
COMPONENT_SRCDIRS := src
33
CXXFLAGS += -DESPRESSIO_EVENT
4-
CXXFLAGS += -DESPRESSIO_EVENT_VERSION_MAJOR=0
4+
CXXFLAGS += -DESPRESSIO_EVENT_VERSION_MAJOR=1
55
CXXFLAGS += -DESPRESSIO_EVENT_VERSION_MINOR=0
6-
CXXFLAGS += -DESPRESSIO_EVENT_VERSION_PATCH=1
7-
CXXFLAGS += -DESPRESSIO_EVENT_VERSION_STRING=\"0.0.1\"
6+
CXXFLAGS += -DESPRESSIO_EVENT_VERSION_PATCH=0
7+
CXXFLAGS += -DESPRESSIO_EVENT_VERSION_STRING=\"1.0.0\"

library.json

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
{
2-
"name": "Flowduino ESPressio-Observable",
2+
"name": "ESPressio-Observable",
33
"description": "Event-Pattern Library intended for use with all microcontrollers",
44
"keywords": "event,events,event-driven,event pattern,pattern,design pattern,async,callback,watcher,notifier,espressio",
55
"authors": {
66
"name": "Flowduino",
7-
"maintainer": true
7+
"maintainer": true,
8+
"url": "https://flowduino.com"
89
},
910
"build": {
1011
"flags": [
@@ -16,14 +17,14 @@
1617
"type": "git",
1718
"url": "https://github.com/Flowduino/ESPressio-Event.git"
1819
},
19-
"version": "0.0.1",
20+
"version": "1.0.0",
2021
"license": "Apache-2.0",
21-
"frameworks": "arduino",
22+
"frameworks": "*",
2223
"platforms": "*",
2324
"dependencies": [
2425
{
2526
"name": "Flowduino ESPressio-Threads",
26-
"version": "0.0.1",
27+
"version": "1.0.0",
2728
"url": "https://github.com/Flowduino/ESPressio-Threads.git",
2829
"platforms": "espressif32,espressif8266"
2930
}

library.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name=Flowduino ESPressio-Event
2-
version=0.0.1
2+
version=1.0.0
33
author=Simon J. Stuart
44
maintainer=Flowduino.com
55
sentence=Event-Driven Devleopment Library intended for use with all microcontrollers
66
paragraph=This library is intended to be used with the all microcontrollers. It is designed to allow the user to very easily design, structure, and develop your embedded programs using the Event Pattern. This library is intended to be used with PlatformIO and the Arduino framework.
77
category=Communication
88
url=https://github.com/Flowduino/ESPressio-Event
9-
architectures=esp32, esp32s2
9+
architectures=*

src/ESPressio_EventListener.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace ESPressio {
77
namespace Event {
88

99
template <typename EventType>
10-
IEventListenerHandler* IEventListener::RegisterListener(
10+
IEventListenerHandle* IEventListener::RegisterListener(
1111
std::function<void(
1212
IEvent*,
1313
EventDispatchMethod dispatchMethod,
@@ -20,7 +20,7 @@ namespace ESPressio {
2020
}
2121

2222
template <typename EventType>
23-
void IEventListener::UnregisterListener(IEventListenerHandler* handler) {
23+
void IEventListener::UnregisterListener(IEventListenerHandle* handler) {
2424
UnregisterListener(typeid(EventType), handler);
2525
}
2626

src/ESPressio_EventListener.hpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ namespace ESPressio {
1818

1919
namespace Event {
2020

21-
class IEventListenerHandler {
21+
class IEventListenerHandle {
2222
public:
23-
virtual ~IEventListenerHandler() { };
23+
virtual ~IEventListenerHandle() { };
2424
virtual void Unregister() = 0;
2525
virtual bool IsRegistered() const = 0;
2626
};
@@ -33,7 +33,7 @@ namespace ESPressio {
3333
public:
3434
virtual ~IEventListener() { }
3535

36-
virtual IEventListenerHandler* RegisterListener(
36+
virtual IEventListenerHandle* RegisterListener(
3737
std::type_index eventType,
3838
std::function<void(
3939
IEvent*,
@@ -46,7 +46,7 @@ namespace ESPressio {
4646
) = 0;
4747

4848
template <typename EventType>
49-
IEventListenerHandler* RegisterListener(
49+
IEventListenerHandle* RegisterListener(
5050
std::function<void(
5151
IEvent*,
5252
EventDispatchMethod dispatchMethod,
@@ -56,32 +56,32 @@ namespace ESPressio {
5656
std::function<bool(IEvent*)> customInterestCallback = nullptr
5757
);
5858

59-
virtual void UnregisterListener(std::type_index eventType, IEventListenerHandler* handler) = 0;
59+
virtual void UnregisterListener(std::type_index eventType, IEventListenerHandle* handler) = 0;
6060

6161
template <typename EventType>
62-
void UnregisterListener(IEventListenerHandler* handler);
62+
void UnregisterListener(IEventListenerHandle* handler);
6363
};
6464

6565
/*
66-
`EventListenerHandler` is returned when invoking `RegisterListener` against any implementor of `IEventListener`.
66+
`EventListenerHandle` is returned when invoking `RegisterListener` against any implementor of `IEventListener`.
6767
This class is used to manage the lifetime of the Listener and to unregister the Listener when it is no longer needed.
6868
You should retain your reference to this Handler and call `Unregister` against it when you are done with the Listener (and on your objects' Destructor if applicable).
69-
DON'T FORGET: YOUR code takes ownership of the EventListenerHandler, and you must destroy (`delete`) it when you are done with it.
69+
DON'T FORGET: YOUR code takes ownership of the EventListenerHandle, and you must destroy (`delete`) it when you are done with it.
7070
*/
71-
class EventListenerHandler : public IEventListenerHandler {
71+
class EventListenerHandle : public IEventListenerHandle {
7272
private:
7373
ReadWriteMutex<bool>* _isRegistered = new ReadWriteMutex(true); // _isRegistered can be altered by multiple threads, so we need to protect it with a Mutex
7474
IEventListener* _listener; // This is a Weak Reference to the Listener (it will be nullified automatically when the Event Listener is destroyed)
7575
std::type_index _eventType; // This is the Event Type (Hash) which we can use to quickly look up the Listeners for this Event Type
7676
public:
7777
// Constructor/Deconstructor
7878

79-
EventListenerHandler(std::type_index eventType, IEventListener* listener) : _eventType(eventType), _listener(listener) { }
79+
EventListenerHandle(std::type_index eventType, IEventListener* listener) : _eventType(eventType), _listener(listener) { }
8080

8181
template <typename EventType>
82-
EventListenerHandler(IEventListener* listener) : _eventType(typeid(EventType)), _listener(listener) { }
82+
EventListenerHandle(IEventListener* listener) : _eventType(typeid(EventType)), _listener(listener) { }
8383

84-
~EventListenerHandler() override {
84+
~EventListenerHandle() override {
8585
Unregister();
8686
delete _isRegistered;
8787
}
@@ -113,7 +113,7 @@ namespace ESPressio {
113113
class IEventListenerContainer {
114114
public:
115115
virtual ~IEventListenerContainer() { }
116-
virtual IEventListenerHandler* GetListenerHandler() const = 0;
116+
virtual IEventListenerHandle* GetListenerHandler() const = 0;
117117
virtual IEventListener* GetRequester() const = 0;
118118
virtual EventListenerInterest GetInterest() const = 0;
119119
virtual unsigned long GetMaximumTimeSinceDispatch() const = 0;
@@ -123,7 +123,7 @@ namespace ESPressio {
123123
template <typename EventType>
124124
class EventListenerContainer : public IEventListenerContainer {
125125
private:
126-
IEventListenerHandler* _listenerHandler;
126+
IEventListenerHandle* _listenerHandler;
127127
IEventListener* _requester; // We will use this to determine if the requester is still alive
128128
std::function<void(EventType*, EventDispatchMethod dispatchMethod, EventPriority priority)> _callback;
129129
EventListenerInterest _interest = EventListenerInterest::All; // Default to All
@@ -139,7 +139,7 @@ namespace ESPressio {
139139
EventDispatchMethod dispatchMethod,
140140
EventPriority priority
141141
)> callback,
142-
IEventListenerHandler* listenerHandler,
142+
IEventListenerHandle* listenerHandler,
143143
EventListenerInterest interest = EventListenerInterest::All,
144144
unsigned long maximumTimeSinceDispatch = 0,
145145
std::function<bool(EventType*)> customInterestCallback = nullptr
@@ -153,7 +153,7 @@ namespace ESPressio {
153153

154154
// Getters
155155

156-
IEventListenerHandler* GetListenerHandler() const { return _listenerHandler; }
156+
IEventListenerHandle* GetListenerHandler() const { return _listenerHandler; }
157157
IEventListener* GetRequester() const { return _requester; }
158158
inline std::function<void(EventType*, EventDispatchMethod dispatchMethod, EventPriority priority)> GetCallback() const { return _callback; }
159159
EventListenerInterest GetInterest() const { return _interest; }
@@ -205,7 +205,7 @@ namespace ESPressio {
205205
_eventListenersMutex.unlock();
206206
}
207207

208-
IEventListenerHandler* RegisterListener(
208+
IEventListenerHandle* RegisterListener(
209209
std::type_index eventType,
210210
std::function<void(
211211
IEvent*,
@@ -220,7 +220,7 @@ namespace ESPressio {
220220
_eventListenersMutex.lock(); // Because we MIGHT be adding a new Listeners collection, we need to exclusively lock the Mutex
221221
EventListeners* typeListeners = GetListenersForEventType(eventType); // Get the Listeners collection for this Event Type (will create the Listeners collection if it doesn't exist)
222222

223-
IEventListenerHandler* handler = new EventListenerHandler(eventType, this);
223+
IEventListenerHandle* handler = new EventListenerHandle(eventType, this);
224224

225225
EventListenerContainer<IEvent>* listener = new EventListenerContainer<IEvent>(this, callback, handler, interest, maximumTimeSinceDispatch, customInterestCallback); // Create a new Listener (EventListenerContainer)
226226

@@ -232,7 +232,7 @@ namespace ESPressio {
232232
}
233233

234234
template <typename EventType>
235-
IEventListenerHandler* RegisterListener(
235+
IEventListenerHandle* RegisterListener(
236236
std::function<void(
237237
EventType*,
238238
EventDispatchMethod dispatchMethod,
@@ -245,7 +245,7 @@ namespace ESPressio {
245245
_eventListenersMutex.lock(); // Because we MIGHT be adding a new Listeners collection, we need to exclusively lock the Mutex
246246
std::type_index eventType = typeid(EventType);
247247
EventListeners* typeListeners = GetListenersForEventType(eventType); // Get the Listeners collection for this Event Type (will create the Listeners collection if it doesn't exist)
248-
IEventListenerHandler* handler = new EventListenerHandler(eventType, this);
248+
IEventListenerHandle* handler = new EventListenerHandle(eventType, this);
249249

250250
EventListenerContainer<EventType>* listener = new EventListenerContainer<EventType>(this, callback, handler, interest, maximumTimeSinceDispatch, customInterestCallback); // Create a new Listener (EventListenerContainer)
251251

@@ -257,7 +257,7 @@ namespace ESPressio {
257257
return handler;
258258
}
259259

260-
void UnregisterListener(std::type_index eventType, IEventListenerHandler* handler) {
260+
void UnregisterListener(std::type_index eventType, IEventListenerHandle* handler) {
261261
_eventListenersMutex.lock(); // Because we MIGHT be removing the Listeners collection, we need to exclusively lock the Mutex
262262
EventListeners* typeListeners = _eventListeners[eventType]; // Get the Listeners collection for this Event Type
263263
if (typeListeners == nullptr) {
@@ -266,7 +266,7 @@ namespace ESPressio {
266266
}
267267
for (auto it = typeListeners->begin(); it != typeListeners->end(); it++) {
268268
if ((*it)->GetListenerHandler() == handler) {
269-
static_cast<EventListenerHandler*>(handler)->ForceUnregister(); // Forcibly Unregister the Handle
269+
static_cast<EventListenerHandle*>(handler)->ForceUnregister(); // Forcibly Unregister the Handle
270270
delete *it; // Delete the Listener
271271
typeListeners->erase(it);
272272
break;
@@ -281,7 +281,7 @@ namespace ESPressio {
281281
}
282282

283283
template <typename EventType>
284-
void UnregisterListener(IEventListenerHandler* handler) {
284+
void UnregisterListener(IEventListenerHandle* handler) {
285285
std::type_index eventType = typeid(EventType);
286286
UnregisterListener(eventType, handler);
287287
}

0 commit comments

Comments
 (0)