- Channels (FunctionCore & SelectableBare):
- Added state "Standby", allow auto-managed handle to be opened
- SelectableCore:
- Set default "Persistent" state for sockets based on type
- Remove Process() method (no different from SelectableBare
- DateTimeCore:
- Added BuildDateTimeStr() methods to build date for values
- JSONparseCore:
- Added error message to file operations
- FunctionCore:
- Improve Channel Events:
- Remove important actions from ChannelStateEvent()
(now only used for custom actions)
- Add new method UpdateChannelOutState()
- Add Channel Events to Link and Unlink actions
- Rename SetChannelState() -> SetChannelInState()
- Use Channel->Ref (instead of name) on all channel events
- DeviceCore/SelectableCore:
- Rename SetChannelState() -> SetChannelInState()
- Complete Async resolve:
- Remove Resolving param from THandle
- Rename state csResolving -> csPreparing
- Added handle state csPrepared, to indicated resolve complete
- Open handle if state = csPrepared
- Remove Resolve delay (not required since async resolve)
- remove from JSON config as well
- FunctionCore
- Replace Channel->Ready with Channel->State (off/waiting/ready)
- Add Function reference to Handle
- SelectableBare/Core:
- Implement async address resolve with event handling
- Create ResolveHandler() signal handler (friend) function
- Change Create/Remove/DestroyHandle() methods to virtual methods
- Move socket specific code to SelectableCore
- Rename ChangeState() to virtual HandleState()
- Move ClearHandle() from SelectableBare -> SelectableCore
- Implement new/delete from THandle
- Set max TCP SYN count on connect
- FunctionCore
- So not set Function JSON "config" param to empty object by default
- Change TChannelLink to reference Channel direct
- Add Input/Output to TChannelLink
- Replace LinkChannel() Bidirectional param with Input/Output param
- Update JSON config as well
- Implement Channel "Ready" state and events
- Remove Input/OutputEnabled parameters and related methods
- Remove from JSON config as well
- Update AddChannel() method accordingly
- Add Ref param to struct TChannel
- SelectableCore:
- Convert inline ChangeState() to non-inline method
- Move ChangeState() to last step in open/close methods
- Add Channels in Not Ready state
- Change Channel state when Handle state changed
- DeviceCore:
- Add Channels in Ready state
- FileCore:
- Add Channel in Not Ready state
- FunctionCore:
- Set Function Type in Init()
- SelectableBare:
- Remove unnecesary initialisation in constructor
- SelectableCore:
- Remove code duplicated in SelectableBare