Skip to content

Consolidate event flow in solution manager #487

@edriouk

Description

@edriouk

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

enhancementNew feature or request

Projects

Status

In review

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions