-
Notifications
You must be signed in to change notification settings - Fork 8
Description
Type: Feature Request
Simplify and streamline event processing by providing central place to orchestrate solution loading and RPC communication.
- provide consistent view on data
- synchronize event processing
- improve performance
In particular, it will allow to fix the following problems:
Problems with Loading Solution (cbuild setup integration) #338
CMSIS-View: shows "Loading..." on minimal debugger setup #486
Suggested Change
Track solution changes and RPC actions in dedicated services.
Track events only in Solution Manager, process them if relevant and fire own events for other clients.
Use a special dedicated Event Hub class to maintain events: register and fire them. Should not process events itself.
Event handlers connected the Hub events. This has two major advantages:
- less dependencies: events are originating from the same source
- possibility to implement asynchronous events exchanges between two classes, in particular Solution Manager and Solution Converter
Other managers and views only track Solution Manager events and ask Solution Manager for services.
Editor views notify Solution Manager to perform solution conversion.
Simplified sequence diagram:
sequenceDiagram
participant Manager
participant Converter
participant FileWatcher
participant GUI
FileWatcher -->> Manager: Solution Changed (async)
Manager ->> Manager: Load Solution (sync)
Manager -->> GUI: Refresh (async)
Manager -->> Converter: Convert Solution { updateRTE? } (async)
Converter ->> Converter: Run Convert (sync)
Converter -->> Manager: Convert Completed (async)
Manager ->> Manager: Load Converted Files (sync)
Manager -->> GUI: Refresh (async)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status