1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
@startuml
title Eclipse iceoryx Component Overview
skinparam BackgroundColor transparent
skinparam componentStyle uml2
skinparam component {
backgroundColor<<namespace>> yellow
}
skinparam package {
backgroundColor green
}
skinparam frame {
backgroundColor chocolate
}
' PlantUML package: CMake package
' PlantUML frame: CMake library
' @todo #539
' RouDi split, separate files and namespaces for static/dynamic discovery
' Implement exported libraries (add_library in iceoryx_posh/CMakeLists.txt)
' RouDiEnvironment shall not be in roudi namespace, but in testing
header Eclipse iceoryx component overview
' HOOFS: Helpful Objects Optimised For Safety
' Library containing modern C++ STL constructs
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>>
' Building blocks which only meet quality level 5
' Can be analysed with tools/analyse_blacklisted_namespaces_in_binary.sh
' component aux <<namespace>>
}
}
' POSH: POSIX SHared memory
' Publish/subscribe IPC communication infrastructure based on shared memory
package iceoryx_posh {
frame "core library" {
component popo <<namespace>>
component capro <<namespace>>
component mepoo <<namespace>>
component version <<namespace>>
component build <<namespace>>
}
frame "runtime library" {
component runtime <<namespace>>
}
frame "gateway library" {
component gw <<namespace>>
}
frame "config library" {
component config <<namespace>>
}
component errors <<namespace>>
frame "RouDi library" {
component roudi <<namespace>>
}
}
' DDS: Data Distribution Service
'
package iceoryx_dds {
component dds <<namespace>>
component gw <<namespace>> as gateway_dds
}
' C-Binding
package iceoryx_binding_c {
component cpp2c <<namespace>>
component c2cpp <<namespace>>
}
' Introspection
package iceoryx_introspection {
component client <<namespace>> {
component introspection <<namespace>>
}
}
iceoryx_posh ..> iceoryx_hoofs : use
iceoryx_dds ..> iceoryx_posh : use
iceoryx_binding_c ..> iceoryx_posh : use
introspection ..> iceoryx_posh : use
@enduml
|