Skip to content
Closed
Show file tree
Hide file tree
Changes from 38 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
32b8724
Change README.md to refer to PlantUML instead of UMLet
cr1sschwager Jun 17, 2025
da4e6e0
Fix broken AoU Link
cr1sschwager Jun 17, 2025
98d7553
Add PlantUML diagrams sequence_startup_view and sequence_view of
gdaniel-cb Jun 17, 2025
3afbf1c
Add hiding footbox as standard setting
gdaniel-cb Jun 17, 2025
1e0701e
Add underlines within participant, creation of participants at creati…
gdaniel-cb Jun 17, 2025
4c78597
Add PlantUML diagram lola_msg_pass_event_notify of events_fields sub-…
gdaniel-cb Jun 17, 2025
46a5fab
Add PlantUML diagram event_poll_lola_seq of events_fields sub-folder
gdaniel-cb Jun 17, 2025
d1c3831
Add PlantUML diagram lola_msg_pass_initialize_seq of events_fields su…
gdaniel-cb Jun 17, 2025
cf9bf38
Add PlantUML diagram sampleptr_ref_counting of events_fields sub-folder
gdaniel-cb Jun 17, 2025
7041505
Migrate diagrams of runtime to PlantUML
cr1sschwager Jun 17, 2025
b2f3e61
Include the PlantUML files in the readme of configuration
cr1sschwager Jun 17, 2025
d3d452b
Add PlantUML diagram sequence_API_trace_setup of ipc_tracing sub-folder
gdaniel-cb Jun 18, 2025
eed4f99
Add PlantUML diagram lola_msg_pass_subscribe_seq of events_fields sub…
gdaniel-cb Jun 18, 2025
e4f2893
Remove already converted uxf diagrams
gdaniel-cb Jun 18, 2025
fe6b045
Align runtime diagrams with common structure
gdaniel-cb Jun 18, 2025
e510f97
Migrate diagram sequence_layer_interaction_sample of ipc_tracing sub-…
gdaniel-cb Jun 18, 2025
3768013
Migrate diagram proxy_restart_sequence of partial_restart sub-folder …
gdaniel-cb Jun 18, 2025
9b2d000
Rework structural view in configuration part
cr1sschwager Jun 18, 2025
e30bbbd
Migrate events_fields part to PUML
cr1sschwager Jun 20, 2025
b801f24
Migrate events_fields part to PUML
cr1sschwager Jun 20, 2025
42d8dcf
Migrate activity diagram in events_fields
cr1sschwager Jun 23, 2025
8ab9395
Migrate activity diagram in events_fields
cr1sschwager Jun 23, 2025
35e62be
Migrate activity diagram in events_fields
cr1sschwager Jun 23, 2025
c965450
Migrate activity diagram in events_fields
cr1sschwager Jun 23, 2025
a43e087
Migrate class diagram in events_fields
cr1sschwager Jun 23, 2025
6f25b52
Migrate class diagram in events_fields
cr1sschwager Jun 23, 2025
69f47eb
Rework inclusion of PlantUML Files in readme.md files
cr1sschwager Jun 23, 2025
ae79dfc
Migrate diagrams in ipc_tracing
cr1sschwager Jun 23, 2025
dc7ffde
Migrate diagrams in ipc_tracing
cr1sschwager Jun 23, 2025
d88e4ce
Migrate diagrams in partial_Restart
cr1sschwager Jun 23, 2025
ae83023
Migrate diagram in service_discovery
cr1sschwager Jun 24, 2025
d24ea61
Migrate diagram in service_discovery
cr1sschwager Jun 24, 2025
032db3b
Migrate diagram in shared_mem_layout
cr1sschwager Jun 24, 2025
ebf0faf
Intermediate step shared memory layout migration
cr1sschwager Jun 24, 2025
ecb7e20
Migrate diagrams in shared_mem_layout
cr1sschwager Jun 26, 2025
bb0255d
Migrate diagrams in skeleton_proxy
cr1sschwager Jun 26, 2025
e7f1096
Migrate diagrams in skeleton_proxy
cr1sschwager Jun 26, 2025
bf68a24
Migrate diagrams in skeleton_proxy
cr1sschwager Jun 26, 2025
9252d54
Align diagram title, fix relationshios between classes in structural_…
gdaniel-cb Jul 14, 2025
f79df76
Continue aligning diagram title, fixing relationships in class diagrams
gdaniel-cb Jul 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions score/mw/com/design/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ design
are adjusted if source code is changed in the future.

