File: iceoryx_components_diagram_nextgen_release.puml

package info (click to toggle)
iceoryx 2.0.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 11,260 kB
  • sloc: cpp: 94,127; ansic: 1,443; sh: 1,436; python: 1,377; xml: 80; makefile: 61
file content (112 lines) | stat: -rw-r--r-- 2,666 bytes parent folder | download | duplicates (3)
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