Skip to content

Releases: Flowduino/EventDrivenSwift

5.2.0

03 Sep 16:40
951b5c8
Compare
Choose a tag to compare

Introduced a new Custom Event Filtering feature for EventListener.
Added .custom case for EventListenerInterest
Added customFilter property to addListener everywhere applicable in the library
Added documentation (including full code example) for the above in README.md

5.1.0

30 Aug 13:42
9c0924c
Compare
Choose a tag to compare

Implemented .youngerThan Event Interest

  • EventListeners now support the .youngerThan interested, specifying a maximumAge parameter to define (in nanoseconds) the maximum age an Eventable can be (from the point of Dispatch) before the Listener is no longer interested in it.
  • EventReceiving types (all of them) now also support the above behaviour.
  • README.md has been updated to provide an example of how to specify an EventListener with a Maximum Age constraint.

5.0.0

30 Aug 10:49
f8aac7c
Compare
Choose a tag to compare
  • Introduced Latest-Only Listeners
  • Introduced Latest-Only Receivers
  • dispatchTime parameter added to all Callbacks (including Listeners) so that you can read the exact nanosecond-precise time at which each Event was Dispatched. Interface-breaking change, thus the major version increase
  • README.md updated to reflect all of the above

4.2.0

28 Aug 18:57
6cd336d
Compare
Choose a tag to compare
  • Event Scheduling has been added throughout the system.
  • Unit Test coverage for Event Scheduling has also been added.

4.1.0

28 Aug 16:54
c1600f1
Compare
Choose a tag to compare
  • Introduced @EventMethod wrapper in both EventThread and any class implementing EventListening. Can now be used to register immutable Event Listener callbacks within the declaration of any class as a var, and invoke the method registerListeners() on the init method of said class to automatically register any @EventMethod-decorated Listener using Reflection.
  • Replaced the returning of Tokens (UUIDs) when registering an Event Listener, or an Event Callback (inside EventThread) with an appropriate Handle type, containing a remove() method to unregister said Listener/Callback.

4.0.2

16 Aug 09:55
Compare
Choose a tag to compare

Fixed a bug in EventThread for method removeEventCallback where it was declared with an incorrect parameter type for forEventType.

4.0.1

15 Aug 19:32
Compare
Choose a tag to compare
  • Certain internal methods have been marked as open in order to make inheriting classes consuming the library function properly. This is due to a limitation in Swift whereby any inheriting class where the base class originates inside of a Library cannot access internal members defined in the Library.

4.0.0

15 Aug 10:25
0f2de69
Compare
Choose a tag to compare

Version 4.0.0 introduces considerable refactoring and interface changes:

  • EventReceivable is no longer a class to inherit from for your own Event Processing Threads.
  • EventThread is now the class to inherit from for your own Event Process Threads.
  • Nomenclature has been standardised throughout the library to eliminate any ambiguity between an EventReceiver (which is a fundamental base type for anything which receives Eventable objects.
  • EventPool and all of its supporting types have been introduced as a major new feature for this release
  • README.MD has been fully updated to reflect all refactoring and feature changes introduced for this version.

3.0.1

11 Aug 20:34
Compare
Choose a tag to compare
  • EventListener implementation completed
  • EventCentral updated to provide a centralised EventListener for global use
  • Eventable introduces two new methods:
    • addListener registers an arbitrary Listener against the referenced Eventable Type and returns a UUID token for that Listener
    • removeListener unregisters the Listener specified by its UUID token

2.0.0

11 Aug 15:49
Compare
Choose a tag to compare
  • Introduced UIEventReceiver
  • Eliminated the need to implement a boilerplate Closure to invoke callTypedEventCallback in order to type-qualify an Eventable for a Callback call. This is now done internally for you.
  • Updated the README.MD file to reflect the above