This comes with the drawback that we shall try to not place binary blobs into the repository.
Thus, we decided to use [UMLet](https://www.umlet.com) for drawing any UML-related diagrams (it can be used on any OS).
Thus, we decided to use [PlantUML](https://www.plantuml.com) for drawing any UML-related diagrams (it can be used on any OS).

For graphics, we decided to only use SVGs.

Expand Down Expand Up @@ -182,13 +182,13 @@ visibility, i.e. an API that should be visible to the entire implementation name
we use a pattern involving a friend class. In these cases, an `Example` class has a public API exposed to the end user,
and one or both friend classes, named `ExampleView` and `ExampleMutableView`, will provide view or modification access,
respectively, to the private members of the `ExampleClass`. We then restrict the visibility of these friend classes to
the implementation namespace through an [AoU](broken_link_c/issue/5835119), which effectively
the implementation namespace through an [AoU](#assumptions-of-use-aous), which effectively
provides us with module-level encapsulation.
Since this use of the `friend` keyword does not break encapsulation but provides us with a new kind of encapsulation
that we need, we find that in spirit it does not contradict the guideline, and we deem such use as acceptable in
`com::impl` namespace.

## Assumptions of Use(AoUs)
## Assumptions of Use (AoUs)

A full list of AoUs can be seen [here](broken_link_c/issue/6221478). The following presents only a
small selection.
Expand Down
7 changes: 7 additions & 0 deletions score/mw/com/design/TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
TODOs:
- [ ] Broken Links need to be cleaned up
- [ ] AoU refers to a small selection in the design readme. But there is no content afterwards.
- [ ] Configuration: Symphony (a BMW internal tool) is mentioned
- [ ] ARXML is mentioned, will S-CORE depend on ARXML? I hope not.
- [ ] Configuration: sequence_startup_view.puml is not referred to in the README.md
- [ ] ipc_tracing: some links are not working to analysis api
7 changes: 3 additions & 4 deletions score/mw/com/design/configuration/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ initialization from a default manifest or configuration path, an explicit user p
a directly handed over JSON.
The sequence during startup would look like this:

<img src="broken_link_k/swh/ddad_score/mw/com/design/configuration/sequence_startup_view.uxf?ref=18c835c8d7b01056dd48f257c14f435795a48b7d" />
<img src="https://www.plantuml.com/plantuml/proxy?src=https://raw.githubusercontent.com/eclipse-score/communication/refs/heads/main/score/mw/com/design/configuration/sequence_startup_view.puml">

During this call a singleton instance of `score::mw::com::impl::Runtime` gets created, which gets the parsed/validated
configuration in the form of `score::mw::com::detail::Configuration`.
Expand All @@ -182,7 +182,6 @@ configuration in the form of `score::mw::com::detail::Configuration`.
* one (`instanceInstances`), which holds the `ServiceInstanceDeployment`s, where the key is the `InstanceSpecifier`. The
`ServiceInstanceDeployment`s refer to/depend on the `ServiceTypeDeployment`s.

Details can
be seen in the following class diagram:
Details can be seen in the following class diagram:

<img src="broken_link_k/swh/ddad_score/mw/com/design/configuration/structural_view.uxf?ref=18c835c8d7b01056dd48f257c14f435795a48b7d" />
<img src="https://www.plantuml.com/plantuml/proxy?src=https://raw.githubusercontent.com/eclipse-score/communication/refs/heads/main/score/mw/com/design/configuration/structural_view.puml">
61 changes: 61 additions & 0 deletions score/mw/com/design/configuration/sequence_startup_view.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
@startuml
'!include ../puml-theme-score.puml

hide footbox

participant "<u>:OS" as OS
participant "<u>:Process</u>\nara::com User" as Process
participant "<u>impl::Runtime:static:</u>" as Runtime
participant "<u>impl::Runtime:SingletonInstance</u>" as RuntimeInstance
participant "<u>:Configuration</u>" as Configuration
participant "<u>:ConfigParser</u>" as ConfigParser

activate OS
create Process
OS -> Process : create

activate Runtime
activate ConfigParser

opt user wants to specify non-default manifest path
Process -> Runtime : Initialize(int argc, char** argv)
activate Process
deactivate OS

group config creation
note over Runtime, ConfigParser: sequence see below
end group

Runtime --> Process : return: void
end opt

Process -> Runtime : getInstance()

opt config creation if singleton instance not yet created
Runtime -> Runtime : Initialize() //with default manifest path
Runtime -> ConfigParser : parse(path, const serviceTypeRegistry*)
create Configuration
ConfigParser -> Configuration : create()

ConfigParser --> Runtime : return: Configuration
deactivate ConfigParser

create RuntimeInstance
Runtime -> RuntimeInstance : create(configuration)
end opt

Runtime --> Process : return: singleton instance
deactivate Runtime

Process -> RuntimeInstance : resolve(InstanceSpecifier)
activate RuntimeInstance
RuntimeInstance -> Configuration : serviceInstances_.find(InstanceSpecifier)
activate Configuration
Configuration --> RuntimeInstance : return: Iter
deactivate Configuration

RuntimeInstance --> Process : return: InstanceIdentifierContainer
deactivate RuntimeInstance
deactivate Process

@enduml
Loading