Bugfixes:
- EventBridge: Fixed the problem that an expected event is not caught in case of null request
Features:
- WaitForEvent: added a way to immediately expire all the waiting routines at once
- WaitForEvent: improved timeout error log
Bugfixes:
- xpiler: fixed the indexing bug in HasX() methods
Features:
- WaitForCompletion: added 6-args version
Bugfixes:
- Fixed .NET Core build issues with recent SDK distributions
Features:
- Links: adjusted trace log levels
- xpiler: Added generated methods to check whether a property has been set explicitly
Bugfixes:
- WaitForTask: @barowa fixed the performance issue on Linux
Features:
- AbstractTcpClient: applied exponential backoff to connection retry interval
- AbstractTcpClient: randomized reconnect delay
- Consts: added GetEnumerator() to enumerate key/value pairs
Bugfixes:
- AbstractTcpClient: now it doesn't reconnect on active close
Features:
- xpiler: now supports wildcard search pattern matching in arguments (not regex)
- introduced builtin event LocalEvent
- ServerLink: added methods GetSession(s)
Bugfixes:
- Scope: fixed possible crash on exit in ThreadPoolFlow
Features:
- added NamedPipeClient/Server link cases
- added BlockingCollectionEventQueue contribued by @barowa
Bugfixes:
- BlockCipher.InverseTransform: fixed the last ciphertext block copy bug
Features:
- added target framework netcoreapp2.1
- xpiler: now preserves property name cases for cells/events marked as 'asIs'
Features:
- xpiler: now preserves property name cases for local cells/events
- Coroutine: added 4-arg WaitForCompletion
- Coroutine: added WaitForTask
- Scope: added support for extending
Features:
- Flow: changed interface - replaced Startup/Shutdown with Start/Stop
- Coroutine: renamed class WaitForNothing as WaitForNext
- Removed VerboseSerializer and VerboseDeserializer
Features:
- Renamed class Binder as Binding
Features:
- Coroutine: renamed WaitForSingle*/WaitForMultiple* as WaitFor*/WaitForAll*, respectively.
- Coroutine: added WaitForAnyEvent/Response feature
Features:
- Coroutine: added Status property to indicate coroutine execution status
- Flow: added SlowScope* properties to override global config settings
Performance:
- FrameBasedFlow: changed the default time resolution to 15.625ms (64 frame/sec)
- BlockCiper: introduced SettingsBuilder to reuse RSACryptoServiceProvider instance
- TimeFlow.Timer: changed simple lock to ReaderWriterLockSlim
Features:
- changed flow name of the default TimeFlow
- added some log messages for startup/shutdown
Features:
- added full support for generic list and map types (with C# 4.0 dynamic keyword)
- added full serialization support for embedded events
Features:
- Transforms: added SimpleCipher class
- added udp link samples
Features:
- introduced link strategies to encapsulate pluggable functionalities
- SessionBasedLink: removed session recovery support
- added helloworld samples
- *TcpClient: removed synchronous connect interface
Features:
*TcpClient: added synchronous connect interface
Bugfixes:
- ConcurrentEventQueue: fixed the bug that the final event is not properly dequeued before closing
Features:
- AbstractTcpClient: added Connect(string) interface
- removed AddressUtil
Features:
- added support for link-local event factories
- added ThreadPoolFlow which works with .NET managed thread pool
- Scope: now supports setting event after instantiation
Features:
- EventSink: Bind/Unbind methods now returns the binder token
Features:
- added serialization support for more list types
Features:
- Links/Socket: added AddressUtil class to support network address-related tasks
BugFixes:
- Buffer: fixed the bug that the current block is not updated properly after trimming exactly on buffer block boundaries
Features:
- Case: added OnStart/OnStop handlers to be invoked on flow start/stop
Bugfixes:
- LinkSession: fixed exception in SendInternal for a disposed session
- *TcpClient: fixed exception in TeardownInternal
Features:
- Transforms/BlockCipher: added configurable settings
BugFixes:
- AbstractTcpClient: fixed crash on close ConnectAndSend calls
- AbstractTcpClient/Server: fixed internal setup sequence
Features:
- Hub: added Insert() method to support hub case insertion
Features:
- xpiler handles XML comments again
Changes:
- changed the internal logger class name from Log to Trace
Fixed NuGet packages for .NET Core
NuGet packages now support .NET Core 2.0
Features:
- Hub: added Hub.Case class to support application level initialization/cleanup
Features:
- Hub: added GetFlows() methods to retrieve an array of attached flows by name or type
BugFixes:
- @barowa fixed the TCP socket link packet framing bug