Skip to content
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

iox-#1295 Update component and layer diagram for upcoming release #1600

Merged
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ skinparam componentStyle uml2

skinparam component {
backgroundColor<<namespace>> yellow
backgroundColor<<module>> Cornsilk
mossmaurice marked this conversation as resolved.
Show resolved Hide resolved
}

skinparam package {
Expand All @@ -27,26 +28,42 @@ skinparam frame {

header Eclipse iceoryx component overview

' Platform Library containing platform abstraction with quality level 1
mossmaurice marked this conversation as resolved.
Show resolved Hide resolved
package iceoryx_platform {
frame "platform library" {
component "Platform abstraction" <<module>>
}
}

' HOOFS: Helpful Objects Optimised For Safety
' Library containing modern C++ STL constructs
' Library containing modern C++ STL constructs with quality level 1+
package iceoryx_hoofs {
frame "hoofs library" {
component concurrent <<namespace>>
component cxx <<namespace>> {
component newtype <<namespace>>
component set <<namespace>>
component algorithm <<namespace>>
}
component DesignPattern <<namespace>>
component errors <<namespace>>
component log <<namespace>> {
component ffbb <<namespace>>
}
component units <<namespace>> {
component duration_literals <<namespace>>

}
component posix <<namespace>>

component "Memory & lifetime management" <<module>>
component Containers <<module>>
component "Vocabulary types" <<module>>
component Filesystem <<module>>
component Functional <<module>>
component Utility <<module>>
component Primitives <<module>>
component Buffers <<module>>
component "Inter-process communication" <<module>>
component "Threads & sychronisation" <<module>>
component "Generalized design patterns & abstractions" <<module>>
component Reporting <<module>>
component Time <<module>>
}
}

' DUST: Deemed Useful Software Thingies
' Library containing modern C++ STL constructs with quality level 2
package iceoryx_dust {
frame "dust library" {
component "Containers" <<module>> as additional_containers
component "Filesystem" <<module>> as additional_filesystem
component "Buffers" <<module>> as additional_buffers
component "Inter-process communication" <<module>> as additional_ipc
}
}

Expand Down Expand Up @@ -87,6 +104,16 @@ package iceoryx_dds {
component gw <<namespace>> as gateway_dds
}

' AUTOSAR Adaptive: ara::com
'
package automotive_soa {
}

' iceoryx-rs: Rust binding for iceoryx
mossmaurice marked this conversation as resolved.
Show resolved Hide resolved
'
package iceoryx_rs {
}

' C-Binding
package iceoryx_binding_c {
component cpp2c <<namespace>>
Expand All @@ -101,8 +128,14 @@ package iceoryx_introspection {
}
}

iceoryx_hoofs ..> iceoryx_platform : use
iceoryx_dust ..> iceoryx_platform : use
iceoryx_posh ..> iceoryx_hoofs : use
iceoryx_dust ..> iceoryx_hoofs : use
iceoryx_posh ..> iceoryx_dust : use
iceoryx_dds ..> iceoryx_posh : use
iceoryx_rs ..> iceoryx_posh : use
automotive_soa ..> iceoryx_posh : use
iceoryx_binding_c ..> iceoryx_posh : use
introspection ..> iceoryx_posh : use
@enduml
42 changes: 42 additions & 0 deletions doc/design/diagrams/iceoryx_software_layers_v3_0_0.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
@startuml
dkroenke marked this conversation as resolved.
Show resolved Hide resolved

title Eclipse iceoryx software layers (v3.0.0)

skinparam BackgroundColor transparent
skinparam componentStyle uml2

skinparam component {
backgroundColor<<namespace>> yellow
}

skinparam package {
backgroundColor green
}

skinparam frame {
backgroundColor chocolate
}

[iceoryx_platform]
[iceoryx_dust]
[iceoryx_hoofs]
mossmaurice marked this conversation as resolved.
Show resolved Hide resolved
[iceoryx_posh]
[iceoryx_binding_c]
[C user app]
[C++ user app]

note right of iceoryx_platform : Basic platform support library with quality level 1+
note top of iceoryx_hoofs : Basic building block library with quality level 1+
note top of iceoryx_dust : Basic building block library with quality level 2
note top of iceoryx_posh : Shared memory transport (POsix SHared memory)
note right of iceoryx_binding_c : C API for iceoryx_posh

[iceoryx_hoofs] ..> [iceoryx_platform]
[iceoryx_dust] ..> [iceoryx_platform]
[iceoryx_posh] ..> [iceoryx_hoofs]
[iceoryx_dust] ..> [iceoryx_hoofs]
[iceoryx_posh] ..> [iceoryx_dust]
[iceoryx_binding_c] ..> [iceoryx_posh]
[C user app] ..> [iceoryx_binding_c]
[C++ user app] ..> [iceoryx_posh]
@enduml
Loading