-
Notifications
You must be signed in to change notification settings - Fork 38
Fixing some of the diagrams in the mw/log section #71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Fixing some of the diagrams in the mw/log section #71
Conversation
MaciejKaszynski
commented
Jan 20, 2026
- Diagrams were taken from https://github.com/eclipse-score/inc_mw_log and converted from uxf to puml.
- Also fixed the links to embed the new diagrams in the markdown.
- Note: the links will work after the diagrams are merged to main.
|
The created documentation from the pull request is available at: docu-html |
|
@rmaddikery, @hoppe-and-dreams, can you please review this PR? |
|
@MaciejKaszynski |
|
|
||
| activate App | ||
|
|
||
| App -> LOG **: CreateLogger(...) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The CreateLogger only registers a logger in the container butdoes not trigger the runtime initialization. The initialization is triggered by the first log call. A note would make sense here.
|
|
||
| RF -> RT: Store returned instance | ||
|
|
||
| RT -> LSF |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| RT -> LSF | |
| LSF <- RT: Return Recorder reference |
|
|
||
| TCR -> RF: Return Configuration instance | ||
|
|
||
| group Possibilities |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently there are two possibilities:
At compile time:
- Console only recorder with console backend
- log mode is set to console logging by default.
- Empty recorder if logmode other than KConsole is provided.
- All recorders will respective backends
- Depending on the log mode the runtime sets up the recorders. The log mode supports multiple recorders simultaneously through a composite recorder.
| class score::mw::log::detail::Configuration {} | ||
| class score::mw::log::detail::TargetConfigReader {} | ||
|
|
||
| class score::mw::log::detail::DataRouterRecorder {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please revisit because only the EmptyRecorder, ConsoleRecorder and ConsoleRecorderFactory are included in the frontend.
| note top of frontend | ||
| Frontend contains the public user API, | ||
| and the necessary classes to interface | ||
| with the backend and implementation details. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| with the backend and implementation details. | |
| with the recorder interface. |
|
|
||
| score::mw::log::Recorder <|-- score::mw::log::detail::FileRecorder | ||
| score::mw::log::IRecorderFactory <|-- score::mw::log::detail::FileRecorderFactory | ||
| score::mw::log::detail::FileRecorderFactory ..> score::mw::log::detail::FileRecorder |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| @@ -0,0 +1,43 @@ | |||
| @startuml verbose_logging_ara_log_interaction | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is legacy and no longer supported here hence should be removed.
| :Stack capacity full = true; | ||
| else (No) | ||
| :Push element to stack; | ||
| :Memory Fence (Release); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| :Memory Fence (Release); | |
| :Memory Fence (Release); | |
| mark element as writen |
| stop | ||
| endif | ||
| endif | ||
| :Return null value; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| :Return null value; | |
| :Return nullopt |
| else (No) | ||
| :Push element to stack; | ||
| :Memory Fence (Release); | ||
| :Return element value; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| :Return element value; | |
| :Return reference to element |
| RF -> RT: Store returned instance | ||
|
|
||
| RT -> LSF | ||
| LSF -> LOG: Return Recorder instance |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| LSF -> LOG: Return Recorder instance | |
| LOG <- LSF: Return LogStream with Recorder |
| SlotDrainer -> MessageBuilder : SetNextMessage(log_record) | ||
|
|
||
| SlotDrainer -> NonBlockingWriter : FlushIntoFile() | ||
| NonBlockingWriter -> SlotDrainer: kDone |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| NonBlockingWriter -> SlotDrainer: kDone | |
| NonBlockingWriter -> SlotDrainer: kDone | |
| ReleaseSlot() // slots are returned to the pool after being flushed. |
The SlotDrainer is responsible for resource lifecycle management and not just data transfer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done on 32ca7ea
| SlotDrainer -> MessageBuilder : GetNextSpan() | ||
|
|
||
| SlotDrainer -> NonBlockingWriter : FlushIntoFile() | ||
| NonBlockingWriter -> SlotDrainer: kDone |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the happy case. It would be good to show the kWouldBlock sequence as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added this on f38c3f7 However because of
| std::ignore = TryFlushSlots(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks
rmaddikery
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, comments need to be addressed
|
@MaciejKaszynski, thank you for the contribution! We are going to import these changes. |
f38c3f7 to
aaaac2d
Compare
- Added plantuml diagrams - Updated links in READMEs to the diagrams - Diagrams related to datarouter shall be in the seperate eclipse-score/logging repo
aaaac2d to
ea70d7b
Compare
Rebased to new main & squashed to 1 commit |