commit ee83a495436186dbc15d6e0bc3e360e19ae5ff02
Author: Thomas Schöpping <tschoepp@cit-ec.uni-bielefeld.de>
Date:   Tue Feb 25 15:14:38 2020 +0100

    Again another huge update to the documentation.
    Still incomplete, though.

diff --git a/doc/activitydiagrams/contributemessages.iuml b/doc/activitydiagrams/contributemessages.iuml
new file mode 100644
index 0000000..f8d970f
--- /dev/null
+++ b/doc/activitydiagrams/contributemessages.iuml
@@ -0,0 +1,29 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+partition "contribute messages" {
+  fork
+    :set next pointer of topic's latest message to first message to contribute;
+  fork again
+    :set next pointer of last message to contribute to the message after the topic's latest message;
+  endfork
+}
+
diff --git a/doc/activitydiagrams/core/urtCoreGetService.svg b/doc/activitydiagrams/core/urtCoreGetService.svg
new file mode 100644
index 0000000..0e96b03
--- /dev/null
+++ b/doc/activitydiagrams/core/urtCoreGetService.svg
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="596px" preserveAspectRatio="none" style="width:499px;height:596px;" version="1.1" viewBox="0 0 499 596" width="499px" zoomAndPan="magnify"><defs><filter height="300%" id="f1s3gz6elyl2re" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="204" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="181" x="158" y="47.6611">urtCoreGetService()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="251.5" y="68.6143"/><path d="M157,72.8594 L157,168.5234 L487,168.5234 L487,82.8594 L477,72.8594 L157,72.8594 " fill="#FBFB77" filter="url(#f1s3gz6elyl2re)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M477,72.8594 L477,82.8594 L487,82.8594 L477,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="157" x2="258.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="262.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="262.5" y="89.4263">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="101" x="280.5" y="89.4263">: urt_serviceid_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="385.5" x2="487" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="163" y="105.0591">Identifier of the service to retrieve.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="157" x2="487" y1="113.125" y2="113.125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="157" x2="487" y1="115.125" y2="115.125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="157" x2="245" y1="125.6914" y2="125.6914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="249" y="129.6919"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="249" y="129.6919">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="298" y="129.6919">: urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="399" x2="487" y1="125.6914" y2="125.6914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="274" x="163" y="145.3247">Returns a pointer to the requested service.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="163" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="216" y="160.4575">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="220" x="252" y="160.4575">if no service matches the given ID.</text><ellipse cx="322" cy="198.5234" fill="#000000" filter="url(#f1s3gz6elyl2re)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1s3gz6elyl2re)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="283.5" y="228.5234"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="293.5" y="249.6621">lock core</text><rect fill="#FEFECE" filter="url(#f1s3gz6elyl2re)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="252" y="282.4922"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="262" y="303.6309">access first service</text><rect fill="#FEFECE" filter="url(#f1s3gz6elyl2re)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="168" x="238" y="393.7808"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="248" y="414.9194">proceed to next service</text><polygon fill="#FEFECE" filter="url(#f1s3gz6elyl2re)" points="254,336.4609,390,336.4609,402,349.2656,390,362.0703,254,362.0703,242,349.2656,254,336.4609" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="326" y="372.2808">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="254" y="346.6714">Service is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="336" y="346.6714">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="254" y="359.4761">and service ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="228" y="346.6714">no</text><rect fill="#FEFECE" filter="url(#f1s3gz6elyl2re)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="275.5" y="469.7495"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="285.5" y="490.8882">unlock core</text><polygon fill="#FEFECE" filter="url(#f1s3gz6elyl2re)" points="252,523.7183,392,523.7183,404,536.5229,392,549.3276,252,549.3276,240,536.5229,252,523.7183" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="252" y="533.9287">Service is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="334" y="533.9287">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="252" y="546.7334">and service ID matches?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="220" y="533.9287">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="404" y="533.9287">no</text><path d="M10,559.3276 L10,584.4604 A0,0 0 0 0 10,584.4604 L199,584.4604 A0,0 0 0 0 199,584.4604 L199,577.3276 L219,571.894 L199,569.3276 L199,569.3276 L189,559.3276 L10,559.3276 A0,0 0 0 0 10,559.3276 " fill="#FBFB77" filter="url(#f1s3gz6elyl2re)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M189,559.3276 L189,569.3276 L199,569.3276 L189,559.3276 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="168" x="16" y="576.3945">Returns pointer to service.</text><ellipse cx="230" cy="571.894" fill="#FFFFFF" filter="url(#f1s3gz6elyl2re)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="230" cy="571.894" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M273,559.3276 L273,584.4604 A0,0 0 0 0 273,584.4604 L383,584.4604 A0,0 0 0 0 383,584.4604 L383,577.3276 L403,571.894 L383,569.3276 L383,569.3276 L373,559.3276 L273,559.3276 A0,0 0 0 0 273,559.3276 " fill="#FBFB77" filter="url(#f1s3gz6elyl2re)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M373,559.3276 L373,569.3276 L383,569.3276 L373,559.3276 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="279" y="576.3945">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="332" y="576.3945">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="364" y="576.3945">.</text><ellipse cx="414" cy="571.894" fill="#FFFFFF" filter="url(#f1s3gz6elyl2re)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="414" cy="571.894" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="168.5234" y2="188.5234"/><polygon fill="#A80036" points="318,178.5234,322,188.5234,326,178.5234,322,182.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="208.5234" y2="228.5234"/><polygon fill="#A80036" points="318,218.5234,322,228.5234,326,218.5234,322,222.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="262.4922" y2="282.4922"/><polygon fill="#A80036" points="318,272.4922,322,282.4922,326,272.4922,322,276.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="362.0703" y2="393.7808"/><polygon fill="#A80036" points="318,383.7808,322,393.7808,326,383.7808,322,387.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="427.7495" y2="437.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="418" y1="437.7495" y2="437.7495"/><polygon fill="#A80036" points="414,401.9604,418,391.9604,422,401.9604,418,397.9604" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="418" x2="418" y1="349.2656" y2="437.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="418" x2="402" y1="349.2656" y2="349.2656"/><polygon fill="#A80036" points="412,345.2656,402,349.2656,412,353.2656,408,349.2656" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="242" x2="226" y1="349.2656" y2="349.2656"/><polygon fill="#A80036" points="222,387.9604,226,397.9604,230,387.9604,226,391.9604" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="226" x2="226" y1="349.2656" y2="449.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="226" x2="322" y1="449.7495" y2="449.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="449.7495" y2="469.7495"/><polygon fill="#A80036" points="318,459.7495,322,469.7495,326,459.7495,322,463.7495" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="316.4609" y2="336.4609"/><polygon fill="#A80036" points="318,326.4609,322,336.4609,326,326.4609,322,330.4609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="240" x2="230" y1="536.5229" y2="536.5229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="230" x2="230" y1="536.5229" y2="560.894"/><polygon fill="#A80036" points="226,550.894,230,560.894,234,550.894,230,554.894" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="404" x2="414" y1="536.5229" y2="536.5229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="414" x2="414" y1="536.5229" y2="560.894"/><polygon fill="#A80036" points="410,550.894,414,560.894,418,550.894,414,554.894" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="503.7183" y2="523.7183"/><polygon fill="#A80036" points="318,513.7183,322,523.7183,326,513.7183,322,517.7183" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7678d951c90c7df700bc271ce4fad75f]
+@startuml
+
+title **µRtWare**\nurtCoreGetService()\n
+
+
+note
+  - - **id** : urt_serviceid_t - -
+  Identifier of the service to retrieve.
+  ====
+  - - **return** : urt_service_t* - -
+  Returns a pointer to the requested service.
+  Returns ""NULL"" if no service matches the given ID.
+endnote
+
+
+start
+:lock core;
+:access first service;
+while (Service is not ""NULL""\nand service ID is lower?) is (yes)
+  :proceed to next service;
+endwhile (no)
+:unlock core;
+if (Service is not ""NULL""\nand service ID matches?) then (yes)
+  stop
+  note
+    Returns pointer to service.
+  endnote
+else (no)
+  stop
+  note
+    Returns ""NULL"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/core/urtCoreGetService.uml b/doc/activitydiagrams/core/urtCoreGetService.uml
new file mode 100644
index 0000000..b492e07
--- /dev/null
+++ b/doc/activitydiagrams/core/urtCoreGetService.uml
@@ -0,0 +1,62 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtCoreGetService()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **id** : urt_serviceid_t --
+  Identifier of the service to retrieve.
+  ====
+  -- **return** : urt_service_t* --
+  Returns a pointer to the requested service.
+  Returns ""NULL"" if no service matches the given ID.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+:lock core;
+:access first service;
+while (Service is not ""NULL""\nand service ID is lower?) is (yes)
+  :proceed to next service;
+endwhile (no)
+:unlock core;
+if (Service is not ""NULL""\nand service ID matches?) then (yes)
+  stop
+  note
+    Returns pointer to service.
+  endnote
+else (no)
+  stop
+  note
+    Returns ""NULL"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/core/urtCoreGetTopic.svg b/doc/activitydiagrams/core/urtCoreGetTopic.svg
new file mode 100644
index 0000000..6fd6b41
--- /dev/null
+++ b/doc/activitydiagrams/core/urtCoreGetTopic.svg
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="596px" preserveAspectRatio="none" style="width:472px;height:596px;" version="1.1" viewBox="0 0 472 596" width="472px" zoomAndPan="magnify"><defs><filter height="300%" id="fsrkmh5myir7y" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="190.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="163" x="153.5" y="47.6611">urtCoreGetTopic()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="238" y="68.6143"/><path d="M144,72.8594 L144,168.5234 L460,168.5234 L460,82.8594 L450,72.8594 L144,72.8594 " fill="#FBFB77" filter="url(#fsrkmh5myir7y)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M450,72.8594 L450,82.8594 L460,82.8594 L450,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="144" x2="245.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="249.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="249.5" y="89.4263">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="87" x="267.5" y="89.4263">: urt_topicid_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="358.5" x2="460" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="205" x="150" y="105.0591">Identifier of the topic to retrieve.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="144" x2="460" y1="113.125" y2="113.125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="144" x2="460" y1="115.125" y2="115.125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="144" x2="232" y1="125.6914" y2="125.6914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="236" y="129.6919"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="236" y="129.6919">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="285" y="129.6919">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="372" x2="460" y1="125.6914" y2="125.6914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="260" x="150" y="145.3247">Returns a pointer to the requested topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="150" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="203" y="160.4575">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="206" x="239" y="160.4575">if no topic matches the given ID.</text><ellipse cx="302" cy="198.5234" fill="#000000" filter="url(#fsrkmh5myir7y)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fsrkmh5myir7y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="263.5" y="228.5234"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="273.5" y="249.6621">lock core</text><rect fill="#FEFECE" filter="url(#fsrkmh5myir7y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="238.5" y="282.4922"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="107" x="248.5" y="303.6309">access first topic</text><rect fill="#FEFECE" filter="url(#fsrkmh5myir7y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="224.5" y="393.7808"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="234.5" y="414.9194">proceed to next topic</text><polygon fill="#FEFECE" filter="url(#fsrkmh5myir7y)" points="241,336.4609,363,336.4609,375,349.2656,363,362.0703,241,362.0703,229,349.2656,241,336.4609" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="306" y="372.2808">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70" x="241" y="346.6714">Topic ist not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="315" y="346.6714">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="241" y="359.4761">and topic ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="215" y="346.6714">no</text><rect fill="#FEFECE" filter="url(#fsrkmh5myir7y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="255.5" y="469.7495"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="265.5" y="490.8882">unlock core</text><polygon fill="#FEFECE" filter="url(#fsrkmh5myir7y)" points="239,523.7183,365,523.7183,377,536.5229,365,549.3276,239,549.3276,227,536.5229,239,523.7183" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="66" x="239" y="533.9287">Topic is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="309" y="533.9287">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="239" y="546.7334">and topic ID matches?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="207" y="533.9287">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="377" y="533.9287">no</text><path d="M10,559.3276 L10,584.4604 A0,0 0 0 0 10,584.4604 L185,584.4604 A0,0 0 0 0 185,584.4604 L185,577.3276 L205,571.894 L185,569.3276 L185,569.3276 L175,559.3276 L10,559.3276 A0,0 0 0 0 10,559.3276 " fill="#FBFB77" filter="url(#fsrkmh5myir7y)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M175,559.3276 L175,569.3276 L185,569.3276 L175,559.3276 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="154" x="16" y="576.3945">Returns pointer to topic.</text><ellipse cx="216" cy="571.894" fill="#FFFFFF" filter="url(#fsrkmh5myir7y)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="216" cy="571.894" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M247,559.3276 L247,584.4604 A0,0 0 0 0 247,584.4604 L357,584.4604 A0,0 0 0 0 357,584.4604 L357,577.3276 L377,571.894 L357,569.3276 L357,569.3276 L347,559.3276 L247,559.3276 A0,0 0 0 0 247,559.3276 " fill="#FBFB77" filter="url(#fsrkmh5myir7y)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M347,559.3276 L347,569.3276 L357,569.3276 L347,559.3276 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="253" y="576.3945">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="306" y="576.3945">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="338" y="576.3945">.</text><ellipse cx="388" cy="571.894" fill="#FFFFFF" filter="url(#fsrkmh5myir7y)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="388" cy="571.894" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="168.5234" y2="188.5234"/><polygon fill="#A80036" points="298,178.5234,302,188.5234,306,178.5234,302,182.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="208.5234" y2="228.5234"/><polygon fill="#A80036" points="298,218.5234,302,228.5234,306,218.5234,302,222.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="262.4922" y2="282.4922"/><polygon fill="#A80036" points="298,272.4922,302,282.4922,306,272.4922,302,276.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="362.0703" y2="393.7808"/><polygon fill="#A80036" points="298,383.7808,302,393.7808,306,383.7808,302,387.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="427.7495" y2="437.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="391.5" y1="437.7495" y2="437.7495"/><polygon fill="#A80036" points="387.5,401.9604,391.5,391.9604,395.5,401.9604,391.5,397.9604" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="391.5" x2="391.5" y1="349.2656" y2="437.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="391.5" x2="375" y1="349.2656" y2="349.2656"/><polygon fill="#A80036" points="385,345.2656,375,349.2656,385,353.2656,381,349.2656" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="229" x2="212.5" y1="349.2656" y2="349.2656"/><polygon fill="#A80036" points="208.5,387.9604,212.5,397.9604,216.5,387.9604,212.5,391.9604" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212.5" x2="212.5" y1="349.2656" y2="449.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212.5" x2="302" y1="449.7495" y2="449.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="449.7495" y2="469.7495"/><polygon fill="#A80036" points="298,459.7495,302,469.7495,306,459.7495,302,463.7495" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="316.4609" y2="336.4609"/><polygon fill="#A80036" points="298,326.4609,302,336.4609,306,326.4609,302,330.4609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="227" x2="216" y1="536.5229" y2="536.5229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="216" x2="216" y1="536.5229" y2="560.894"/><polygon fill="#A80036" points="212,550.894,216,560.894,220,550.894,216,554.894" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="377" x2="388" y1="536.5229" y2="536.5229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="388" x2="388" y1="536.5229" y2="560.894"/><polygon fill="#A80036" points="384,550.894,388,560.894,392,550.894,388,554.894" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="503.7183" y2="523.7183"/><polygon fill="#A80036" points="298,513.7183,302,523.7183,306,513.7183,302,517.7183" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e10488ce6407e6aad5cae1b04658f332]
+@startuml
+
+title **µRtWare**\nurtCoreGetTopic()\n
+
+
+note
+  - - **id** : urt_topicid_t - -
+  Identifier of the topic to retrieve.
+  ====
+  - - **return** : urt_topic_t* - -
+  Returns a pointer to the requested topic.
+  Returns ""NULL"" if no topic matches the given ID.
+endnote
+
+
+start
+:lock core;
+:access first topic;
+while (Topic ist not ""NULL""\nand topic ID is lower?) is (yes)
+  :proceed to next topic;
+endwhile (no)
+:unlock core;
+if (Topic is not ""NULL""\nand topic ID matches?) then (yes)
+  stop
+  note
+    Returns pointer to topic.
+  endnote
+else (no)
+  stop
+  note
+    Returns ""NULL"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/core/urtCoreGetTopic.uml b/doc/activitydiagrams/core/urtCoreGetTopic.uml
new file mode 100644
index 0000000..dd17188
--- /dev/null
+++ b/doc/activitydiagrams/core/urtCoreGetTopic.uml
@@ -0,0 +1,62 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtCoreGetTopic()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **id** : urt_topicid_t --
+  Identifier of the topic to retrieve.
+  ====
+  -- **return** : urt_topic_t* --
+  Returns a pointer to the requested topic.
+  Returns ""NULL"" if no topic matches the given ID.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+:lock core;
+:access first topic;
+while (Topic ist not ""NULL""\nand topic ID is lower?) is (yes)
+  :proceed to next topic;
+endwhile (no)
+:unlock core;
+if (Topic is not ""NULL""\nand topic ID matches?) then (yes)
+  stop
+  note
+    Returns pointer to topic.
+  endnote
+else (no)
+  stop
+  note
+    Returns ""NULL"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/core/urtCoreInit.svg b/doc/activitydiagrams/core/urtCoreInit.svg
new file mode 100644
index 0000000..1d53e14
--- /dev/null
+++ b/doc/activitydiagrams/core/urtCoreInit.svg
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="359px" preserveAspectRatio="none" style="width:493px;height:359px;" version="1.1" viewBox="0 0 493 359" width="493px" zoomAndPan="magnify"><defs><filter height="300%" id="f5d7eez7u0tan" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="201.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="112" x="189.75" y="47.6611">urtCoreInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="248.75" y="68.6143"/><path d="M255.5,72.8594 L255.5,138.2578 L481.5,138.2578 L481.5,82.8594 L471.5,72.8594 L255.5,72.8594 " fill="#FBFB77" filter="url(#f5d7eez7u0tan)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M471.5,72.8594 L471.5,82.8594 L481.5,82.8594 L471.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="351" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="355" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="355" y="89.4263">void</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="386" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="386" x2="481.5" y1="85.4258" y2="85.4258"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="481.5" y1="97.9922" y2="97.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="481.5" y1="99.9922" y2="99.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="297.5" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="301.5" y="114.5591"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="301.5" y="114.5591">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="350.5" y="114.5591">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="439.5" x2="481.5" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="261.5" y="130.1919">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="358.5" y="130.1919">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="462.5" y="130.1919">.</text><ellipse cx="368.5" cy="168.2578" fill="#000000" filter="url(#f5d7eez7u0tan)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,188.2578 L10,304.1875 A0,0 0 0 0 10,304.1875 L283,304.1875 A0,0 0 0 0 283,304.1875 L283,250.2227 L303,246.2227 L283,242.2227 L283,198.2578 L273,188.2578 L10,188.2578 A0,0 0 0 0 10,188.2578 " fill="#FBFB77" filter="url(#f5d7eez7u0tan)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M273,188.2578 L273,198.2578 L283,198.2578 L273,188.2578 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="16" y="205.3247">_nodes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="72" y="205.3247">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="87" y="205.3247">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="16" y="220.4575">urtEventSourceInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="139" y="220.4575">_evtSource</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="219" y="220.4575">)</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="16" y="235.5903">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="97" y="235.5903">_lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="134" y="235.5903">)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="246.2227" y2="246.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="24.5" y="250.2231">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="272.5" x2="283" y1="246.2227" y2="246.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="16" y="265.856">_topics</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="72" y="265.856">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="87" y="265.856">NULL</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="35.5" y1="276.4883" y2="276.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="214" x="39.5" y="280.4888">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="257.5" x2="283" y1="276.4883" y2="276.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="16" y="296.1216">_services</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="87" y="296.1216">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="102" y="296.1216">NULL</text><rect fill="#FEFECE" filter="url(#f5d7eez7u0tan)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="303" y="229.2383"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="313" y="250.377">initialize members</text><path d="M155.5,322.6211 L155.5,347.7539 A0,0 0 0 0 155.5,347.7539 L337.5,347.7539 A0,0 0 0 0 337.5,347.7539 L337.5,340.6211 L357.5,335.1875 L337.5,332.6211 L337.5,332.6211 L327.5,322.6211 L155.5,322.6211 A0,0 0 0 0 155.5,322.6211 " fill="#FBFB77" filter="url(#f5d7eez7u0tan)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M327.5,322.6211 L327.5,332.6211 L337.5,332.6211 L327.5,322.6211 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="161.5" y="339.688">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="214.5" y="339.688">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="318.5" y="339.688">.</text><ellipse cx="368.5" cy="335.1875" fill="#FFFFFF" filter="url(#f5d7eez7u0tan)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="368.5" cy="335.1875" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="138.2578" y2="158.2578"/><polygon fill="#A80036" points="364.5,148.2578,368.5,158.2578,372.5,148.2578,368.5,152.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="178.2578" y2="229.2383"/><polygon fill="#A80036" points="364.5,219.2383,368.5,229.2383,372.5,219.2383,368.5,223.2383" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="263.207" y2="324.1875"/><polygon fill="#A80036" points="364.5,314.1875,368.5,324.1875,372.5,314.1875,368.5,318.1875" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[06dedabe65f0ca2bb27e171527687956]
+@startuml
+
+title **µRtWare**\nurtCoreInit()\n
+
+
+note
+  - - //void// - -
+  ====
+  - - **return** : urt_status_t - -
+  Always returns ""URT_STATUS_OK"".
+endnote
+
+
+start
+:initialize members;
+note
+  **_nodes** ← ""NULL""
+  urtEventSourceInit(**_evtSource**)
+  urtMutexInit(**_lock**)
+  .. URT_CFG_PUBSUB_ENABLED == true ..
+  **_topics** ← ""NULL""
+  .. URT_CFG_RPC_ENABLED == true ..
+  **_services** ← ""NULL""
+endnote
+stop
+note
+  Returns ""URT_STATUS_OK"".
+endnote
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/core/urtCoreInit.uml b/doc/activitydiagrams/core/urtCoreInit.uml
new file mode 100644
index 0000000..47f60ee
--- /dev/null
+++ b/doc/activitydiagrams/core/urtCoreInit.uml
@@ -0,0 +1,57 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtCoreInit()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- //void// --
+  ====
+  -- **return** : urt_status_t --
+  Always returns ""URT_STATUS_OK"".
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+:initialize members;
+note
+  **_nodes** ← ""NULL""
+  urtEventSourceInit(**_evtSource**)
+  urtMutexInit(**_lock**)
+  .. URT_CFG_PUBSUB_ENABLED == true ..
+  **_topics** ← ""NULL""
+  .. URT_CFG_RPC_ENABLED == true ..
+  **_services** ← ""NULL""
+endnote
+stop
+note
+  Returns ""URT_STATUS_OK"".
+endnote
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/core/urtCoreStartNodes.uml b/doc/activitydiagrams/core/urtCoreStartNodes.uml
new file mode 100644
index 0000000..e69de29
diff --git a/doc/activitydiagrams/core/urtCoreStopNodes.uml b/doc/activitydiagrams/core/urtCoreStopNodes.uml
new file mode 100644
index 0000000..e69de29
diff --git a/doc/activitydiagrams/core/urtCoreSynchronizeNodes.uml b/doc/activitydiagrams/core/urtCoreSynchronizeNodes.uml
new file mode 100644
index 0000000..e69de29
diff --git a/doc/activitydiagrams/message/urtMessageInit.svg b/doc/activitydiagrams/message/urtMessageInit.svg
index 0c3256b..2d04402 100644
--- a/doc/activitydiagrams/message/urtMessageInit.svg
+++ b/doc/activitydiagrams/message/urtMessageInit.svg
@@ -1,37 +1,35 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="275px" preserveAspectRatio="none" style="width:418px;height:275px;" version="1.1" viewBox="0 0 418 275" width="418px" zoomAndPan="magnify"><defs><filter height="300%" id="f160ofdjzs96s" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="163.75" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="144" x="136.25" y="47.6611">urtMessageInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="211.25" y="68.6143"/><path d="M10,72.8594 L10,158.5234 A0,0 0 0 0 10,158.5234 L312,158.5234 A0,0 0 0 0 312,158.5234 L312,119.6914 L332,115.6914 L312,111.6914 L312,82.8594 L302,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#f160ofdjzs96s)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M302,72.8594 L302,82.8594 L312,82.8594 L302,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="61" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="65" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="65" y="89.4263">message</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="129" y="89.4263">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="261" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="261" x2="312" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="162" x="16" y="105.0591">The message to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="97" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="101" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="101" y="134.8247">payload</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="165" y="134.8247">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="225" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="312" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="16" y="150.4575">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="66" y="150.4575">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="102" y="150.4575">for messages without payload.</text><ellipse cx="342" cy="115.6914" fill="#000000" filter="url(#f160ofdjzs96s)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f160ofdjzs96s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="276.5" y="178.5234"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="286.5" y="199.6621">initialize members</text><path d="M129,223.3594 L129,263.625 A0,0 0 0 0 129,263.625 L311,263.625 A0,0 0 0 0 311,263.625 L311,247.4922 L331,243.4922 L311,239.4922 L311,233.3594 L301,223.3594 L129,223.3594 A0,0 0 0 0 129,223.3594 " fill="#FBFB77" filter="url(#f160ofdjzs96s)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M301,223.3594 L301,233.3594 L311,233.3594 L301,223.3594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="129" x2="143.5" y1="235.9258" y2="235.9258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="147.5" y="239.9263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="147.5" y="239.9263">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="196.5" y="239.9263"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="196.5" y="239.9263">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="296.5" y="239.9263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="296.5" x2="311" y1="235.9258" y2="235.9258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="135" y="255.5591">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="188" y="255.5591">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="292" y="255.5591">.</text><ellipse cx="342" cy="243.4922" fill="#FFFFFF" filter="url(#f160ofdjzs96s)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="342" cy="243.4922" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342" x2="342" y1="125.6914" y2="178.5234"/><polygon fill="#A80036" points="338,168.5234,342,178.5234,346,168.5234,342,172.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342" x2="342" y1="212.4922" y2="232.4922"/><polygon fill="#A80036" points="338,222.4922,342,232.4922,346,222.4922,342,226.4922" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[cf41be7f63b42d9455c93a9cc8728d76]
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="405px" preserveAspectRatio="none" style="width:536px;height:405px;" version="1.1" viewBox="0 0 536 405" width="536px" zoomAndPan="magnify"><defs><filter height="300%" id="fawtppr2uev6i" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="222.75" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="144" x="195.25" y="47.6611">urtMessageInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="270.25" y="68.6143"/><path d="M222.5,72.8594 L222.5,198.7891 L524.5,198.7891 L524.5,82.8594 L514.5,72.8594 L222.5,72.8594 " fill="#FBFB77" filter="url(#fawtppr2uev6i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M514.5,72.8594 L514.5,82.8594 L524.5,82.8594 L514.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="278.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="282.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="282.5" y="89.4263">message</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="353.5" y="89.4263">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="468.5" x2="524.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="162" x="228.5" y="105.0591">The message to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="228.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="308.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="340.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="317.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="321.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="321.5" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="384.5" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="429.5" x2="524.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="228.5" y="150.4575">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="278.5" y="150.4575">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="314.5" y="150.4575">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="524.5" y1="158.5234" y2="158.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="524.5" y1="160.5234" y2="160.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="302.5" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="306.5" y="175.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="306.5" y="175.0903">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="355.5" y="175.0903">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="444.5" x2="524.5" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="228.5" y="190.7231">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="325.5" y="190.7231">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="429.5" y="190.7231">.</text><ellipse cx="373.5" cy="228.7891" fill="#000000" filter="url(#fawtppr2uev6i)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,248.7891 L10,349.5859 A0,0 0 0 0 10,349.5859 L288,349.5859 A0,0 0 0 0 288,349.5859 L288,303.1875 L308,299.1875 L288,295.1875 L288,258.7891 L278,248.7891 L10,248.7891 A0,0 0 0 0 10,248.7891 " fill="#FBFB77" filter="url(#fawtppr2uev6i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M278,248.7891 L278,258.7891 L288,258.7891 L278,248.7891 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="16" y="265.856">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="52" y="265.856">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="67" y="265.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="16" y="280.9888">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="65" x="79" y="280.9888">← payload</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="77" x="16" y="296.1216">originTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="97" y="296.1216">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="176" x="16" y="311.2544">numHrtConsumbersLeft</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="196" y="311.2544">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="321.8867" y2="321.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="24.5" y="325.8872">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="277.5" x2="288" y1="321.8867" y2="321.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="143" x="16" y="341.52">numConsumersLeft</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="163" y="341.52">← 0</text><rect fill="#FEFECE" filter="url(#fawtppr2uev6i)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="308" y="282.2031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="318" y="303.3418">initialize members</text><path d="M160.5,368.0195 L160.5,393.1523 A0,0 0 0 0 160.5,393.1523 L342.5,393.1523 A0,0 0 0 0 342.5,393.1523 L342.5,386.0195 L362.5,380.5859 L342.5,378.0195 L342.5,378.0195 L332.5,368.0195 L160.5,368.0195 A0,0 0 0 0 160.5,368.0195 " fill="#FBFB77" filter="url(#fawtppr2uev6i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M332.5,368.0195 L332.5,378.0195 L342.5,378.0195 L332.5,368.0195 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="166.5" y="385.0864">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="219.5" y="385.0864">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="323.5" y="385.0864">.</text><ellipse cx="373.5" cy="380.5859" fill="#FFFFFF" filter="url(#fawtppr2uev6i)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="373.5" cy="380.5859" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="198.7891" y2="218.7891"/><polygon fill="#A80036" points="369.5,208.7891,373.5,218.7891,377.5,208.7891,373.5,212.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="238.7891" y2="282.2031"/><polygon fill="#A80036" points="369.5,272.2031,373.5,282.2031,377.5,272.2031,373.5,276.2031" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="316.1719" y2="369.5859"/><polygon fill="#A80036" points="369.5,359.5859,373.5,369.5859,377.5,359.5859,373.5,363.5859" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[42dceccd0ec0bb4e33e54645d4db1fb5]
 @startuml
 
 title **µRtWare**\nurtMessageInit()\n
 
 
-
-
-
-
-
-
-
-
-
-
-start
 note
-  - - ""**message** : urt_message_t*"" - -
+  - - **message** : urt_message_t* - -
   The message to initialize.
   Must not be ""NULL"".
-  - - ""**payload** : void*"" - -
+  - - **payload** : void* - -
   May be ""NULL"" for messages without payload.
-end note
+  ====
+  - - **return** : urt_status_t - -
+  Always returns ""URT_STATUS_OK"".
+endnote
 
 
+start
 :initialize members;
-
-
+note
+  **next** ← ""NULL""
+  **payload** ← payload
+  **originTime** ← 0
+  **numHrtConsumbersLeft** ← 0
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **numConsumersLeft** ← 0
+endnote
 stop
 note
-  - - **return** ""urt_status_t"" - -
   Returns ""URT_STATUS_OK"".
-end note
+endnote
 
 
 @enduml
diff --git a/doc/activitydiagrams/message/urtMessageInit.uml b/doc/activitydiagrams/message/urtMessageInit.uml
index d7f136a..4a10279 100644
--- a/doc/activitydiagrams/message/urtMessageInit.uml
+++ b/doc/activitydiagrams/message/urtMessageInit.uml
@@ -25,30 +25,35 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 title **µRtWare**\nurtMessageInit()\n
 
-!include ../../functions.iuml
+/'### PARAMETERS & RETURN ####################################################'/
 
-/'### PARAMETERS & START #####################################################'/
-
-start
 note
-  -- ""**message** : urt_message_t*"" --
+  -- **message** : urt_message_t* --
   The message to initialize.
   Must not be ""NULL"".
-  -- ""**payload** : void*"" --
+  -- **payload** : void* --
   May be ""NULL"" for messages without payload.
-end note
+  ====
+  -- **return** : urt_status_t --
+  Always returns ""URT_STATUS_OK"".
+endnote
 
 /'### PROCEDURE ##############################################################'/
 
+start
 :initialize members;
-
-/'### STOP & RETURN ##########################################################'/
-
+note
+  **next** ← ""NULL""
+  **payload** ← payload
+  **originTime** ← 0
+  **numHrtConsumbersLeft** ← 0
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **numConsumersLeft** ← 0
+endnote
 stop
 note
-  -- **return** ""urt_status_t"" --
   Returns ""URT_STATUS_OK"".
-end note
+endnote
 
 /'### OUTRO ##################################################################'/
 
diff --git a/doc/activitydiagrams/node/urtNodeInit.svg b/doc/activitydiagrams/node/urtNodeInit.svg
new file mode 100644
index 0000000..6acede8
--- /dev/null
+++ b/doc/activitydiagrams/node/urtNodeInit.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="839px" preserveAspectRatio="none" style="width:831px;height:839px;" version="1.1" viewBox="0 0 831 839" width="831px" zoomAndPan="magnify"><defs><filter height="300%" id="fm3mdz4xzb1ad" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="370.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="116" x="356.75" y="47.6611">urtNodeInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="417.75" y="68.6143"/><path d="M375.5,72.8594 L375.5,410.6484 L819.5,410.6484 L819.5,82.8594 L809.5,72.8594 L375.5,72.8594 " fill="#FBFB77" filter="url(#fm3mdz4xzb1ad)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M809.5,72.8594 L809.5,82.8594 L819.5,82.8594 L809.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="531" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="535" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="535" y="89.4263">node</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="576" y="89.4263">: urt_node_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="664" x2="819.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="381.5" y="105.0591">The node to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="381.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="461.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="493.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="511.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="515.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="49" x="515.5" y="134.8247">thread</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="568.5" y="134.8247">: urt_osThread_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="683.5" x2="819.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="335" x="381.5" y="150.4575">The already initialized, exclusive thread for the node.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="381.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="461.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="493.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="452.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="456.5" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="103" x="456.5" y="180.2231">setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="175" x="563.5" y="180.2231">: urt_nodeSetupCallback_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="742.5" x2="819.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="296" x="381.5" y="195.856">Callback function to be executed during setup.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="381.5" y="210.9888">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="431.5" y="210.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="142" x="467.5" y="210.9888">if no setup is required.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="522" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="530" y="225.6216"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="98" x="530" y="225.6216">setupparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="632" y="225.6216">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="673" x2="819.5" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="332" x="381.5" y="241.2544">Optional parameters for the setup callback function.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="51" x="381.5" y="256.3872">Must be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="436.5" y="256.3872">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="160" x="472.5" y="256.3872">if no callback is specified.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="381.5" y="271.52">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="431.5" y="271.52">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="337" x="467.5" y="271.52">if the specified callback does not expect parameters.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="461" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="465" y="286.1528"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="465" y="286.1528">loopcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="168" x="562" y="286.1528">: urt_nodeLoopCallback_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="734" x2="819.5" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="270" x="381.5" y="301.7856">Callback function to be executed in a loop.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="381.5" y="316.9185">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="461.5" y="316.9185">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="493.5" y="316.9185">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="527" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="531" y="331.5513"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="531" y="331.5513">loopparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="623" y="331.5513">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="668" x2="819.5" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="323" x="381.5" y="347.1841">Optional parameters for the loop callback function.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="381.5" y="362.3169">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="431.5" y="362.3169">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="337" x="467.5" y="362.3169">if the specified callback does not expect parameters.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="819.5" y1="370.3828" y2="370.3828"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="819.5" y1="372.3828" y2="372.3828"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="526.5" y1="382.9492" y2="382.9492"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="530.5" y="386.9497"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="530.5" y="386.9497">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="579.5" y="386.9497">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="668.5" x2="819.5" y1="382.9492" y2="382.9492"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="381.5" y="402.5825">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="478.5" y="402.5825">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="582.5" y="402.5825">.</text><ellipse cx="597.5" cy="440.6484" fill="#000000" filter="url(#fm3mdz4xzb1ad)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,460.6484 L10,621.9766 A0,0 0 0 0 10,621.9766 L512,621.9766 A0,0 0 0 0 512,621.9766 L512,545.3125 L532,541.3125 L512,537.3125 L512,470.6484 L502,460.6484 L10,460.6484 A0,0 0 0 0 10,460.6484 " fill="#FBFB77" filter="url(#fm3mdz4xzb1ad)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M502,460.6484 L502,470.6484 L512,470.6484 L502,460.6484 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="16" y="477.7153">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="52" y="477.7153">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="67" y="477.7153">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="492.8481">thread</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="57" x="69" y="492.8481">← thread</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="103" x="16" y="507.981">setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="102" x="123" y="507.981">← setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="98" x="16" y="523.1138">setupparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="100" x="118" y="523.1138">← setupparams</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="16" y="538.2466">loopcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="113" y="538.2466">← loopcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="16" y="553.3794">loopparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="108" y="553.3794">← loopparams</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="42" x="16" y="568.5122">stage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="62" y="568.5122">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="16" y="583.645">urtEventListenerInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="55" x="145" y="583.645">listener</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="200" y="583.645">)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="594.2773" y2="594.2773"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="473" x="24.5" y="598.2778">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="501.5" x2="512" y1="594.2773" y2="594.2773"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="16" y="613.9106">loops</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="60" y="613.9106">← 0</text><rect fill="#FEFECE" filter="url(#fm3mdz4xzb1ad)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="532" y="524.3281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="542" y="545.4668">initialize members</text><rect fill="#FEFECE" filter="url(#fm3mdz4xzb1ad)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="559" y="641.9766"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="569" y="663.1152">lock core</text><path d="M326.5,700.3633 L326.5,725.4961 A0,0 0 0 0 326.5,725.4961 L466.5,725.4961 A0,0 0 0 0 466.5,725.4961 L466.5,718.3633 L486.5,712.9297 L466.5,710.3633 L466.5,710.3633 L456.5,700.3633 L326.5,700.3633 A0,0 0 0 0 326.5,700.3633 " fill="#FBFB77" filter="url(#fm3mdz4xzb1ad)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M456.5,700.3633 L456.5,710.3633 L466.5,710.3633 L456.5,700.3633 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="119" x="332.5" y="717.4302">List is not ordered.</text><rect fill="#FEFECE" filter="url(#fm3mdz4xzb1ad)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="222" x="486.5" y="695.9453"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="202" x="496.5" y="717.084">insert self to core's list of nodes</text><rect fill="#FEFECE" filter="url(#fm3mdz4xzb1ad)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="551" y="749.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="561" y="771.0527">unlock core</text><path d="M384.5,802.3164 L384.5,827.4492 A0,0 0 0 0 384.5,827.4492 L566.5,827.4492 A0,0 0 0 0 566.5,827.4492 L566.5,820.3164 L586.5,814.8828 L566.5,812.3164 L566.5,812.3164 L556.5,802.3164 L384.5,802.3164 A0,0 0 0 0 384.5,802.3164 " fill="#FBFB77" filter="url(#fm3mdz4xzb1ad)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M556.5,802.3164 L556.5,812.3164 L566.5,812.3164 L556.5,802.3164 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="390.5" y="819.3833">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="443.5" y="819.3833">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="547.5" y="819.3833">.</text><ellipse cx="597.5" cy="814.8828" fill="#FFFFFF" filter="url(#fm3mdz4xzb1ad)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="597.5" cy="814.8828" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="410.6484" y2="430.6484"/><polygon fill="#A80036" points="593.5,420.6484,597.5,430.6484,601.5,420.6484,597.5,424.6484" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="450.6484" y2="524.3281"/><polygon fill="#A80036" points="593.5,514.3281,597.5,524.3281,601.5,514.3281,597.5,518.3281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="558.2969" y2="641.9766"/><polygon fill="#A80036" points="593.5,631.9766,597.5,641.9766,601.5,631.9766,597.5,635.9766" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="675.9453" y2="695.9453"/><polygon fill="#A80036" points="593.5,685.9453,597.5,695.9453,601.5,685.9453,597.5,689.9453" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="729.9141" y2="749.9141"/><polygon fill="#A80036" points="593.5,739.9141,597.5,749.9141,601.5,739.9141,597.5,743.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="783.8828" y2="803.8828"/><polygon fill="#A80036" points="593.5,793.8828,597.5,803.8828,601.5,793.8828,597.5,797.8828" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[307cf5ccdb0a0bc9227aeb407752f92d]
+@startuml
+
+title **µRtWare**\nurtNodeInit()\n
+
+
+note
+  - - **node** : urt_node_t* - -
+  The node to initialize.
+  Must not be ""NULL"".
+  - - **thread** : urt_osThread_t* - -
+  The already initialized, exclusive thread for the node.
+  Must not be ""NULL"".
+  - - **setupcallback** : urt_nodeSetupCallback_t* - -
+  Callback function to be executed during setup.
+  May be ""NULL"" if no setup is required.
+  - -  **setupparams** : void*- -
+  Optional parameters for the setup callback function.
+  Must be ""NULL"" if no callback is specified.
+  May be ""NULL"" if the specified callback does not expect parameters.
+  - - **loopcallback** : urt_nodeLoopCallback_t* - -
+  Callback function to be executed in a loop.
+  Must not be ""NULL"".
+  - - **loopparams** : void* - -
+  Optional parameters for the loop callback function.
+  May be ""NULL"" if the specified callback does not expect parameters.
+  ====
+  - - **return** : urt_status_t - -
+  Always returns ""URT_STATUS_OK"".
+endnote
+
+
+start
+:initialize members;
+note
+  **next** ← ""NULL""
+  **thread** ← thread
+  **setupcallback** ← setupcallback
+  **setupparams** ← setupparams
+  **loopcallback** ← loopcallback
+  **loopparams** ← loopparams
+  **stage** ← 0
+  urtEventListenerInit(**listener**)
+  .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true ..
+  **loops** ← 0
+endnote
+:lock core;
+:insert self to core's list of nodes;
+note
+  List is not ordered.
+endnote
+:unlock core;
+stop
+note
+  Returns ""URT_STATUS_OK"".
+endnote
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/node/urtNodeInit.uml b/doc/activitydiagrams/node/urtNodeInit.uml
new file mode 100644
index 0000000..b8fcfdc
--- /dev/null
+++ b/doc/activitydiagrams/node/urtNodeInit.uml
@@ -0,0 +1,84 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtNodeInit()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **node** : urt_node_t* --
+  The node to initialize.
+  Must not be ""NULL"".
+  -- **thread** : urt_osThread_t* --
+  The already initialized, exclusive thread for the node.
+  Must not be ""NULL"".
+  -- **setupcallback** : urt_nodeSetupCallback_t* --
+  Callback function to be executed during setup.
+  May be ""NULL"" if no setup is required.
+  --  **setupparams** : void*--
+  Optional parameters for the setup callback function.
+  Must be ""NULL"" if no callback is specified.
+  May be ""NULL"" if the specified callback does not expect parameters.
+  -- **loopcallback** : urt_nodeLoopCallback_t* --
+  Callback function to be executed in a loop.
+  Must not be ""NULL"".
+  -- **loopparams** : void* --
+  Optional parameters for the loop callback function.
+  May be ""NULL"" if the specified callback does not expect parameters.
+  ====
+  -- **return** : urt_status_t --
+  Always returns ""URT_STATUS_OK"".
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+:initialize members;
+note
+  **next** ← ""NULL""
+  **thread** ← thread
+  **setupcallback** ← setupcallback
+  **setupparams** ← setupparams
+  **loopcallback** ← loopcallback
+  **loopparams** ← loopparams
+  **stage** ← 0
+  urtEventListenerInit(**listener**)
+  .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true ..
+  **loops** ← 0
+endnote
+:lock core;
+:insert self to core's list of nodes;
+note
+  List is not ordered.
+endnote
+:unlock core;
+stop
+note
+  Returns ""URT_STATUS_OK"".
+endnote
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/publisher/urtPublisherInit.svg b/doc/activitydiagrams/publisher/urtPublisherInit.svg
index cf48502..ff617ef 100644
--- a/doc/activitydiagrams/publisher/urtPublisherInit.svg
+++ b/doc/activitydiagrams/publisher/urtPublisherInit.svg
@@ -1,50 +1,53 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="692px" preserveAspectRatio="none" style="width:811px;height:692px;" version="1.1" viewBox="0 0 811 692" width="811px" zoomAndPan="magnify"><defs><filter height="300%" id="f1xffo3a9rerdo" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="360" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="150" x="329.5" y="47.6611">urtPublisherInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="407.5" y="68.6143"/><path d="M10,72.8594 L10,219.0547 A0,0 0 0 0 10,219.0547 L426,219.0547 A0,0 0 0 0 426,219.0547 L426,149.957 L446,145.957 L426,141.957 L426,82.8594 L416,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#f1xffo3a9rerdo)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M416,72.8594 L416,82.8594 L426,82.8594 L416,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="102" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="106" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="72" x="106" y="89.4263">publisher</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="144" x="186" y="89.4263">: urt_publisher_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="334" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="334" x2="426" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="16" y="105.0591">The publisher to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="134" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="138" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="138" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="186" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="302" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="302" x2="426" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="259" x="16" y="150.4575">The topic, this publisher is associated to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="114" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="118" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="118" y="180.2231">messages</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="190" y="180.2231">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="322" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="322" x2="426" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="9" x="16" y="195.856">A</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="29" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="65" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="16" y="210.9888">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="66" y="210.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="202" x="102" y="210.9888">(no messages are contributed).</text><ellipse cx="456" cy="145.957" fill="#000000" filter="url(#f1xffo3a9rerdo)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1xffo3a9rerdo)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="390.5" y="239.0547"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="400.5" y="260.1934">initialize members</text><rect fill="#FEFECE" filter="url(#f1xffo3a9rerdo)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="416" y="341.4258"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="426" y="362.5645">lock topic</text><rect fill="#FFFFFF" filter="url(#f1xffo3a9rerdo)" height="145.5859" style="stroke: #000000; stroke-width: 2.0;" width="638" x="137" y="386.1963"/><path d="M294,387.1963 L294,395.4932 L284,405.4932 L137,405.4932 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="140" y="400.1914">contribute messages</text><rect fill="#FEFECE" filter="url(#f1xffo3a9rerdo)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="219" y="422.4932"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="229" y="443.6318">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f1xffo3a9rerdo)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="147" y="485.8135"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="157" y="506.9521">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#FEFECE" filter="url(#f1xffo3a9rerdo)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="408" y="551.7822"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="418" y="572.9209">unlock topic</text><polygon fill="#FEFECE" filter="url(#f1xffo3a9rerdo)" points="386,293.0234,526,293.0234,538,305.0234,526,317.0234,386,317.0234,374,305.0234,386,293.0234" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="460" y="327.2339">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="386" y="308.8315">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="538" y="302.4292">no</text><polygon fill="#FEFECE" filter="url(#f1xffo3a9rerdo)" points="456,605.751,468,617.751,456,629.751,444,617.751,456,605.751" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M243,640.6182 L243,680.8838 A0,0 0 0 0 243,680.8838 L425,680.8838 A0,0 0 0 0 425,680.8838 L425,664.751 L445,660.751 L425,656.751 L425,650.6182 L415,640.6182 L243,640.6182 A0,0 0 0 0 243,640.6182 " fill="#FBFB77" filter="url(#f1xffo3a9rerdo)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M415,640.6182 L415,650.6182 L425,650.6182 L415,640.6182 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="243" x2="257.5" y1="653.1846" y2="653.1846"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="261.5" y="657.1851"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="261.5" y="657.1851">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="310.5" y="657.1851"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="310.5" y="657.1851">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="410.5" y="657.1851"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="410.5" x2="425" y1="653.1846" y2="653.1846"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="249" y="672.8179">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="302" y="672.8179">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="406" y="672.8179">.</text><ellipse cx="456" cy="660.751" fill="#FFFFFF" filter="url(#f1xffo3a9rerdo)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="456" cy="660.751" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="456" x2="456" y1="155.957" y2="239.0547"/><polygon fill="#A80036" points="452,229.0547,456,239.0547,460,229.0547,456,233.0547" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="456" x2="456" y1="456.4619" y2="485.8135"/><polygon fill="#A80036" points="452,475.8135,456,485.8135,460,475.8135,456,479.8135" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="456" x2="456" y1="375.3945" y2="422.4932"/><polygon fill="#A80036" points="452,412.4932,456,422.4932,460,412.4932,456,416.4932" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="456" x2="456" y1="519.7822" y2="551.7822"/><polygon fill="#A80036" points="452,541.7822,456,551.7822,460,541.7822,456,545.7822" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="456" x2="456" y1="317.0234" y2="341.4258"/><polygon fill="#A80036" points="452,331.4258,456,341.4258,460,331.4258,456,335.4258" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="538" x2="785" y1="305.0234" y2="305.0234"/><polygon fill="#A80036" points="781,455.8135,785,465.8135,789,455.8135,785,459.8135" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785" x2="785" y1="305.0234" y2="617.751"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785" x2="468" y1="617.751" y2="617.751"/><polygon fill="#A80036" points="478,613.751,468,617.751,478,621.751,474,617.751" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="456" x2="456" y1="585.751" y2="605.751"/><polygon fill="#A80036" points="452,595.751,456,605.751,460,595.751,456,599.751" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="456" x2="456" y1="273.0234" y2="293.0234"/><polygon fill="#A80036" points="452,283.0234,456,293.0234,460,283.0234,456,287.0234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="456" x2="456" y1="629.751" y2="649.751"/><polygon fill="#A80036" points="452,639.751,456,649.751,460,639.751,456,643.751" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[cad571e197258dd00abff76ac285e5b2]
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="811px" preserveAspectRatio="none" style="width:1212px;height:811px;" version="1.1" viewBox="0 0 1212 811" width="1212px" zoomAndPan="magnify"><defs><filter height="300%" id="fcs9iivy1fmh7" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="560.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="150" x="530" y="47.6611">urtPublisherInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="608" y="68.6143"/><path d="M368.5,72.8594 L368.5,289.5859 L819.5,289.5859 L819.5,82.8594 L809.5,72.8594 L368.5,72.8594 " fill="#FBFB77" filter="url(#fcs9iivy1fmh7)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M809.5,72.8594 L809.5,82.8594 L819.5,82.8594 L809.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="498.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="502.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="502.5" y="89.4263">publisher</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="575.5" y="89.4263">: urt_publisher_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="689.5" x2="819.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="374.5" y="105.0591">The publisher to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="374.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="454.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="486.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="528" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="532" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="532" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="573" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="660" x2="819.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="259" x="374.5" y="150.4575">The topic, this publisher is associated to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="374.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="454.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="486.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="495" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="499" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="499" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="578" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="693" x2="819.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="374.5" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="410.5" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="374.5" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="374.5" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="374.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="424.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="460.5" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="819.5" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="819.5" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="523" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="527" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="527" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="576" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="665" x2="819.5" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="374.5" y="281.52">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="471.5" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="575.5" y="281.52">.</text><ellipse cx="594" cy="319.5859" fill="#000000" filter="url(#fcs9iivy1fmh7)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M230.5,339.5859 L230.5,410.1172 A0,0 0 0 0 230.5,410.1172 L508.5,410.1172 A0,0 0 0 0 508.5,410.1172 L508.5,378.8516 L528.5,374.8516 L508.5,370.8516 L508.5,349.5859 L498.5,339.5859 L230.5,339.5859 A0,0 0 0 0 230.5,339.5859 " fill="#FBFB77" filter="url(#fcs9iivy1fmh7)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M498.5,339.5859 L498.5,349.5859 L508.5,349.5859 L498.5,339.5859 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="236.5" y="356.6528">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="277.5" y="356.6528">← topic</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="230.5" x2="241" y1="367.2852" y2="367.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="245" y="371.2856">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="498" x2="508.5" y1="367.2852" y2="367.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="123" x="236.5" y="386.9185">publishAttempts</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="363.5" y="386.9185">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="236.5" y="402.0513">publishFails</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="328.5" y="402.0513">← 0</text><rect fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="528.5" y="357.8672"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="538.5" y="379.0059">initialize members</text><rect fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="554" y="478.5195"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="564" y="499.6582">lock topic</text><rect fill="#FFFFFF" filter="url(#fcs9iivy1fmh7)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1166" x="10" y="523.29"/><path d="M167,524.29 L167,532.5869 L157,542.5869 L10,542.5869 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="13" y="537.2852">contribute messages</text><rect fill="#000000" filter="url(#fcs9iivy1fmh7)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1146" x="20" y="559.5869"/><rect fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="34" y="585.5869"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="44" y="606.7256">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="536" y="585.5869"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="546" y="606.7256">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#fcs9iivy1fmh7)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1146" x="20" y="639.5557"/><rect fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="546" y="677.5557"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="556" y="698.6943">unlock topic</text><polygon fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" points="524,430.1172,664,430.1172,676,442.1172,664,454.1172,524,454.1172,512,442.1172,524,430.1172" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="598" y="464.3276">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="524" y="445.9253">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="676" y="439.5229">no</text><polygon fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" points="594,731.5244,606,743.5244,594,755.5244,582,743.5244,594,731.5244" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M381,773.958 L381,799.0908 A0,0 0 0 0 381,799.0908 L563,799.0908 A0,0 0 0 0 563,799.0908 L563,791.958 L583,786.5244 L563,783.958 L563,783.958 L553,773.958 L381,773.958 A0,0 0 0 0 381,773.958 " fill="#FBFB77" filter="url(#fcs9iivy1fmh7)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M553,773.958 L553,783.958 L563,783.958 L553,773.958 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="387" y="791.0249">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="440" y="791.0249">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="544" y="791.0249">.</text><ellipse cx="594" cy="786.5244" fill="#FFFFFF" filter="url(#fcs9iivy1fmh7)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="594" cy="786.5244" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="289.5859" y2="309.5859"/><polygon fill="#A80036" points="590,299.5859,594,309.5859,598,299.5859,594,303.5859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="329.5859" y2="357.8672"/><polygon fill="#A80036" points="590,347.8672,594,357.8672,598,347.8672,594,351.8672" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="271" x2="271" y1="565.5869" y2="585.5869"/><polygon fill="#A80036" points="267,575.5869,271,585.5869,275,575.5869,271,579.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="565.5869" y2="585.5869"/><polygon fill="#A80036" points="841,575.5869,845,585.5869,849,575.5869,845,579.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="271" x2="271" y1="619.5557" y2="639.5557"/><polygon fill="#A80036" points="267,629.5557,271,639.5557,275,629.5557,271,633.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="619.5557" y2="639.5557"/><polygon fill="#A80036" points="841,629.5557,845,639.5557,849,629.5557,845,633.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="512.4883" y2="559.5869"/><polygon fill="#A80036" points="590,549.5869,594,559.5869,598,549.5869,594,553.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="645.5557" y2="677.5557"/><polygon fill="#A80036" points="590,667.5557,594,677.5557,598,667.5557,594,671.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="454.1172" y2="478.5195"/><polygon fill="#A80036" points="590,468.5195,594,478.5195,598,468.5195,594,472.5195" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="1186" y1="442.1172" y2="442.1172"/><polygon fill="#A80036" points="1182,584.4229,1186,594.4229,1190,584.4229,1186,588.4229" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186" x2="1186" y1="442.1172" y2="743.5244"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186" x2="606" y1="743.5244" y2="743.5244"/><polygon fill="#A80036" points="616,739.5244,606,743.5244,616,747.5244,612,743.5244" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="711.5244" y2="731.5244"/><polygon fill="#A80036" points="590,721.5244,594,731.5244,598,721.5244,594,725.5244" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="391.8359" y2="430.1172"/><polygon fill="#A80036" points="590,420.1172,594,430.1172,598,420.1172,594,424.1172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="755.5244" y2="775.5244"/><polygon fill="#A80036" points="590,765.5244,594,775.5244,598,765.5244,594,769.5244" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[5c5b56038ceff1f6c77f1e7c43c99812]
 @startuml
 
 title **µRtWare**\nurtPublisherInit()\n
 
 
-
-
-
-
-
-
-
-
-
-
-start
 note
-  - - ""**publisher** : urt_publisher_t*"" - -
+  - - **publisher** : urt_publisher_t* - -
   The publisher to initialize.
   Must not be ""NULL"".
-  - - ""**topic** : urt_topic_t*"" - -
+  - - **topic** : urt_topic_t* - -
   The topic, this publisher is associated to.
   Must not be ""NULL"".
-  - - ""**messages** : urt_message_t*"" - -
-  A ""NULL"" terminated list of messages to contribute to the topic.
-  May be ""NULL"" (no messages are contributed).
-end note
+  - - **messages** : urt_message_t* - -
+  ""NULL"" terminated list of messages to contribute to the topic.
+  Messages must not be associated to another topic.
+  Once a message has been contributed, it cannot be removed later.
+  May be ""NULL"" (no messages to contribute).
+  ====
+  - - **return** : urt_status_t - -
+  Always returns ""URT_STATUS_OK"".
+endnote
 
 
+start
 :initialize members;
+note
+  **topic** ← topic
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **publishAttempts** ← 0
+  **publishFails** ← 0
+endnote
 if (Messages to contribute?) then (yes)
   :lock topic;
-  partition "contribute messages" {
+
+partition "contribute messages" {
+  fork
     :set next pointer of topic's latest message to first message to contribute;
+  fork again
     :set next pointer of last message to contribute to the message after the topic's latest message;
-  }
+  endfork
+}
+
   :unlock topic;
 else (no)
 endif
-
-
 stop
 note
-  - - **return** ""urt_status_t"" - -
   Returns ""URT_STATUS_OK"".
-end note
+endnote
 
 
 @enduml
diff --git a/doc/activitydiagrams/publisher/urtPublisherInit.uml b/doc/activitydiagrams/publisher/urtPublisherInit.uml
index 5bcfaee..36d9bf0 100644
--- a/doc/activitydiagrams/publisher/urtPublisherInit.uml
+++ b/doc/activitydiagrams/publisher/urtPublisherInit.uml
@@ -25,43 +25,45 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 title **µRtWare**\nurtPublisherInit()\n
 
-!include ../../functions.iuml
+/'### PARAMETERS & RETURN ####################################################'/
 
-/'### PARAMETERS & START #####################################################'/
-
-start
 note
-  -- ""**publisher** : urt_publisher_t*"" --
+  -- **publisher** : urt_publisher_t* --
   The publisher to initialize.
   Must not be ""NULL"".
-  -- ""**topic** : urt_topic_t*"" --
+  -- **topic** : urt_topic_t* --
   The topic, this publisher is associated to.
   Must not be ""NULL"".
-  -- ""**messages** : urt_message_t*"" --
-  A ""NULL"" terminated list of messages to contribute to the topic.
-  May be ""NULL"" (no messages are contributed).
-end note
+  -- **messages** : urt_message_t* --
+  ""NULL"" terminated list of messages to contribute to the topic.
+  Messages must not be associated to another topic.
+  Once a message has been contributed, it cannot be removed later.
+  May be ""NULL"" (no messages to contribute).
+  ====
+  -- **return** : urt_status_t --
+  Always returns ""URT_STATUS_OK"".
+endnote
 
 /'### PROCEDURE ##############################################################'/
 
+start
 :initialize members;
+note
+  **topic** ← topic
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **publishAttempts** ← 0
+  **publishFails** ← 0
+endnote
 if (Messages to contribute?) then (yes)
   :lock topic;
-  partition "contribute messages" {
-    :set next pointer of topic's latest message to first message to contribute;
-    :set next pointer of last message to contribute to the message after the topic's latest message;
-  }
+  !include ../contributemessages.iuml
   :unlock topic;
 else (no)
 endif
-
-/'### STOP & RETURN ##########################################################'/
-
 stop
 note
-  -- **return** ""urt_status_t"" --
   Returns ""URT_STATUS_OK"".
-end note
+endnote
 
 /'### OUTRO ##################################################################'/
 
diff --git a/doc/activitydiagrams/publisher/urtPublisherPublish.svg b/doc/activitydiagrams/publisher/urtPublisherPublish.svg
index 5089693..111d809 100644
--- a/doc/activitydiagrams/publisher/urtPublisherPublish.svg
+++ b/doc/activitydiagrams/publisher/urtPublisherPublish.svg
@@ -1,83 +1,76 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1211px" preserveAspectRatio="none" style="width:2678px;height:1211px;" version="1.1" viewBox="0 0 2678 1211" width="2678px" zoomAndPan="magnify"><defs><filter height="300%" id="f1jy0wcjc0dc24" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="1293.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="183" x="1246.5" y="47.6611">urtPublisherPublish()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1341" y="68.6143"/><path d="M351,72.8594 L351,264.4531 A0,0 0 0 0 351,264.4531 L736,264.4531 A0,0 0 0 0 736,264.4531 L736,172.6563 L756,168.6563 L736,164.6563 L736,82.8594 L726,72.8594 L351,72.8594 A0,0 0 0 0 351,72.8594 " fill="#FBFB77" filter="url(#f1jy0wcjc0dc24)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M726,72.8594 L726,82.8594 L736,82.8594 L726,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="427.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="431.5" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="72" x="431.5" y="89.4263">publisher</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="144" x="511.5" y="89.4263">: urt_publisher_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="659.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="659.5" x2="736" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="197" x="357" y="105.0591">Pointer to the publisher to use.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="357" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="437" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="469" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="479.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="483.5" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="483.5" y="134.8247">payload</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="547.5" y="134.8247">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="607.5" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="607.5" x2="736" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="226" x="357" y="150.4575">Pointer to the data to be published.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="357" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="407" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="443" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="499.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="503.5" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="8" x="503.5" y="180.2231">n</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="519.5" y="180.2231">: size_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="587.5" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="587.5" x2="736" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="180" x="357" y="195.856">Size of the payload in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="475.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="479.5" y="210.4888"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="8" x="479.5" y="210.4888">t</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="495.5" y="210.4888">: urt_osTime_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="611.5" y="210.4888"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="611.5" x2="736" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="246" x="357" y="226.1216">Timestamp to be set for the message.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="455.5" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="459.5" y="240.7544"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="459.5" y="240.7544">timeout</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="523.5" y="240.7544">: urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="631.5" y="240.7544"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631.5" x2="736" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="364" x="357" y="256.3872">Timeout delay in case the message cannot be published.</text><ellipse cx="766" cy="168.6563" fill="#000000" filter="url(#f1jy0wcjc0dc24)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="726" y="284.4531"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="736" y="305.5918">lock topic</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="688" y="338.4219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="698" y="359.5605">access next message</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="638,462.5151,894,462.5151,906,474.5151,894,486.5151,638,486.5151,626,474.5151,638,462.5151" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="256" x="638" y="478.3232">Message timestamp was modified?) the (yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="906" y="471.9209">no</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="496.75" y="496.5151"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="151" x="506.75" y="517.6538">iterate to next message</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="524" x="687.75" y="496.5151"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="504" x="697.75" y="517.6538">wait for topic's condition variable (using topic's mutex) to be signaled or timeout</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="766,536.4839,778,548.4839,766,560.4839,754,548.4839,766,536.4839" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="648,392.3906,884,392.3906,896,411.5977,884,430.8047,648,430.8047,636,411.5977,648,392.3906" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="770" y="441.0151">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="648" y="402.6011">HRT consumers left for the message</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="236" x="648" y="415.4058">or the message timestamp was modified</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="648" y="428.2104">and a timeout occurred?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="622" y="409.0034">no</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="713,602.4839,819,602.4839,831,614.4839,819,626.4839,713,626.4839,701,614.4839,713,602.4839" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="713" y="618.292">Timeout occurred?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="681" y="611.8896">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="831" y="611.8896">no</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="49.5" y="636.4839"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="59.5" y="657.6226">unlock topic</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="10" y="705.4526"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="20" y="726.5913">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="63" y="726.5913">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f1jy0wcjc0dc24)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2471" x="195" y="636.4839"/><rect fill="#000000" filter="url(#f1jy0wcjc0dc24)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1014" x="207" y="761.7729"/><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="219" y="787.7729"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="229" y="808.9116">iterate topic pointer to this message</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="498" y="787.7729"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="508" y="808.9116">copy payload to message</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="706" y="787.7729"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="716" y="808.9116">set origin time of message</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="921" y="787.7729"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="931" y="808.9116">set number of HRT consumers (from topic)</text><rect fill="#000000" filter="url(#f1jy0wcjc0dc24)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1014" x="207" y="841.7417"/><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="398" x="1249" y="787.7729"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="378" x="1259" y="808.9116">set QoS rate timer (@topic) wrt. most critical HRT subscriber</text><path d="M1675,776.1089 L1675,801.2417 A0,0 0 0 0 1675,801.2417 L2170,801.2417 A0,0 0 0 0 2170,801.2417 L2170,794.1089 L2190,788.6753 L2170,786.1089 L2170,786.1089 L2160,776.1089 L1675,776.1089 A0,0 0 0 0 1675,776.1089 " fill="#FBFB77" filter="url(#f1jy0wcjc0dc24)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2160,776.1089 L2160,786.1089 L2170,786.1089 L2160,776.1089 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="474" x="1681" y="793.1758">No lock required since this timer is only accessed when the topic is locked.</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="434" x="2190" y="771.6909"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="414" x="2200" y="792.8296">set QoS delay timer (@subscriber) wrt. origin time of the message</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="2277,723.2886,2537,723.2886,2549,735.2886,2537,747.2886,2277,747.2886,2265,735.2886,2277,723.2886" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2411" y="757.499">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="260" x="2277" y="739.0967">QoS delay timer (@subscriber) is not armed?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2549" y="732.6943">no</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="2407,830.062,2419,842.062,2407,854.062,2395,842.062,2407,830.062" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="208" x="2303" y="874.062"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="188" x="2313" y="895.2007">iterate to next HRT subscriber</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="2346,662.4839,2468,662.4839,2480,674.4839,2468,686.4839,2346,686.4839,2334,674.4839,2346,662.4839" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2411" y="696.6943">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="2346" y="678.292">HRT subscribers left?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2320" y="671.8896">no</text><rect fill="#000000" filter="url(#f1jy0wcjc0dc24)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2471" x="195" y="950.0308"/><path d="M1053,980.4487 L1053,1005.5815 A0,0 0 0 0 1053,1005.5815 L1389,1005.5815 A0,0 0 0 0 1389,1005.5815 L1389,998.4487 L1409,993.0151 L1389,990.4487 L1389,990.4487 L1379,980.4487 L1053,980.4487 A0,0 0 0 0 1053,980.4487 " fill="#FBFB77" filter="url(#f1jy0wcjc0dc24)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1379,980.4487 L1379,990.4487 L1389,990.4487 L1379,980.4487 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="315" x="1059" y="997.5156">Msut be within topic lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="1409" y="976.0308"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="1419" y="997.1694">fire event</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1400.5" y="1029.9995"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1410.5" y="1051.1382">unlock topic</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="1371.5" y="1083.9683"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="1381.5" y="1105.1069">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="1424.5" y="1105.1069">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="766,1123.937,778,1135.937,766,1147.937,754,1135.937,766,1123.937" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M455,1158.8042 L455,1199.0698 A0,0 0 0 0 455,1199.0698 L735,1199.0698 A0,0 0 0 0 735,1199.0698 L735,1182.937 L755,1178.937 L735,1174.937 L735,1168.8042 L725,1158.8042 L455,1158.8042 A0,0 0 0 0 455,1158.8042 " fill="#FBFB77" filter="url(#f1jy0wcjc0dc24)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M725,1158.8042 L725,1168.8042 L735,1168.8042 L725,1158.8042 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="455" x2="518.5" y1="1171.3706" y2="1171.3706"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="522.5" y="1175.3711"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="522.5" y="1175.3711">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="571.5" y="1175.3711"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="571.5" y="1175.3711">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="671.5" y="1175.3711"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="671.5" x2="735" y1="1171.3706" y2="1171.3706"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="461" y="1191.0039">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="514" y="1191.0039">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="74" x="646" y="1191.0039">on timeout.</text><ellipse cx="766" cy="1178.937" fill="#FFFFFF" filter="url(#f1jy0wcjc0dc24)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="766" cy="1178.937" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="178.6563" y2="284.4531"/><polygon fill="#A80036" points="762,274.4531,766,284.4531,770,274.4531,766,278.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="318.4219" y2="338.4219"/><polygon fill="#A80036" points="762,328.4219,766,338.4219,770,328.4219,766,332.4219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="626" x2="582.25" y1="474.5151" y2="474.5151"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="582.25" x2="582.25" y1="474.5151" y2="496.5151"/><polygon fill="#A80036" points="578.25,486.5151,582.25,496.5151,586.25,486.5151,582.25,490.5151" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="906" x2="949.75" y1="474.5151" y2="474.5151"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.75" x2="949.75" y1="474.5151" y2="496.5151"/><polygon fill="#A80036" points="945.75,486.5151,949.75,496.5151,953.75,486.5151,949.75,490.5151" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="582.25" x2="582.25" y1="530.4839" y2="548.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="582.25" x2="754" y1="548.4839" y2="548.4839"/><polygon fill="#A80036" points="744,544.4839,754,548.4839,744,552.4839,748,548.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.75" x2="949.75" y1="530.4839" y2="548.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.75" x2="778" y1="548.4839" y2="548.4839"/><polygon fill="#A80036" points="788,544.4839,778,548.4839,788,552.4839,784,548.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="430.8047" y2="462.5151"/><polygon fill="#A80036" points="762,452.5151,766,462.5151,770,452.5151,766,456.5151" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="560.4839" y2="570.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="1233.75" y1="570.4839" y2="570.4839"/><polygon fill="#A80036" points="1229.75,499.4937,1233.75,489.4937,1237.75,499.4937,1233.75,495.4937" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1233.75" x2="1233.75" y1="411.5977" y2="570.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1233.75" x2="896" y1="411.5977" y2="411.5977"/><polygon fill="#A80036" points="906,407.5977,896,411.5977,906,415.5977,902,411.5977" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="474.75" y1="411.5977" y2="411.5977"/><polygon fill="#A80036" points="470.75,485.4937,474.75,495.4937,478.75,485.4937,474.75,489.4937" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="474.75" x2="474.75" y1="411.5977" y2="582.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="474.75" x2="766" y1="582.4839" y2="582.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="582.4839" y2="602.4839"/><polygon fill="#A80036" points="762,592.4839,766,602.4839,770,592.4839,766,596.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="372.3906" y2="392.3906"/><polygon fill="#A80036" points="762,382.3906,766,392.3906,770,382.3906,766,386.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="97.5" y1="670.4526" y2="705.4526"/><polygon fill="#A80036" points="93.5,695.4526,97.5,705.4526,101.5,695.4526,97.5,699.4526" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344.5" x2="344.5" y1="767.7729" y2="787.7729"/><polygon fill="#A80036" points="340.5,777.7729,344.5,787.7729,348.5,777.7729,344.5,781.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="588" x2="588" y1="767.7729" y2="787.7729"/><polygon fill="#A80036" points="584,777.7729,588,787.7729,592,777.7729,588,781.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="799.5" x2="799.5" y1="767.7729" y2="787.7729"/><polygon fill="#A80036" points="795.5,777.7729,799.5,787.7729,803.5,777.7729,799.5,781.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1064" x2="1064" y1="767.7729" y2="787.7729"/><polygon fill="#A80036" points="1060,777.7729,1064,787.7729,1068,777.7729,1064,781.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344.5" x2="344.5" y1="821.7417" y2="841.7417"/><polygon fill="#A80036" points="340.5,831.7417,344.5,841.7417,348.5,831.7417,344.5,835.7417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="588" x2="588" y1="821.7417" y2="841.7417"/><polygon fill="#A80036" points="584,831.7417,588,841.7417,592,831.7417,588,835.7417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="799.5" x2="799.5" y1="821.7417" y2="841.7417"/><polygon fill="#A80036" points="795.5,831.7417,799.5,841.7417,803.5,831.7417,799.5,835.7417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1064" x2="1064" y1="821.7417" y2="841.7417"/><polygon fill="#A80036" points="1060,831.7417,1064,841.7417,1068,831.7417,1064,835.7417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="747.2886" y2="771.6909"/><polygon fill="#A80036" points="2403,761.6909,2407,771.6909,2411,761.6909,2407,765.6909" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2549" x2="2634" y1="735.2886" y2="735.2886"/><polygon fill="#A80036" points="2630,778.6753,2634,788.6753,2638,778.6753,2634,782.6753" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2634" x2="2634" y1="735.2886" y2="842.062"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2634" x2="2419" y1="842.062" y2="842.062"/><polygon fill="#A80036" points="2429,838.062,2419,842.062,2429,846.062,2425,842.062" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="805.6597" y2="830.062"/><polygon fill="#A80036" points="2403,820.062,2407,830.062,2411,820.062,2407,824.062" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="854.062" y2="874.062"/><polygon fill="#A80036" points="2403,864.062,2407,874.062,2411,864.062,2407,868.062" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="686.4839" y2="723.2886"/><polygon fill="#A80036" points="2403,713.2886,2407,723.2886,2411,713.2886,2407,717.2886" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="908.0308" y2="918.0308"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2652" y1="918.0308" y2="918.0308"/><polygon fill="#A80036" points="2648,814.7573,2652,804.7573,2656,814.7573,2652,810.7573" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2652" x2="2652" y1="674.4839" y2="918.0308"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2652" x2="2480" y1="674.4839" y2="674.4839"/><polygon fill="#A80036" points="2490,670.4839,2480,674.4839,2490,678.4839,2486,674.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2334" x2="1661" y1="674.4839" y2="674.4839"/><polygon fill="#A80036" points="1657,800.7573,1661,810.7573,1665,800.7573,1661,804.7573" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1661" x2="1661" y1="674.4839" y2="930.0308"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1661" x2="2407" y1="930.0308" y2="930.0308"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="930.0308" y2="950.0308"/><polygon fill="#A80036" points="2403,940.0308,2407,950.0308,2411,940.0308,2407,944.0308" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713" x2="713" y1="642.4839" y2="761.7729"/><polygon fill="#A80036" points="709,751.7729,713,761.7729,717,751.7729,713,755.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448" x2="1448" y1="642.4839" y2="787.7729"/><polygon fill="#A80036" points="1444,777.7729,1448,787.7729,1452,777.7729,1448,781.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="642.4839" y2="662.4839"/><polygon fill="#A80036" points="2403,652.4839,2407,662.4839,2411,652.4839,2407,656.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713" x2="713" y1="847.7417" y2="950.0308"/><polygon fill="#A80036" points="709,940.0308,713,950.0308,717,940.0308,713,944.0308" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448" x2="1448" y1="821.7417" y2="950.0308"/><polygon fill="#A80036" points="1444,940.0308,1448,950.0308,1452,940.0308,1448,944.0308" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="956.0308" y2="976.0308"/><polygon fill="#A80036" points="1444.5,966.0308,1448.5,976.0308,1452.5,966.0308,1448.5,970.0308" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="1009.9995" y2="1029.9995"/><polygon fill="#A80036" points="1444.5,1019.9995,1448.5,1029.9995,1452.5,1019.9995,1448.5,1023.9995" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="1063.9683" y2="1083.9683"/><polygon fill="#A80036" points="1444.5,1073.9683,1448.5,1083.9683,1452.5,1073.9683,1448.5,1077.9683" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="701" x2="97.5" y1="614.4839" y2="614.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="97.5" y1="614.4839" y2="636.4839"/><polygon fill="#A80036" points="93.5,626.4839,97.5,636.4839,101.5,626.4839,97.5,630.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="831" x2="1448.5" y1="614.4839" y2="614.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="614.4839" y2="636.4839"/><polygon fill="#A80036" points="1444.5,626.4839,1448.5,636.4839,1452.5,626.4839,1448.5,630.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="97.5" y1="739.4214" y2="1135.937"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="754" y1="1135.937" y2="1135.937"/><polygon fill="#A80036" points="744,1131.937,754,1135.937,744,1139.937,748,1135.937" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="1117.937" y2="1135.937"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="778" y1="1135.937" y2="1135.937"/><polygon fill="#A80036" points="788,1131.937,778,1135.937,788,1139.937,784,1135.937" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="1147.937" y2="1167.937"/><polygon fill="#A80036" points="762,1157.937,766,1167.937,770,1157.937,766,1161.937" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9fb4690fe63f7cbdf2f1922d00b6df8b]
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1282px" preserveAspectRatio="none" style="width:2473px;height:1282px;" version="1.1" viewBox="0 0 2473 1282" width="2473px" zoomAndPan="magnify"><defs><filter height="300%" id="fgb6zrwdj1tda" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="1191" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="183" x="1144" y="47.6611">urtPublisherPublish()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1238.5" y="68.6143"/><path d="M1017,72.8594 L1017,319.8516 L1402,319.8516 L1402,82.8594 L1392,72.8594 L1017,72.8594 " fill="#FBFB77" filter="url(#fgb6zrwdj1tda)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1392,72.8594 L1392,82.8594 L1402,82.8594 L1392,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1114" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1118" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="1118" y="89.4263">publisher</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="1191" y="89.4263">: urt_publisher_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1305" x2="1402" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="197" x="1023" y="105.0591">Pointer to the publisher to use.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1023" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1103" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1135" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1153.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1157.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1157.5" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1220.5" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1265.5" x2="1402" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="226" x="1023" y="150.4575">Pointer to the data to be published.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="1023" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1073" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1109" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1176.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1180.5" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="9" x="1180.5" y="180.2231">n</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1193.5" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1242.5" x2="1402" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="180" x="1023" y="195.856">Size of the payload in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1155" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1159" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="6" x="1159" y="210.4888">t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="1169" y="210.4888">: urt_osTime_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1264" x2="1402" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="246" x="1023" y="226.1216">Timestamp to be set for the message.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1135.5" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1139.5" y="240.7544"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="57" x="1139.5" y="240.7544">timeout</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="1200.5" y="240.7544">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1283.5" x2="1402" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="364" x="1023" y="256.3872">Timeout delay in case the message cannot be published.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1402" y1="264.4531" y2="264.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1402" y1="266.4531" y2="266.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1138.5" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1142.5" y="281.02"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1142.5" y="281.02">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1191.5" y="281.02">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1280.5" x2="1402" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1023" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1076" y="296.6528">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1184" y="296.6528">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1023" y="311.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1076" y="311.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="74" x="1208" y="311.7856">on timeout.</text><ellipse cx="1209.5" cy="349.8516" fill="#000000" filter="url(#fgb6zrwdj1tda)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1169.5" y="379.8516"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1179.5" y="400.9902">lock topic</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="201" x="1109" y="433.8203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="181" x="1119" y="454.959">access topic's next message</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="524" x="947.5" y="543.4995"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="504" x="957.5" y="564.6382">wait for topic's condition variable (using topic's mutex) to be signaled or timeout</text><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="1156.5,597.4683,1262.5,597.4683,1274.5,609.4683,1262.5,621.4683,1156.5,621.4683,1144.5,609.4683,1156.5,597.4683" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="1156.5" y="613.2764">Timeout occurred?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1124.5" y="606.874">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1274.5" y="606.874">no</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1071" y="631.4683"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1081" y="652.6069">unlock topic</text><path d="M882,700.437 L882,725.5698 A0,0 0 0 0 882,725.5698 L1088,725.5698 A0,0 0 0 0 1088,725.5698 L1088,718.437 L1108,713.0034 L1088,710.437 L1088,710.437 L1078,700.437 L882,700.437 A0,0 0 0 0 882,700.437 " fill="#FBFB77" filter="url(#fgb6zrwdj1tda)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1078,700.437 L1078,710.437 L1088,710.437 L1078,700.437 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="888" y="717.5039">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="941" y="717.5039">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1069" y="717.5039">.</text><ellipse cx="1119" cy="713.0034" fill="#FFFFFF" filter="url(#fgb6zrwdj1tda)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1119" cy="713.0034" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="201" x="1199.5" y="679.8706"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="181" x="1209.5" y="701.0093">access topic's next message</text><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="1199,631.4683,1401,631.4683,1413,643.4683,1401,655.4683,1199,655.4683,1187,643.4683,1199,631.4683" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1304" y="665.6787">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="202" x="1199" y="647.2764">Message timestamp was modified?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1413" y="640.874">no</text><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="1300,738.2417,1312,750.2417,1300,762.2417,1288,750.2417,1300,738.2417" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="1101,487.7891,1318,487.7891,1330,499.7891,1318,511.7891,1101,511.7891,1089,499.7891,1101,487.7891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1213.5" y="521.9995">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1101" y="503.5972">HRT consumers left for the message?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1075" y="497.1948">no</text><rect fill="#000000" filter="url(#fgb6zrwdj1tda)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2451" x="10" y="804.2417"/><rect fill="#000000" filter="url(#fgb6zrwdj1tda)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="960" x="22" y="924.4365"/><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="34" y="950.4365"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="44" y="971.5752">iterate topic pointer to this message</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="295" y="950.4365"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="305" y="971.5752">copy payload to message</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="485" y="950.4365"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="495" y="971.5752">set origin time of message</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="682" y="950.4365"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="692" y="971.5752">set number of HRT consumers (from topic)</text><rect fill="#000000" filter="url(#fgb6zrwdj1tda)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="960" x="22" y="1004.4053"/><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="398" x="1010" y="950.4365"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="378" x="1020" y="971.5752">set QoS rate timer (@topic) wrt. most critical HRT subscriber</text><path d="M1470,938.7725 L1470,963.9053 A0,0 0 0 0 1470,963.9053 L1965,963.9053 A0,0 0 0 0 1965,963.9053 L1965,956.7725 L1985,951.3389 L1965,948.7725 L1965,948.7725 L1955,938.7725 L1470,938.7725 A0,0 0 0 0 1470,938.7725 " fill="#FBFB77" filter="url(#fgb6zrwdj1tda)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1955,938.7725 L1955,948.7725 L1965,948.7725 L1955,938.7725 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="474" x="1476" y="955.8394">No lock required since this timer is only accessed when the topic is locked.</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="434" x="1985" y="934.3545"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="414" x="1995" y="955.4932">set QoS delay timer (@subscriber) wrt. origin time of the message</text><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="2072,885.9521,2332,885.9521,2344,897.9521,2332,909.9521,2072,909.9521,2060,897.9521,2072,885.9521" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2206" y="920.1626">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="260" x="2072" y="901.7603">QoS delay timer (@subscriber) is not armed?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2344" y="895.3579">no</text><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="2202,992.7256,2214,1004.7256,2202,1016.7256,2190,1004.7256,2202,992.7256" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="208" x="2098" y="1036.7256"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="188" x="2108" y="1057.8643">iterate to next HRT subscriber</text><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="2141,830.2417,2263,830.2417,2275,842.2417,2263,854.2417,2141,854.2417,2129,842.2417,2141,830.2417" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2206" y="864.4521">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="2141" y="846.0498">HRT subscribers left?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2115" y="839.6475">no</text><rect fill="#000000" filter="url(#fgb6zrwdj1tda)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2451" x="10" y="1112.6943"/><path d="M814,1143.1123 L814,1168.2451 A0,0 0 0 0 814,1168.2451 L1150,1168.2451 A0,0 0 0 0 1150,1168.2451 L1150,1161.1123 L1170,1155.6787 L1150,1153.1123 L1150,1153.1123 L1140,1143.1123 L814,1143.1123 A0,0 0 0 0 814,1143.1123 " fill="#FBFB77" filter="url(#fgb6zrwdj1tda)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1140,1143.1123 L1140,1153.1123 L1150,1153.1123 L1140,1143.1123 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="315" x="820" y="1160.1792">Msut be within topic lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="1170" y="1138.6943"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="1180" y="1159.833">fire event</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1161.5" y="1192.6631"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1171.5" y="1213.8018">unlock topic</text><path d="M996.5,1245.0654 L996.5,1270.1982 A0,0 0 0 0 996.5,1270.1982 L1178.5,1270.1982 A0,0 0 0 0 1178.5,1270.1982 L1178.5,1263.0654 L1198.5,1257.6318 L1178.5,1255.0654 L1178.5,1255.0654 L1168.5,1245.0654 L996.5,1245.0654 A0,0 0 0 0 996.5,1245.0654 " fill="#FBFB77" filter="url(#fgb6zrwdj1tda)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1168.5,1245.0654 L1168.5,1255.0654 L1178.5,1255.0654 L1168.5,1245.0654 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1002.5" y="1262.1323">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1055.5" y="1262.1323">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1159.5" y="1262.1323">.</text><ellipse cx="1209.5" cy="1257.6318" fill="#FFFFFF" filter="url(#fgb6zrwdj1tda)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1209.5" cy="1257.6318" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="319.8516" y2="339.8516"/><polygon fill="#A80036" points="1205.5,329.8516,1209.5,339.8516,1213.5,329.8516,1209.5,333.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="359.8516" y2="379.8516"/><polygon fill="#A80036" points="1205.5,369.8516,1209.5,379.8516,1213.5,369.8516,1209.5,373.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="413.8203" y2="433.8203"/><polygon fill="#A80036" points="1205.5,423.8203,1209.5,433.8203,1213.5,423.8203,1209.5,427.8203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1119" x2="1119" y1="665.437" y2="702.0034"/><polygon fill="#A80036" points="1115,692.0034,1119,702.0034,1123,692.0034,1119,696.0034" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1300" y1="655.4683" y2="679.8706"/><polygon fill="#A80036" points="1296,669.8706,1300,679.8706,1304,669.8706,1300,673.8706" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1413" x2="1425" y1="643.4683" y2="643.4683"/><polygon fill="#A80036" points="1421,686.855,1425,696.855,1429,686.855,1425,690.855" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1425" x2="1425" y1="643.4683" y2="750.2417"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1425" x2="1312" y1="750.2417" y2="750.2417"/><polygon fill="#A80036" points="1322,746.2417,1312,750.2417,1322,754.2417,1318,750.2417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1300" y1="713.8394" y2="738.2417"/><polygon fill="#A80036" points="1296,728.2417,1300,738.2417,1304,728.2417,1300,732.2417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1144.5" x2="1119" y1="609.4683" y2="609.4683"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1119" x2="1119" y1="609.4683" y2="631.4683"/><polygon fill="#A80036" points="1115,621.4683,1119,631.4683,1123,621.4683,1119,625.4683" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1274.5" x2="1300" y1="609.4683" y2="609.4683"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1300" y1="609.4683" y2="631.4683"/><polygon fill="#A80036" points="1296,621.4683,1300,631.4683,1304,621.4683,1300,625.4683" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1300" y1="762.2417" y2="772.2417"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1483.5" y1="772.2417" y2="772.2417"/><polygon fill="#A80036" points="1479.5,639.9683,1483.5,629.9683,1487.5,639.9683,1483.5,635.9683" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1483.5" x2="1483.5" y1="499.7891" y2="772.2417"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1483.5" x2="1330" y1="499.7891" y2="499.7891"/><polygon fill="#A80036" points="1340,495.7891,1330,499.7891,1340,503.7891,1336,499.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="577.4683" y2="597.4683"/><polygon fill="#A80036" points="1205.5,587.4683,1209.5,597.4683,1213.5,587.4683,1209.5,591.4683" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="511.7891" y2="543.4995"/><polygon fill="#A80036" points="1205.5,533.4995,1209.5,543.4995,1213.5,533.4995,1209.5,537.4995" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1089" x2="860" y1="499.7891" y2="499.7891"/><polygon fill="#A80036" points="856,625.9683,860,635.9683,864,625.9683,860,629.9683" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="860" x2="860" y1="499.7891" y2="784.2417"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="860" x2="1209.5" y1="784.2417" y2="784.2417"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="784.2417" y2="804.2417"/><polygon fill="#A80036" points="1205.5,794.2417,1209.5,804.2417,1213.5,794.2417,1209.5,798.2417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="467.7891" y2="487.7891"/><polygon fill="#A80036" points="1205.5,477.7891,1209.5,487.7891,1213.5,477.7891,1209.5,481.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="159.5" x2="159.5" y1="930.4365" y2="950.4365"/><polygon fill="#A80036" points="155.5,940.4365,159.5,950.4365,163.5,940.4365,159.5,944.4365" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="385" x2="385" y1="930.4365" y2="950.4365"/><polygon fill="#A80036" points="381,940.4365,385,950.4365,389,940.4365,385,944.4365" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578.5" x2="578.5" y1="930.4365" y2="950.4365"/><polygon fill="#A80036" points="574.5,940.4365,578.5,950.4365,582.5,940.4365,578.5,944.4365" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="825" x2="825" y1="930.4365" y2="950.4365"/><polygon fill="#A80036" points="821,940.4365,825,950.4365,829,940.4365,825,944.4365" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="159.5" x2="159.5" y1="984.4053" y2="1004.4053"/><polygon fill="#A80036" points="155.5,994.4053,159.5,1004.4053,163.5,994.4053,159.5,998.4053" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="385" x2="385" y1="984.4053" y2="1004.4053"/><polygon fill="#A80036" points="381,994.4053,385,1004.4053,389,994.4053,385,998.4053" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578.5" x2="578.5" y1="984.4053" y2="1004.4053"/><polygon fill="#A80036" points="574.5,994.4053,578.5,1004.4053,582.5,994.4053,578.5,998.4053" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="825" x2="825" y1="984.4053" y2="1004.4053"/><polygon fill="#A80036" points="821,994.4053,825,1004.4053,829,994.4053,825,998.4053" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="909.9521" y2="934.3545"/><polygon fill="#A80036" points="2198,924.3545,2202,934.3545,2206,924.3545,2202,928.3545" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2344" x2="2429" y1="897.9521" y2="897.9521"/><polygon fill="#A80036" points="2425,941.3389,2429,951.3389,2433,941.3389,2429,945.3389" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2429" x2="2429" y1="897.9521" y2="1004.7256"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2429" x2="2214" y1="1004.7256" y2="1004.7256"/><polygon fill="#A80036" points="2224,1000.7256,2214,1004.7256,2224,1008.7256,2220,1004.7256" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="968.3232" y2="992.7256"/><polygon fill="#A80036" points="2198,982.7256,2202,992.7256,2206,982.7256,2202,986.7256" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="1016.7256" y2="1036.7256"/><polygon fill="#A80036" points="2198,1026.7256,2202,1036.7256,2206,1026.7256,2202,1030.7256" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="854.2417" y2="885.9521"/><polygon fill="#A80036" points="2198,875.9521,2202,885.9521,2206,875.9521,2202,879.9521" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="1070.6943" y2="1080.6943"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2447" y1="1080.6943" y2="1080.6943"/><polygon fill="#A80036" points="2443,977.4209,2447,967.4209,2451,977.4209,2447,973.4209" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2447" x2="2447" y1="842.2417" y2="1080.6943"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2447" x2="2275" y1="842.2417" y2="842.2417"/><polygon fill="#A80036" points="2285,838.2417,2275,842.2417,2285,846.2417,2281,842.2417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2129" x2="1448" y1="842.2417" y2="842.2417"/><polygon fill="#A80036" points="1444,963.4209,1448,973.4209,1452,963.4209,1448,967.4209" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448" x2="1448" y1="842.2417" y2="1092.6943"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448" x2="2202" y1="1092.6943" y2="1092.6943"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="1092.6943" y2="1112.6943"/><polygon fill="#A80036" points="2198,1102.6943,2202,1112.6943,2206,1102.6943,2202,1106.6943" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="492" x2="492" y1="810.2417" y2="924.4365"/><polygon fill="#A80036" points="488,914.4365,492,924.4365,496,914.4365,492,918.4365" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209" x2="1209" y1="810.2417" y2="950.4365"/><polygon fill="#A80036" points="1205,940.4365,1209,950.4365,1213,940.4365,1209,944.4365" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="810.2417" y2="830.2417"/><polygon fill="#A80036" points="2198,820.2417,2202,830.2417,2206,820.2417,2202,824.2417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="492" x2="492" y1="1010.4053" y2="1112.6943"/><polygon fill="#A80036" points="488,1102.6943,492,1112.6943,496,1102.6943,492,1106.6943" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209" x2="1209" y1="984.4053" y2="1112.6943"/><polygon fill="#A80036" points="1205,1102.6943,1209,1112.6943,1213,1102.6943,1209,1106.6943" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="1118.6943" y2="1138.6943"/><polygon fill="#A80036" points="1205.5,1128.6943,1209.5,1138.6943,1213.5,1128.6943,1209.5,1132.6943" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="1172.6631" y2="1192.6631"/><polygon fill="#A80036" points="1205.5,1182.6631,1209.5,1192.6631,1213.5,1182.6631,1209.5,1186.6631" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="1226.6318" y2="1246.6318"/><polygon fill="#A80036" points="1205.5,1236.6318,1209.5,1246.6318,1213.5,1236.6318,1209.5,1240.6318" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[197988ab9e282192e01c61c5b164982b]
 @startuml
 
 title **µRtWare**\nurtPublisherPublish()\n
 
 
-
-
-
-
-
-
-
-
-
-
-start
 note
-  - - ""**publisher** : urt_publisher_t*"" - -
+  - - **publisher** : urt_publisher_t* - -
   Pointer to the publisher to use.
   Must not be ""NULL"".
-  - - ""**payload** : void*"" - -
+  - - **payload** : void* - -
   Pointer to the data to be published.
   May be ""NULL"" for messages without payload.
-  - - ""**n** : size_t"" - -
+  - - **n** : size_t - -
   Size of the payload in bytes.
-  - - ""**t** : urt_osTime_t"" - -
+  - - **t** : urt_osTime_t - -
   Timestamp to be set for the message.
-  - - ""**timeout** : urt_delay_t"" - -
+  - - **timeout** : urt_delay_t - -
   Timeout delay in case the message cannot be published.
-end note
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" on timeout.
+endnote
 
 
+start
 :lock topic;
-:access next message;
-while (HRT consumers left for the message\nor the message timestamp was modified\nand a timeout occurred?) is (yes)
-  if (Message timestamp was modified?) the (yes)
-    :iterate to next message;
+:access topic's next message;
+while (HRT consumers left for the message?) is (yes)
+  :wait for topic's condition variable (using topic's mutex) to be signaled or timeout;
+  if (Timeout occurred?) then (yes)
+    :unlock topic;
+    stop
+    note
+      Returns ""URT_STATUS_ERROR"".
+    endnote
   else (no)
-    :wait for topic's condition variable (using topic's mutex) to be signaled or timeout;
+    if (Message timestamp was modified?) then (yes)
+      :access topic's next message;
+    else (no)
+    endif
   endif
 endwhile (no)
-if (Timeout occurred?) then (yes)
-  :unlock topic;
-  :return ""URT_STATUS_ERROR"";
-else (no)
+fork
   fork
-    fork
-      :iterate topic pointer to this message;
-    fork again
-      :copy payload to message;
-    fork again
-      :set origin time of message;
-    fork again
-      :set number of HRT consumers (from topic);
-    endfork
+    :iterate topic pointer to this message;
   fork again
-    :set QoS rate timer (@topic) wrt. most critical HRT subscriber;
+    :copy payload to message;
   fork again
-    while (HRT subscribers left?) is (yes)
-      if (QoS delay timer (@subscriber) is not armed?) then (yes)
-        :set QoS delay timer (@subscriber) wrt. origin time of the message;
-        note: No lock required since this timer is only accessed when the topic is locked.
-      else (no)
-      endif
-      :iterate to next HRT subscriber;
-    endwhile (no)
+    :set origin time of message;
+  fork again
+    :set number of HRT consumers (from topic);
   endfork
-  :fire event;
-  note: Msut be within topic lock because of HRT counter.
-  :unlock topic;
-  :return ""URT_STATUS_OK"";
-endif
-
-
+fork again
+  :set QoS rate timer (@topic) wrt. most critical HRT subscriber;
+fork again
+  while (HRT subscribers left?) is (yes)
+    if (QoS delay timer (@subscriber) is not armed?) then (yes)
+      :set QoS delay timer (@subscriber) wrt. origin time of the message;
+      note: No lock required since this timer is only accessed when the topic is locked.
+    else (no)
+    endif
+    :iterate to next HRT subscriber;
+  endwhile (no)
+endfork
+:fire event;
+note: Msut be within topic lock because of HRT counter.
+:unlock topic;
 stop
 note
-  - - **return** ""urt_status_t"" - -
-  Returns ""URT_STATUS_ERROR"" on timeout.
-end note
+ Returns ""URT_STATUS_OK"".
+endnote
 
 
 @enduml
diff --git a/doc/activitydiagrams/publisher/urtPublisherPublish.uml b/doc/activitydiagrams/publisher/urtPublisherPublish.uml
index ebed72b..3b5aaab 100644
--- a/doc/activitydiagrams/publisher/urtPublisherPublish.uml
+++ b/doc/activitydiagrams/publisher/urtPublisherPublish.uml
@@ -25,76 +25,76 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 title **µRtWare**\nurtPublisherPublish()\n
 
-!include ../../functions.iuml
+/'### PARAMETERS & RETURN ####################################################'/
 
-/'### PARAMETERS & START #####################################################'/
-
-start
 note
-  -- ""**publisher** : urt_publisher_t*"" --
+  -- **publisher** : urt_publisher_t* --
   Pointer to the publisher to use.
   Must not be ""NULL"".
-  -- ""**payload** : void*"" --
+  -- **payload** : void* --
   Pointer to the data to be published.
   May be ""NULL"" for messages without payload.
-  -- ""**n** : size_t"" --
+  -- **n** : size_t --
   Size of the payload in bytes.
-  -- ""**t** : urt_osTime_t"" --
+  -- **t** : urt_osTime_t --
   Timestamp to be set for the message.
-  -- ""**timeout** : urt_delay_t"" --
+  -- **timeout** : urt_delay_t --
   Timeout delay in case the message cannot be published.
-end note
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" on timeout.
+endnote
 
 /'### PROCEDURE ##############################################################'/
 
+start
 :lock topic;
-:access next message;
-while (HRT consumers left for the message\nor the message timestamp was modified\nand a timeout occurred?) is (yes)
-  if (Message timestamp was modified?) the (yes)
-    :iterate to next message;
+:access topic's next message;
+while (HRT consumers left for the message?) is (yes)
+  :wait for topic's condition variable (using topic's mutex) to be signaled or timeout;
+  if (Timeout occurred?) then (yes)
+    :unlock topic;
+    stop
+    note
+      Returns ""URT_STATUS_ERROR"".
+    endnote
   else (no)
-    :wait for topic's condition variable (using topic's mutex) to be signaled or timeout;
+    if (Message timestamp was modified?) then (yes)
+      :access topic's next message;
+    else (no)
+    endif
   endif
 endwhile (no)
-if (Timeout occurred?) then (yes)
-  :unlock topic;
-  :return ""URT_STATUS_ERROR"";
-else (no)
+fork
   fork
-    fork
-      :iterate topic pointer to this message;
-    fork again
-      :copy payload to message;
-    fork again
-      :set origin time of message;
-    fork again
-      :set number of HRT consumers (from topic);
-    endfork
+    :iterate topic pointer to this message;
   fork again
-    :set QoS rate timer (@topic) wrt. most critical HRT subscriber;
+    :copy payload to message;
   fork again
-    while (HRT subscribers left?) is (yes)
-      if (QoS delay timer (@subscriber) is not armed?) then (yes)
-        :set QoS delay timer (@subscriber) wrt. origin time of the message;
-        note: No lock required since this timer is only accessed when the topic is locked.
-      else (no)
-      endif
-      :iterate to next HRT subscriber;
-    endwhile (no)
+    :set origin time of message;
+  fork again
+    :set number of HRT consumers (from topic);
   endfork
-  :fire event;
-  note: Msut be within topic lock because of HRT counter.
-  :unlock topic;
-  :return ""URT_STATUS_OK"";
-endif
-
-/'### STOP & RETURN ##########################################################'/
-
+fork again
+  :set QoS rate timer (@topic) wrt. most critical HRT subscriber;
+fork again
+  while (HRT subscribers left?) is (yes)
+    if (QoS delay timer (@subscriber) is not armed?) then (yes)
+      :set QoS delay timer (@subscriber) wrt. origin time of the message;
+      note: No lock required since this timer is only accessed when the topic is locked.
+    else (no)
+    endif
+    :iterate to next HRT subscriber;
+  endwhile (no)
+endfork
+:fire event;
+note: Msut be within topic lock because of HRT counter.
+:unlock topic;
 stop
 note
-  -- **return** ""urt_status_t"" --
-  Returns ""URT_STATUS_ERROR"" on timeout.
-end note
+ Returns ""URT_STATUS_OK"".
+endnote
 
 /'### OUTRO ##################################################################'/
 
diff --git a/doc/activitydiagrams/service/urtServiceCall.svg b/doc/activitydiagrams/service/urtServiceCall.svg
new file mode 100644
index 0000000..db6d2d7
--- /dev/null
+++ b/doc/activitydiagrams/service/urtServiceCall.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="454px" preserveAspectRatio="none" style="width:546px;height:454px;" version="1.1" viewBox="0 0 546 454" width="546px" zoomAndPan="magnify"><defs><filter height="300%" id="f12gw5c9e3tsgb" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="227.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="139" x="202.5" y="47.6611">urtServiceCall()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="275" y="68.6143"/><path d="M100,72.8594 L100,304.7188 L534,304.7188 L534,82.8594 L524,72.8594 L100,72.8594 " fill="#FBFB77" filter="url(#f12gw5c9e3tsgb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M524,72.8594 L524,82.8594 L534,82.8594 L524,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="236.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="240.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="240.5" y="89.4263">service</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="296.5" y="89.4263">: urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="397.5" x2="534" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="118" x="106" y="105.0591">The service to call.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="106" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="186" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="218" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="278" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="282" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="25" x="282" y="134.8247">arg</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="311" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="356" x2="534" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="106" y="150.4575">Optional argument for the service call.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="106" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="156" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="233" x="192" y="165.5903">if the service expects no arguments.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="280" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="284" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="284" y="180.2231">ret</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="309" y="180.2231">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="354" x2="534" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="222" x="106" y="195.856">Pointer to an optional return value.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="106" y="210.9888">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="156" y="210.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="188" y="210.9888">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="243" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="247" y="225.6216"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="57" x="247" y="225.6216">timeout</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="308" y="225.6216">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="391" x2="534" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="361" x="106" y="241.2544">Timeout delay to be propagated to the callback function.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="413" x="106" y="256.3872">Whether timeout is considered depends on the callback function.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="534" y1="264.4531" y2="264.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="534" y1="266.4531" y2="266.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="246" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="250" y="281.02"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="250" y="281.02">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="299" y="281.02">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="388" x2="534" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="106" y="296.6528">Returns the exact output status of the service call.</text><ellipse cx="317" cy="334.7188" fill="#000000" filter="url(#f12gw5c9e3tsgb)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f12gw5c9e3tsgb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="227" y="364.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="237" y="385.8574">execute callback function</text><path d="M10,417.1211 L10,442.2539 A0,0 0 0 0 10,442.2539 L286,442.2539 A0,0 0 0 0 286,442.2539 L286,435.1211 L306,429.6875 L286,427.1211 L286,427.1211 L276,417.1211 L10,417.1211 A0,0 0 0 0 10,417.1211 " fill="#FBFB77" filter="url(#f12gw5c9e3tsgb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M276,417.1211 L276,427.1211 L286,427.1211 L276,417.1211 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="255" x="16" y="434.188">Returns the return value of the callback.</text><ellipse cx="317" cy="429.6875" fill="#FFFFFF" filter="url(#f12gw5c9e3tsgb)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="317" cy="429.6875" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="313,314.7188,317,324.7188,321,314.7188,317,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="313,354.7188,317,364.7188,321,354.7188,317,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="398.6875" y2="418.6875"/><polygon fill="#A80036" points="313,408.6875,317,418.6875,321,408.6875,317,412.6875" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[561aede012ef94c363a6341bbfb3ac5f]
+@startuml
+
+title **µRtWare**\nurtServiceCall()\n
+
+
+note
+  - - **service** : urt_service_t* - -
+  The service to call.
+  Must not be ""NULL"".
+  - - **arg** : void* - -
+  Optional argument for the service call.
+  May be ""NULL"" if the service expects no arguments.
+  - - **ret** : void* - -
+  Pointer to an optional return value.
+  May be ""NULL"".
+  - - **timeout** : urt_delay_t - -
+  Timeout delay to be propagated to the callback function.
+  Whether timeout is considered depends on the callback function.
+  ====
+  - - **return** : urt_status_t - -
+  Returns the exact output status of the service call.
+endnote
+
+
+start
+:execute callback function;
+stop
+note
+  Returns the return value of the callback.
+endnote
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/service/urtServiceCall.uml b/doc/activitydiagrams/service/urtServiceCall.uml
new file mode 100644
index 0000000..18339df
--- /dev/null
+++ b/doc/activitydiagrams/service/urtServiceCall.uml
@@ -0,0 +1,59 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtServiceCall()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **service** : urt_service_t* --
+  The service to call.
+  Must not be ""NULL"".
+  -- **arg** : void* --
+  Optional argument for the service call.
+  May be ""NULL"" if the service expects no arguments.
+  -- **ret** : void* --
+  Pointer to an optional return value.
+  May be ""NULL"".
+  -- **timeout** : urt_delay_t --
+  Timeout delay to be propagated to the callback function.
+  Whether timeout is considered depends on the callback function.
+  ====
+  -- **return** : urt_status_t --
+  Returns the exact output status of the service call.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+:execute callback function;
+stop
+note
+  Returns the return value of the callback.
+endnote
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/service/urtServiceInit.svg b/doc/activitydiagrams/service/urtServiceInit.svg
new file mode 100644
index 0000000..52812ee
--- /dev/null
+++ b/doc/activitydiagrams/service/urtServiceInit.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="977px" preserveAspectRatio="none" style="width:1146px;height:977px;" version="1.1" viewBox="0 0 1146 977" width="1146px" zoomAndPan="magnify"><defs><filter height="300%" id="f1snfj7r7itc1b" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="527.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="135" x="504.5" y="47.6611">urtServiceInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="575" y="68.6143"/><path d="M355,72.8594 L355,259.3203 L920,259.3203 L920,82.8594 L910,72.8594 L355,72.8594 " fill="#FBFB77" filter="url(#f1snfj7r7itc1b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M910,72.8594 L910,82.8594 L920,82.8594 L910,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="355" x2="557" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="561" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="561" y="89.4263">service</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="617" y="89.4263">: urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="718" x2="920" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="148" x="361" y="105.0591">The service to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="361" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="441" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="473" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="355" x2="574" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="578" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="578" y="134.8247">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="101" x="596" y="134.8247">: urt_serviceid_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="701" x2="920" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="258" x="361" y="150.4575">Unique, numeric identifier of the service.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="355" x2="539" y1="161.0898" y2="161.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="543" y="165.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="61" x="543" y="165.0903">callback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="124" x="608" y="165.0903">: urt_servicefunc_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="736" x2="920" y1="161.0898" y2="161.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="307" x="361" y="180.7231">Callabck function to be executed by this service.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="361" y="195.856">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="441" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="473" y="195.856">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="355" x2="920" y1="203.9219" y2="203.9219"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="355" x2="920" y1="205.9219" y2="205.9219"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="355" x2="566.5" y1="216.4883" y2="216.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="570.5" y="220.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="570.5" y="220.4888">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="619.5" y="220.4888">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="708.5" x2="920" y1="216.4883" y2="216.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="361" y="236.1216">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="414" y="236.1216">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="522" y="236.1216">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="361" y="251.2544">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="414" y="251.2544">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="359" x="546" y="251.2544">if another service with the same identifier already exists.</text><ellipse cx="637.5" cy="289.3203" fill="#000000" filter="url(#f1snfj7r7itc1b)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,309.3203 L10,485.7813 A0,0 0 0 0 10,485.7813 L552,485.7813 A0,0 0 0 0 552,485.7813 L552,401.5508 L572,397.5508 L552,393.5508 L552,319.3203 L542,309.3203 L10,309.3203 A0,0 0 0 0 10,309.3203 " fill="#FBFB77" filter="url(#f1snfj7r7itc1b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M542,309.3203 L542,319.3203 L552,319.3203 L542,309.3203 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="16" y="326.3872">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="52" y="326.3872">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="67" y="326.3872">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="16" y="341.52">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="34" y="341.52">← id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="16" y="356.6528">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="97" y="356.6528">lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="127" y="356.6528">)</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="61" x="16" y="371.7856">callback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="66" x="81" y="371.7856">← callback</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="382.418" y2="382.418"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="513" x="24.5" y="386.4185">URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="541.5" x2="552" y1="382.418" y2="382.418"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="90" x="16" y="402.0513">minDuration</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="110" y="402.0513">← 0xF..F</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="94" x="16" y="417.1841">maxDuration</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="114" y="417.1841">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="167.5" y1="427.8164" y2="427.8164"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="171.5" y="431.8169">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="394.5" x2="552" y1="427.8164" y2="427.8164"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="102" x="16" y="447.4497">sumDurations</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="122" y="447.4497">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="16" y="462.5825">numCalls</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="87" y="462.5825">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="16" y="477.7153">numTimeouts</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="119" y="477.7153">← 0</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="572" y="380.5664"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="582" y="401.7051">initialize members</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="599" y="505.7813"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="609" y="526.9199">lock core</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="567.5" y="559.75"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="577.5" y="580.8887">access first service</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="168" x="553.5" y="671.0386"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="563.5" y="692.1772">proceed to next service</text><polygon fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" points="569.5,613.7188,705.5,613.7188,717.5,626.5234,705.5,639.3281,569.5,639.3281,557.5,626.5234,569.5,613.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="641.5" y="649.5386">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="569.5" y="623.9292">Service is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="651.5" y="623.9292">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="569.5" y="636.7339">and service ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="543.5" y="623.9292">no</text><polygon fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" points="283,747.0073,423,747.0073,435,759.0073,423,771.0073,283,771.0073,271,759.0073,283,747.0073" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="357" y="781.2178">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="283" y="762.8154">Current service is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="389" y="762.8154">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="417" y="762.8154">?</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="246" x="230" y="802.7178"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="226" x="240" y="823.8564">append self to core's list of services</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="306.5" y="871.6865"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="316.5" y="892.8252">unlock core</text><path d="M140,940.6553 L140,965.7881 A0,0 0 0 0 140,965.7881 L322,965.7881 A0,0 0 0 0 322,965.7881 L322,958.6553 L342,953.2217 L322,950.6553 L322,950.6553 L312,940.6553 L140,940.6553 A0,0 0 0 0 140,940.6553 " fill="#FBFB77" filter="url(#f1snfj7r7itc1b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M312,940.6553 L312,950.6553 L322,950.6553 L312,940.6553 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="146" y="957.7222">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="199" y="957.7222">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="303" y="957.7222">:</text><ellipse cx="353" cy="953.2217" fill="#FFFFFF" filter="url(#f1snfj7r7itc1b)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="353" cy="953.2217" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" points="624.5,747.0073,793.5,747.0073,805.5,759.0073,793.5,771.0073,624.5,771.0073,612.5,759.0073,624.5,747.0073" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="713" y="781.2178">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="169" x="624.5" y="762.8154">Current service ID is greater?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="805.5" y="756.4131">no</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="586.5" y="802.7178"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="225" x="596.5" y="823.8564">insert self in front of current service</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="662.5" y="871.6865"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="672.5" y="892.8252">unlock core</text><path d="M496,940.6553 L496,965.7881 A0,0 0 0 0 496,965.7881 L678,965.7881 A0,0 0 0 0 678,965.7881 L678,958.6553 L698,953.2217 L678,950.6553 L678,950.6553 L668,940.6553 L496,940.6553 A0,0 0 0 0 496,940.6553 " fill="#FBFB77" filter="url(#f1snfj7r7itc1b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M668,940.6553 L668,950.6553 L678,950.6553 L668,940.6553 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="502" y="957.7222">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="555" y="957.7222">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="659" y="957.7222">:</text><ellipse cx="709" cy="953.2217" fill="#FFFFFF" filter="url(#f1snfj7r7itc1b)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="709" cy="953.2217" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="1042" y="833.7998"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="1052" y="854.9385">unlock core</text><path d="M851.5,902.7686 L851.5,927.9014 A0,0 0 0 0 851.5,927.9014 L1057.5,927.9014 A0,0 0 0 0 1057.5,927.9014 L1057.5,920.7686 L1077.5,915.335 L1057.5,912.7686 L1057.5,912.7686 L1047.5,902.7686 L851.5,902.7686 A0,0 0 0 0 851.5,902.7686 " fill="#FBFB77" filter="url(#f1snfj7r7itc1b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1047.5,902.7686 L1047.5,912.7686 L1057.5,912.7686 L1047.5,902.7686 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="857.5" y="919.8354">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="910.5" y="919.8354">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1038.5" y="919.8354">:</text><ellipse cx="1088.5" cy="915.335" fill="#FFFFFF" filter="url(#f1snfj7r7itc1b)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1088.5" cy="915.335" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="259.3203" y2="279.3203"/><polygon fill="#A80036" points="633.5,269.3203,637.5,279.3203,641.5,269.3203,637.5,273.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="299.3203" y2="380.5664"/><polygon fill="#A80036" points="633.5,370.5664,637.5,380.5664,641.5,370.5664,637.5,374.5664" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="414.5352" y2="505.7813"/><polygon fill="#A80036" points="633.5,495.7813,637.5,505.7813,641.5,495.7813,637.5,499.7813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="539.75" y2="559.75"/><polygon fill="#A80036" points="633.5,549.75,637.5,559.75,641.5,549.75,637.5,553.75" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="639.3281" y2="671.0386"/><polygon fill="#A80036" points="633.5,661.0386,637.5,671.0386,641.5,661.0386,637.5,665.0386" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="705.0073" y2="715.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="733.5" y1="715.0073" y2="715.0073"/><polygon fill="#A80036" points="729.5,679.2183,733.5,669.2183,737.5,679.2183,733.5,675.2183" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="733.5" x2="733.5" y1="626.5234" y2="715.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="733.5" x2="717.5" y1="626.5234" y2="626.5234"/><polygon fill="#A80036" points="727.5,622.5234,717.5,626.5234,727.5,630.5234,723.5,626.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="557.5" x2="541.5" y1="626.5234" y2="626.5234"/><polygon fill="#A80036" points="537.5,665.2183,541.5,675.2183,545.5,665.2183,541.5,669.2183" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541.5" x2="541.5" y1="626.5234" y2="727.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541.5" x2="637.5" y1="727.0073" y2="727.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="727.0073" y2="732.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="593.7188" y2="613.7188"/><polygon fill="#A80036" points="633.5,603.7188,637.5,613.7188,641.5,603.7188,637.5,607.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="353" x2="353" y1="836.6865" y2="871.6865"/><polygon fill="#A80036" points="349,861.6865,353,871.6865,357,861.6865,353,865.6865" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="353" x2="353" y1="905.6553" y2="942.2217"/><polygon fill="#A80036" points="349,932.2217,353,942.2217,357,932.2217,353,936.2217" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="709" x2="709" y1="836.6865" y2="871.6865"/><polygon fill="#A80036" points="705,861.6865,709,871.6865,713,861.6865,709,865.6865" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="709" x2="709" y1="905.6553" y2="942.2217"/><polygon fill="#A80036" points="705,932.2217,709,942.2217,713,932.2217,709,936.2217" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1088.5" x2="1088.5" y1="867.7686" y2="904.335"/><polygon fill="#A80036" points="1084.5,894.335,1088.5,904.335,1092.5,894.335,1088.5,898.335" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="353" x2="353" y1="771.0073" y2="802.7178"/><polygon fill="#A80036" points="349,792.7178,353,802.7178,357,792.7178,353,796.7178" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="709" x2="709" y1="771.0073" y2="802.7178"/><polygon fill="#A80036" points="705,792.7178,709,802.7178,713,792.7178,709,796.7178" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="435" x2="612.5" y1="759.0073" y2="759.0073"/><polygon fill="#A80036" points="602.5,755.0073,612.5,759.0073,602.5,763.0073,606.5,759.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="353" y1="732.0073" y2="732.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="353" x2="353" y1="732.0073" y2="747.0073"/><polygon fill="#A80036" points="349,737.0073,353,747.0073,357,737.0073,353,741.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="805.5" x2="1088.5" y1="759.0073" y2="759.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1088.5" x2="1088.5" y1="759.0073" y2="833.7998"/><polygon fill="#A80036" points="1084.5,823.7998,1088.5,833.7998,1092.5,823.7998,1088.5,827.7998" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e97c440ea6d6ffb95ba2bae466cee68a]
+@startuml
+
+title **µRtWare**\nurtServiceInit()\n
+
+
+note
+  - - **service** : urt_service_t* - -
+  The service to initialize.
+  Must not be ""NULL"".
+  - - **id** : urt_serviceid_t - -
+  Unique, numeric identifier of the service.
+  - - **callback** : urt_servicefunc_t* - -
+  Callabck function to be executed by this service.
+  Must not be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if another service with the same identifier already exists.
+endnote
+
+
+start
+:initialize members;
+note
+  **next** ← ""NULL""
+  **id** ← id
+  urtMutexInit(**lock**)
+  **callback** ← callback
+  .. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true ..
+  **minDuration** ← 0xF..F
+  **maxDuration** ← 0
+  .. URT_CFG_RPC_PROFILING == true ..
+  **sumDurations** ← 0
+  **numCalls** ← 0
+  **numTimeouts** ← 0
+endnote
+:lock core;
+:access first service;
+while (Service is not ""NULL""\nand service ID is lower?) is (yes)
+  :proceed to next service;
+endwhile (no)
+if (Current service is ""NULL""?) then (yes)
+  :append self to core's list of services;
+  :unlock core;
+  stop
+  note
+    Returns ""URT_STATUS_OK"":
+  endnote
+elseif (Current service ID is greater?) then (yes)
+  :insert self in front of current service;
+  :unlock core;
+  stop
+  note
+    Returns ""URT_STATUS_OK"":
+  endnote
+else (no)
+  :unlock core;
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"":
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/service/urtServiceInit.uml b/doc/activitydiagrams/service/urtServiceInit.uml
new file mode 100644
index 0000000..b695023
--- /dev/null
+++ b/doc/activitydiagrams/service/urtServiceInit.uml
@@ -0,0 +1,91 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtServiceInit()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **service** : urt_service_t* --
+  The service to initialize.
+  Must not be ""NULL"".
+  -- **id** : urt_serviceid_t --
+  Unique, numeric identifier of the service.
+  -- **callback** : urt_servicefunc_t* --
+  Callabck function to be executed by this service.
+  Must not be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if another service with the same identifier already exists.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+:initialize members;
+note
+  **next** ← ""NULL""
+  **id** ← id
+  urtMutexInit(**lock**)
+  **callback** ← callback
+  .. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true ..
+  **minDuration** ← 0xF..F
+  **maxDuration** ← 0
+  .. URT_CFG_RPC_PROFILING == true ..
+  **sumDurations** ← 0
+  **numCalls** ← 0
+  **numTimeouts** ← 0
+endnote
+:lock core;
+:access first service;
+while (Service is not ""NULL""\nand service ID is lower?) is (yes)
+  :proceed to next service;
+endwhile (no)
+if (Current service is ""NULL""?) then (yes)
+  :append self to core's list of services;
+  :unlock core;
+  stop
+  note
+    Returns ""URT_STATUS_OK"":
+  endnote
+elseif (Current service ID is greater?) then (yes)
+  :insert self in front of current service;
+  :unlock core;
+  stop
+  note
+    Returns ""URT_STATUS_OK"":
+  endnote
+else (no)
+  :unlock core;
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"":
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/fetchmessage.iuml b/doc/activitydiagrams/subscriber/fetchmessage.iuml
new file mode 100644
index 0000000..50b0b75
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/fetchmessage.iuml
@@ -0,0 +1,36 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+partition "fetch message" {
+  fork
+    :update message pointer;
+  fork again
+      :copy timestamp of message;
+  fork again
+    :copy message payload;
+  fork again
+    if (Optional output argument ""latency"" given?) then (yes)
+      :set ""latency"" value (now - message origin time);
+    else (no)
+    endif
+  endfork
+}
+
diff --git a/doc/activitydiagrams/subscriber/findlatestmessage.iuml b/doc/activitydiagrams/subscriber/findlatestmessage.iuml
new file mode 100644
index 0000000..72ab96a
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/findlatestmessage.iuml
@@ -0,0 +1,28 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+partition "find latest message" {
+  :access last read message;
+  while (Timestamp of next message is younger?) is (yes)
+    :proceed to next message;
+  endwhile (no)
+}
+
diff --git a/doc/activitydiagrams/subscriber/findoldestvalidmessage.iuml b/doc/activitydiagrams/subscriber/findoldestvalidmessage.iuml
new file mode 100644
index 0000000..15689e9
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/findoldestvalidmessage.iuml
@@ -0,0 +1,31 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+partition "find oldest valid message" {
+  if (Timestamp of last read message euqals local copy?) then (yes)
+  else (no)
+    while (Timestamp of next message is younger?) is (yes)
+      :proceed to next message;
+    endwhile (no)
+  endif
+  :proceed to next message;
+}
+
diff --git a/doc/activitydiagrams/subscriber/urtFrtSubscriberCalculateValidity.svg b/doc/activitydiagrams/subscriber/urtFrtSubscriberCalculateValidity.svg
new file mode 100644
index 0000000..ffe7069
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtFrtSubscriberCalculateValidity.svg
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="329px" preserveAspectRatio="none" style="width:598px;height:329px;" version="1.1" viewBox="0 0 598 329" width="598px" zoomAndPan="magnify"><defs><filter height="300%" id="f8zi0xl3jwnr" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="253.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="305" x="145.5" y="47.6611">urtFrtSubscriberCalculateValidity()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="301" y="68.6143"/><path d="M167.5,72.8594 L167.5,198.7891 L555.5,198.7891 L555.5,82.8594 L545.5,72.8594 L167.5,72.8594 " fill="#FBFB77" filter="url(#f8zi0xl3jwnr)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M545.5,72.8594 L545.5,82.8594 L555.5,82.8594 L545.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="167.5" x2="250.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="254.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="254.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="336.5" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="472.5" x2="555.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="173.5" y="105.0591">The FRT subscriber to calculate a validity for.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="173.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="253.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="285.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="167.5" x2="289.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="293.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="293.5" y="134.8247">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="350.5" y="134.8247">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="433.5" x2="555.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="367" x="173.5" y="150.4575">Latency (of a message) as argument to calculate validity.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="167.5" x2="555.5" y1="158.5234" y2="158.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="167.5" x2="555.5" y1="160.5234" y2="160.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="167.5" x2="315.5" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="319.5" y="175.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="319.5" y="175.0903">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="368.5" y="175.0903">: bool</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="407.5" x2="555.5" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="303" x="173.5" y="190.7231">Returns an indicator whether the latency is fine.</text><ellipse cx="361.5" cy="228.7891" fill="#000000" filter="url(#f8zi0xl3jwnr)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f8zi0xl3jwnr)" points="173,258.7891,550,258.7891,562,270.7891,550,282.7891,173,282.7891,161,270.7891,173,258.7891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="377" x="173" y="274.5972">Latency is lower than the deadline offset and within allowed jitter?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="141" y="268.1948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="562" y="268.1948">no</text><path d="M10,292.7891 L10,317.9219 A0,0 0 0 0 10,317.9219 L120,317.9219 A0,0 0 0 0 120,317.9219 L120,310.7891 L140,305.3555 L120,302.7891 L120,302.7891 L110,292.7891 L10,292.7891 A0,0 0 0 0 10,292.7891 " fill="#FBFB77" filter="url(#f8zi0xl3jwnr)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M110,292.7891 L110,302.7891 L120,302.7891 L110,292.7891 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="309.856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="69" y="309.856">true</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="101" y="309.856">.</text><ellipse cx="151" cy="305.3555" fill="#FFFFFF" filter="url(#f8zi0xl3jwnr)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="151" cy="305.3555" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M423,292.7891 L423,317.9219 A0,0 0 0 0 423,317.9219 L541,317.9219 A0,0 0 0 0 541,317.9219 L541,310.7891 L561,305.3555 L541,302.7891 L541,302.7891 L531,292.7891 L423,292.7891 A0,0 0 0 0 423,292.7891 " fill="#FBFB77" filter="url(#f8zi0xl3jwnr)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M531,292.7891 L531,302.7891 L541,302.7891 L531,292.7891 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="429" y="309.856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="40" x="482" y="309.856">false</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="522" y="309.856">.</text><ellipse cx="572" cy="305.3555" fill="#FFFFFF" filter="url(#f8zi0xl3jwnr)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="572" cy="305.3555" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="361.5" x2="361.5" y1="198.7891" y2="218.7891"/><polygon fill="#A80036" points="357.5,208.7891,361.5,218.7891,365.5,208.7891,361.5,212.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="161" x2="151" y1="270.7891" y2="270.7891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="151" x2="151" y1="270.7891" y2="294.3555"/><polygon fill="#A80036" points="147,284.3555,151,294.3555,155,284.3555,151,288.3555" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="562" x2="572" y1="270.7891" y2="270.7891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="572" x2="572" y1="270.7891" y2="294.3555"/><polygon fill="#A80036" points="568,284.3555,572,294.3555,576,284.3555,572,288.3555" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="361.5" x2="361.5" y1="238.7891" y2="258.7891"/><polygon fill="#A80036" points="357.5,248.7891,361.5,258.7891,365.5,248.7891,361.5,252.7891" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[88526a6130d27072b33b5a041e06c736]
+@startuml
+
+title **µRtWare**\nurtFrtSubscriberCalculateValidity()\n
+
+
+note
+  - - **subscriber** : urt_frtsubscriber_t* - -
+  The FRT subscriber to calculate a validity for.
+  Must not be ""NULL"".
+  - - **latency** : urt_delay_t - -
+  Latency (of a message) as argument to calculate validity.
+  ====
+  - - **return** : bool - -
+  Returns an indicator whether the latency is fine.
+endnote
+
+
+start
+if (Latency is lower than the deadline offset and within allowed jitter?) then (yes)
+  stop
+  note
+    Returns ""true"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""false"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtFrtSubscriberCalculateValidity.uml b/doc/activitydiagrams/subscriber/urtFrtSubscriberCalculateValidity.uml
new file mode 100644
index 0000000..dcc9d7f
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtFrtSubscriberCalculateValidity.uml
@@ -0,0 +1,58 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtFrtSubscriberCalculateValidity()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_frtsubscriber_t* --
+  The FRT subscriber to calculate a validity for.
+  Must not be ""NULL"".
+  -- **latency** : urt_delay_t --
+  Latency (of a message) as argument to calculate validity.
+  ====
+  -- **return** : bool --
+  Returns an indicator whether the latency is fine.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Latency is lower than the deadline offset and within allowed jitter?) then (yes)
+  stop
+  note
+    Returns ""true"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""false"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtFrtSubscriberFetchLatestMessage.svg b/doc/activitydiagrams/subscriber/urtFrtSubscriberFetchLatestMessage.svg
new file mode 100644
index 0000000..d8d2f8a
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtFrtSubscriberFetchLatestMessage.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1004px" preserveAspectRatio="none" style="width:1281px;height:1004px;" version="1.1" viewBox="0 0 1281 1004" width="1281px" zoomAndPan="magnify"><defs><filter height="300%" id="fcmotovz3iuec" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="595" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="334" x="472.5" y="47.6611">urtFrtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="642.5" y="68.6143"/><path d="M631,72.8594 L631,304.7188 L1119,304.7188 L1119,82.8594 L1109,72.8594 L631,72.8594 " fill="#FBFB77" filter="url(#fcmotovz3iuec)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1109,72.8594 L1109,82.8594 L1119,82.8594 L1109,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="764" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="768" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="768" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="850" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="986" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="310" x="637" y="105.0591">The FRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="637" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="717" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="749" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="819" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="823" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="823" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="886" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="931" x2="1119" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="637" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="723" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="826" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="830" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="830" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="875" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="924" x2="1119" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="637" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="799.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="803.5" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="803.5" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="860.5" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="950.5" x2="1119" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="637" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="719" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="804" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="808" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="808" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="857" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="946" x2="1119" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="690" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="798" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="690" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="822" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="875" cy="334.7188" fill="#000000" filter="url(#fcmotovz3iuec)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fcmotovz3iuec)" points="812.5,364.7188,937.5,364.7188,949.5,376.7188,937.5,388.7188,812.5,388.7188,800.5,376.7188,812.5,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="812.5" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="780.5" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="949.5" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#fcmotovz3iuec)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="455" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="465" y="419.8574">lock topic</text><rect fill="#FFFFFF" filter="url(#fcmotovz3iuec)" height="213.9448" style="stroke: #000000; stroke-width: 2.0;" width="323" x="332" y="443.4893"/><path d="M477,444.4893 L477,452.7861 L467,462.7861 L332,462.7861 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="135" x="335" y="457.4844">find latest message</text><rect fill="#FEFECE" filter="url(#fcmotovz3iuec)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="402.5" y="479.7861"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="412.5" y="500.9248">access last read message</text><rect fill="#FEFECE" filter="url(#fcmotovz3iuec)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="589.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="610.604">proceed to next message</text><polygon fill="#FEFECE" filter="url(#fcmotovz3iuec)" points="378,533.7549,612,533.7549,624,545.7549,612,557.7549,378,557.7549,366,545.7549,378,533.7549" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="499" y="567.9653">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="378" y="549.563">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="352" y="543.1606">no</text><rect fill="#FFFFFF" filter="url(#fcmotovz3iuec)" height="226.668" style="stroke: #000000; stroke-width: 2.0;" width="988" x="10" y="668.2358"/><path d="M123,669.2358 L123,677.5327 L113,687.5327 L10,687.5327 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="13" y="682.231">fetch message</text><rect fill="#000000" filter="url(#fcmotovz3iuec)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="704.5327"/><rect fill="#FEFECE" filter="url(#fcmotovz3iuec)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="34" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="44" y="800.0737">update message pointer</text><rect fill="#FEFECE" filter="url(#fcmotovz3iuec)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="219" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="229" y="800.0737">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#fcmotovz3iuec)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="443" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="453" y="800.0737">copy message payload</text><rect fill="#FEFECE" filter="url(#fcmotovz3iuec)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="644" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="654" y="800.0737">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="678" y="800.0737">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="731" y="800.0737">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#fcmotovz3iuec)" points="678.5,730.5327,917.5,730.5327,929.5,742.5327,917.5,754.5327,678.5,754.5327,666.5,742.5327,678.5,730.5327" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="802" y="764.7432">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="678.5" y="746.3408">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="828.5" y="746.3408">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="881.5" y="746.3408">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="929.5" y="739.9385">no</text><polygon fill="#FEFECE" filter="url(#fcmotovz3iuec)" points="798,832.9038,810,844.9038,798,856.9038,786,844.9038,798,832.9038" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fcmotovz3iuec)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="876.9038"/><rect fill="#FEFECE" filter="url(#fcmotovz3iuec)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="447" y="914.9038"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="457" y="936.0425">unlock topic</text><path d="M282,967.3062 L282,992.439 A0,0 0 0 0 282,992.439 L464,992.439 A0,0 0 0 0 464,992.439 L464,985.3062 L484,979.8726 L464,977.3062 L464,977.3062 L454,967.3062 L282,967.3062 A0,0 0 0 0 282,967.3062 " fill="#FBFB77" filter="url(#fcmotovz3iuec)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454,967.3062 L454,977.3062 L464,977.3062 L454,967.3062 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="288" y="984.373">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="341" y="984.373">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="445" y="984.373">.</text><ellipse cx="495" cy="979.8726" fill="#FFFFFF" filter="url(#fcmotovz3iuec)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="495" cy="979.8726" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1018,398.7188 L1018,423.8516 A0,0 0 0 0 1018,423.8516 L1224,423.8516 A0,0 0 0 0 1224,423.8516 L1224,416.7188 L1244,411.2852 L1224,408.7188 L1224,408.7188 L1214,398.7188 L1018,398.7188 A0,0 0 0 0 1018,398.7188 " fill="#FBFB77" filter="url(#fcmotovz3iuec)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1214,398.7188 L1214,408.7188 L1224,408.7188 L1214,398.7188 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1024" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1077" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1205" y="415.7856">.</text><ellipse cx="1255" cy="411.2852" fill="#FFFFFF" filter="url(#fcmotovz3iuec)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1255" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="871,314.7188,875,324.7188,879,314.7188,875,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="557.7549" y2="589.4653"/><polygon fill="#A80036" points="491,579.4653,495,589.4653,499,579.4653,495,583.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="623.4341" y2="633.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="636" y1="633.4341" y2="633.4341"/><polygon fill="#A80036" points="632,598.0474,636,588.0474,640,598.0474,636,594.0474" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="636" y1="545.7549" y2="633.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="624" y1="545.7549" y2="545.7549"/><polygon fill="#A80036" points="634,541.7549,624,545.7549,634,549.7549,630,545.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="354" y1="545.7549" y2="545.7549"/><polygon fill="#A80036" points="350,584.0474,354,594.0474,358,584.0474,354,588.0474" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="545.7549" y2="645.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="495" y1="645.4341" y2="645.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="645.4341" y2="704.5327"/><polygon fill="#A80036" points="491,694.5327,495,704.5327,499,694.5327,495,698.5327" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="513.7549" y2="533.7549"/><polygon fill="#A80036" points="491,523.7549,495,533.7549,499,523.7549,495,527.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="432.6875" y2="479.7861"/><polygon fill="#A80036" points="491,469.7861,495,479.7861,499,469.7861,495,473.7861" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="754.5327" y2="778.9351"/><polygon fill="#A80036" points="794,768.9351,798,778.9351,802,768.9351,798,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="929.5" x2="962" y1="742.5327" y2="742.5327"/><polygon fill="#A80036" points="958,785.9194,962,795.9194,966,785.9194,962,789.9194" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="962" y1="742.5327" y2="844.9038"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="810" y1="844.9038" y2="844.9038"/><polygon fill="#A80036" points="820,840.9038,810,844.9038,820,848.9038,816,844.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="812.9038" y2="832.9038"/><polygon fill="#A80036" points="794,822.9038,798,832.9038,802,822.9038,798,826.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="710.5327" y2="778.9351"/><polygon fill="#A80036" points="117.5,768.9351,121.5,778.9351,125.5,768.9351,121.5,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="710.5327" y2="778.9351"/><polygon fill="#A80036" points="313,768.9351,317,778.9351,321,768.9351,317,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="710.5327" y2="778.9351"/><polygon fill="#A80036" points="520.5,768.9351,524.5,778.9351,528.5,768.9351,524.5,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="710.5327" y2="730.5327"/><polygon fill="#A80036" points="794,720.5327,798,730.5327,802,720.5327,798,724.5327" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="812.9038" y2="876.9038"/><polygon fill="#A80036" points="117.5,866.9038,121.5,876.9038,125.5,866.9038,121.5,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="812.9038" y2="876.9038"/><polygon fill="#A80036" points="313,866.9038,317,876.9038,321,866.9038,317,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="812.9038" y2="876.9038"/><polygon fill="#A80036" points="520.5,866.9038,524.5,876.9038,528.5,866.9038,524.5,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="856.9038" y2="876.9038"/><polygon fill="#A80036" points="794,866.9038,798,876.9038,802,866.9038,798,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="882.9038" y2="914.9038"/><polygon fill="#A80036" points="491,904.9038,495,914.9038,499,904.9038,495,908.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="948.8726" y2="968.8726"/><polygon fill="#A80036" points="491,958.8726,495,968.8726,499,958.8726,495,962.8726" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="800.5" x2="495" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="491,388.7188,495,398.7188,499,388.7188,495,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="1255" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255" x2="1255" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1251,390.2852,1255,400.2852,1259,390.2852,1255,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="871,354.7188,875,364.7188,879,354.7188,875,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[271dc44f0aadb6f058470fd3cb27a9e8]
+@startuml
+
+title **µRtWare**\nurtFrtSubscriberFetchLatestMessage()\n
+
+
+note
+  - - **subscriber** : urt_frtsubscriber_t* - -
+  The FRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  - - **payload** : void* - -
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  - - **bytes** : size_t - -
+  Payload size in bytes.
+  - - **latency** : urt_delay_t* - -
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+
+partition "find latest message" {
+  :access last read message;
+  while (Timestamp of next message is younger?) is (yes)
+    :proceed to next message;
+  endwhile (no)
+}
+
+
+partition "fetch message" {
+  fork
+    :update message pointer;
+  fork again
+      :copy timestamp of message;
+  fork again
+    :copy message payload;
+  fork again
+    if (Optional output argument ""latency"" given?) then (yes)
+      :set ""latency"" value (now - message origin time);
+    else (no)
+    endif
+  endfork
+}
+
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtFrtSubscriberFetchLatestMessage.uml b/doc/activitydiagrams/subscriber/urtFrtSubscriberFetchLatestMessage.uml
new file mode 100644
index 0000000..782cb7d
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtFrtSubscriberFetchLatestMessage.uml
@@ -0,0 +1,69 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtFrtSubscriberFetchLatestMessage()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_frtsubscriber_t* --
+  The FRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  -- **payload** : void* --
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  -- **bytes** : size_t --
+  Payload size in bytes.
+  -- **latency** : urt_delay_t* --
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+  !include findlatestmessage.iuml
+  !include fetchmessage.iuml
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtFrtSubscriberFetchNextMessage.svg b/doc/activitydiagrams/subscriber/urtFrtSubscriberFetchNextMessage.svg
new file mode 100644
index 0000000..50cd16c
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtFrtSubscriberFetchNextMessage.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1098px" preserveAspectRatio="none" style="width:1281px;height:1098px;" version="1.1" viewBox="0 0 1281 1098" width="1281px" zoomAndPan="magnify"><defs><filter height="300%" id="f11i1t03a8jckr" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="595" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="324" x="477.5" y="47.6611">urtFrtSubscriberFetchNextMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="642.5" y="68.6143"/><path d="M631,72.8594 L631,304.7188 L1119,304.7188 L1119,82.8594 L1109,72.8594 L631,72.8594 " fill="#FBFB77" filter="url(#f11i1t03a8jckr)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1109,72.8594 L1109,82.8594 L1119,82.8594 L1109,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="764" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="768" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="768" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="850" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="986" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="310" x="637" y="105.0591">The FRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="637" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="717" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="749" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="819" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="823" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="823" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="886" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="931" x2="1119" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="637" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="723" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="826" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="830" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="830" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="875" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="924" x2="1119" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="637" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="799.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="803.5" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="803.5" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="860.5" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="950.5" x2="1119" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="637" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="719" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="804" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="808" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="808" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="857" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="946" x2="1119" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="690" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="798" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="690" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="822" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="875" cy="334.7188" fill="#000000" filter="url(#f11i1t03a8jckr)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f11i1t03a8jckr)" points="812.5,364.7188,937.5,364.7188,949.5,376.7188,937.5,388.7188,812.5,388.7188,800.5,376.7188,812.5,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="812.5" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="780.5" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="949.5" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="455" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="465" y="419.8574">lock topic</text><rect fill="#FFFFFF" filter="url(#f11i1t03a8jckr)" height="307.7651" style="stroke: #000000; stroke-width: 2.0;" width="365.5" x="322" y="443.4893"/><path d="M506,444.4893 L506,452.7861 L496,462.7861 L322,462.7861 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="325" y="457.4844">find oldest valid message</text><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="585.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="606.4556">proceed to next message</text><polygon fill="#FEFECE" filter="url(#f11i1t03a8jckr)" points="378,528.1885,612,528.1885,624,540.1885,612,552.1885,378,552.1885,366,540.1885,378,528.1885" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="499" y="562.3989">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="378" y="543.9966">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="352" y="537.5942">no</text><polygon fill="#FEFECE" filter="url(#f11i1t03a8jckr)" points="345.5,479.7861,644.5,479.7861,656.5,491.7861,644.5,503.7861,345.5,503.7861,333.5,491.7861,345.5,479.7861" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="499" y="513.9966">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="299" x="345.5" y="495.5942">Timestamp of last read message euqals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="656.5" y="489.1919">yes</text><polygon fill="#FEFECE" filter="url(#f11i1t03a8jckr)" points="495,661.2856,507,673.2856,495,685.2856,483,673.2856,495,661.2856" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="705.2856"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="726.4243">proceed to next message</text><rect fill="#FFFFFF" filter="url(#f11i1t03a8jckr)" height="226.668" style="stroke: #000000; stroke-width: 2.0;" width="988" x="10" y="762.0562"/><path d="M123,763.0562 L123,771.353 L113,781.353 L10,781.353 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="13" y="776.0513">fetch message</text><rect fill="#000000" filter="url(#f11i1t03a8jckr)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="798.353"/><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="34" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="44" y="893.894">update message pointer</text><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="219" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="229" y="893.894">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="443" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="453" y="893.894">copy message payload</text><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="644" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="654" y="893.894">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="678" y="893.894">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="731" y="893.894">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f11i1t03a8jckr)" points="678.5,824.353,917.5,824.353,929.5,836.353,917.5,848.353,678.5,848.353,666.5,836.353,678.5,824.353" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="802" y="858.5635">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="678.5" y="840.1611">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="828.5" y="840.1611">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="881.5" y="840.1611">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="929.5" y="833.7588">no</text><polygon fill="#FEFECE" filter="url(#f11i1t03a8jckr)" points="798,926.7241,810,938.7241,798,950.7241,786,938.7241,798,926.7241" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f11i1t03a8jckr)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="970.7241"/><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="447" y="1008.7241"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="457" y="1029.8628">unlock topic</text><path d="M282,1061.1265 L282,1086.2593 A0,0 0 0 0 282,1086.2593 L464,1086.2593 A0,0 0 0 0 464,1086.2593 L464,1079.1265 L484,1073.6929 L464,1071.1265 L464,1071.1265 L454,1061.1265 L282,1061.1265 A0,0 0 0 0 282,1061.1265 " fill="#FBFB77" filter="url(#f11i1t03a8jckr)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454,1061.1265 L454,1071.1265 L464,1071.1265 L454,1061.1265 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="288" y="1078.1934">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="341" y="1078.1934">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="445" y="1078.1934">.</text><ellipse cx="495" cy="1073.6929" fill="#FFFFFF" filter="url(#f11i1t03a8jckr)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="495" cy="1073.6929" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1018,398.7188 L1018,423.8516 A0,0 0 0 0 1018,423.8516 L1224,423.8516 A0,0 0 0 0 1224,423.8516 L1224,416.7188 L1244,411.2852 L1224,408.7188 L1224,408.7188 L1214,398.7188 L1018,398.7188 A0,0 0 0 0 1018,398.7188 " fill="#FBFB77" filter="url(#f11i1t03a8jckr)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1214,398.7188 L1214,408.7188 L1224,408.7188 L1214,398.7188 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1024" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1077" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1205" y="415.7856">.</text><ellipse cx="1255" cy="411.2852" fill="#FFFFFF" filter="url(#f11i1t03a8jckr)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1255" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="871,314.7188,875,324.7188,879,314.7188,875,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="552.1885" y2="585.3169"/><polygon fill="#A80036" points="491,575.3169,495,585.3169,499,575.3169,495,579.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="619.2856" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="636" y1="629.2856" y2="629.2856"/><polygon fill="#A80036" points="632,593.8989,636,583.8989,640,593.8989,636,589.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="636" y1="540.1885" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="624" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="634,536.1885,624,540.1885,634,544.1885,630,540.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="354" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="350,579.8989,354,589.8989,358,579.8989,354,583.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="540.1885" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="495" y1="641.2856" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="641.2856" y2="661.2856"/><polygon fill="#A80036" points="491,651.2856,495,661.2856,499,651.2856,495,655.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="503.7861" y2="528.1885"/><polygon fill="#A80036" points="491,518.1885,495,528.1885,499,518.1885,495,522.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656.5" x2="668.5" y1="491.7861" y2="491.7861"/><polygon fill="#A80036" points="664.5,573.8989,668.5,583.8989,672.5,573.8989,668.5,577.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="668.5" y1="491.7861" y2="673.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="507" y1="673.2856" y2="673.2856"/><polygon fill="#A80036" points="517,669.2856,507,673.2856,517,677.2856,513,673.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="685.2856" y2="705.2856"/><polygon fill="#A80036" points="491,695.2856,495,705.2856,499,695.2856,495,699.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="432.6875" y2="479.7861"/><polygon fill="#A80036" points="491,469.7861,495,479.7861,499,469.7861,495,473.7861" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="848.353" y2="872.7554"/><polygon fill="#A80036" points="794,862.7554,798,872.7554,802,862.7554,798,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="929.5" x2="962" y1="836.353" y2="836.353"/><polygon fill="#A80036" points="958,879.7397,962,889.7397,966,879.7397,962,883.7397" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="962" y1="836.353" y2="938.7241"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="810" y1="938.7241" y2="938.7241"/><polygon fill="#A80036" points="820,934.7241,810,938.7241,820,942.7241,816,938.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="906.7241" y2="926.7241"/><polygon fill="#A80036" points="794,916.7241,798,926.7241,802,916.7241,798,920.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="117.5,862.7554,121.5,872.7554,125.5,862.7554,121.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="313,862.7554,317,872.7554,321,862.7554,317,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="520.5,862.7554,524.5,872.7554,528.5,862.7554,524.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="804.353" y2="824.353"/><polygon fill="#A80036" points="794,814.353,798,824.353,802,814.353,798,818.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="117.5,960.7241,121.5,970.7241,125.5,960.7241,121.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="313,960.7241,317,970.7241,321,960.7241,317,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="520.5,960.7241,524.5,970.7241,528.5,960.7241,524.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="950.7241" y2="970.7241"/><polygon fill="#A80036" points="794,960.7241,798,970.7241,802,960.7241,798,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="739.2544" y2="798.353"/><polygon fill="#A80036" points="491,788.353,495,798.353,499,788.353,495,792.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="976.7241" y2="1008.7241"/><polygon fill="#A80036" points="491,998.7241,495,1008.7241,499,998.7241,495,1002.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="1042.6929" y2="1062.6929"/><polygon fill="#A80036" points="491,1052.6929,495,1062.6929,499,1052.6929,495,1056.6929" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="800.5" x2="495" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="491,388.7188,495,398.7188,499,388.7188,495,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="1255" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255" x2="1255" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1251,390.2852,1255,400.2852,1259,390.2852,1255,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="871,354.7188,875,364.7188,879,354.7188,875,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[81c080bf6e2a7ec37676ee40800d6be7]
+@startuml
+
+title **µRtWare**\nurtFrtSubscriberFetchNextMessage()\n
+
+
+note
+  - - **subscriber** : urt_frtsubscriber_t* - -
+  The FRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  - - **payload** : void* - -
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  - - **bytes** : size_t - -
+  Payload size in bytes.
+  - - **latency** : urt_delay_t* - -
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+
+partition "find oldest valid message" {
+  if (Timestamp of last read message euqals local copy?) then (yes)
+  else (no)
+    while (Timestamp of next message is younger?) is (yes)
+      :proceed to next message;
+    endwhile (no)
+  endif
+  :proceed to next message;
+}
+
+
+partition "fetch message" {
+  fork
+    :update message pointer;
+  fork again
+      :copy timestamp of message;
+  fork again
+    :copy message payload;
+  fork again
+    if (Optional output argument ""latency"" given?) then (yes)
+      :set ""latency"" value (now - message origin time);
+    else (no)
+    endif
+  endfork
+}
+
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtFrtSubscriberFetchNextMessage.uml b/doc/activitydiagrams/subscriber/urtFrtSubscriberFetchNextMessage.uml
new file mode 100644
index 0000000..c38ef70
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtFrtSubscriberFetchNextMessage.uml
@@ -0,0 +1,69 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtFrtSubscriberFetchNextMessage()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_frtsubscriber_t* --
+  The FRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  -- **payload** : void* --
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  -- **bytes** : size_t --
+  Payload size in bytes.
+  -- **latency** : urt_delay_t* --
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+  !include findoldestvalidmessage.iuml
+  !include fetchmessage.iuml
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtFrtSubscriberInit.svg b/doc/activitydiagrams/subscriber/urtFrtSubscriberInit.svg
new file mode 100644
index 0000000..c4fa9eb
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtFrtSubscriberInit.svg
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="526px" preserveAspectRatio="none" style="width:831px;height:526px;" version="1.1" viewBox="0 0 831 526" width="831px" zoomAndPan="magnify"><defs><filter height="300%" id="fc1zizs4xu5t4" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="370" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="187" x="321" y="47.6611">urtFrtSubscriberInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="417.5" y="68.6143"/><path d="M576,72.8594 L576,168.5234 L819,168.5234 L819,82.8594 L809,72.8594 L576,72.8594 " fill="#FBFB77" filter="url(#fc1zizs4xu5t4)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M809,72.8594 L809,82.8594 L819,82.8594 L809,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="576" x2="586.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="590.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="590.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="672.5" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="808.5" x2="819" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="582" y="105.0591">The FRT subscriber to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="582" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="662" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="694" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="576" x2="819" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="576" x2="819" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="576" x2="626.5" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="630.5" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="630.5" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="679.5" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="768.5" x2="819" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="582" y="160.4575">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="679" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="783" y="160.4575">.</text><ellipse cx="697.5" cy="198.5234" fill="#000000" filter="url(#fc1zizs4xu5t4)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,218.5234 L10,470.6484 A0,0 0 0 0 10,470.6484 L612,470.6484 A0,0 0 0 0 612,470.6484 L612,348.5859 L632,344.5859 L612,340.5859 L612,228.5234 L602,218.5234 L10,218.5234 A0,0 0 0 0 10,218.5234 " fill="#FBFB77" filter="url(#fc1zizs4xu5t4)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M602,218.5234 L602,228.5234 L612,228.5234 L602,218.5234 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="240" y1="231.0898" y2="231.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="244" y="235.0903">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="382" x2="612" y1="231.0898" y2="231.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="16" y="250.7231">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="57" y="250.7231">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="72" y="250.7231">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="16" y="265.856">urtEventListenerInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="82" x="145" y="265.856">evtListener</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="227" y="265.856">)</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="16" y="280.9888">lastMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="113" y="280.9888">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="128" y="280.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="128" x="16" y="296.1216">lastMessageTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="148" y="296.1216">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="182.5" y1="306.7539" y2="306.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="186.5" y="310.7544">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="439.5" x2="612" y1="306.7539" y2="306.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="101" x="16" y="326.3872">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="121" y="326.3872">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="173" x="16" y="341.52">numMessagesReceived</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="193" y="341.52">← 0</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="248.5" y1="352.1523" y2="352.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="117" x="252.5" y="356.1528">urt_frtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="373.5" x2="612" y1="352.1523" y2="352.1523"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="138.5" y1="367.2852" y2="367.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="337" x="142.5" y="371.2856">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="483.5" x2="612" y1="367.2852" y2="367.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="110" x="16" y="386.9185">deadlineOffset</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="130" y="386.9185">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="157.5" y1="397.5508" y2="397.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="299" x="161.5" y="401.5513">URT_CFG_PUBSUB_QOS_JITTERCHECK == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="464.5" x2="612" y1="397.5508" y2="397.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="66" x="16" y="417.1841">maxJitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="86" y="417.1841">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="427.8164" y2="427.8164"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="573" x="24.5" y="431.8169">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="601.5" x2="612" y1="427.8164" y2="427.8164"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="84" x="16" y="447.4497">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="104" y="447.4497">← 0xF..F</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="16" y="462.5825">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="108" y="462.5825">← 0</text><rect fill="#FEFECE" filter="url(#fc1zizs4xu5t4)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="632" y="327.6016"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="642" y="348.7402">initialize members</text><path d="M484.5,489.082 L484.5,514.2148 A0,0 0 0 0 484.5,514.2148 L666.5,514.2148 A0,0 0 0 0 666.5,514.2148 L666.5,507.082 L686.5,501.6484 L666.5,499.082 L666.5,499.082 L656.5,489.082 L484.5,489.082 A0,0 0 0 0 484.5,489.082 " fill="#FBFB77" filter="url(#fc1zizs4xu5t4)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M656.5,489.082 L656.5,499.082 L666.5,499.082 L656.5,489.082 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="490.5" y="506.1489">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="543.5" y="506.1489">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="647.5" y="506.1489">.</text><ellipse cx="697.5" cy="501.6484" fill="#FFFFFF" filter="url(#fc1zizs4xu5t4)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="697.5" cy="501.6484" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="697.5" x2="697.5" y1="168.5234" y2="188.5234"/><polygon fill="#A80036" points="693.5,178.5234,697.5,188.5234,701.5,178.5234,697.5,182.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="697.5" x2="697.5" y1="208.5234" y2="327.6016"/><polygon fill="#A80036" points="693.5,317.6016,697.5,327.6016,701.5,317.6016,697.5,321.6016" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="697.5" x2="697.5" y1="361.5703" y2="490.6484"/><polygon fill="#A80036" points="693.5,480.6484,697.5,490.6484,701.5,480.6484,697.5,484.6484" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f9803f4a1d429c2f954ae987b444dcfc]
+@startuml
+
+title **µRtWare**\nurtFrtSubscriberInit()\n
+
+
+note
+  - - **subscriber** : urt_frtsubscriber_t* - -
+  The FRT subscriber to initialize.
+  Must not be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Always returns ""URT_STATUS_OK"".
+endnote
+
+
+start
+:initialize members;
+note
+  - - urt_basesubscriber_t - -
+  **topic** ← ""NULL""
+  urtEventListenerInit(**evtListener**)
+  **lastMessage** ← ""NULL""
+  **lastMessageTime** ← 0
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **sumLatencies** ← 0
+  **numMessagesReceived** ← 0
+  - - urt_frtsubscriber_t - -
+  .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+  **deadlineOffset** ← 0
+  .. URT_CFG_PUBSUB_QOS_JITTERCHECK == true ..
+  **maxJitter** ← 0
+  .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true ..
+  **minLatency** ← 0xF..F
+  **maxLatency** ← 0
+endnote
+stop
+note
+  Returns ""URT_STATUS_OK"".
+endnote
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtFrtSubscriberInit.uml b/doc/activitydiagrams/subscriber/urtFrtSubscriberInit.uml
new file mode 100644
index 0000000..b34d9d4
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtFrtSubscriberInit.uml
@@ -0,0 +1,68 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtFrtSubscriberInit()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_frtsubscriber_t* --
+  The FRT subscriber to initialize.
+  Must not be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Always returns ""URT_STATUS_OK"".
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+:initialize members;
+note
+  -- urt_basesubscriber_t --
+  **topic** ← ""NULL""
+  urtEventListenerInit(**evtListener**)
+  **lastMessage** ← ""NULL""
+  **lastMessageTime** ← 0
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **sumLatencies** ← 0
+  **numMessagesReceived** ← 0
+  -- urt_frtsubscriber_t --
+  .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+  **deadlineOffset** ← 0
+  .. URT_CFG_PUBSUB_QOS_JITTERCHECK == true ..
+  **maxJitter** ← 0
+  .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true ..
+  **minLatency** ← 0xF..F
+  **maxLatency** ← 0
+endnote
+stop
+note
+  Returns ""URT_STATUS_OK"".
+endnote
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtFrtSubscriberSubscribe.svg b/doc/activitydiagrams/subscriber/urtFrtSubscriberSubscribe.svg
new file mode 100644
index 0000000..321d151
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtFrtSubscriberSubscribe.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1035px" preserveAspectRatio="none" style="width:2404px;height:1035px;" version="1.1" viewBox="0 0 2404 1035" width="2404px" zoomAndPan="magnify"><defs><filter height="300%" id="f19oi12a0nldwh" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="1156.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="243" x="1079.5" y="47.6611">urtFrtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1204" y="68.6143"/><path d="M432.25,72.8594 L432.25,395.5156 L1132.25,395.5156 L1132.25,82.8594 L1122.25,72.8594 L432.25,72.8594 " fill="#FBFB77" filter="url(#f19oi12a0nldwh)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1122.25,72.8594 L1122.25,82.8594 L1132.25,82.8594 L1122.25,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="671.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="675.25" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="675.25" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="757.25" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="893.25" x2="1132.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="324" x="438.25" y="105.0591">The FRT subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="438.25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="518.25" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="550.25" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="716.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="720.25" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="720.25" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="761.25" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="848.25" x2="1132.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="438.25" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="438.25" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="518.25" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="550.25" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="683.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="687.25" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="687.25" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="766.25" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="881.25" x2="1132.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="438.25" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="474.25" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="438.25" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="438.25" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="438.25" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="488.25" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="524.25" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="704.75" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="708.75" y="255.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="708.75" y="255.8872">deadline</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="776.75" y="255.8872">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="859.75" x2="1132.25" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="438.25" y="271.52">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="325" x="438.25" y="286.6528">A value of 0 indicates that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="719.25" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723.25" y="301.2856"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="35" x="723.25" y="301.2856">jitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="762.25" y="301.2856">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="845.25" x2="1132.25" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="438.25" y="316.9185">Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="438.25" y="332.0513">A value of 0 indicates that jitter is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="1132.25" y1="340.1172" y2="340.1172"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="1132.25" y1="342.1172" y2="342.1172"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="711.25" y1="352.6836" y2="352.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="715.25" y="356.6841"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="715.25" y="356.6841">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="764.25" y="356.6841">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="853.25" x2="1132.25" y1="352.6836" y2="352.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="438.25" y="372.3169">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="491.25" y="372.3169">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="599.25" y="372.3169">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="438.25" y="387.4497">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="491.25" y="387.4497">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="623.25" y="387.4497">if the subscriber is already associated to a topic.</text><ellipse cx="782.25" cy="425.5156" fill="#000000" filter="url(#f19oi12a0nldwh)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f19oi12a0nldwh)" points="724.75,455.5156,839.75,455.5156,851.75,467.5156,839.75,479.5156,724.75,479.5156,712.75,467.5156,724.75,455.5156" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="724.75" y="471.3237">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="692.75" y="464.9214">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="851.75" y="464.9214">no</text><path d="M10,489.5156 L10,514.6484 A0,0 0 0 0 10,514.6484 L216,514.6484 A0,0 0 0 0 216,514.6484 L216,507.5156 L236,502.082 L216,499.5156 L216,499.5156 L206,489.5156 L10,489.5156 A0,0 0 0 0 10,489.5156 " fill="#FBFB77" filter="url(#f19oi12a0nldwh)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M206,489.5156 L206,499.5156 L216,499.5156 L206,489.5156 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="506.5825">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="69" y="506.5825">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="197" y="506.5825">.</text><ellipse cx="247" cy="502.082" fill="#FFFFFF" filter="url(#f19oi12a0nldwh)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="247" cy="502.082" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="432" x="1123.5" y="489.5156"/><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1137.5" y="515.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1147.5" y="536.6543">set topic</text><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="1240.5" y="515.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1250.5" y="536.6543">set deadline offset</text><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="135" x="1406.5" y="515.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="1416.5" y="536.6543">set maximum jitter</text><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="432" x="1123.5" y="569.4844"/><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1299.5" y="595.4844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1309.5" y="616.623">lock topic</text><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2125" x="268" y="649.4531"/><rect fill="#FFFFFF" filter="url(#f19oi12a0nldwh)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1168" x="280" y="721.9653"/><path d="M437,722.9653 L437,731.2622 L427,741.2622 L280,741.2622 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="283" y="735.9604">contribute messages</text><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="758.2622"/><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="304" y="784.2622"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="314" y="805.4009">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="806" y="784.2622"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="816" y="805.4009">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="838.231"/><polygon fill="#FEFECE" filter="url(#f19oi12a0nldwh)" points="794,675.4531,934,675.4531,946,687.4531,934,699.4531,794,699.4531,782,687.4531,794,675.4531" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="868" y="709.6636">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="794" y="691.2612">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="946" y="684.8589">no</text><polygon fill="#FEFECE" filter="url(#f19oi12a0nldwh)" points="864,876.231,876,888.231,864,900.231,852,888.231,864,876.231" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="656" x="1498" y="750.1138"/><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1512" y="776.1138"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1522" y="797.2524">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="297" x="1845" y="776.1138"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="277" x="1855" y="797.2524">copy timestamp from topic's latest message</text><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="656" x="1498" y="830.0825"/><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="2164" y="776.1138"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="2174" y="797.2524">register to topic's event source</text><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2125" x="268" y="920.231"/><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1291.5" y="946.231"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1301.5" y="967.3696">unlock topic</text><path d="M1126.5,998.6333 L1126.5,1023.7661 A0,0 0 0 0 1126.5,1023.7661 L1308.5,1023.7661 A0,0 0 0 0 1308.5,1023.7661 L1308.5,1016.6333 L1328.5,1011.1997 L1308.5,1008.6333 L1308.5,1008.6333 L1298.5,998.6333 L1126.5,998.6333 A0,0 0 0 0 1126.5,998.6333 " fill="#FBFB77" filter="url(#f19oi12a0nldwh)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1298.5,998.6333 L1298.5,1008.6333 L1308.5,1008.6333 L1298.5,998.6333 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1132.5" y="1015.7002">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1185.5" y="1015.7002">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1289.5" y="1015.7002">.</text><ellipse cx="1339.5" cy="1011.1997" fill="#FFFFFF" filter="url(#f19oi12a0nldwh)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1339.5" cy="1011.1997" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782.25" x2="782.25" y1="395.5156" y2="415.5156"/><polygon fill="#A80036" points="778.25,405.5156,782.25,415.5156,786.25,405.5156,782.25,409.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1175" x2="1175" y1="495.5156" y2="515.5156"/><polygon fill="#A80036" points="1171,505.5156,1175,515.5156,1179,505.5156,1175,509.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1309.5" x2="1309.5" y1="495.5156" y2="515.5156"/><polygon fill="#A80036" points="1305.5,505.5156,1309.5,515.5156,1313.5,505.5156,1309.5,509.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1474" x2="1474" y1="495.5156" y2="515.5156"/><polygon fill="#A80036" points="1470,505.5156,1474,515.5156,1478,505.5156,1474,509.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1175" x2="1175" y1="549.4844" y2="569.4844"/><polygon fill="#A80036" points="1171,559.4844,1175,569.4844,1179,559.4844,1175,563.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1309.5" x2="1309.5" y1="549.4844" y2="569.4844"/><polygon fill="#A80036" points="1305.5,559.4844,1309.5,569.4844,1313.5,559.4844,1309.5,563.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1474" x2="1474" y1="549.4844" y2="569.4844"/><polygon fill="#A80036" points="1470,559.4844,1474,569.4844,1478,559.4844,1474,563.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="575.4844" y2="595.4844"/><polygon fill="#A80036" points="1335.5,585.4844,1339.5,595.4844,1343.5,585.4844,1339.5,589.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="764.2622" y2="784.2622"/><polygon fill="#A80036" points="537,774.2622,541,784.2622,545,774.2622,541,778.2622" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="764.2622" y2="784.2622"/><polygon fill="#A80036" points="1111,774.2622,1115,784.2622,1119,774.2622,1115,778.2622" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="818.231" y2="838.231"/><polygon fill="#A80036" points="537,828.231,541,838.231,545,828.231,541,832.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="818.231" y2="838.231"/><polygon fill="#A80036" points="1111,828.231,1115,838.231,1119,828.231,1115,832.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="699.4531" y2="758.2622"/><polygon fill="#A80036" points="860,748.2622,864,758.2622,868,748.2622,864,752.2622" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="946" x2="1458" y1="687.4531" y2="687.4531"/><polygon fill="#A80036" points="1454,783.0981,1458,793.0981,1462,783.0981,1458,787.0981" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="1458" y1="687.4531" y2="888.231"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="876" y1="888.231" y2="888.231"/><polygon fill="#A80036" points="886,884.231,876,888.231,886,892.231,882,888.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="844.231" y2="876.231"/><polygon fill="#A80036" points="860,866.231,864,876.231,868,866.231,864,870.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="756.1138" y2="776.1138"/><polygon fill="#A80036" points="1664.5,766.1138,1668.5,776.1138,1672.5,766.1138,1668.5,770.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1993.5" x2="1993.5" y1="756.1138" y2="776.1138"/><polygon fill="#A80036" points="1989.5,766.1138,1993.5,776.1138,1997.5,766.1138,1993.5,770.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="810.0825" y2="830.0825"/><polygon fill="#A80036" points="1664.5,820.0825,1668.5,830.0825,1672.5,820.0825,1668.5,824.0825" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1993.5" x2="1993.5" y1="810.0825" y2="830.0825"/><polygon fill="#A80036" points="1989.5,820.0825,1993.5,830.0825,1997.5,820.0825,1993.5,824.0825" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="655.4531" y2="675.4531"/><polygon fill="#A80036" points="860,665.4531,864,675.4531,868,665.4531,864,669.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="655.4531" y2="750.1138"/><polygon fill="#A80036" points="1827,740.1138,1831,750.1138,1835,740.1138,1831,744.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2272.5" x2="2272.5" y1="655.4531" y2="776.1138"/><polygon fill="#A80036" points="2268.5,766.1138,2272.5,776.1138,2276.5,766.1138,2272.5,770.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="900.231" y2="920.231"/><polygon fill="#A80036" points="860,910.231,864,920.231,868,910.231,864,914.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="836.0825" y2="920.231"/><polygon fill="#A80036" points="1827,910.231,1831,920.231,1835,910.231,1831,914.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2272.5" x2="2272.5" y1="810.0825" y2="920.231"/><polygon fill="#A80036" points="2268.5,910.231,2272.5,920.231,2276.5,910.231,2272.5,914.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="629.4531" y2="649.4531"/><polygon fill="#A80036" points="1335.5,639.4531,1339.5,649.4531,1343.5,639.4531,1339.5,643.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="926.231" y2="946.231"/><polygon fill="#A80036" points="1335.5,936.231,1339.5,946.231,1343.5,936.231,1339.5,940.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="980.1997" y2="1000.1997"/><polygon fill="#A80036" points="1335.5,990.1997,1339.5,1000.1997,1343.5,990.1997,1339.5,994.1997" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="712.75" x2="247" y1="467.5156" y2="467.5156"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247" x2="247" y1="467.5156" y2="491.082"/><polygon fill="#A80036" points="243,481.082,247,491.082,251,481.082,247,485.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="851.75" x2="1339.5" y1="467.5156" y2="467.5156"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="467.5156" y2="489.5156"/><polygon fill="#A80036" points="1335.5,479.5156,1339.5,489.5156,1343.5,479.5156,1339.5,483.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782.25" x2="782.25" y1="435.5156" y2="455.5156"/><polygon fill="#A80036" points="778.25,445.5156,782.25,455.5156,786.25,445.5156,782.25,449.5156" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[d2cdae428bfc3464d46583b094e505d6]
+@startuml
+
+title **µRtWare**\nurtFrtSubscriberSubscribe()\n
+
+
+note
+  - - **subscriber** : urt_frtsubscriber_t* - -
+  The FRT subscriber which shall subscribe to a topic.
+  Must not be ""NULL"".
+  - - **topic** : urt_topic_t* - -
+  The topic to subscribe to.
+  Must not be ""NULL"".
+  - - **messages** : urt_message_t* - -
+  ""NULL"" terminated list of messages to contribute to the topic.
+  Messages must not be associated to another topic.
+  Once a message has been contributed, it cannot be removed later.
+  May be ""NULL"" (no messages to contribute).
+  - - **deadline** : urt_delay_t - -
+  Maximum latency to consume messages.
+  A value of 0 indicates that latency is of no concern.
+  - - **jitter** : urt_delay_t - -
+  Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.
+  A value of 0 indicates that jitter is of no concern.
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is already associated to a topic.
+endnote
+
+
+start
+if (Is topic already set?) then (yes)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+else (no)
+  fork
+    :set topic;
+  fork again
+    :set deadline offset;
+  fork again
+    :set maximum jitter;
+  endfork
+  :lock topic;
+  fork
+    if (Messages to contribute?) then (yes)
+
+partition "contribute messages" {
+  fork
+    :set next pointer of topic's latest message to first message to contribute;
+  fork again
+    :set next pointer of last message to contribute to the message after the topic's latest message;
+  endfork
+}
+
+    else (no)
+    endif
+  fork again
+    fork
+      :set message pointer to topic's latest message;
+    fork again
+      :copy timestamp from topic's latest message;
+    endfork
+  fork again
+    :register to topic's event source;
+  endfork
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtFrtSubscriberSubscribe.uml b/doc/activitydiagrams/subscriber/urtFrtSubscriberSubscribe.uml
new file mode 100644
index 0000000..116cde4
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtFrtSubscriberSubscribe.uml
@@ -0,0 +1,94 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtFrtSubscriberSubscribe()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_frtsubscriber_t* --
+  The FRT subscriber which shall subscribe to a topic.
+  Must not be ""NULL"".
+  -- **topic** : urt_topic_t* --
+  The topic to subscribe to.
+  Must not be ""NULL"".
+  -- **messages** : urt_message_t* --
+  ""NULL"" terminated list of messages to contribute to the topic.
+  Messages must not be associated to another topic.
+  Once a message has been contributed, it cannot be removed later.
+  May be ""NULL"" (no messages to contribute).
+  -- **deadline** : urt_delay_t --
+  Maximum latency to consume messages.
+  A value of 0 indicates that latency is of no concern.
+  -- **jitter** : urt_delay_t --
+  Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.
+  A value of 0 indicates that jitter is of no concern.
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is already associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Is topic already set?) then (yes)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+else (no)
+  fork
+    :set topic;
+  fork again
+    :set deadline offset;
+  fork again
+    :set maximum jitter;
+  endfork
+  :lock topic;
+  fork
+    if (Messages to contribute?) then (yes)
+      !include ../contributemessages.iuml
+    else (no)
+    endif
+  fork again
+    fork
+      :set message pointer to topic's latest message;
+    fork again
+      :copy timestamp from topic's latest message;
+    endfork
+  fork again
+    :register to topic's event source;
+  endfork
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtFrtSubscriberUnsubscribe.svg b/doc/activitydiagrams/subscriber/urtFrtSubscriberUnsubscribe.svg
new file mode 100644
index 0000000..e0a838e
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtFrtSubscriberUnsubscribe.svg
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="614px" preserveAspectRatio="none" style="width:1105px;height:614px;" version="1.1" viewBox="0 0 1105 614" width="1105px" zoomAndPan="magnify"><defs><filter height="300%" id="fhpxeg92jwboq" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="507" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="265" x="419" y="47.6611">urtFrtSubscriberUnsubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="554.5" y="68.6143"/><path d="M605,72.8594 L605,183.6563 L1093,183.6563 L1093,82.8594 L1083,72.8594 L605,72.8594 " fill="#FBFB77" filter="url(#fhpxeg92jwboq)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1083,72.8594 L1083,82.8594 L1093,82.8594 L1083,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="605" x2="738" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="742" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="742" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="824" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="960" x2="1093" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="611" y="105.0591">The FRT subscriber to be unsubscribed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="611" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="691" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="723" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="605" x2="1093" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="605" x2="1093" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="605" x2="778" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="782" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="782" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="831" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="920" x2="1093" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="611" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="664" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="68" x="772" y="160.4575">on sucess.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="611" y="175.5903">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="664" y="175.5903">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="796" y="175.5903">if the subscriber is not associated to a topic.</text><ellipse cx="849" cy="213.6563" fill="#000000" filter="url(#fhpxeg92jwboq)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fhpxeg92jwboq)" points="786.5,243.6563,911.5,243.6563,923.5,255.6563,911.5,267.6563,786.5,267.6563,774.5,255.6563,786.5,243.6563" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="786.5" y="259.4644">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="754.5" y="253.062">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="923.5" y="253.062">no</text><rect fill="#FEFECE" filter="url(#fhpxeg92jwboq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="627.5" y="277.6563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="637.5" y="298.7949">unregister event</text><path d="M10,321.625 L10,558.6172 A0,0 0 0 0 10,558.6172 L612,558.6172 A0,0 0 0 0 612,558.6172 L612,444.1211 L632,440.1211 L612,436.1211 L612,331.625 L602,321.625 L10,321.625 A0,0 0 0 0 10,321.625 " fill="#FBFB77" filter="url(#fhpxeg92jwboq)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M602,321.625 L602,331.625 L612,331.625 L602,321.625 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="240" y1="334.1914" y2="334.1914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="244" y="338.1919">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="382" x2="612" y1="334.1914" y2="334.1914"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="16" y="353.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="57" y="353.8247">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="72" y="353.8247">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="16" y="368.9575">lastMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="113" y="368.9575">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="128" y="368.9575">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="128" x="16" y="384.0903">lastMessageTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="148" y="384.0903">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="182.5" y1="394.7227" y2="394.7227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="186.5" y="398.7231">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="439.5" x2="612" y1="394.7227" y2="394.7227"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="101" x="16" y="414.356">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="121" y="414.356">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="173" x="16" y="429.4888">numMessagesReceived</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="193" y="429.4888">← 0</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="248.5" y1="440.1211" y2="440.1211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="117" x="252.5" y="444.1216">urt_frtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="373.5" x2="612" y1="440.1211" y2="440.1211"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="138.5" y1="455.2539" y2="455.2539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="337" x="142.5" y="459.2544">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="483.5" x2="612" y1="455.2539" y2="455.2539"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="110" x="16" y="474.8872">deadlineOffset</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="130" y="474.8872">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="153" y1="485.5195" y2="485.5195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="157" y="489.52">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="469" x2="612" y1="485.5195" y2="485.5195"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="66" x="16" y="505.1528">maxJitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="86" y="505.1528">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="515.7852" y2="515.7852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="573" x="24.5" y="519.7856">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="601.5" x2="612" y1="515.7852" y2="515.7852"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="84" x="16" y="535.4185">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="104" y="535.4185">← 0xF..F</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="16" y="550.5513">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="108" y="550.5513">← 0</text><rect fill="#FEFECE" filter="url(#fhpxeg92jwboq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="632" y="423.1367"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="642" y="444.2754">reset members</text><path d="M476.5,577.0508 L476.5,602.1836 A0,0 0 0 0 476.5,602.1836 L658.5,602.1836 A0,0 0 0 0 658.5,602.1836 L658.5,595.0508 L678.5,589.6172 L658.5,587.0508 L658.5,587.0508 L648.5,577.0508 L476.5,577.0508 A0,0 0 0 0 476.5,577.0508 " fill="#FBFB77" filter="url(#fhpxeg92jwboq)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M648.5,577.0508 L648.5,587.0508 L658.5,587.0508 L648.5,577.0508 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="482.5" y="594.1177">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="535.5" y="594.1177">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="639.5" y="594.1177">.</text><ellipse cx="689.5" cy="589.6172" fill="#FFFFFF" filter="url(#fhpxeg92jwboq)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="689.5" cy="589.6172" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M771.5,277.6563 L771.5,302.7891 A0,0 0 0 0 771.5,302.7891 L977.5,302.7891 A0,0 0 0 0 977.5,302.7891 L977.5,295.6563 L997.5,290.2227 L977.5,287.6563 L977.5,287.6563 L967.5,277.6563 L771.5,277.6563 A0,0 0 0 0 771.5,277.6563 " fill="#FBFB77" filter="url(#fhpxeg92jwboq)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M967.5,277.6563 L967.5,287.6563 L977.5,287.6563 L967.5,277.6563 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="777.5" y="294.7231">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="830.5" y="294.7231">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="958.5" y="294.7231">.</text><ellipse cx="1008.5" cy="290.2227" fill="#FFFFFF" filter="url(#fhpxeg92jwboq)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1008.5" cy="290.2227" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="849" x2="849" y1="183.6563" y2="203.6563"/><polygon fill="#A80036" points="845,193.6563,849,203.6563,853,193.6563,849,197.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="689.5" x2="689.5" y1="311.625" y2="423.1367"/><polygon fill="#A80036" points="685.5,413.1367,689.5,423.1367,693.5,413.1367,689.5,417.1367" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="689.5" x2="689.5" y1="457.1055" y2="578.6172"/><polygon fill="#A80036" points="685.5,568.6172,689.5,578.6172,693.5,568.6172,689.5,572.6172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="774.5" x2="689.5" y1="255.6563" y2="255.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="689.5" x2="689.5" y1="255.6563" y2="277.6563"/><polygon fill="#A80036" points="685.5,267.6563,689.5,277.6563,693.5,267.6563,689.5,271.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="923.5" x2="1008.5" y1="255.6563" y2="255.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1008.5" x2="1008.5" y1="255.6563" y2="279.2227"/><polygon fill="#A80036" points="1004.5,269.2227,1008.5,279.2227,1012.5,269.2227,1008.5,273.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="849" x2="849" y1="223.6563" y2="243.6563"/><polygon fill="#A80036" points="845,233.6563,849,243.6563,853,233.6563,849,237.6563" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7f51ce052709f97e2cd9b849f6a8caff]
+@startuml
+
+title **µRtWare**\nurtFrtSubscriberUnsubscribe()\n
+
+
+note
+  - - **subscriber** : urt_frtsubscriber_t* - -
+  The FRT subscriber to be unsubscribed.
+  Must not be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on sucess.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+
+start
+if (Associated to a topic?) then (yes)
+  :unregister event;
+  :reset members;
+  note
+    - - urt_basesubscriber_t - -
+    **topic** ← ""NULL""
+    **lastMessage** ← ""NULL""
+    **lastMessageTime** ← 0
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    **sumLatencies** ← 0
+    **numMessagesReceived** ← 0
+    - - urt_frtsubscriber_t - -
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+    **deadlineOffset** ← 0
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+    **maxJitter** ← 0
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true ..
+    **minLatency** ← 0xF..F
+    **maxLatency** ← 0
+  endnote
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtFrtSubscriberUnsubscribe.uml b/doc/activitydiagrams/subscriber/urtFrtSubscriberUnsubscribe.uml
new file mode 100644
index 0000000..0bfefdd
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtFrtSubscriberUnsubscribe.uml
@@ -0,0 +1,76 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtFrtSubscriberUnsubscribe()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_frtsubscriber_t* --
+  The FRT subscriber to be unsubscribed.
+  Must not be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on sucess.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Associated to a topic?) then (yes)
+  :unregister event;
+  :reset members;
+  note
+    -- urt_basesubscriber_t --
+    **topic** ← ""NULL""
+    **lastMessage** ← ""NULL""
+    **lastMessageTime** ← 0
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    **sumLatencies** ← 0
+    **numMessagesReceived** ← 0
+    -- urt_frtsubscriber_t --
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+    **deadlineOffset** ← 0
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+    **maxJitter** ← 0
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true ..
+    **minLatency** ← 0xF..F
+    **maxLatency** ← 0
+  endnote
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtHrtSubscriberFetchLatestMessage.svg b/doc/activitydiagrams/subscriber/urtHrtSubscriberFetchLatestMessage.svg
new file mode 100644
index 0000000..9858d7e
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtHrtSubscriberFetchLatestMessage.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1073px" preserveAspectRatio="none" style="width:1782px;height:1073px;" version="1.1" viewBox="0 0 1782 1073" width="1782px" zoomAndPan="magnify"><defs><filter height="300%" id="f1amcfo5x9amkf" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="845.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="338" x="721" y="47.6611">urtHrtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="893" y="68.6143"/><path d="M1009.25,72.8594 L1009.25,304.7188 L1497.25,304.7188 L1497.25,82.8594 L1487.25,72.8594 L1009.25,72.8594 " fill="#FBFB77" filter="url(#f1amcfo5x9amkf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1487.25,72.8594 L1487.25,82.8594 L1497.25,82.8594 L1487.25,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1140.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1144.25" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="1144.25" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1226.25" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1366.25" x2="1497.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="1015.25" y="105.0591">The HRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1015.25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1095.25" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1127.25" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1197.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1201.25" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1201.25" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1264.25" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1309.25" x2="1497.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="1015.25" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="1015.25" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1065.25" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1101.25" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1204.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1208.25" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1208.25" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1253.25" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1302.25" x2="1497.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="1015.25" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1177.75" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1181.75" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="1181.75" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1238.75" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1328.75" x2="1497.25" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="1015.25" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="1015.25" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1065.25" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1097.25" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1497.25" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1497.25" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1182.25" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1186.25" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1186.25" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1235.25" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1324.25" x2="1497.25" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1015.25" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1068.25" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1176.25" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1015.25" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1068.25" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1200.25" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="1253.25" cy="334.7188" fill="#000000" filter="url(#f1amcfo5x9amkf)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" points="1190.75,364.7188,1315.75,364.7188,1327.75,376.7188,1315.75,388.7188,1190.75,388.7188,1178.75,376.7188,1190.75,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1190.75" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1158.75" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1327.75" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="700.5" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="710.5" y="419.8574">lock topic</text><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="648" y="452.6875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="658" y="473.8262">access last read message</text><rect fill="#000000" filter="url(#f1amcfo5x9amkf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="508" x="486.5" y="562.3667"/><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="500.5" y="588.3667"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="510.5" y="609.5054">proceed to next message</text><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="271" x="709.5" y="588.3667"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="251" x="719.5" y="609.5054">decrement next message's HRT counter</text><rect fill="#000000" filter="url(#f1amcfo5x9amkf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="508" x="486.5" y="642.3354"/><polygon fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" points="623.5,506.6563,857.5,506.6563,869.5,518.6563,857.5,530.6563,623.5,530.6563,611.5,518.6563,623.5,506.6563" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="744.5" y="540.8667">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="623.5" y="522.4644">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="597.5" y="516.062">no</text><rect fill="#000000" filter="url(#f1amcfo5x9amkf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1499" x="10" y="690.3354"/><rect fill="#FFFFFF" filter="url(#f1amcfo5x9amkf)" height="231.0703" style="stroke: #000000; stroke-width: 2.0;" width="970" x="22" y="707.1372"/><path d="M135,708.1372 L135,716.4341 L125,726.4341 L22,726.4341 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="25" y="721.1323">fetch message</text><rect fill="#000000" filter="url(#f1amcfo5x9amkf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="950" x="32" y="743.4341"/><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="46" y="817.8364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="56" y="838.9751">update message pointer</text><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="231" y="817.8364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="241" y="838.9751">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="437" y="817.8364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="447" y="838.9751">copy message payload</text><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="638" y="817.8364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="648" y="838.9751">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="672" y="838.9751">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="725" y="838.9751">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" points="672.5,769.4341,911.5,769.4341,923.5,781.4341,911.5,793.4341,672.5,793.4341,660.5,781.4341,672.5,769.4341" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="796" y="803.6445">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="672.5" y="785.2422">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="822.5" y="785.2422">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="875.5" y="785.2422">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="923.5" y="778.8398">no</text><polygon fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" points="792,876.2075,804,888.2075,792,900.2075,780,888.2075,792,876.2075" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1amcfo5x9amkf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="950" x="32" y="920.2075"/><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1051.5" y="809.688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1061.5" y="830.8267">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" points="1032,761.2856,1288,761.2856,1300,773.2856,1288,785.2856,1032,785.2856,1020,773.2856,1032,761.2856" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1164" y="795.4961">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="256" x="1032" y="777.0938">The HRT counter of any message became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1300" y="770.6914">no</text><polygon fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" points="1160,868.0591,1172,880.0591,1160,892.0591,1148,880.0591,1160,868.0591" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="1340" y="809.688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="1350" y="830.8267">reset QoS delay timer</text><rect fill="#000000" filter="url(#f1amcfo5x9amkf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1499" x="10" y="958.2075"/><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="692.5" y="984.2075"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="702.5" y="1005.3462">unlock topic</text><path d="M527.5,1036.6099 L527.5,1061.7427 A0,0 0 0 0 527.5,1061.7427 L709.5,1061.7427 A0,0 0 0 0 709.5,1061.7427 L709.5,1054.6099 L729.5,1049.1763 L709.5,1046.6099 L709.5,1046.6099 L699.5,1036.6099 L527.5,1036.6099 A0,0 0 0 0 527.5,1036.6099 " fill="#FBFB77" filter="url(#f1amcfo5x9amkf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M699.5,1036.6099 L699.5,1046.6099 L709.5,1046.6099 L699.5,1036.6099 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="533.5" y="1053.6768">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="586.5" y="1053.6768">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="690.5" y="1053.6768">.</text><ellipse cx="740.5" cy="1049.1763" fill="#FFFFFF" filter="url(#f1amcfo5x9amkf)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="740.5" cy="1049.1763" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1519,398.7188 L1519,423.8516 A0,0 0 0 0 1519,423.8516 L1725,423.8516 A0,0 0 0 0 1725,423.8516 L1725,416.7188 L1745,411.2852 L1725,408.7188 L1725,408.7188 L1715,398.7188 L1519,398.7188 A0,0 0 0 0 1519,398.7188 " fill="#FBFB77" filter="url(#f1amcfo5x9amkf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1715,398.7188 L1715,408.7188 L1725,408.7188 L1715,398.7188 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1525" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1578" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1706" y="415.7856">.</text><ellipse cx="1756" cy="411.2852" fill="#FFFFFF" filter="url(#f1amcfo5x9amkf)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1756" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.25" x2="1253.25" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="1249.25,314.7188,1253.25,324.7188,1257.25,314.7188,1253.25,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="432.6875" y2="452.6875"/><polygon fill="#A80036" points="736.5,442.6875,740.5,452.6875,744.5,442.6875,740.5,446.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="591" x2="591" y1="568.3667" y2="588.3667"/><polygon fill="#A80036" points="587,578.3667,591,588.3667,595,578.3667,591,582.3667" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="568.3667" y2="588.3667"/><polygon fill="#A80036" points="841,578.3667,845,588.3667,849,578.3667,845,582.3667" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="591" x2="591" y1="622.3354" y2="642.3354"/><polygon fill="#A80036" points="587,632.3354,591,642.3354,595,632.3354,591,636.3354" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="622.3354" y2="642.3354"/><polygon fill="#A80036" points="841,632.3354,845,642.3354,849,632.3354,845,636.3354" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="530.6563" y2="562.3667"/><polygon fill="#A80036" points="736.5,552.3667,740.5,562.3667,744.5,552.3667,740.5,556.3667" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="648.3354" y2="658.3354"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="1006.5" y1="658.3354" y2="658.3354"/><polygon fill="#A80036" points="1002.5,596.9487,1006.5,586.9487,1010.5,596.9487,1006.5,592.9487" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1006.5" x2="1006.5" y1="518.6563" y2="658.3354"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1006.5" x2="869.5" y1="518.6563" y2="518.6563"/><polygon fill="#A80036" points="879.5,514.6563,869.5,518.6563,879.5,522.6563,875.5,518.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="611.5" x2="474.5" y1="518.6563" y2="518.6563"/><polygon fill="#A80036" points="470.5,582.9487,474.5,592.9487,478.5,582.9487,474.5,586.9487" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="474.5" x2="474.5" y1="518.6563" y2="670.3354"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="474.5" x2="740.5" y1="670.3354" y2="670.3354"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="670.3354" y2="690.3354"/><polygon fill="#A80036" points="736.5,680.3354,740.5,690.3354,744.5,680.3354,740.5,684.3354" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="486.6563" y2="506.6563"/><polygon fill="#A80036" points="736.5,496.6563,740.5,506.6563,744.5,496.6563,740.5,500.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="793.4341" y2="817.8364"/><polygon fill="#A80036" points="788,807.8364,792,817.8364,796,807.8364,792,811.8364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="923.5" x2="956" y1="781.4341" y2="781.4341"/><polygon fill="#A80036" points="952,824.8208,956,834.8208,960,824.8208,956,828.8208" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="956" y1="781.4341" y2="888.2075"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="804" y1="888.2075" y2="888.2075"/><polygon fill="#A80036" points="814,884.2075,804,888.2075,814,892.2075,810,888.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="851.8052" y2="876.2075"/><polygon fill="#A80036" points="788,866.2075,792,876.2075,796,866.2075,792,870.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="749.4341" y2="817.8364"/><polygon fill="#A80036" points="129.5,807.8364,133.5,817.8364,137.5,807.8364,133.5,811.8364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="749.4341" y2="817.8364"/><polygon fill="#A80036" points="325,807.8364,329,817.8364,333,807.8364,329,811.8364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="749.4341" y2="817.8364"/><polygon fill="#A80036" points="514.5,807.8364,518.5,817.8364,522.5,807.8364,518.5,811.8364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="749.4341" y2="769.4341"/><polygon fill="#A80036" points="788,759.4341,792,769.4341,796,759.4341,792,763.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="851.8052" y2="920.2075"/><polygon fill="#A80036" points="129.5,910.2075,133.5,920.2075,137.5,910.2075,133.5,914.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="851.8052" y2="920.2075"/><polygon fill="#A80036" points="325,910.2075,329,920.2075,333,910.2075,329,914.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="851.8052" y2="920.2075"/><polygon fill="#A80036" points="514.5,910.2075,518.5,920.2075,522.5,910.2075,518.5,914.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="900.2075" y2="920.2075"/><polygon fill="#A80036" points="788,910.2075,792,920.2075,796,910.2075,792,914.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1160" x2="1160" y1="785.2856" y2="809.688"/><polygon fill="#A80036" points="1156,799.688,1160,809.688,1164,799.688,1160,803.688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1312" y1="773.2856" y2="773.2856"/><polygon fill="#A80036" points="1308,816.6724,1312,826.6724,1316,816.6724,1312,820.6724" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1312" x2="1312" y1="773.2856" y2="880.0591"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1312" x2="1172" y1="880.0591" y2="880.0591"/><polygon fill="#A80036" points="1182,876.0591,1172,880.0591,1182,884.0591,1178,880.0591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1160" x2="1160" y1="843.6567" y2="868.0591"/><polygon fill="#A80036" points="1156,858.0591,1160,868.0591,1164,858.0591,1160,862.0591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="696.3354" y2="743.4341"/><polygon fill="#A80036" points="485,733.4341,489,743.4341,493,733.4341,489,737.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1160" x2="1160" y1="696.3354" y2="761.2856"/><polygon fill="#A80036" points="1156,751.2856,1160,761.2856,1164,751.2856,1160,755.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1417.5" x2="1417.5" y1="696.3354" y2="809.688"/><polygon fill="#A80036" points="1413.5,799.688,1417.5,809.688,1421.5,799.688,1417.5,803.688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="926.2075" y2="958.2075"/><polygon fill="#A80036" points="485,948.2075,489,958.2075,493,948.2075,489,952.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1160" x2="1160" y1="892.0591" y2="958.2075"/><polygon fill="#A80036" points="1156,948.2075,1160,958.2075,1164,948.2075,1160,952.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1417.5" x2="1417.5" y1="843.6567" y2="958.2075"/><polygon fill="#A80036" points="1413.5,948.2075,1417.5,958.2075,1421.5,948.2075,1417.5,952.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="964.2075" y2="984.2075"/><polygon fill="#A80036" points="736.5,974.2075,740.5,984.2075,744.5,974.2075,740.5,978.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="1018.1763" y2="1038.1763"/><polygon fill="#A80036" points="736.5,1028.1763,740.5,1038.1763,744.5,1028.1763,740.5,1032.1763" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1178.75" x2="740.5" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="736.5,388.7188,740.5,398.7188,744.5,388.7188,740.5,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1327.75" x2="1756" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1756" x2="1756" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1752,390.2852,1756,400.2852,1760,390.2852,1756,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.25" x2="1253.25" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="1249.25,354.7188,1253.25,364.7188,1257.25,354.7188,1253.25,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[080eede79bda26c90de47e9a9980273c]
+@startuml
+
+title **µRtWare**\nurtHrtSubscriberFetchLatestMessage()\n
+
+
+note
+  - - **subscriber** : urt_hrtsubscriber_t* - -
+  The HRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  - - **payload** : void* - -
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  - - **bytes** : size_t - -
+  Payload size in bytes.
+  - - **latency** : urt_delay_t* - -
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+  :access last read message;
+  while (Timestamp of next message is younger?) is (yes)
+    fork
+      :proceed to next message;
+    fork again
+      :decrement next message's HRT counter;
+    endfork
+  endwhile (no)
+  fork
+
+partition "fetch message" {
+  fork
+    :update message pointer;
+  fork again
+      :copy timestamp of message;
+  fork again
+    :copy message payload;
+  fork again
+    if (Optional output argument ""latency"" given?) then (yes)
+      :set ""latency"" value (now - message origin time);
+    else (no)
+    endif
+  endfork
+}
+
+  fork again
+    if (The HRT counter of any message became 0?) then (yes)
+      :signal topic's condition variable;
+    else (no)
+    endif
+  fork again
+    :reset QoS delay timer;
+  endfork
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtHrtSubscriberFetchLatestMessage.uml b/doc/activitydiagrams/subscriber/urtHrtSubscriberFetchLatestMessage.uml
new file mode 100644
index 0000000..2958988
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtHrtSubscriberFetchLatestMessage.uml
@@ -0,0 +1,85 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtHrtSubscriberFetchLatestMessage()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_hrtsubscriber_t* --
+  The HRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  -- **payload** : void* --
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  -- **bytes** : size_t --
+  Payload size in bytes.
+  -- **latency** : urt_delay_t* --
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+  :access last read message;
+  while (Timestamp of next message is younger?) is (yes)
+    fork
+      :proceed to next message;
+    fork again
+      :decrement next message's HRT counter;
+    endfork
+  endwhile (no)
+  fork
+    !include fetchmessage.iuml
+  fork again
+    if (The HRT counter of any message became 0?) then (yes)
+      :signal topic's condition variable;
+    else (no)
+    endif
+  fork again
+    :reset QoS delay timer;
+  endfork
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtHrtSubscriberFetchNextMessage.svg b/doc/activitydiagrams/subscriber/urtHrtSubscriberFetchNextMessage.svg
new file mode 100644
index 0000000..2c0ccf5
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtHrtSubscriberFetchNextMessage.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="890px" preserveAspectRatio="none" style="width:1865px;height:890px;" version="1.1" viewBox="0 0 1865 890" width="1865px" zoomAndPan="magnify"><defs><filter height="300%" id="f58ooogjib9ui" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="887.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="328" x="767.75" y="47.6611">urtHrtSubscriberFetchNextMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="934.75" y="68.6143"/><path d="M1072.375,72.8594 L1072.375,304.7188 L1560.375,304.7188 L1560.375,82.8594 L1550.375,72.8594 L1072.375,72.8594 " fill="#FBFB77" filter="url(#f58ooogjib9ui)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1550.375,72.8594 L1550.375,82.8594 L1560.375,82.8594 L1550.375,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1203.375" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1207.375" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="1207.375" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1289.375" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1429.375" x2="1560.375" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="1078.375" y="105.0591">The HRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1078.375" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1158.375" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1190.375" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1260.375" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1264.375" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1264.375" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1327.375" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1372.375" x2="1560.375" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="1078.375" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="1078.375" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1128.375" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1164.375" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1267.375" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1271.375" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1271.375" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1316.375" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1365.375" x2="1560.375" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="1078.375" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1240.875" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1244.875" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="1244.875" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1301.875" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1391.875" x2="1560.375" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="1078.375" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="1078.375" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1128.375" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1160.375" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1560.375" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1560.375" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1245.375" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1249.375" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1249.375" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1298.375" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1387.375" x2="1560.375" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1078.375" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1131.375" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1239.375" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1078.375" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1131.375" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1263.375" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="1316.375" cy="334.7188" fill="#000000" filter="url(#f58ooogjib9ui)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1253.875,364.7188,1378.875,364.7188,1390.875,376.7188,1378.875,388.7188,1253.875,388.7188,1241.875,376.7188,1253.875,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1253.875" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1221.875" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1390.875" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="761.25" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="771.25" y="419.8574">lock topic</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="710.75" y="452.6875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="720.75" y="473.8262">proceed to next message</text><rect fill="#000000" filter="url(#f58ooogjib9ui)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1582.5" x="10" y="506.6563"/><rect fill="#FFFFFF" filter="url(#f58ooogjib9ui)" height="231.4063" style="stroke: #000000; stroke-width: 2.0;" width="960" x="22" y="523.458"/><path d="M135,524.458 L135,532.7549 L125,542.7549 L22,542.7549 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="25" y="537.4531">fetch message</text><rect fill="#000000" filter="url(#f58ooogjib9ui)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="940" x="32" y="559.7549"/><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="46" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="56" y="655.2959">update message pointer</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="231" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="241" y="655.2959">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="437" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="447" y="655.2959">copy message payload</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="638" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="648" y="655.2959">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="672" y="655.2959">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="725" y="655.2959">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="672.5,585.7549,911.5,585.7549,923.5,597.7549,911.5,609.7549,672.5,609.7549,660.5,597.7549,672.5,585.7549" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="796" y="619.9653">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="672.5" y="601.563">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="822.5" y="601.563">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="875.5" y="601.563">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="923.5" y="595.1606">no</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="792,692.5283,804,704.5283,792,716.5283,780,704.5283,792,692.5283" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f58ooogjib9ui)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="940" x="32" y="736.5283"/><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="992" y="543.1221"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="220" x="1002" y="564.2607">decrement message's HRT counter</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1003.5" y="660.4932"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1013.5" y="681.6318">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1044.5,612.0908,1179.5,612.0908,1191.5,624.0908,1179.5,636.0908,1044.5,636.0908,1032.5,624.0908,1044.5,612.0908" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1116" y="646.3013">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1044.5" y="627.8989">HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1191.5" y="621.4966">yes</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1112,718.8643,1124,730.8643,1112,742.8643,1100,730.8643,1112,718.8643" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="1280.5" y="626.0088"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="1290.5" y="647.1475">update QoS delay timer wrt. next message</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1306.5,577.6064,1540.5,577.6064,1552.5,589.6064,1540.5,601.6064,1306.5,601.6064,1294.5,589.6064,1306.5,577.6064" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1427.5" y="611.8169">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="1306.5" y="593.4146">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1552.5" y="587.0122">no</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1423.5,684.3799,1435.5,696.3799,1423.5,708.3799,1411.5,696.3799,1423.5,684.3799" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f58ooogjib9ui)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1582.5" x="10" y="774.8643"/><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="753.25" y="800.8643"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="763.25" y="822.0029">unlock topic</text><path d="M588.25,853.2666 L588.25,878.3994 A0,0 0 0 0 588.25,878.3994 L770.25,878.3994 A0,0 0 0 0 770.25,878.3994 L770.25,871.2666 L790.25,865.833 L770.25,863.2666 L770.25,863.2666 L760.25,853.2666 L588.25,853.2666 A0,0 0 0 0 588.25,853.2666 " fill="#FBFB77" filter="url(#f58ooogjib9ui)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M760.25,853.2666 L760.25,863.2666 L770.25,863.2666 L760.25,853.2666 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="594.25" y="870.3335">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="647.25" y="870.3335">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="751.25" y="870.3335">.</text><ellipse cx="801.25" cy="865.833" fill="#FFFFFF" filter="url(#f58ooogjib9ui)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="801.25" cy="865.833" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1602.5,398.7188 L1602.5,423.8516 A0,0 0 0 0 1602.5,423.8516 L1808.5,423.8516 A0,0 0 0 0 1808.5,423.8516 L1808.5,416.7188 L1828.5,411.2852 L1808.5,408.7188 L1808.5,408.7188 L1798.5,398.7188 L1602.5,398.7188 A0,0 0 0 0 1602.5,398.7188 " fill="#FBFB77" filter="url(#f58ooogjib9ui)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1798.5,398.7188 L1798.5,408.7188 L1808.5,408.7188 L1798.5,398.7188 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1608.5" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1661.5" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1789.5" y="415.7856">.</text><ellipse cx="1839.5" cy="411.2852" fill="#FFFFFF" filter="url(#f58ooogjib9ui)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1839.5" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1316.375" x2="1316.375" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="1312.375,314.7188,1316.375,324.7188,1320.375,314.7188,1316.375,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="432.6875" y2="452.6875"/><polygon fill="#A80036" points="797.25,442.6875,801.25,452.6875,805.25,442.6875,801.25,446.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="609.7549" y2="634.1572"/><polygon fill="#A80036" points="788,624.1572,792,634.1572,796,624.1572,792,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="923.5" x2="956" y1="597.7549" y2="597.7549"/><polygon fill="#A80036" points="952,641.1416,956,651.1416,960,641.1416,956,645.1416" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="956" y1="597.7549" y2="704.5283"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="804" y1="704.5283" y2="704.5283"/><polygon fill="#A80036" points="814,700.5283,804,704.5283,814,708.5283,810,704.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="668.126" y2="692.5283"/><polygon fill="#A80036" points="788,682.5283,792,692.5283,796,682.5283,792,686.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="129.5,624.1572,133.5,634.1572,137.5,624.1572,133.5,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="325,624.1572,329,634.1572,333,624.1572,329,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="514.5,624.1572,518.5,634.1572,522.5,624.1572,518.5,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="565.7549" y2="585.7549"/><polygon fill="#A80036" points="788,575.7549,792,585.7549,796,575.7549,792,579.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="129.5,726.5283,133.5,736.5283,137.5,726.5283,133.5,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="325,726.5283,329,736.5283,333,726.5283,329,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="514.5,726.5283,518.5,736.5283,522.5,726.5283,518.5,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="716.5283" y2="736.5283"/><polygon fill="#A80036" points="788,726.5283,792,736.5283,796,726.5283,792,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="636.0908" y2="660.4932"/><polygon fill="#A80036" points="1108,650.4932,1112,660.4932,1116,650.4932,1112,654.4932" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1191.5" x2="1230.5" y1="624.0908" y2="624.0908"/><polygon fill="#A80036" points="1226.5,667.4775,1230.5,677.4775,1234.5,667.4775,1230.5,671.4775" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1230.5" x2="1230.5" y1="624.0908" y2="730.8643"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1230.5" x2="1124" y1="730.8643" y2="730.8643"/><polygon fill="#A80036" points="1134,726.8643,1124,730.8643,1134,734.8643,1130,730.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="694.4619" y2="718.8643"/><polygon fill="#A80036" points="1108,708.8643,1112,718.8643,1116,708.8643,1112,712.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="577.0908" y2="612.0908"/><polygon fill="#A80036" points="1108,602.0908,1112,612.0908,1116,602.0908,1112,606.0908" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="601.6064" y2="626.0088"/><polygon fill="#A80036" points="1419.5,616.0088,1423.5,626.0088,1427.5,616.0088,1423.5,620.0088" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1552.5" x2="1576.5" y1="589.6064" y2="589.6064"/><polygon fill="#A80036" points="1572.5,632.9932,1576.5,642.9932,1580.5,632.9932,1576.5,636.9932" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1576.5" x2="1576.5" y1="589.6064" y2="696.3799"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1576.5" x2="1435.5" y1="696.3799" y2="696.3799"/><polygon fill="#A80036" points="1445.5,692.3799,1435.5,696.3799,1445.5,700.3799,1441.5,696.3799" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="659.9775" y2="684.3799"/><polygon fill="#A80036" points="1419.5,674.3799,1423.5,684.3799,1427.5,674.3799,1423.5,678.3799" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="512.6563" y2="559.7549"/><polygon fill="#A80036" points="485,549.7549,489,559.7549,493,549.7549,489,553.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="512.6563" y2="543.1221"/><polygon fill="#A80036" points="1108,533.1221,1112,543.1221,1116,533.1221,1112,537.1221" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="512.6563" y2="577.6064"/><polygon fill="#A80036" points="1419.5,567.6064,1423.5,577.6064,1427.5,567.6064,1423.5,571.6064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="742.5283" y2="774.8643"/><polygon fill="#A80036" points="485,764.8643,489,774.8643,493,764.8643,489,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="742.8643" y2="774.8643"/><polygon fill="#A80036" points="1108,764.8643,1112,774.8643,1116,764.8643,1112,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="708.3799" y2="774.8643"/><polygon fill="#A80036" points="1419.5,764.8643,1423.5,774.8643,1427.5,764.8643,1423.5,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="486.6563" y2="506.6563"/><polygon fill="#A80036" points="797.25,496.6563,801.25,506.6563,805.25,496.6563,801.25,500.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="780.8643" y2="800.8643"/><polygon fill="#A80036" points="797.25,790.8643,801.25,800.8643,805.25,790.8643,801.25,794.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="834.833" y2="854.833"/><polygon fill="#A80036" points="797.25,844.833,801.25,854.833,805.25,844.833,801.25,848.833" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1241.875" x2="801.25" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="797.25,388.7188,801.25,398.7188,805.25,388.7188,801.25,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1390.875" x2="1839.5" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1839.5" x2="1839.5" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1835.5,390.2852,1839.5,400.2852,1843.5,390.2852,1839.5,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1316.375" x2="1316.375" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="1312.375,354.7188,1316.375,364.7188,1320.375,354.7188,1316.375,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0cf0d9213faec1a02d649e7da5b2dff1]
+@startuml
+
+title **µRtWare**\nurtHrtSubscriberFetchNextMessage()\n
+
+
+note
+  - - **subscriber** : urt_hrtsubscriber_t* - -
+  The HRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  - - **payload** : void* - -
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  - - **bytes** : size_t - -
+  Payload size in bytes.
+  - - **latency** : urt_delay_t* - -
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+  :proceed to next message;
+  fork
+
+partition "fetch message" {
+  fork
+    :update message pointer;
+  fork again
+      :copy timestamp of message;
+  fork again
+    :copy message payload;
+  fork again
+    if (Optional output argument ""latency"" given?) then (yes)
+      :set ""latency"" value (now - message origin time);
+    else (no)
+    endif
+  endfork
+}
+
+  fork again
+    :decrement message's HRT counter;
+    if (HRT counter became 0?) then (yes)
+    else (no)
+      :signal topic's condition variable;
+    endif
+  fork again
+    if (Timestamp of next message is younger?) then (yes)
+      :update QoS delay timer wrt. next message;
+    else (no)
+    endif
+  endfork
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtHrtSubscriberFetchNextMessage.uml b/doc/activitydiagrams/subscriber/urtHrtSubscriberFetchNextMessage.uml
new file mode 100644
index 0000000..d154757
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtHrtSubscriberFetchNextMessage.uml
@@ -0,0 +1,82 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtHrtSubscriberFetchNextMessage()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_hrtsubscriber_t* --
+  The HRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  -- **payload** : void* --
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  -- **bytes** : size_t --
+  Payload size in bytes.
+  -- **latency** : urt_delay_t* --
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+  :proceed to next message;
+  fork
+    !include fetchmessage.iuml
+  fork again
+    :decrement message's HRT counter;
+    if (HRT counter became 0?) then (yes)
+    else (no)
+      :signal topic's condition variable;
+    endif
+  fork again
+    if (Timestamp of next message is younger?) then (yes)
+      :update QoS delay timer wrt. next message;
+    else (no)
+    endif
+  endfork
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtHrtSubscriberInit.svg b/doc/activitydiagrams/subscriber/urtHrtSubscriberInit.svg
new file mode 100644
index 0000000..4a6a6bc
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtHrtSubscriberInit.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="546px" preserveAspectRatio="none" style="width:856px;height:546px;" version="1.1" viewBox="0 0 856 546" width="856px" zoomAndPan="magnify"><defs><filter height="300%" id="f1igvps5y6mpkd" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="382.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="191" x="331.5" y="47.6611">urtHrtSubscriberInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="430" y="68.6143"/><path d="M551,72.8594 L551,128.2578 L844,128.2578 L844,82.8594 L834,72.8594 L551,72.8594 " fill="#FBFB77" filter="url(#f1igvps5y6mpkd)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M834,72.8594 L834,82.8594 L844,82.8594 L834,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="551" x2="561.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="565.5" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="565.5" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="653.5" y="89.4263">: urt_hrtsubscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="833.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="833.5" x2="844" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="198" x="557" y="105.0591">The HRT subscriber to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="557" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="637" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="669" y="120.1919">.</text><ellipse cx="697.5" cy="158.2578" fill="#000000" filter="url(#f1igvps5y6mpkd)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,178.2578 L10,490.9141 A0,0 0 0 0 10,490.9141 L612,490.9141 A0,0 0 0 0 612,490.9141 L612,338.5859 L632,334.5859 L612,330.5859 L612,188.2578 L602,178.2578 L10,178.2578 A0,0 0 0 0 10,178.2578 " fill="#FBFB77" filter="url(#f1igvps5y6mpkd)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M602,178.2578 L602,188.2578 L612,188.2578 L602,178.2578 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="240" y1="190.8242" y2="190.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="244" y="194.8247">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="382" x2="612" y1="190.8242" y2="190.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="16" y="210.4575">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="57" y="210.4575">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="72" y="210.4575">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="16" y="225.5903">urtEventListenerInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="82" x="145" y="225.5903">evtListener</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="227" y="225.5903">)</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="16" y="240.7231">lastMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="113" y="240.7231">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="128" y="240.7231">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="128" x="16" y="255.856">lastMessageTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="148" y="255.856">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="182.5" y1="266.4883" y2="266.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="186.5" y="270.4888">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="439.5" x2="612" y1="266.4883" y2="266.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="101" x="16" y="286.1216">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="121" y="286.1216">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="173" x="16" y="301.2544">numMessagesReceived</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="193" y="301.2544">← 0</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="246.5" y1="311.8867" y2="311.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="250.5" y="315.8872">urt_hrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="612" y1="311.8867" y2="311.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="16" y="331.52">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="52" y="331.52">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="67" y="331.52">NULL</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="138.5" y1="342.1523" y2="342.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="337" x="142.5" y="346.1528">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="483.5" x2="612" y1="342.1523" y2="342.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="110" x="16" y="361.7856">deadlineOffset</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="130" y="361.7856">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="78" x="16" y="376.9185">urtTimerInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="133" x="94" y="376.9185">qosDeadlineTimer</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="227" y="376.9185">)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="159.5" y1="387.5508" y2="387.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="295" x="163.5" y="391.5513">URT_CFG_PUBSUB_QOS_RATECHECK == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="462.5" x2="612" y1="387.5508" y2="387.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="103" x="16" y="407.1841">expectedRate</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="123" y="407.1841">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="157.5" y1="417.8164" y2="417.8164"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="299" x="161.5" y="421.8169">URT_CFG_PUBSUB_QOS_JITTERCHECK == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="464.5" x2="612" y1="417.8164" y2="417.8164"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="66" x="16" y="437.4497">maxJitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="86" y="437.4497">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="448.082" y2="448.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="573" x="24.5" y="452.0825">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="601.5" x2="612" y1="448.082" y2="448.082"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="84" x="16" y="467.7153">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="104" y="467.7153">← 0xF..F</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="16" y="482.8481">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="108" y="482.8481">← 0</text><rect fill="#FEFECE" filter="url(#f1igvps5y6mpkd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="632" y="317.6016"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="642" y="338.7402">initialize members</text><path d="M484.5,509.3477 L484.5,534.4805 A0,0 0 0 0 484.5,534.4805 L666.5,534.4805 A0,0 0 0 0 666.5,534.4805 L666.5,527.3477 L686.5,521.9141 L666.5,519.3477 L666.5,519.3477 L656.5,509.3477 L484.5,509.3477 A0,0 0 0 0 484.5,509.3477 " fill="#FBFB77" filter="url(#f1igvps5y6mpkd)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M656.5,509.3477 L656.5,519.3477 L666.5,519.3477 L656.5,509.3477 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="490.5" y="526.4146">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="543.5" y="526.4146">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="647.5" y="526.4146">.</text><ellipse cx="697.5" cy="521.9141" fill="#FFFFFF" filter="url(#f1igvps5y6mpkd)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="697.5" cy="521.9141" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="697.5" x2="697.5" y1="128.2578" y2="148.2578"/><polygon fill="#A80036" points="693.5,138.2578,697.5,148.2578,701.5,138.2578,697.5,142.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="697.5" x2="697.5" y1="168.2578" y2="317.6016"/><polygon fill="#A80036" points="693.5,307.6016,697.5,317.6016,701.5,307.6016,697.5,311.6016" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="697.5" x2="697.5" y1="351.5703" y2="510.9141"/><polygon fill="#A80036" points="693.5,500.9141,697.5,510.9141,701.5,500.9141,697.5,504.9141" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[81ac2b94e062302558d5ae02b1b7b0ad]
+@startuml
+
+title **µRtWare**\nurtHrtSubscriberInit()\n
+
+
+note
+  - - ""**subscriber** : urt_hrtsubscriber_t*"" - -
+  The HRT subscriber to initialize.
+  Must not be ""NULL"".
+endnote
+
+
+start
+:initialize members;
+note
+  - - urt_basesubscriber_t - -
+  **topic** ← ""NULL""
+  urtEventListenerInit(**evtListener**)
+  **lastMessage** ← ""NULL""
+  **lastMessageTime** ← 0
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **sumLatencies** ← 0
+  **numMessagesReceived** ← 0
+  - - urt_hrtsubscriber_t - -
+  **next** ← ""NULL""
+  .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+  **deadlineOffset** ← 0
+  urtTimerInit(**qosDeadlineTimer**)
+  .. URT_CFG_PUBSUB_QOS_RATECHECK == true ..
+  **expectedRate** ← 0
+  .. URT_CFG_PUBSUB_QOS_JITTERCHECK == true ..
+  **maxJitter** ← 0
+  .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true ..
+  **minLatency** ← 0xF..F
+  **maxLatency** ← 0
+endnote
+stop
+note
+  Returns ""URT_STATUS_OK"".
+endnote
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtHrtSubscriberInit.uml b/doc/activitydiagrams/subscriber/urtHrtSubscriberInit.uml
new file mode 100644
index 0000000..09b4d95
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtHrtSubscriberInit.uml
@@ -0,0 +1,69 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtHrtSubscriberInit()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- ""**subscriber** : urt_hrtsubscriber_t*"" --
+  The HRT subscriber to initialize.
+  Must not be ""NULL"".
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+:initialize members;
+note
+  -- urt_basesubscriber_t --
+  **topic** ← ""NULL""
+  urtEventListenerInit(**evtListener**)
+  **lastMessage** ← ""NULL""
+  **lastMessageTime** ← 0
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **sumLatencies** ← 0
+  **numMessagesReceived** ← 0
+  -- urt_hrtsubscriber_t --
+  **next** ← ""NULL""
+  .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+  **deadlineOffset** ← 0
+  urtTimerInit(**qosDeadlineTimer**)
+  .. URT_CFG_PUBSUB_QOS_RATECHECK == true ..
+  **expectedRate** ← 0
+  .. URT_CFG_PUBSUB_QOS_JITTERCHECK == true ..
+  **maxJitter** ← 0
+  .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true ..
+  **minLatency** ← 0xF..F
+  **maxLatency** ← 0
+endnote
+stop
+note
+  Returns ""URT_STATUS_OK"".
+endnote
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtHrtSubscriberSubscribe.svg b/doc/activitydiagrams/subscriber/urtHrtSubscriberSubscribe.svg
new file mode 100644
index 0000000..25e12ba
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtHrtSubscriberSubscribe.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1081px" preserveAspectRatio="none" style="width:3055px;height:1081px;" version="1.1" viewBox="0 0 3055 1081" width="3055px" zoomAndPan="magnify"><defs><filter height="300%" id="fnkdh20ze193k" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="1482.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="247" x="1403.25" y="47.6611">urtHrtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1529.75" y="68.6143"/><path d="M600.5,72.8594 L600.5,440.9141 L1300.5,440.9141 L1300.5,82.8594 L1290.5,72.8594 L600.5,72.8594 " fill="#FBFB77" filter="url(#fnkdh20ze193k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1290.5,72.8594 L1290.5,82.8594 L1300.5,82.8594 L1290.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="837.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="841.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="841.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="923.5" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1063.5" x2="1300.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="327" x="606.5" y="105.0591">The HRT subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="606.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="686.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="718.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="884.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="888.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="888.5" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="929.5" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1016.5" x2="1300.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="606.5" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="606.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="686.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="718.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="851.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="855.5" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="855.5" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="934.5" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1049.5" x2="1300.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="606.5" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="642.5" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="606.5" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="606.5" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="606.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="656.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="692.5" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="873" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="877" y="255.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="877" y="255.8872">deadline</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="945" y="255.8872">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1028" x2="1300.5" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="606.5" y="271.52">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="325" x="606.5" y="286.6528">A value of 0 indicates that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="887.5" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="891.5" y="301.2856"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="35" x="891.5" y="301.2856">jitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="930.5" y="301.2856">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1013.5" x2="1300.5" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="606.5" y="316.9185">Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="606.5" y="332.0513">A value of 0 indicates that jitter is of no concern.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="10" x="606.5" y="347.1841">--</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="620.5" y="347.1841">rate</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="77" x="654.5" y="347.1841">: urt-delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="621" x="606.5" y="362.3169">Expected minimum rate of new messages (= mamximum time between consecutive messages).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="309" x="606.5" y="377.4497">A value of 0 indicates, that rate is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="1300.5" y1="385.5156" y2="385.5156"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="1300.5" y1="387.5156" y2="387.5156"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="879.5" y1="398.082" y2="398.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="883.5" y="402.0825"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="883.5" y="402.0825">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="932.5" y="402.0825">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1021.5" x2="1300.5" y1="398.082" y2="398.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="606.5" y="417.7153">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="659.5" y="417.7153">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="767.5" y="417.7153">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="606.5" y="432.8481">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="659.5" y="432.8481">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="791.5" y="432.8481">if the subscriber is already associated to a topic.</text><ellipse cx="950.5" cy="470.9141" fill="#000000" filter="url(#fnkdh20ze193k)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fnkdh20ze193k)" points="893,500.9141,1008,500.9141,1020,512.9141,1008,524.9141,893,524.9141,881,512.9141,893,500.9141" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="893" y="516.7222">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="861" y="510.3198">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1020" y="510.3198">no</text><path d="M10,534.9141 L10,560.0469 A0,0 0 0 0 10,560.0469 L216,560.0469 A0,0 0 0 0 216,560.0469 L216,552.9141 L236,547.4805 L216,544.9141 L216,544.9141 L206,534.9141 L10,534.9141 A0,0 0 0 0 10,534.9141 " fill="#FBFB77" filter="url(#fnkdh20ze193k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M206,534.9141 L206,544.9141 L216,544.9141 L206,534.9141 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="551.981">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="69" y="551.981">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="197" y="551.981">.</text><ellipse cx="247" cy="547.4805" fill="#FFFFFF" filter="url(#fnkdh20ze193k)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="247" cy="547.4805" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="592" x="1380" y="534.9141"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1394" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1404" y="582.0527">set topic</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="1497" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1507" y="582.0527">set deadline offset</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="135" x="1663" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="1673" y="582.0527">set maximum jitter</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="1826" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1836" y="582.0527">set expected rate</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="592" x="1380" y="614.8828"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1636" y="640.8828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1646" y="662.0215">lock topic</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2776.5" x="268" y="694.8516"/><rect fill="#FFFFFF" filter="url(#fnkdh20ze193k)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1168" x="280" y="767.3638"/><path d="M437,768.3638 L437,776.6606 L427,786.6606 L280,786.6606 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="283" y="781.3589">contribute messages</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="803.6606"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="304" y="829.6606"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="314" y="850.7993">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="806" y="829.6606"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="816" y="850.7993">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="883.6294"/><polygon fill="#FEFECE" filter="url(#fnkdh20ze193k)" points="794,720.8516,934,720.8516,946,732.8516,934,744.8516,794,744.8516,782,732.8516,794,720.8516" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="868" y="755.062">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="794" y="736.6597">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="946" y="730.2573">no</text><polygon fill="#FEFECE" filter="url(#fnkdh20ze193k)" points="864,921.6294,876,933.6294,864,945.6294,852,933.6294,864,921.6294" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="664" x="1498" y="795.5122"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1512" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1522" y="842.6509">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="297" x="1853" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="277" x="1863" y="842.6509">copy timestamp from topic's latest message</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="664" x="1498" y="875.481"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="2172" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="2182" y="842.6509">register to topic's event source</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="633.5" x="2399" y="795.5122"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="287" x="2411" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="2421" y="842.6509">insert self to topic's list of HRT subscribers</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="302" x="2718.5" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="282" x="2728.5" y="842.6509">increment topic's counter of HRT subscribers</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="633.5" x="2399" y="875.481"/><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2776.5" x="268" y="965.6294"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1628" y="991.6294"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1638" y="1012.7681">unlock topic</text><path d="M1463,1044.0317 L1463,1069.1646 A0,0 0 0 0 1463,1069.1646 L1645,1069.1646 A0,0 0 0 0 1645,1069.1646 L1645,1062.0317 L1665,1056.5981 L1645,1054.0317 L1645,1054.0317 L1635,1044.0317 L1463,1044.0317 A0,0 0 0 0 1463,1044.0317 " fill="#FBFB77" filter="url(#fnkdh20ze193k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1635,1044.0317 L1635,1054.0317 L1645,1054.0317 L1635,1044.0317 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1469" y="1061.0986">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1522" y="1061.0986">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1626" y="1061.0986">.</text><ellipse cx="1676" cy="1056.5981" fill="#FFFFFF" filter="url(#fnkdh20ze193k)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1676" cy="1056.5981" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="950.5" x2="950.5" y1="440.9141" y2="460.9141"/><polygon fill="#A80036" points="946.5,450.9141,950.5,460.9141,954.5,450.9141,950.5,454.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.5" x2="1431.5" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1427.5,550.9141,1431.5,560.9141,1435.5,550.9141,1431.5,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1566" x2="1566" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1562,550.9141,1566,560.9141,1570,550.9141,1566,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1730.5" x2="1730.5" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1726.5,550.9141,1730.5,560.9141,1734.5,550.9141,1730.5,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1892" x2="1892" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1888,550.9141,1892,560.9141,1896,550.9141,1892,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.5" x2="1431.5" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1427.5,604.8828,1431.5,614.8828,1435.5,604.8828,1431.5,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1566" x2="1566" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1562,604.8828,1566,614.8828,1570,604.8828,1566,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1730.5" x2="1730.5" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1726.5,604.8828,1730.5,614.8828,1734.5,604.8828,1730.5,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1892" x2="1892" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1888,604.8828,1892,614.8828,1896,604.8828,1892,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="620.8828" y2="640.8828"/><polygon fill="#A80036" points="1672,630.8828,1676,640.8828,1680,630.8828,1676,634.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="809.6606" y2="829.6606"/><polygon fill="#A80036" points="537,819.6606,541,829.6606,545,819.6606,541,823.6606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="809.6606" y2="829.6606"/><polygon fill="#A80036" points="1111,819.6606,1115,829.6606,1119,819.6606,1115,823.6606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="863.6294" y2="883.6294"/><polygon fill="#A80036" points="537,873.6294,541,883.6294,545,873.6294,541,877.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="863.6294" y2="883.6294"/><polygon fill="#A80036" points="1111,873.6294,1115,883.6294,1119,873.6294,1115,877.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="744.8516" y2="803.6606"/><polygon fill="#A80036" points="860,793.6606,864,803.6606,868,793.6606,864,797.6606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="946" x2="1458" y1="732.8516" y2="732.8516"/><polygon fill="#A80036" points="1454,828.4966,1458,838.4966,1462,828.4966,1458,832.4966" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="1458" y1="732.8516" y2="933.6294"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="876" y1="933.6294" y2="933.6294"/><polygon fill="#A80036" points="886,929.6294,876,933.6294,886,937.6294,882,933.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="889.6294" y2="921.6294"/><polygon fill="#A80036" points="860,911.6294,864,921.6294,868,911.6294,864,915.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="1664.5,811.5122,1668.5,821.5122,1672.5,811.5122,1668.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2001.5" x2="2001.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="1997.5,811.5122,2001.5,821.5122,2005.5,811.5122,2001.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="1664.5,865.481,1668.5,875.481,1672.5,865.481,1668.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2001.5" x2="2001.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="1997.5,865.481,2001.5,875.481,2005.5,865.481,2001.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2554.5" x2="2554.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="2550.5,811.5122,2554.5,821.5122,2558.5,811.5122,2554.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2869.5" x2="2869.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="2865.5,811.5122,2869.5,821.5122,2873.5,811.5122,2869.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2554.5" x2="2554.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="2550.5,865.481,2554.5,875.481,2558.5,865.481,2554.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2869.5" x2="2869.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="2865.5,865.481,2869.5,875.481,2873.5,865.481,2869.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="700.8516" y2="720.8516"/><polygon fill="#A80036" points="860,710.8516,864,720.8516,868,710.8516,864,714.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="700.8516" y2="795.5122"/><polygon fill="#A80036" points="1827,785.5122,1831,795.5122,1835,785.5122,1831,789.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2280.5" x2="2280.5" y1="700.8516" y2="821.5122"/><polygon fill="#A80036" points="2276.5,811.5122,2280.5,821.5122,2284.5,811.5122,2280.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2712" x2="2712" y1="700.8516" y2="795.5122"/><polygon fill="#A80036" points="2708,785.5122,2712,795.5122,2716,785.5122,2712,789.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="945.6294" y2="965.6294"/><polygon fill="#A80036" points="860,955.6294,864,965.6294,868,955.6294,864,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="881.481" y2="965.6294"/><polygon fill="#A80036" points="1827,955.6294,1831,965.6294,1835,955.6294,1831,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2280.5" x2="2280.5" y1="855.481" y2="965.6294"/><polygon fill="#A80036" points="2276.5,955.6294,2280.5,965.6294,2284.5,955.6294,2280.5,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2712" x2="2712" y1="881.481" y2="965.6294"/><polygon fill="#A80036" points="2708,955.6294,2712,965.6294,2716,955.6294,2712,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="674.8516" y2="694.8516"/><polygon fill="#A80036" points="1672,684.8516,1676,694.8516,1680,684.8516,1676,688.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="971.6294" y2="991.6294"/><polygon fill="#A80036" points="1672,981.6294,1676,991.6294,1680,981.6294,1676,985.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="1025.5981" y2="1045.5981"/><polygon fill="#A80036" points="1672,1035.5981,1676,1045.5981,1680,1035.5981,1676,1039.5981" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="881" x2="247" y1="512.9141" y2="512.9141"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247" x2="247" y1="512.9141" y2="536.4805"/><polygon fill="#A80036" points="243,526.4805,247,536.4805,251,526.4805,247,530.4805" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1020" x2="1676" y1="512.9141" y2="512.9141"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="512.9141" y2="534.9141"/><polygon fill="#A80036" points="1672,524.9141,1676,534.9141,1680,524.9141,1676,528.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="950.5" x2="950.5" y1="480.9141" y2="500.9141"/><polygon fill="#A80036" points="946.5,490.9141,950.5,500.9141,954.5,490.9141,950.5,494.9141" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[05ea0b8d1b8acbc1342e2094f7f7a925]
+@startuml
+
+title **µRtWare**\nurtHrtSubscriberSubscribe()\n
+
+
+note
+  - - **subscriber** : urt_hrtsubscriber_t* - -
+  The HRT subscriber which shall subscribe to a topic.
+  Must not be ""NULL"".
+  - - **topic** : urt_topic_t* - -
+  The topic to subscribe to.
+  Must not be ""NULL"".
+  - - **messages** : urt_message_t* - -
+  ""NULL"" terminated list of messages to contribute to the topic.
+  Messages must not be associated to another topic.
+  Once a message has been contributed, it cannot be removed later.
+  May be ""NULL"" (no messages to contribute).
+  - - **deadline** : urt_delay_t - -
+  Maximum latency to consume messages.
+  A value of 0 indicates that latency is of no concern.
+  - - **jitter** : urt_delay_t - -
+  Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.
+  A value of 0 indicates that jitter is of no concern.
+  - - **rate** : urt-delay_t
+  Expected minimum rate of new messages (= mamximum time between consecutive messages).
+  A value of 0 indicates, that rate is of no concern.
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is already associated to a topic.
+endnote
+
+
+start
+if (Is topic already set?) then (yes)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+else (no)
+  fork
+    :set topic;
+  fork again
+    :set deadline offset;
+  fork again
+    :set maximum jitter;
+  fork again
+    :set expected rate;
+  endfork
+  :lock topic;
+  fork
+    if (Messages to contribute?) then (yes)
+
+partition "contribute messages" {
+  fork
+    :set next pointer of topic's latest message to first message to contribute;
+  fork again
+    :set next pointer of last message to contribute to the message after the topic's latest message;
+  endfork
+}
+
+    else (no)
+    endif
+  fork again
+    fork
+      :set message pointer to topic's latest message;
+    fork again
+      :copy timestamp from topic's latest message;
+    endfork
+  fork again
+    :register to topic's event source;
+  fork again
+    fork
+      :insert self to topic's list of HRT subscribers;
+    fork again
+      :increment topic's counter of HRT subscribers;
+    endfork
+  endfork
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtHrtSubscriberSubscribe.uml b/doc/activitydiagrams/subscriber/urtHrtSubscriberSubscribe.uml
new file mode 100644
index 0000000..098cce9
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtHrtSubscriberSubscribe.uml
@@ -0,0 +1,105 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtHrtSubscriberSubscribe()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_hrtsubscriber_t* --
+  The HRT subscriber which shall subscribe to a topic.
+  Must not be ""NULL"".
+  -- **topic** : urt_topic_t* --
+  The topic to subscribe to.
+  Must not be ""NULL"".
+  -- **messages** : urt_message_t* --
+  ""NULL"" terminated list of messages to contribute to the topic.
+  Messages must not be associated to another topic.
+  Once a message has been contributed, it cannot be removed later.
+  May be ""NULL"" (no messages to contribute).
+  -- **deadline** : urt_delay_t --
+  Maximum latency to consume messages.
+  A value of 0 indicates that latency is of no concern.
+  -- **jitter** : urt_delay_t --
+  Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.
+  A value of 0 indicates that jitter is of no concern.
+  -- **rate** : urt-delay_t
+  Expected minimum rate of new messages (= mamximum time between consecutive messages).
+  A value of 0 indicates, that rate is of no concern.
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is already associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Is topic already set?) then (yes)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+else (no)
+  fork
+    :set topic;
+  fork again
+    :set deadline offset;
+  fork again
+    :set maximum jitter;
+  fork again
+    :set expected rate;
+  endfork
+  :lock topic;
+  fork
+    if (Messages to contribute?) then (yes)
+      !include ../contributemessages.iuml
+    else (no)
+    endif
+  fork again
+    fork
+      :set message pointer to topic's latest message;
+    fork again
+      :copy timestamp from topic's latest message;
+    endfork
+  fork again
+    :register to topic's event source;
+  fork again
+    fork
+      :insert self to topic's list of HRT subscribers;
+    fork again
+      :increment topic's counter of HRT subscribers;
+    endfork
+  endfork
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtHrtSubscriberUnsubscribe.svg b/doc/activitydiagrams/subscriber/urtHrtSubscriberUnsubscribe.svg
new file mode 100644
index 0000000..e38de76
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtHrtSubscriberUnsubscribe.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1116px" preserveAspectRatio="none" style="width:1906px;height:1116px;" version="1.1" viewBox="0 0 1906 1116" width="1906px" zoomAndPan="magnify"><defs><filter height="300%" id="f1ai3q21p4d2f8" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="907.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="269" x="817.5" y="47.6611">urtHrtSubscriberUnsubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="955" y="68.6143"/><path d="M838.75,72.8594 L838.75,183.6563 A0,0 0 0 0 838.75,183.6563 L1326.75,183.6563 A0,0 0 0 0 1326.75,183.6563 L1326.75,132.2578 L1346.75,128.2578 L1326.75,124.2578 L1326.75,82.8594 L1316.75,72.8594 L838.75,72.8594 A0,0 0 0 0 838.75,72.8594 " fill="#FBFB77" filter="url(#f1ai3q21p4d2f8)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1316.75,72.8594 L1316.75,82.8594 L1326.75,82.8594 L1316.75,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="838.75" x2="969.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="973.75" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="973.75" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1055.75" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1195.75" x2="1326.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="252" x="844.75" y="105.0591">The HRT subscriber to be unsubscribed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="844.75" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="924.75" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="956.75" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="838.75" x2="1326.75" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="838.75" x2="1326.75" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="838.75" x2="1011.75" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1015.75" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1015.75" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1064.75" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1153.75" x2="1326.75" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="844.75" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="897.75" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="68" x="1005.75" y="160.4575">on sucess.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="844.75" y="175.5903">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="897.75" y="175.5903">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1029.75" y="175.5903">if the subscriber is not associated to a topic.</text><ellipse cx="1356.75" cy="128.2578" fill="#000000" filter="url(#f1ai3q21p4d2f8)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" points="1294.25,203.6563,1419.25,203.6563,1431.25,215.6563,1419.25,227.6563,1294.25,227.6563,1282.25,215.6563,1294.25,203.6563" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1294.25" y="219.4644">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1262.25" y="213.062">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1431.25" y="213.062">no</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="781.5" y="237.6563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="791.5" y="258.7949">lock topic</text><rect fill="#000000" filter="url(#f1ai3q21p4d2f8)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1623" x="10" y="291.625"/><path d="M22,492.8164 L22,517.9492 A0,0 0 0 0 22,517.9492 L323,517.9492 A0,0 0 0 0 323,517.9492 L323,510.8164 L343,505.3828 L323,502.8164 L323,502.8164 L313,492.8164 L22,492.8164 A0,0 0 0 0 22,492.8164 " fill="#FBFB77" filter="url(#f1ai3q21p4d2f8)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M313,492.8164 L313,502.8164 L323,502.8164 L313,492.8164 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="280" x="28" y="509.8833">Must be within lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="343" y="488.3984"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="353" y="509.5371">unregister event</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="214" x="495" y="488.3984"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="194" x="505" y="509.5371">decrement topic's HRT counter</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="312" x="737" y="405.5117"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="292" x="747" y="426.6504">remove self from topic's list of HRT subscribers</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="218" x="784" y="522.8828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="198" x="794" y="544.0215">update QoS rate timer (@topic)</text><polygon fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" points="798,474.4805,988,474.4805,1000,486.4805,988,498.4805,798,498.4805,786,486.4805,798,474.4805" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="897" y="508.6909">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="798" y="490.2886">Was the most critical subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1000" y="483.8862">no</text><polygon fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" points="893,580.7383,905,592.7383,893,604.7383,881,592.7383,893,580.7383" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="1262.5" y="317.625"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="1272.5" y="338.7637">access last read message</text><rect fill="#000000" filter="url(#f1ai3q21p4d2f8)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="506" x="1101" y="432.3984"/><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="1115" y="458.3984"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="1125" y="479.5371">proceed to next message</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="271" x="1324" y="458.3984"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="251" x="1334" y="479.5371">decrement next message's HRT counter</text><rect fill="#000000" filter="url(#f1ai3q21p4d2f8)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="506" x="1101" y="512.3672"/><polygon fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" points="1238,371.5938,1472,371.5938,1484,383.5938,1472,395.5938,1238,395.5938,1226,383.5938,1238,371.5938" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1359" y="405.8042">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="1238" y="387.4019">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1212" y="380.9995">no</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1246.5" y="625.2539"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1256.5" y="646.3926">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" points="1227,576.8516,1483,576.8516,1495,588.8516,1483,600.8516,1227,600.8516,1215,588.8516,1227,576.8516" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1359" y="611.062">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="256" x="1227" y="592.6597">The HRT counter of any message became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1495" y="586.2573">no</text><polygon fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" points="1355,679.2227,1367,691.2227,1355,703.2227,1343,691.2227,1355,679.2227" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1ai3q21p4d2f8)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1623" x="10" y="723.2227"/><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="773.5" y="749.2227"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="783.5" y="770.3613">unlock topic</text><path d="M142,793.1914 L142,1060.4492 A0,0 0 0 0 142,1060.4492 L744,1060.4492 A0,0 0 0 0 744,1060.4492 L744,930.8203 L764,926.8203 L744,922.8203 L744,803.1914 L734,793.1914 L142,793.1914 A0,0 0 0 0 142,793.1914 " fill="#FBFB77" filter="url(#f1ai3q21p4d2f8)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M734,793.1914 L734,803.1914 L744,803.1914 L734,793.1914 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="142" x2="372" y1="805.7578" y2="805.7578"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="376" y="809.7583">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="514" x2="744" y1="805.7578" y2="805.7578"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="148" y="825.3911">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="189" y="825.3911">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="204" y="825.3911">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="148" y="840.5239">lastMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="245" y="840.5239">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="260" y="840.5239">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="128" x="148" y="855.6567">lastMessageTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="280" y="855.6567">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="142" x2="314.5" y1="866.2891" y2="866.2891"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="318.5" y="870.2896">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="571.5" x2="744" y1="866.2891" y2="866.2891"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="101" x="148" y="885.9224">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="253" y="885.9224">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="173" x="148" y="901.0552">numMessagesReceived</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="325" y="901.0552">← 0</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="142" x2="378.5" y1="911.6875" y2="911.6875"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="382.5" y="915.688">urt_hrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="507.5" x2="744" y1="911.6875" y2="911.6875"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="142" x2="270.5" y1="926.8203" y2="926.8203"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="337" x="274.5" y="930.8208">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="615.5" x2="744" y1="926.8203" y2="926.8203"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="110" x="148" y="946.4536">deadlineOffset</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="262" y="946.4536">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="142" x2="287" y1="957.0859" y2="957.0859"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="304" x="291" y="961.0864">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="599" x2="744" y1="957.0859" y2="957.0859"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="103" x="148" y="976.7192">expectedRate</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="255" y="976.7192">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="142" x2="285" y1="987.3516" y2="987.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="289" y="991.3521">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="601" x2="744" y1="987.3516" y2="987.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="66" x="148" y="1006.9849">maxJitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="218" y="1006.9849">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="142" x2="152.5" y1="1017.6172" y2="1017.6172"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="573" x="156.5" y="1021.6177">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="733.5" x2="744" y1="1017.6172" y2="1017.6172"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="84" x="148" y="1037.2505">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="236" y="1037.2505">← 0xF..F</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="148" y="1052.3833">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="240" y="1052.3833">← 0</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="764" y="909.8359"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="774" y="930.9746">reset members</text><path d="M608.5,1078.8828 L608.5,1104.0156 A0,0 0 0 0 608.5,1104.0156 L790.5,1104.0156 A0,0 0 0 0 790.5,1104.0156 L790.5,1096.8828 L810.5,1091.4492 L790.5,1088.8828 L790.5,1088.8828 L780.5,1078.8828 L608.5,1078.8828 A0,0 0 0 0 608.5,1078.8828 " fill="#FBFB77" filter="url(#f1ai3q21p4d2f8)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M780.5,1078.8828 L780.5,1088.8828 L790.5,1088.8828 L780.5,1078.8828 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="614.5" y="1095.9497">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="667.5" y="1095.9497">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="771.5" y="1095.9497">.</text><ellipse cx="821.5" cy="1091.4492" fill="#FFFFFF" filter="url(#f1ai3q21p4d2f8)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="821.5" cy="1091.4492" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1643,237.6563 L1643,262.7891 A0,0 0 0 0 1643,262.7891 L1849,262.7891 A0,0 0 0 0 1849,262.7891 L1849,255.6563 L1869,250.2227 L1849,247.6563 L1849,247.6563 L1839,237.6563 L1643,237.6563 A0,0 0 0 0 1643,237.6563 " fill="#FBFB77" filter="url(#f1ai3q21p4d2f8)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1839,237.6563 L1839,247.6563 L1849,247.6563 L1839,237.6563 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1649" y="254.7231">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1702" y="254.7231">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1830" y="254.7231">.</text><ellipse cx="1880" cy="250.2227" fill="#FFFFFF" filter="url(#f1ai3q21p4d2f8)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1880" cy="250.2227" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="893" x2="893" y1="498.4805" y2="522.8828"/><polygon fill="#A80036" points="889,512.8828,893,522.8828,897,512.8828,893,516.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1000" x2="1012" y1="486.4805" y2="486.4805"/><polygon fill="#A80036" points="1008,529.8672,1012,539.8672,1016,529.8672,1012,533.8672" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1012" x2="1012" y1="486.4805" y2="592.7383"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1012" x2="905" y1="592.7383" y2="592.7383"/><polygon fill="#A80036" points="915,588.7383,905,592.7383,915,596.7383,911,592.7383" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="893" x2="893" y1="556.8516" y2="580.7383"/><polygon fill="#A80036" points="889,570.7383,893,580.7383,897,570.7383,893,574.7383" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="893" x2="893" y1="439.4805" y2="474.4805"/><polygon fill="#A80036" points="889,464.4805,893,474.4805,897,464.4805,893,468.4805" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1205.5" x2="1205.5" y1="438.3984" y2="458.3984"/><polygon fill="#A80036" points="1201.5,448.3984,1205.5,458.3984,1209.5,448.3984,1205.5,452.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1459.5" x2="1459.5" y1="438.3984" y2="458.3984"/><polygon fill="#A80036" points="1455.5,448.3984,1459.5,458.3984,1463.5,448.3984,1459.5,452.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1205.5" x2="1205.5" y1="492.3672" y2="512.3672"/><polygon fill="#A80036" points="1201.5,502.3672,1205.5,512.3672,1209.5,502.3672,1205.5,506.3672" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1459.5" x2="1459.5" y1="492.3672" y2="512.3672"/><polygon fill="#A80036" points="1455.5,502.3672,1459.5,512.3672,1463.5,502.3672,1459.5,506.3672" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="395.5938" y2="432.3984"/><polygon fill="#A80036" points="1351,422.3984,1355,432.3984,1359,422.3984,1355,426.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="518.3672" y2="530.3672"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1619" y1="530.3672" y2="530.3672"/><polygon fill="#A80036" points="1615,466.9805,1619,456.9805,1623,466.9805,1619,462.9805" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1619" x2="1619" y1="383.5938" y2="530.3672"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1619" x2="1484" y1="383.5938" y2="383.5938"/><polygon fill="#A80036" points="1494,379.5938,1484,383.5938,1494,387.5938,1490,383.5938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1226" x2="1089" y1="383.5938" y2="383.5938"/><polygon fill="#A80036" points="1085,452.9805,1089,462.9805,1093,452.9805,1089,456.9805" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1089" x2="1089" y1="383.5938" y2="542.3672"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1089" x2="1355" y1="542.3672" y2="542.3672"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="542.3672" y2="576.8516"/><polygon fill="#A80036" points="1351,566.8516,1355,576.8516,1359,566.8516,1355,570.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="351.5938" y2="371.5938"/><polygon fill="#A80036" points="1351,361.5938,1355,371.5938,1359,361.5938,1355,365.5938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="600.8516" y2="625.2539"/><polygon fill="#A80036" points="1351,615.2539,1355,625.2539,1359,615.2539,1355,619.2539" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1495" x2="1507" y1="588.8516" y2="588.8516"/><polygon fill="#A80036" points="1503,632.2383,1507,642.2383,1511,632.2383,1507,636.2383" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1507" x2="1507" y1="588.8516" y2="691.2227"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1507" x2="1367" y1="691.2227" y2="691.2227"/><polygon fill="#A80036" points="1377,687.2227,1367,691.2227,1377,695.2227,1373,691.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="659.2227" y2="679.2227"/><polygon fill="#A80036" points="1351,669.2227,1355,679.2227,1359,669.2227,1355,673.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="297.625" y2="488.3984"/><polygon fill="#A80036" points="401,478.3984,405,488.3984,409,478.3984,405,482.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="602" x2="602" y1="297.625" y2="488.3984"/><polygon fill="#A80036" points="598,478.3984,602,488.3984,606,478.3984,602,482.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="893" x2="893" y1="297.625" y2="405.5117"/><polygon fill="#A80036" points="889,395.5117,893,405.5117,897,395.5117,893,399.5117" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="297.625" y2="317.625"/><polygon fill="#A80036" points="1351,307.625,1355,317.625,1359,307.625,1355,311.625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="522.3672" y2="723.2227"/><polygon fill="#A80036" points="401,713.2227,405,723.2227,409,713.2227,405,717.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="602" x2="602" y1="522.3672" y2="723.2227"/><polygon fill="#A80036" points="598,713.2227,602,723.2227,606,713.2227,602,717.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="893" x2="893" y1="604.7383" y2="723.2227"/><polygon fill="#A80036" points="889,713.2227,893,723.2227,897,713.2227,893,717.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="703.2227" y2="723.2227"/><polygon fill="#A80036" points="1351,713.2227,1355,723.2227,1359,713.2227,1355,717.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="821.5" x2="821.5" y1="271.625" y2="291.625"/><polygon fill="#A80036" points="817.5,281.625,821.5,291.625,825.5,281.625,821.5,285.625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="821.5" x2="821.5" y1="729.2227" y2="749.2227"/><polygon fill="#A80036" points="817.5,739.2227,821.5,749.2227,825.5,739.2227,821.5,743.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="821.5" x2="821.5" y1="783.1914" y2="909.8359"/><polygon fill="#A80036" points="817.5,899.8359,821.5,909.8359,825.5,899.8359,821.5,903.8359" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="821.5" x2="821.5" y1="943.8047" y2="1080.4492"/><polygon fill="#A80036" points="817.5,1070.4492,821.5,1080.4492,825.5,1070.4492,821.5,1074.4492" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1282.25" x2="821.5" y1="215.6563" y2="215.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="821.5" x2="821.5" y1="215.6563" y2="237.6563"/><polygon fill="#A80036" points="817.5,227.6563,821.5,237.6563,825.5,227.6563,821.5,231.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.25" x2="1880" y1="215.6563" y2="215.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1880" x2="1880" y1="215.6563" y2="239.2227"/><polygon fill="#A80036" points="1876,229.2227,1880,239.2227,1884,229.2227,1880,233.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1356.75" x2="1356.75" y1="138.2578" y2="203.6563"/><polygon fill="#A80036" points="1352.75,193.6563,1356.75,203.6563,1360.75,193.6563,1356.75,197.6563" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[facd8ed9e760b69dfe28e85dcd745b96]
+@startuml
+
+title **µRtWare**\nurtHrtSubscriberUnsubscribe()\n
+
+
+start
+note
+  - - **subscriber** : urt_hrtsubscriber_t* - -
+  The HRT subscriber to be unsubscribed.
+  Must not be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on sucess.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+
+if (Associated to a topic?) then (yes)
+  :lock topic;
+  fork
+    :unregister event;
+    note
+      Must be within lock because of HRT counter.
+    endnote
+  fork again
+    :decrement topic's HRT counter;
+  fork again
+    :remove self from topic's list of HRT subscribers;
+    if (Was the most critical subscriber?) then (yes)
+      :update QoS rate timer (@topic);
+    else (no)
+    endif
+  fork again
+    :access last read message;
+    while (Timestamp of next message is younger?) is (yes)
+      fork
+        :proceed to next message;
+      fork again
+        :decrement next message's HRT counter;
+      endfork
+    endwhile (no)
+    if (The HRT counter of any message became 0?) then (yes)
+      :signal topic's condition variable;
+    else (no)
+    endif
+  endfork
+  :unlock topic;
+  :reset members;
+  note
+    - - urt_basesubscriber_t - -
+    **topic** ← ""NULL""
+    **lastMessage** ← ""NULL""
+    **lastMessageTime** ← 0
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    **sumLatencies** ← 0
+    **numMessagesReceived** ← 0
+    - - urt_hrtsubscriber_t - -
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+    **deadlineOffset** ← 0
+    .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
+    **expectedRate** ← 0
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+    **maxJitter** ← 0
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true ..
+    **minLatency** ← 0xF..F
+    **maxLatency** ← 0
+  endnote
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtHrtSubscriberUnsubscribe.uml b/doc/activitydiagrams/subscriber/urtHrtSubscriberUnsubscribe.uml
new file mode 100644
index 0000000..28cca0b
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtHrtSubscriberUnsubscribe.uml
@@ -0,0 +1,106 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtHrtSubscriberUnsubscribe()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+start
+note
+  -- **subscriber** : urt_hrtsubscriber_t* --
+  The HRT subscriber to be unsubscribed.
+  Must not be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on sucess.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+if (Associated to a topic?) then (yes)
+  :lock topic;
+  fork
+    :unregister event;
+    note
+      Must be within lock because of HRT counter.
+    endnote
+  fork again
+    :decrement topic's HRT counter;
+  fork again
+    :remove self from topic's list of HRT subscribers;
+    if (Was the most critical subscriber?) then (yes)
+      :update QoS rate timer (@topic);
+    else (no)
+    endif
+  fork again
+    :access last read message;
+    while (Timestamp of next message is younger?) is (yes)
+      fork
+        :proceed to next message;
+      fork again
+        :decrement next message's HRT counter;
+      endfork
+    endwhile (no)
+    if (The HRT counter of any message became 0?) then (yes)
+      :signal topic's condition variable;
+    else (no)
+    endif
+  endfork
+  :unlock topic;
+  :reset members;
+  note
+    -- urt_basesubscriber_t --
+    **topic** ← ""NULL""
+    **lastMessage** ← ""NULL""
+    **lastMessageTime** ← 0
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    **sumLatencies** ← 0
+    **numMessagesReceived** ← 0
+    -- urt_hrtsubscriber_t --
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+    **deadlineOffset** ← 0
+    .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
+    **expectedRate** ← 0
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+    **maxJitter** ← 0
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true ..
+    **minLatency** ← 0xF..F
+    **maxLatency** ← 0
+  endnote
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtNrtSubscriberFetchLatestMessage.svg b/doc/activitydiagrams/subscriber/urtNrtSubscriberFetchLatestMessage.svg
new file mode 100644
index 0000000..bcb66e0
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtNrtSubscriberFetchLatestMessage.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1004px" preserveAspectRatio="none" style="width:1281px;height:1004px;" version="1.1" viewBox="0 0 1281 1004" width="1281px" zoomAndPan="magnify"><defs><filter height="300%" id="fvbyyh65aotbg" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="595" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="338" x="470.5" y="47.6611">urtNrtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="642.5" y="68.6143"/><path d="M631,72.8594 L631,304.7188 L1119,304.7188 L1119,82.8594 L1109,72.8594 L631,72.8594 " fill="#FBFB77" filter="url(#fvbyyh65aotbg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1109,72.8594 L1109,82.8594 L1119,82.8594 L1109,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="762" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="766" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="766" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="848" y="89.4263">: urt_nrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="988" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="637" y="105.0591">The NRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="637" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="717" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="749" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="819" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="823" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="823" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="886" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="931" x2="1119" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="637" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="723" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="826" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="830" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="830" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="875" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="924" x2="1119" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="637" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="799.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="803.5" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="803.5" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="860.5" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="950.5" x2="1119" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="637" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="719" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="804" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="808" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="808" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="857" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="946" x2="1119" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="690" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="798" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="690" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="822" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="875" cy="334.7188" fill="#000000" filter="url(#fvbyyh65aotbg)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fvbyyh65aotbg)" points="812.5,364.7188,937.5,364.7188,949.5,376.7188,937.5,388.7188,812.5,388.7188,800.5,376.7188,812.5,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="812.5" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="780.5" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="949.5" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#fvbyyh65aotbg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="455" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="465" y="419.8574">lock topic</text><rect fill="#FFFFFF" filter="url(#fvbyyh65aotbg)" height="213.9448" style="stroke: #000000; stroke-width: 2.0;" width="323" x="332" y="443.4893"/><path d="M477,444.4893 L477,452.7861 L467,462.7861 L332,462.7861 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="135" x="335" y="457.4844">find latest message</text><rect fill="#FEFECE" filter="url(#fvbyyh65aotbg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="402.5" y="479.7861"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="412.5" y="500.9248">access last read message</text><rect fill="#FEFECE" filter="url(#fvbyyh65aotbg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="589.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="610.604">proceed to next message</text><polygon fill="#FEFECE" filter="url(#fvbyyh65aotbg)" points="378,533.7549,612,533.7549,624,545.7549,612,557.7549,378,557.7549,366,545.7549,378,533.7549" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="499" y="567.9653">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="378" y="549.563">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="352" y="543.1606">no</text><rect fill="#FFFFFF" filter="url(#fvbyyh65aotbg)" height="226.668" style="stroke: #000000; stroke-width: 2.0;" width="988" x="10" y="668.2358"/><path d="M123,669.2358 L123,677.5327 L113,687.5327 L10,687.5327 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="13" y="682.231">fetch message</text><rect fill="#000000" filter="url(#fvbyyh65aotbg)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="704.5327"/><rect fill="#FEFECE" filter="url(#fvbyyh65aotbg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="34" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="44" y="800.0737">update message pointer</text><rect fill="#FEFECE" filter="url(#fvbyyh65aotbg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="219" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="229" y="800.0737">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#fvbyyh65aotbg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="443" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="453" y="800.0737">copy message payload</text><rect fill="#FEFECE" filter="url(#fvbyyh65aotbg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="644" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="654" y="800.0737">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="678" y="800.0737">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="731" y="800.0737">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#fvbyyh65aotbg)" points="678.5,730.5327,917.5,730.5327,929.5,742.5327,917.5,754.5327,678.5,754.5327,666.5,742.5327,678.5,730.5327" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="802" y="764.7432">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="678.5" y="746.3408">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="828.5" y="746.3408">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="881.5" y="746.3408">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="929.5" y="739.9385">no</text><polygon fill="#FEFECE" filter="url(#fvbyyh65aotbg)" points="798,832.9038,810,844.9038,798,856.9038,786,844.9038,798,832.9038" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fvbyyh65aotbg)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="876.9038"/><rect fill="#FEFECE" filter="url(#fvbyyh65aotbg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="447" y="914.9038"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="457" y="936.0425">unlock topic</text><path d="M282,967.3062 L282,992.439 A0,0 0 0 0 282,992.439 L464,992.439 A0,0 0 0 0 464,992.439 L464,985.3062 L484,979.8726 L464,977.3062 L464,977.3062 L454,967.3062 L282,967.3062 A0,0 0 0 0 282,967.3062 " fill="#FBFB77" filter="url(#fvbyyh65aotbg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454,967.3062 L454,977.3062 L464,977.3062 L454,967.3062 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="288" y="984.373">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="341" y="984.373">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="445" y="984.373">.</text><ellipse cx="495" cy="979.8726" fill="#FFFFFF" filter="url(#fvbyyh65aotbg)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="495" cy="979.8726" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1018,398.7188 L1018,423.8516 A0,0 0 0 0 1018,423.8516 L1224,423.8516 A0,0 0 0 0 1224,423.8516 L1224,416.7188 L1244,411.2852 L1224,408.7188 L1224,408.7188 L1214,398.7188 L1018,398.7188 A0,0 0 0 0 1018,398.7188 " fill="#FBFB77" filter="url(#fvbyyh65aotbg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1214,398.7188 L1214,408.7188 L1224,408.7188 L1214,398.7188 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1024" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1077" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1205" y="415.7856">.</text><ellipse cx="1255" cy="411.2852" fill="#FFFFFF" filter="url(#fvbyyh65aotbg)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1255" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="871,314.7188,875,324.7188,879,314.7188,875,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="557.7549" y2="589.4653"/><polygon fill="#A80036" points="491,579.4653,495,589.4653,499,579.4653,495,583.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="623.4341" y2="633.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="636" y1="633.4341" y2="633.4341"/><polygon fill="#A80036" points="632,598.0474,636,588.0474,640,598.0474,636,594.0474" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="636" y1="545.7549" y2="633.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="624" y1="545.7549" y2="545.7549"/><polygon fill="#A80036" points="634,541.7549,624,545.7549,634,549.7549,630,545.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="354" y1="545.7549" y2="545.7549"/><polygon fill="#A80036" points="350,584.0474,354,594.0474,358,584.0474,354,588.0474" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="545.7549" y2="645.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="495" y1="645.4341" y2="645.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="645.4341" y2="704.5327"/><polygon fill="#A80036" points="491,694.5327,495,704.5327,499,694.5327,495,698.5327" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="513.7549" y2="533.7549"/><polygon fill="#A80036" points="491,523.7549,495,533.7549,499,523.7549,495,527.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="432.6875" y2="479.7861"/><polygon fill="#A80036" points="491,469.7861,495,479.7861,499,469.7861,495,473.7861" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="754.5327" y2="778.9351"/><polygon fill="#A80036" points="794,768.9351,798,778.9351,802,768.9351,798,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="929.5" x2="962" y1="742.5327" y2="742.5327"/><polygon fill="#A80036" points="958,785.9194,962,795.9194,966,785.9194,962,789.9194" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="962" y1="742.5327" y2="844.9038"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="810" y1="844.9038" y2="844.9038"/><polygon fill="#A80036" points="820,840.9038,810,844.9038,820,848.9038,816,844.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="812.9038" y2="832.9038"/><polygon fill="#A80036" points="794,822.9038,798,832.9038,802,822.9038,798,826.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="710.5327" y2="778.9351"/><polygon fill="#A80036" points="117.5,768.9351,121.5,778.9351,125.5,768.9351,121.5,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="710.5327" y2="778.9351"/><polygon fill="#A80036" points="313,768.9351,317,778.9351,321,768.9351,317,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="710.5327" y2="778.9351"/><polygon fill="#A80036" points="520.5,768.9351,524.5,778.9351,528.5,768.9351,524.5,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="710.5327" y2="730.5327"/><polygon fill="#A80036" points="794,720.5327,798,730.5327,802,720.5327,798,724.5327" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="812.9038" y2="876.9038"/><polygon fill="#A80036" points="117.5,866.9038,121.5,876.9038,125.5,866.9038,121.5,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="812.9038" y2="876.9038"/><polygon fill="#A80036" points="313,866.9038,317,876.9038,321,866.9038,317,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="812.9038" y2="876.9038"/><polygon fill="#A80036" points="520.5,866.9038,524.5,876.9038,528.5,866.9038,524.5,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="856.9038" y2="876.9038"/><polygon fill="#A80036" points="794,866.9038,798,876.9038,802,866.9038,798,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="882.9038" y2="914.9038"/><polygon fill="#A80036" points="491,904.9038,495,914.9038,499,904.9038,495,908.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="948.8726" y2="968.8726"/><polygon fill="#A80036" points="491,958.8726,495,968.8726,499,958.8726,495,962.8726" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="800.5" x2="495" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="491,388.7188,495,398.7188,499,388.7188,495,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="1255" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255" x2="1255" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1251,390.2852,1255,400.2852,1259,390.2852,1255,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="871,354.7188,875,364.7188,879,354.7188,875,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9338bb38111e7d0e17815aa538a75e04]
+@startuml
+
+title **µRtWare**\nurtNrtSubscriberFetchLatestMessage()\n
+
+
+note
+  - - **subscriber** : urt_nrtsubscriber_t* - -
+  The NRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  - - **payload** : void* - -
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  - - **bytes** : size_t - -
+  Payload size in bytes.
+  - - **latency** : urt_delay_t* - -
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+
+partition "find latest message" {
+  :access last read message;
+  while (Timestamp of next message is younger?) is (yes)
+    :proceed to next message;
+  endwhile (no)
+}
+
+
+partition "fetch message" {
+  fork
+    :update message pointer;
+  fork again
+      :copy timestamp of message;
+  fork again
+    :copy message payload;
+  fork again
+    if (Optional output argument ""latency"" given?) then (yes)
+      :set ""latency"" value (now - message origin time);
+    else (no)
+    endif
+  endfork
+}
+
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtNrtSubscriberFetchLatestMessage.uml b/doc/activitydiagrams/subscriber/urtNrtSubscriberFetchLatestMessage.uml
new file mode 100644
index 0000000..f7dce9c
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtNrtSubscriberFetchLatestMessage.uml
@@ -0,0 +1,69 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtNrtSubscriberFetchLatestMessage()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_nrtsubscriber_t* --
+  The NRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  -- **payload** : void* --
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  -- **bytes** : size_t --
+  Payload size in bytes.
+  -- **latency** : urt_delay_t* --
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+  !include findlatestmessage.iuml
+  !include fetchmessage.iuml
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtNrtSubscriberFetchNextMessage.svg b/doc/activitydiagrams/subscriber/urtNrtSubscriberFetchNextMessage.svg
new file mode 100644
index 0000000..25f4c0f
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtNrtSubscriberFetchNextMessage.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1098px" preserveAspectRatio="none" style="width:1281px;height:1098px;" version="1.1" viewBox="0 0 1281 1098" width="1281px" zoomAndPan="magnify"><defs><filter height="300%" id="f3xl0a4xh0ckd" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="595" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="328" x="475.5" y="47.6611">urtNrtSubscriberFetchNextMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="642.5" y="68.6143"/><path d="M631,72.8594 L631,304.7188 L1119,304.7188 L1119,82.8594 L1109,72.8594 L631,72.8594 " fill="#FBFB77" filter="url(#f3xl0a4xh0ckd)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1109,72.8594 L1109,82.8594 L1119,82.8594 L1109,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="762" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="766" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="766" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="848" y="89.4263">: urt_nrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="988" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="637" y="105.0591">The NRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="637" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="717" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="749" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="819" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="823" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="823" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="886" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="931" x2="1119" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="637" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="723" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="826" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="830" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="830" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="875" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="924" x2="1119" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="637" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="799.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="803.5" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="803.5" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="860.5" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="950.5" x2="1119" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="637" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="719" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="804" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="808" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="808" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="857" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="946" x2="1119" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="690" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="798" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="690" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="822" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="875" cy="334.7188" fill="#000000" filter="url(#f3xl0a4xh0ckd)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" points="812.5,364.7188,937.5,364.7188,949.5,376.7188,937.5,388.7188,812.5,388.7188,800.5,376.7188,812.5,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="812.5" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="780.5" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="949.5" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="455" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="465" y="419.8574">lock topic</text><rect fill="#FFFFFF" filter="url(#f3xl0a4xh0ckd)" height="307.7651" style="stroke: #000000; stroke-width: 2.0;" width="365.5" x="322" y="443.4893"/><path d="M506,444.4893 L506,452.7861 L496,462.7861 L322,462.7861 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="325" y="457.4844">find oldest valid message</text><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="585.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="606.4556">proceed to next message</text><polygon fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" points="378,528.1885,612,528.1885,624,540.1885,612,552.1885,378,552.1885,366,540.1885,378,528.1885" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="499" y="562.3989">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="378" y="543.9966">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="352" y="537.5942">no</text><polygon fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" points="345.5,479.7861,644.5,479.7861,656.5,491.7861,644.5,503.7861,345.5,503.7861,333.5,491.7861,345.5,479.7861" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="499" y="513.9966">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="299" x="345.5" y="495.5942">Timestamp of last read message euqals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="656.5" y="489.1919">yes</text><polygon fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" points="495,661.2856,507,673.2856,495,685.2856,483,673.2856,495,661.2856" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="705.2856"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="726.4243">proceed to next message</text><rect fill="#FFFFFF" filter="url(#f3xl0a4xh0ckd)" height="226.668" style="stroke: #000000; stroke-width: 2.0;" width="988" x="10" y="762.0562"/><path d="M123,763.0562 L123,771.353 L113,781.353 L10,781.353 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="13" y="776.0513">fetch message</text><rect fill="#000000" filter="url(#f3xl0a4xh0ckd)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="798.353"/><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="34" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="44" y="893.894">update message pointer</text><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="219" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="229" y="893.894">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="443" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="453" y="893.894">copy message payload</text><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="644" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="654" y="893.894">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="678" y="893.894">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="731" y="893.894">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" points="678.5,824.353,917.5,824.353,929.5,836.353,917.5,848.353,678.5,848.353,666.5,836.353,678.5,824.353" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="802" y="858.5635">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="678.5" y="840.1611">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="828.5" y="840.1611">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="881.5" y="840.1611">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="929.5" y="833.7588">no</text><polygon fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" points="798,926.7241,810,938.7241,798,950.7241,786,938.7241,798,926.7241" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f3xl0a4xh0ckd)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="970.7241"/><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="447" y="1008.7241"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="457" y="1029.8628">unlock topic</text><path d="M282,1061.1265 L282,1086.2593 A0,0 0 0 0 282,1086.2593 L464,1086.2593 A0,0 0 0 0 464,1086.2593 L464,1079.1265 L484,1073.6929 L464,1071.1265 L464,1071.1265 L454,1061.1265 L282,1061.1265 A0,0 0 0 0 282,1061.1265 " fill="#FBFB77" filter="url(#f3xl0a4xh0ckd)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454,1061.1265 L454,1071.1265 L464,1071.1265 L454,1061.1265 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="288" y="1078.1934">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="341" y="1078.1934">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="445" y="1078.1934">.</text><ellipse cx="495" cy="1073.6929" fill="#FFFFFF" filter="url(#f3xl0a4xh0ckd)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="495" cy="1073.6929" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1018,398.7188 L1018,423.8516 A0,0 0 0 0 1018,423.8516 L1224,423.8516 A0,0 0 0 0 1224,423.8516 L1224,416.7188 L1244,411.2852 L1224,408.7188 L1224,408.7188 L1214,398.7188 L1018,398.7188 A0,0 0 0 0 1018,398.7188 " fill="#FBFB77" filter="url(#f3xl0a4xh0ckd)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1214,398.7188 L1214,408.7188 L1224,408.7188 L1214,398.7188 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1024" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1077" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1205" y="415.7856">.</text><ellipse cx="1255" cy="411.2852" fill="#FFFFFF" filter="url(#f3xl0a4xh0ckd)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1255" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="871,314.7188,875,324.7188,879,314.7188,875,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="552.1885" y2="585.3169"/><polygon fill="#A80036" points="491,575.3169,495,585.3169,499,575.3169,495,579.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="619.2856" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="636" y1="629.2856" y2="629.2856"/><polygon fill="#A80036" points="632,593.8989,636,583.8989,640,593.8989,636,589.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="636" y1="540.1885" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="624" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="634,536.1885,624,540.1885,634,544.1885,630,540.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="354" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="350,579.8989,354,589.8989,358,579.8989,354,583.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="540.1885" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="495" y1="641.2856" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="641.2856" y2="661.2856"/><polygon fill="#A80036" points="491,651.2856,495,661.2856,499,651.2856,495,655.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="503.7861" y2="528.1885"/><polygon fill="#A80036" points="491,518.1885,495,528.1885,499,518.1885,495,522.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656.5" x2="668.5" y1="491.7861" y2="491.7861"/><polygon fill="#A80036" points="664.5,573.8989,668.5,583.8989,672.5,573.8989,668.5,577.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="668.5" y1="491.7861" y2="673.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="507" y1="673.2856" y2="673.2856"/><polygon fill="#A80036" points="517,669.2856,507,673.2856,517,677.2856,513,673.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="685.2856" y2="705.2856"/><polygon fill="#A80036" points="491,695.2856,495,705.2856,499,695.2856,495,699.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="432.6875" y2="479.7861"/><polygon fill="#A80036" points="491,469.7861,495,479.7861,499,469.7861,495,473.7861" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="848.353" y2="872.7554"/><polygon fill="#A80036" points="794,862.7554,798,872.7554,802,862.7554,798,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="929.5" x2="962" y1="836.353" y2="836.353"/><polygon fill="#A80036" points="958,879.7397,962,889.7397,966,879.7397,962,883.7397" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="962" y1="836.353" y2="938.7241"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="810" y1="938.7241" y2="938.7241"/><polygon fill="#A80036" points="820,934.7241,810,938.7241,820,942.7241,816,938.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="906.7241" y2="926.7241"/><polygon fill="#A80036" points="794,916.7241,798,926.7241,802,916.7241,798,920.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="117.5,862.7554,121.5,872.7554,125.5,862.7554,121.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="313,862.7554,317,872.7554,321,862.7554,317,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="520.5,862.7554,524.5,872.7554,528.5,862.7554,524.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="804.353" y2="824.353"/><polygon fill="#A80036" points="794,814.353,798,824.353,802,814.353,798,818.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="117.5,960.7241,121.5,970.7241,125.5,960.7241,121.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="313,960.7241,317,970.7241,321,960.7241,317,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="520.5,960.7241,524.5,970.7241,528.5,960.7241,524.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="950.7241" y2="970.7241"/><polygon fill="#A80036" points="794,960.7241,798,970.7241,802,960.7241,798,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="739.2544" y2="798.353"/><polygon fill="#A80036" points="491,788.353,495,798.353,499,788.353,495,792.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="976.7241" y2="1008.7241"/><polygon fill="#A80036" points="491,998.7241,495,1008.7241,499,998.7241,495,1002.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="1042.6929" y2="1062.6929"/><polygon fill="#A80036" points="491,1052.6929,495,1062.6929,499,1052.6929,495,1056.6929" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="800.5" x2="495" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="491,388.7188,495,398.7188,499,388.7188,495,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="1255" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255" x2="1255" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1251,390.2852,1255,400.2852,1259,390.2852,1255,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="871,354.7188,875,364.7188,879,354.7188,875,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b83aa3cffa582beba3a19fba35340cf]
+@startuml
+
+title **µRtWare**\nurtNrtSubscriberFetchNextMessage()\n
+
+
+note
+  - - **subscriber** : urt_nrtsubscriber_t* - -
+  The NRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  - - **payload** : void* - -
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  - - **bytes** : size_t - -
+  Payload size in bytes.
+  - - **latency** : urt_delay_t* - -
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+
+partition "find oldest valid message" {
+  if (Timestamp of last read message euqals local copy?) then (yes)
+  else (no)
+    while (Timestamp of next message is younger?) is (yes)
+      :proceed to next message;
+    endwhile (no)
+  endif
+  :proceed to next message;
+}
+
+
+partition "fetch message" {
+  fork
+    :update message pointer;
+  fork again
+      :copy timestamp of message;
+  fork again
+    :copy message payload;
+  fork again
+    if (Optional output argument ""latency"" given?) then (yes)
+      :set ""latency"" value (now - message origin time);
+    else (no)
+    endif
+  endfork
+}
+
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtNrtSubscriberFetchNextMessage.uml b/doc/activitydiagrams/subscriber/urtNrtSubscriberFetchNextMessage.uml
new file mode 100644
index 0000000..ee8b3ea
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtNrtSubscriberFetchNextMessage.uml
@@ -0,0 +1,69 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtNrtSubscriberFetchNextMessage()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_nrtsubscriber_t* --
+  The NRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  -- **payload** : void* --
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  -- **bytes** : size_t --
+  Payload size in bytes.
+  -- **latency** : urt_delay_t* --
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+  !include findoldestvalidmessage.iuml
+  !include fetchmessage.iuml
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtNrtSubscriberInit.svg b/doc/activitydiagrams/subscriber/urtNrtSubscriberInit.svg
new file mode 100644
index 0000000..7dff1df
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtNrtSubscriberInit.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="465px" preserveAspectRatio="none" style="width:509px;height:465px;" version="1.1" viewBox="0 0 509 465" width="509px" zoomAndPan="magnify"><defs><filter height="300%" id="f14j44zpnvdxnn" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="209" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="191" x="158" y="47.6611">urtNrtSubscriberInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="256.5" y="68.6143"/><path d="M250,72.8594 L250,168.5234 L497,168.5234 L497,82.8594 L487,72.8594 L250,72.8594 " fill="#FBFB77" filter="url(#f14j44zpnvdxnn)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M487,72.8594 L487,82.8594 L497,82.8594 L487,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="250" x2="260.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="264.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="264.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="346.5" y="89.4263">: urt_nrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="486.5" x2="497" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="198" x="256" y="105.0591">The NRT subscriber to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="256" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="336" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="368" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="250" x2="497" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="250" x2="497" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="250" x2="302.5" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="306.5" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="306.5" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="355.5" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="444.5" x2="497" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="256" y="160.4575">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="353" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="457" y="160.4575">.</text><ellipse cx="373.5" cy="198.5234" fill="#000000" filter="url(#f14j44zpnvdxnn)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,218.5234 L10,410.1172 A0,0 0 0 0 10,410.1172 L288,410.1172 A0,0 0 0 0 288,410.1172 L288,318.3203 L308,314.3203 L288,310.3203 L288,228.5234 L278,218.5234 L10,218.5234 A0,0 0 0 0 10,218.5234 " fill="#FBFB77" filter="url(#f14j44zpnvdxnn)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M278,218.5234 L278,228.5234 L288,228.5234 L278,218.5234 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="78" y1="231.0898" y2="231.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="82" y="235.0903">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="220" x2="288" y1="231.0898" y2="231.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="16" y="250.7231">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="57" y="250.7231">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="72" y="250.7231">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="16" y="265.856">urtEventListenerInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="82" x="145" y="265.856">evtListener</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="227" y="265.856">)</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="16" y="280.9888">lastMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="113" y="280.9888">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="128" y="280.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="128" x="16" y="296.1216">lastMessageTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="148" y="296.1216">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="306.7539" y2="306.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="24.5" y="310.7544">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="277.5" x2="288" y1="306.7539" y2="306.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="101" x="16" y="326.3872">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="121" y="326.3872">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="173" x="16" y="341.52">numMessagesReceived</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="193" y="341.52">← 0</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="84.5" y1="352.1523" y2="352.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="88.5" y="356.1528">urt_nrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="213.5" x2="288" y1="352.1523" y2="352.1523"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="367.2852" y2="367.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="24.5" y="371.2856">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="277.5" x2="288" y1="367.2852" y2="367.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="84" x="16" y="386.9185">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="104" y="386.9185">← 0xF..F</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="16" y="402.0513">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="108" y="402.0513">← 0</text><rect fill="#FEFECE" filter="url(#f14j44zpnvdxnn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="308" y="297.3359"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="318" y="318.4746">initialize members</text><path d="M160.5,428.5508 L160.5,453.6836 A0,0 0 0 0 160.5,453.6836 L342.5,453.6836 A0,0 0 0 0 342.5,453.6836 L342.5,446.5508 L362.5,441.1172 L342.5,438.5508 L342.5,438.5508 L332.5,428.5508 L160.5,428.5508 A0,0 0 0 0 160.5,428.5508 " fill="#FBFB77" filter="url(#f14j44zpnvdxnn)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M332.5,428.5508 L332.5,438.5508 L342.5,438.5508 L332.5,428.5508 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="166.5" y="445.6177">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="219.5" y="445.6177">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="323.5" y="445.6177">.</text><ellipse cx="373.5" cy="441.1172" fill="#FFFFFF" filter="url(#f14j44zpnvdxnn)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="373.5" cy="441.1172" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="168.5234" y2="188.5234"/><polygon fill="#A80036" points="369.5,178.5234,373.5,188.5234,377.5,178.5234,373.5,182.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="208.5234" y2="297.3359"/><polygon fill="#A80036" points="369.5,287.3359,373.5,297.3359,377.5,287.3359,373.5,291.3359" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="331.3047" y2="430.1172"/><polygon fill="#A80036" points="369.5,420.1172,373.5,430.1172,377.5,420.1172,373.5,424.1172" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9773c192221b4695935848e3210de07c]
+@startuml
+
+title **µRtWare**\nurtNrtSubscriberInit()\n
+
+
+note
+  - - **subscriber** : urt_nrtsubscriber_t* - -
+  The NRT subscriber to initialize.
+  Must not be ""NULL"".
+  =====
+  - - **return** : urt_status_t - -
+  Always returns ""URT_STATUS_OK"".
+endnote
+
+
+start
+:initialize members;
+note
+  - - urt_basesubscriber_t - -
+  **topic** ← ""NULL""
+  urtEventListenerInit(**evtListener**)
+  **lastMessage** ← ""NULL""
+  **lastMessageTime** ← 0
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **sumLatencies** ← 0
+  **numMessagesReceived** ← 0
+  - - urt_nrtsubscriber_t - -
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **minLatency** ← 0xF..F
+  **maxLatency** ← 0
+endnote
+stop
+note
+  Returns ""URT_STATUS_OK"".
+endnote
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtNrtSubscriberInit.uml b/doc/activitydiagrams/subscriber/urtNrtSubscriberInit.uml
new file mode 100644
index 0000000..273f6f7
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtNrtSubscriberInit.uml
@@ -0,0 +1,64 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtNrtSubscriberInit()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_nrtsubscriber_t* --
+  The NRT subscriber to initialize.
+  Must not be ""NULL"".
+  =====
+  -- **return** : urt_status_t --
+  Always returns ""URT_STATUS_OK"".
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+:initialize members;
+note
+  -- urt_basesubscriber_t --
+  **topic** ← ""NULL""
+  urtEventListenerInit(**evtListener**)
+  **lastMessage** ← ""NULL""
+  **lastMessageTime** ← 0
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **sumLatencies** ← 0
+  **numMessagesReceived** ← 0
+  -- urt_nrtsubscriber_t --
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **minLatency** ← 0xF..F
+  **maxLatency** ← 0
+endnote
+stop
+note
+  Returns ""URT_STATUS_OK"".
+endnote
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtNrtSubscriberSubscribe.svg b/doc/activitydiagrams/subscriber/urtNrtSubscriberSubscribe.svg
new file mode 100644
index 0000000..2327be4
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtNrtSubscriberSubscribe.svg
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="892px" preserveAspectRatio="none" style="width:2374px;height:892px;" version="1.1" viewBox="0 0 2374 892" width="2374px" zoomAndPan="magnify"><defs><filter height="300%" id="fczdcy36xbljq" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="1141.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="247" x="1062.5" y="47.6611">urtNrtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1189" y="68.6143"/><path d="M525.25,72.8594 L525.25,304.7188 L1039.25,304.7188 L1039.25,82.8594 L1029.25,72.8594 L525.25,72.8594 " fill="#FBFB77" filter="url(#fczdcy36xbljq)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1029.25,72.8594 L1029.25,82.8594 L1039.25,82.8594 L1029.25,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="669.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="673.25" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="673.25" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="755.25" y="89.4263">: urt_nrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="895.25" x2="1039.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="327" x="531.25" y="105.0591">The NRT subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="531.25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="611.25" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="643.25" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="716.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="720.25" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="720.25" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="761.25" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="848.25" x2="1039.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="531.25" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="531.25" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="611.25" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="643.25" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="683.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="687.25" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="687.25" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="766.25" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="881.25" x2="1039.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="531.25" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="567.25" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="531.25" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="531.25" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="531.25" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="581.25" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="617.25" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="1039.25" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="1039.25" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="711.25" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="715.25" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="715.25" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="764.25" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="853.25" x2="1039.25" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="531.25" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="584.25" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="692.25" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="531.25" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="584.25" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="716.25" y="296.6528">if the subscriber is already associated to a topic.</text><ellipse cx="782.25" cy="334.7188" fill="#000000" filter="url(#fczdcy36xbljq)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fczdcy36xbljq)" points="724.75,364.7188,839.75,364.7188,851.75,376.7188,839.75,388.7188,724.75,388.7188,712.75,376.7188,724.75,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="724.75" y="380.5269">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="692.75" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="851.75" y="374.1245">no</text><path d="M10,398.7188 L10,423.8516 A0,0 0 0 0 10,423.8516 L216,423.8516 A0,0 0 0 0 216,423.8516 L216,416.7188 L236,411.2852 L216,408.7188 L216,408.7188 L206,398.7188 L10,398.7188 A0,0 0 0 0 10,398.7188 " fill="#FBFB77" filter="url(#fczdcy36xbljq)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M206,398.7188 L206,408.7188 L216,408.7188 L206,398.7188 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="69" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="197" y="415.7856">.</text><ellipse cx="247" cy="411.2852" fill="#FFFFFF" filter="url(#fczdcy36xbljq)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="247" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fczdcy36xbljq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1302" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1312" y="419.8574">set topic</text><rect fill="#FEFECE" filter="url(#fczdcy36xbljq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1299.5" y="452.6875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1309.5" y="473.8262">lock topic</text><rect fill="#000000" filter="url(#fczdcy36xbljq)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2095" x="268" y="506.6563"/><rect fill="#FFFFFF" filter="url(#fczdcy36xbljq)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1166" x="280" y="579.1685"/><path d="M437,580.1685 L437,588.4653 L427,598.4653 L280,598.4653 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="283" y="593.1636">contribute messages</text><rect fill="#000000" filter="url(#fczdcy36xbljq)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1146" x="290" y="615.4653"/><rect fill="#FEFECE" filter="url(#fczdcy36xbljq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="304" y="641.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="314" y="662.604">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fczdcy36xbljq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="806" y="641.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="816" y="662.604">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#fczdcy36xbljq)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1146" x="290" y="695.4341"/><polygon fill="#FEFECE" filter="url(#fczdcy36xbljq)" points="794,532.6563,934,532.6563,946,544.6563,934,556.6563,794,556.6563,782,544.6563,794,532.6563" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="868" y="566.8667">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="794" y="548.4644">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="946" y="542.062">no</text><polygon fill="#FEFECE" filter="url(#fczdcy36xbljq)" points="864,733.4341,876,745.4341,864,757.4341,852,745.4341,864,733.4341" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fczdcy36xbljq)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="654" x="1470" y="607.3169"/><rect fill="#FEFECE" filter="url(#fczdcy36xbljq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1482" y="633.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1492" y="654.4556">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#fczdcy36xbljq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="297" x="1815" y="633.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="277" x="1825" y="654.4556">copy timestamp from topic's latest message</text><rect fill="#000000" filter="url(#fczdcy36xbljq)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="654" x="1470" y="687.2856"/><rect fill="#FEFECE" filter="url(#fczdcy36xbljq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="2134" y="633.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="2144" y="654.4556">register to topic's event source</text><rect fill="#000000" filter="url(#fczdcy36xbljq)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2095" x="268" y="777.4341"/><rect fill="#FEFECE" filter="url(#fczdcy36xbljq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1291.5" y="803.4341"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1301.5" y="824.5728">unlock topic</text><path d="M1126.5,855.8364 L1126.5,880.9692 A0,0 0 0 0 1126.5,880.9692 L1308.5,880.9692 A0,0 0 0 0 1308.5,880.9692 L1308.5,873.8364 L1328.5,868.4028 L1308.5,865.8364 L1308.5,865.8364 L1298.5,855.8364 L1126.5,855.8364 A0,0 0 0 0 1126.5,855.8364 " fill="#FBFB77" filter="url(#fczdcy36xbljq)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1298.5,855.8364 L1298.5,865.8364 L1308.5,865.8364 L1298.5,855.8364 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1132.5" y="872.9033">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1185.5" y="872.9033">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1289.5" y="872.9033">.</text><ellipse cx="1339.5" cy="868.4028" fill="#FFFFFF" filter="url(#fczdcy36xbljq)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1339.5" cy="868.4028" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782.25" x2="782.25" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="778.25,314.7188,782.25,324.7188,786.25,314.7188,782.25,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="432.6875" y2="452.6875"/><polygon fill="#A80036" points="1335.5,442.6875,1339.5,452.6875,1343.5,442.6875,1339.5,446.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="621.4653" y2="641.4653"/><polygon fill="#A80036" points="537,631.4653,541,641.4653,545,631.4653,541,635.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="621.4653" y2="641.4653"/><polygon fill="#A80036" points="1111,631.4653,1115,641.4653,1119,631.4653,1115,635.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="675.4341" y2="695.4341"/><polygon fill="#A80036" points="537,685.4341,541,695.4341,545,685.4341,541,689.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="675.4341" y2="695.4341"/><polygon fill="#A80036" points="1111,685.4341,1115,695.4341,1119,685.4341,1115,689.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="556.6563" y2="615.4653"/><polygon fill="#A80036" points="860,605.4653,864,615.4653,868,605.4653,864,609.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="946" x2="1456" y1="544.6563" y2="544.6563"/><polygon fill="#A80036" points="1452,640.3013,1456,650.3013,1460,640.3013,1456,644.3013" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1456" x2="1456" y1="544.6563" y2="745.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1456" x2="876" y1="745.4341" y2="745.4341"/><polygon fill="#A80036" points="886,741.4341,876,745.4341,886,749.4341,882,745.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="701.4341" y2="733.4341"/><polygon fill="#A80036" points="860,723.4341,864,733.4341,868,723.4341,864,727.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1638.5" x2="1638.5" y1="613.3169" y2="633.3169"/><polygon fill="#A80036" points="1634.5,623.3169,1638.5,633.3169,1642.5,623.3169,1638.5,627.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1963.5" x2="1963.5" y1="613.3169" y2="633.3169"/><polygon fill="#A80036" points="1959.5,623.3169,1963.5,633.3169,1967.5,623.3169,1963.5,627.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1638.5" x2="1638.5" y1="667.2856" y2="687.2856"/><polygon fill="#A80036" points="1634.5,677.2856,1638.5,687.2856,1642.5,677.2856,1638.5,681.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1963.5" x2="1963.5" y1="667.2856" y2="687.2856"/><polygon fill="#A80036" points="1959.5,677.2856,1963.5,687.2856,1967.5,677.2856,1963.5,681.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="512.6563" y2="532.6563"/><polygon fill="#A80036" points="860,522.6563,864,532.6563,868,522.6563,864,526.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1801" x2="1801" y1="512.6563" y2="607.3169"/><polygon fill="#A80036" points="1797,597.3169,1801,607.3169,1805,597.3169,1801,601.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2242.5" x2="2242.5" y1="512.6563" y2="633.3169"/><polygon fill="#A80036" points="2238.5,623.3169,2242.5,633.3169,2246.5,623.3169,2242.5,627.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="757.4341" y2="777.4341"/><polygon fill="#A80036" points="860,767.4341,864,777.4341,868,767.4341,864,771.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1801" x2="1801" y1="693.2856" y2="777.4341"/><polygon fill="#A80036" points="1797,767.4341,1801,777.4341,1805,767.4341,1801,771.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2242.5" x2="2242.5" y1="667.2856" y2="777.4341"/><polygon fill="#A80036" points="2238.5,767.4341,2242.5,777.4341,2246.5,767.4341,2242.5,771.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="486.6563" y2="506.6563"/><polygon fill="#A80036" points="1335.5,496.6563,1339.5,506.6563,1343.5,496.6563,1339.5,500.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="783.4341" y2="803.4341"/><polygon fill="#A80036" points="1335.5,793.4341,1339.5,803.4341,1343.5,793.4341,1339.5,797.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="837.4028" y2="857.4028"/><polygon fill="#A80036" points="1335.5,847.4028,1339.5,857.4028,1343.5,847.4028,1339.5,851.4028" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="712.75" x2="247" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247" x2="247" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="243,390.2852,247,400.2852,251,390.2852,247,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="851.75" x2="1339.5" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="1335.5,388.7188,1339.5,398.7188,1343.5,388.7188,1339.5,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782.25" x2="782.25" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="778.25,354.7188,782.25,364.7188,786.25,354.7188,782.25,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b067633c3fc4382dd95a0f57b9c85f6]
+@startuml
+
+title **µRtWare**\nurtNrtSubscriberSubscribe()\n
+
+
+note
+  - - **subscriber** : urt_nrtsubscriber_t* - -
+  The NRT subscriber which shall subscribe to a topic.
+  Must not be ""NULL"".
+  - - **topic** : urt_topic_t* - -
+  The topic to subscribe to.
+  Must not be ""NULL"".
+  - - **messages** : urt_message_t* - -
+  ""NULL"" terminated list of messages to contribute to the topic.
+  Messages must not be associated to another topic.
+  Once a message has been contributed, it cannot be removed later.
+  May be ""NULL"" (no messages to contribute).
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is already associated to a topic.
+endnote
+
+
+start
+if (Is topic already set?) then (yes)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+else (no)
+  :set topic;
+  :lock topic;
+  fork
+    if (Messages to contribute?) then (yes)
+
+partition "contribute messages" {
+  fork
+    :set next pointer of topic's latest message to first message to contribute;
+  fork again
+    :set next pointer of last message to contribute to the message after the topic's latest message;
+  endfork
+}
+
+    else (no)
+    endif
+  fork again
+    fork
+      :set message pointer to topic's latest message;
+    fork again
+      :copy timestamp from topic's latest message;
+    endfork
+  fork again
+    :register to topic's event source;
+  endfork
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtNrtSubscriberSubscribe.uml b/doc/activitydiagrams/subscriber/urtNrtSubscriberSubscribe.uml
new file mode 100644
index 0000000..eda0adb
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtNrtSubscriberSubscribe.uml
@@ -0,0 +1,82 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtNrtSubscriberSubscribe()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_nrtsubscriber_t* --
+  The NRT subscriber which shall subscribe to a topic.
+  Must not be ""NULL"".
+  -- **topic** : urt_topic_t* --
+  The topic to subscribe to.
+  Must not be ""NULL"".
+  -- **messages** : urt_message_t* --
+  ""NULL"" terminated list of messages to contribute to the topic.
+  Messages must not be associated to another topic.
+  Once a message has been contributed, it cannot be removed later.
+  May be ""NULL"" (no messages to contribute).
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is already associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Is topic already set?) then (yes)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+else (no)
+  :set topic;
+  :lock topic;
+  fork
+    if (Messages to contribute?) then (yes)
+      !include ../contributemessages.iuml
+    else (no)
+    endif
+  fork again
+    fork
+      :set message pointer to topic's latest message;
+    fork again
+      :copy timestamp from topic's latest message;
+    endfork
+  fork again
+    :register to topic's event source;
+  endfork
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtNrtSubscriberUnsubscribe.svg b/doc/activitydiagrams/subscriber/urtNrtSubscriberUnsubscribe.svg
new file mode 100644
index 0000000..fc482fd
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtNrtSubscriberUnsubscribe.svg
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="553px" preserveAspectRatio="none" style="width:781px;height:553px;" version="1.1" viewBox="0 0 781 553" width="781px" zoomAndPan="magnify"><defs><filter height="300%" id="f17b15liqbym63" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="345" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="269" x="255" y="47.6611">urtNrtSubscriberUnsubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="392.5" y="68.6143"/><path d="M281,72.8594 L281,183.6563 L769,183.6563 L769,82.8594 L759,72.8594 L281,72.8594 " fill="#FBFB77" filter="url(#f17b15liqbym63)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M759,72.8594 L759,82.8594 L769,82.8594 L759,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="281" x2="412" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="416" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="416" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="498" y="89.4263">: urt_nrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="638" x2="769" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="252" x="287" y="105.0591">The NRT subscriber to be unsubscribed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="287" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="367" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="399" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="281" x2="769" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="281" x2="769" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="281" x2="454" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="458" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="458" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="507" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="596" x2="769" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="287" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="340" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="68" x="448" y="160.4575">on sucess.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="287" y="175.5903">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="340" y="175.5903">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="472" y="175.5903">if the subscriber is not associated to a topic.</text><ellipse cx="525" cy="213.6563" fill="#000000" filter="url(#f17b15liqbym63)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f17b15liqbym63)" points="462.5,243.6563,587.5,243.6563,599.5,255.6563,587.5,267.6563,462.5,267.6563,450.5,255.6563,462.5,243.6563" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="462.5" y="259.4644">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="430.5" y="253.062">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="599.5" y="253.062">no</text><rect fill="#FEFECE" filter="url(#f17b15liqbym63)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="303.5" y="277.6563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="313.5" y="298.7949">unregister event</text><path d="M10,321.625 L10,498.0859 A0,0 0 0 0 10,498.0859 L288,498.0859 A0,0 0 0 0 288,498.0859 L288,413.8555 L308,409.8555 L288,405.8555 L288,331.625 L278,321.625 L10,321.625 A0,0 0 0 0 10,321.625 " fill="#FBFB77" filter="url(#f17b15liqbym63)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M278,321.625 L278,331.625 L288,331.625 L278,321.625 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="78" y1="334.1914" y2="334.1914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="82" y="338.1919">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="220" x2="288" y1="334.1914" y2="334.1914"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="16" y="353.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="57" y="353.8247">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="72" y="353.8247">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="16" y="368.9575">lastMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="113" y="368.9575">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="128" y="368.9575">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="128" x="16" y="384.0903">lastMessageTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="148" y="384.0903">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="394.7227" y2="394.7227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="24.5" y="398.7231">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="277.5" x2="288" y1="394.7227" y2="394.7227"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="101" x="16" y="414.356">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="121" y="414.356">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="173" x="16" y="429.4888">numMessagesReceived</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="193" y="429.4888">← 0</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="84.5" y1="440.1211" y2="440.1211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="88.5" y="444.1216">urt_nrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="213.5" x2="288" y1="440.1211" y2="440.1211"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="455.2539" y2="455.2539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="24.5" y="459.2544">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="277.5" x2="288" y1="455.2539" y2="455.2539"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="84" x="16" y="474.8872">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="104" y="474.8872">← 0xF..F</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="16" y="490.02">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="108" y="490.02">← 0</text><rect fill="#FEFECE" filter="url(#f17b15liqbym63)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="308" y="392.8711"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="318" y="414.0098">reset members</text><path d="M152.5,516.5195 L152.5,541.6523 A0,0 0 0 0 152.5,541.6523 L334.5,541.6523 A0,0 0 0 0 334.5,541.6523 L334.5,534.5195 L354.5,529.0859 L334.5,526.5195 L334.5,526.5195 L324.5,516.5195 L152.5,516.5195 A0,0 0 0 0 152.5,516.5195 " fill="#FBFB77" filter="url(#f17b15liqbym63)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M324.5,516.5195 L324.5,526.5195 L334.5,526.5195 L324.5,516.5195 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="158.5" y="533.5864">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="211.5" y="533.5864">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="315.5" y="533.5864">.</text><ellipse cx="365.5" cy="529.0859" fill="#FFFFFF" filter="url(#f17b15liqbym63)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="365.5" cy="529.0859" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M447.5,277.6563 L447.5,302.7891 A0,0 0 0 0 447.5,302.7891 L653.5,302.7891 A0,0 0 0 0 653.5,302.7891 L653.5,295.6563 L673.5,290.2227 L653.5,287.6563 L653.5,287.6563 L643.5,277.6563 L447.5,277.6563 A0,0 0 0 0 447.5,277.6563 " fill="#FBFB77" filter="url(#f17b15liqbym63)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M643.5,277.6563 L643.5,287.6563 L653.5,287.6563 L643.5,277.6563 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="453.5" y="294.7231">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="506.5" y="294.7231">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="634.5" y="294.7231">.</text><ellipse cx="684.5" cy="290.2227" fill="#FFFFFF" filter="url(#f17b15liqbym63)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="684.5" cy="290.2227" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="525" x2="525" y1="183.6563" y2="203.6563"/><polygon fill="#A80036" points="521,193.6563,525,203.6563,529,193.6563,525,197.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="365.5" y1="311.625" y2="392.8711"/><polygon fill="#A80036" points="361.5,382.8711,365.5,392.8711,369.5,382.8711,365.5,386.8711" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="365.5" y1="426.8398" y2="518.0859"/><polygon fill="#A80036" points="361.5,508.0859,365.5,518.0859,369.5,508.0859,365.5,512.0859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="450.5" x2="365.5" y1="255.6563" y2="255.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="365.5" y1="255.6563" y2="277.6563"/><polygon fill="#A80036" points="361.5,267.6563,365.5,277.6563,369.5,267.6563,365.5,271.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="599.5" x2="684.5" y1="255.6563" y2="255.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="684.5" x2="684.5" y1="255.6563" y2="279.2227"/><polygon fill="#A80036" points="680.5,269.2227,684.5,279.2227,688.5,269.2227,684.5,273.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="525" x2="525" y1="223.6563" y2="243.6563"/><polygon fill="#A80036" points="521,233.6563,525,243.6563,529,233.6563,525,237.6563" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[00216dfafa1ac0082c086d741efdd298]
+@startuml
+
+title **µRtWare**\nurtNrtSubscriberUnsubscribe()\n
+
+
+note
+  - - **subscriber** : urt_nrtsubscriber_t* - -
+  The NRT subscriber to be unsubscribed.
+  Must not be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on sucess.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+
+start
+if (Associated to a topic?) then (yes)
+  :unregister event;
+  :reset members;
+  note
+    - - urt_basesubscriber_t - -
+    **topic** ← ""NULL""
+    **lastMessage** ← ""NULL""
+    **lastMessageTime** ← 0
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    **sumLatencies** ← 0
+    **numMessagesReceived** ← 0
+    - - urt_nrtsubscriber_t - -
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    **minLatency** ← 0xF..F
+    **maxLatency** ← 0
+  endnote
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtNrtSubscriberUnsubscribe.uml b/doc/activitydiagrams/subscriber/urtNrtSubscriberUnsubscribe.uml
new file mode 100644
index 0000000..dfa5c96
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtNrtSubscriberUnsubscribe.uml
@@ -0,0 +1,72 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtNrtSubscriberUnsubscribe()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_nrtsubscriber_t* --
+  The NRT subscriber to be unsubscribed.
+  Must not be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on sucess.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Associated to a topic?) then (yes)
+  :unregister event;
+  :reset members;
+  note
+    -- urt_basesubscriber_t --
+    **topic** ← ""NULL""
+    **lastMessage** ← ""NULL""
+    **lastMessageTime** ← 0
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    **sumLatencies** ← 0
+    **numMessagesReceived** ← 0
+    -- urt_nrtsubscriber_t --
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    **minLatency** ← 0xF..F
+    **maxLatency** ← 0
+  endnote
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSrtSubscriberCalculateUsefulness.svg b/doc/activitydiagrams/subscriber/urtSrtSubscriberCalculateUsefulness.svg
new file mode 100644
index 0000000..3f0e960
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtSrtSubscriberCalculateUsefulness.svg
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="348px" preserveAspectRatio="none" style="width:877px;height:348px;" version="1.1" viewBox="0 0 877 348" width="877px" zoomAndPan="magnify"><defs><filter height="300%" id="f10ce7al3f6dlh" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="393" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="333" x="271" y="47.6611">urtSrtSubscriberCalculateUsefulness()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="440.5" y="68.6143"/><path d="M453,72.8594 L453,198.7891 L865,198.7891 L865,82.8594 L855,72.8594 L453,72.8594 " fill="#FBFB77" filter="url(#f10ce7al3f6dlh)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M855,72.8594 L855,82.8594 L865,82.8594 L855,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="453" x2="546.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="550.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="550.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="632.5" y="89.4263">: urt_srtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="771.5" x2="865" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="459" y="105.0591">The SRT subscriber to calculate a usefulness for.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="459" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="539" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="571" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="453" x2="587" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="591" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="591" y="134.8247">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="648" y="134.8247">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="731" x2="865" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="391" x="459" y="150.4575">Latency (of a message) as argument to calculate usefulness.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="453" x2="865" y1="158.5234" y2="158.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="453" x2="865" y1="160.5234" y2="160.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="453" x2="612.5" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="616.5" y="175.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="616.5" y="175.0903">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="36" x="665.5" y="175.0903">: float</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="705.5" x2="865" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="293" x="459" y="190.7231">Returns the usefulness as a value within [0,1].</text><ellipse cx="659" cy="228.7891" fill="#000000" filter="url(#f10ce7al3f6dlh)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,263.207 L10,288.3398 A0,0 0 0 0 10,288.3398 L560,288.3398 A0,0 0 0 0 560,288.3398 L560,281.207 L580,275.7734 L560,273.207 L560,273.207 L550,263.207 L10,263.207 A0,0 0 0 0 10,263.207 " fill="#FBFB77" filter="url(#f10ce7al3f6dlh)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M550,263.207 L550,273.207 L560,273.207 L550,263.207 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="529" x="16" y="280.2739">The callback function must never return a negative value or a value greater than 1.</text><rect fill="#FEFECE" filter="url(#f10ce7al3f6dlh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="158" x="580" y="258.7891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="590" y="279.9277">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="644" y="279.9277">usefulnesscb</text><path d="M421,311.1914 L421,336.3242 A0,0 0 0 0 421,336.3242 L628,336.3242 A0,0 0 0 0 628,336.3242 L628,329.1914 L648,323.7578 L628,321.1914 L628,321.1914 L618,311.1914 L421,311.1914 A0,0 0 0 0 421,311.1914 " fill="#FBFB77" filter="url(#f10ce7al3f6dlh)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M618,311.1914 L618,321.1914 L628,321.1914 L618,311.1914 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="427" y="328.2583">Returns callback result value.</text><ellipse cx="659" cy="323.7578" fill="#FFFFFF" filter="url(#f10ce7al3f6dlh)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="659" cy="323.7578" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="659" x2="659" y1="198.7891" y2="218.7891"/><polygon fill="#A80036" points="655,208.7891,659,218.7891,663,208.7891,659,212.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="659" x2="659" y1="238.7891" y2="258.7891"/><polygon fill="#A80036" points="655,248.7891,659,258.7891,663,248.7891,659,252.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="659" x2="659" y1="292.7578" y2="312.7578"/><polygon fill="#A80036" points="655,302.7578,659,312.7578,663,302.7578,659,306.7578" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[116af10d5564a4773b10ef3aaeab21ec]
+@startuml
+
+title **µRtWare**\nurtSrtSubscriberCalculateUsefulness()\n
+
+
+note
+  - - **subscriber** : urt_srtsubscriber_t* - -
+  The SRT subscriber to calculate a usefulness for.
+  Must not be ""NULL"".
+  - - **latency** : urt_delay_t - -
+  Latency (of a message) as argument to calculate usefulness.
+  ====
+  - - **return** : float - -
+  Returns the usefulness as a value within [0,1].
+endnote
+
+
+start
+:execute ""usefulnesscb"";
+note
+  The callback function must never return a negative value or a value greater than 1.
+endnote
+stop
+note
+  Returns callback result value.
+endnote
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSrtSubscriberCalculateUsefulness.uml b/doc/activitydiagrams/subscriber/urtSrtSubscriberCalculateUsefulness.uml
new file mode 100644
index 0000000..6a1ad80
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtSrtSubscriberCalculateUsefulness.uml
@@ -0,0 +1,55 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtSrtSubscriberCalculateUsefulness()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_srtsubscriber_t* --
+  The SRT subscriber to calculate a usefulness for.
+  Must not be ""NULL"".
+  -- **latency** : urt_delay_t --
+  Latency (of a message) as argument to calculate usefulness.
+  ====
+  -- **return** : float --
+  Returns the usefulness as a value within [0,1].
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+:execute ""usefulnesscb"";
+note
+  The callback function must never return a negative value or a value greater than 1.
+endnote
+stop
+note
+  Returns callback result value.
+endnote
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSrtSubscriberFetchLatestMessage.svg b/doc/activitydiagrams/subscriber/urtSrtSubscriberFetchLatestMessage.svg
new file mode 100644
index 0000000..b65e6e1
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtSrtSubscriberFetchLatestMessage.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1004px" preserveAspectRatio="none" style="width:1281px;height:1004px;" version="1.1" viewBox="0 0 1281 1004" width="1281px" zoomAndPan="magnify"><defs><filter height="300%" id="f7zfa7kymyxg1" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="595" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="335" x="472" y="47.6611">urtSrtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="642.5" y="68.6143"/><path d="M631,72.8594 L631,304.7188 L1119,304.7188 L1119,82.8594 L1109,72.8594 L631,72.8594 " fill="#FBFB77" filter="url(#f7zfa7kymyxg1)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1109,72.8594 L1109,82.8594 L1119,82.8594 L1109,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="762.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="766.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="766.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="848.5" y="89.4263">: urt_srtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="987.5" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="312" x="637" y="105.0591">The SRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="637" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="717" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="749" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="819" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="823" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="823" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="886" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="931" x2="1119" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="637" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="723" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="826" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="830" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="830" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="875" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="924" x2="1119" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="637" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="799.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="803.5" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="803.5" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="860.5" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="950.5" x2="1119" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="637" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="719" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="804" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="808" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="808" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="857" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="946" x2="1119" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="690" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="798" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="690" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="822" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="875" cy="334.7188" fill="#000000" filter="url(#f7zfa7kymyxg1)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" points="812.5,364.7188,937.5,364.7188,949.5,376.7188,937.5,388.7188,812.5,388.7188,800.5,376.7188,812.5,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="812.5" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="780.5" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="949.5" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="455" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="465" y="419.8574">lock topic</text><rect fill="#FFFFFF" filter="url(#f7zfa7kymyxg1)" height="213.9448" style="stroke: #000000; stroke-width: 2.0;" width="323" x="332" y="443.4893"/><path d="M477,444.4893 L477,452.7861 L467,462.7861 L332,462.7861 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="135" x="335" y="457.4844">find latest message</text><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="402.5" y="479.7861"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="412.5" y="500.9248">access last read message</text><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="589.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="610.604">proceed to next message</text><polygon fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" points="378,533.7549,612,533.7549,624,545.7549,612,557.7549,378,557.7549,366,545.7549,378,533.7549" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="499" y="567.9653">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="378" y="549.563">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="352" y="543.1606">no</text><rect fill="#FFFFFF" filter="url(#f7zfa7kymyxg1)" height="226.668" style="stroke: #000000; stroke-width: 2.0;" width="988" x="10" y="668.2358"/><path d="M123,669.2358 L123,677.5327 L113,687.5327 L10,687.5327 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="13" y="682.231">fetch message</text><rect fill="#000000" filter="url(#f7zfa7kymyxg1)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="704.5327"/><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="34" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="44" y="800.0737">update message pointer</text><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="219" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="229" y="800.0737">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="443" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="453" y="800.0737">copy message payload</text><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="644" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="654" y="800.0737">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="678" y="800.0737">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="731" y="800.0737">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" points="678.5,730.5327,917.5,730.5327,929.5,742.5327,917.5,754.5327,678.5,754.5327,666.5,742.5327,678.5,730.5327" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="802" y="764.7432">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="678.5" y="746.3408">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="828.5" y="746.3408">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="881.5" y="746.3408">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="929.5" y="739.9385">no</text><polygon fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" points="798,832.9038,810,844.9038,798,856.9038,786,844.9038,798,832.9038" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f7zfa7kymyxg1)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="876.9038"/><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="447" y="914.9038"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="457" y="936.0425">unlock topic</text><path d="M282,967.3062 L282,992.439 A0,0 0 0 0 282,992.439 L464,992.439 A0,0 0 0 0 464,992.439 L464,985.3062 L484,979.8726 L464,977.3062 L464,977.3062 L454,967.3062 L282,967.3062 A0,0 0 0 0 282,967.3062 " fill="#FBFB77" filter="url(#f7zfa7kymyxg1)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454,967.3062 L454,977.3062 L464,977.3062 L454,967.3062 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="288" y="984.373">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="341" y="984.373">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="445" y="984.373">.</text><ellipse cx="495" cy="979.8726" fill="#FFFFFF" filter="url(#f7zfa7kymyxg1)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="495" cy="979.8726" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1018,398.7188 L1018,423.8516 A0,0 0 0 0 1018,423.8516 L1224,423.8516 A0,0 0 0 0 1224,423.8516 L1224,416.7188 L1244,411.2852 L1224,408.7188 L1224,408.7188 L1214,398.7188 L1018,398.7188 A0,0 0 0 0 1018,398.7188 " fill="#FBFB77" filter="url(#f7zfa7kymyxg1)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1214,398.7188 L1214,408.7188 L1224,408.7188 L1214,398.7188 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1024" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1077" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1205" y="415.7856">.</text><ellipse cx="1255" cy="411.2852" fill="#FFFFFF" filter="url(#f7zfa7kymyxg1)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1255" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="871,314.7188,875,324.7188,879,314.7188,875,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="557.7549" y2="589.4653"/><polygon fill="#A80036" points="491,579.4653,495,589.4653,499,579.4653,495,583.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="623.4341" y2="633.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="636" y1="633.4341" y2="633.4341"/><polygon fill="#A80036" points="632,598.0474,636,588.0474,640,598.0474,636,594.0474" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="636" y1="545.7549" y2="633.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="624" y1="545.7549" y2="545.7549"/><polygon fill="#A80036" points="634,541.7549,624,545.7549,634,549.7549,630,545.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="354" y1="545.7549" y2="545.7549"/><polygon fill="#A80036" points="350,584.0474,354,594.0474,358,584.0474,354,588.0474" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="545.7549" y2="645.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="495" y1="645.4341" y2="645.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="645.4341" y2="704.5327"/><polygon fill="#A80036" points="491,694.5327,495,704.5327,499,694.5327,495,698.5327" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="513.7549" y2="533.7549"/><polygon fill="#A80036" points="491,523.7549,495,533.7549,499,523.7549,495,527.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="432.6875" y2="479.7861"/><polygon fill="#A80036" points="491,469.7861,495,479.7861,499,469.7861,495,473.7861" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="754.5327" y2="778.9351"/><polygon fill="#A80036" points="794,768.9351,798,778.9351,802,768.9351,798,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="929.5" x2="962" y1="742.5327" y2="742.5327"/><polygon fill="#A80036" points="958,785.9194,962,795.9194,966,785.9194,962,789.9194" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="962" y1="742.5327" y2="844.9038"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="810" y1="844.9038" y2="844.9038"/><polygon fill="#A80036" points="820,840.9038,810,844.9038,820,848.9038,816,844.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="812.9038" y2="832.9038"/><polygon fill="#A80036" points="794,822.9038,798,832.9038,802,822.9038,798,826.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="710.5327" y2="778.9351"/><polygon fill="#A80036" points="117.5,768.9351,121.5,778.9351,125.5,768.9351,121.5,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="710.5327" y2="778.9351"/><polygon fill="#A80036" points="313,768.9351,317,778.9351,321,768.9351,317,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="710.5327" y2="778.9351"/><polygon fill="#A80036" points="520.5,768.9351,524.5,778.9351,528.5,768.9351,524.5,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="710.5327" y2="730.5327"/><polygon fill="#A80036" points="794,720.5327,798,730.5327,802,720.5327,798,724.5327" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="812.9038" y2="876.9038"/><polygon fill="#A80036" points="117.5,866.9038,121.5,876.9038,125.5,866.9038,121.5,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="812.9038" y2="876.9038"/><polygon fill="#A80036" points="313,866.9038,317,876.9038,321,866.9038,317,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="812.9038" y2="876.9038"/><polygon fill="#A80036" points="520.5,866.9038,524.5,876.9038,528.5,866.9038,524.5,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="856.9038" y2="876.9038"/><polygon fill="#A80036" points="794,866.9038,798,876.9038,802,866.9038,798,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="882.9038" y2="914.9038"/><polygon fill="#A80036" points="491,904.9038,495,914.9038,499,904.9038,495,908.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="948.8726" y2="968.8726"/><polygon fill="#A80036" points="491,958.8726,495,968.8726,499,958.8726,495,962.8726" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="800.5" x2="495" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="491,388.7188,495,398.7188,499,388.7188,495,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="1255" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255" x2="1255" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1251,390.2852,1255,400.2852,1259,390.2852,1255,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="871,354.7188,875,364.7188,879,354.7188,875,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2bafea4ab0a903c79c70ebbaacaee956]
+@startuml
+
+title **µRtWare**\nurtSrtSubscriberFetchLatestMessage()\n
+
+
+note
+  - - **subscriber** : urt_srtsubscriber_t* - -
+  The SRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  - - **payload** : void* - -
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  - - **bytes** : size_t - -
+  Payload size in bytes.
+  - - **latency** : urt_delay_t* - -
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+
+partition "find latest message" {
+  :access last read message;
+  while (Timestamp of next message is younger?) is (yes)
+    :proceed to next message;
+  endwhile (no)
+}
+
+
+partition "fetch message" {
+  fork
+    :update message pointer;
+  fork again
+      :copy timestamp of message;
+  fork again
+    :copy message payload;
+  fork again
+    if (Optional output argument ""latency"" given?) then (yes)
+      :set ""latency"" value (now - message origin time);
+    else (no)
+    endif
+  endfork
+}
+
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSrtSubscriberFetchLatestMessage.uml b/doc/activitydiagrams/subscriber/urtSrtSubscriberFetchLatestMessage.uml
new file mode 100644
index 0000000..76cc56b
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtSrtSubscriberFetchLatestMessage.uml
@@ -0,0 +1,69 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtSrtSubscriberFetchLatestMessage()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_srtsubscriber_t* --
+  The SRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  -- **payload** : void* --
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  -- **bytes** : size_t --
+  Payload size in bytes.
+  -- **latency** : urt_delay_t* --
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+  !include findlatestmessage.iuml
+  !include fetchmessage.iuml
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSrtSubscriberFetchNextMessage.svg b/doc/activitydiagrams/subscriber/urtSrtSubscriberFetchNextMessage.svg
new file mode 100644
index 0000000..a8ca38d
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtSrtSubscriberFetchNextMessage.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1098px" preserveAspectRatio="none" style="width:1281px;height:1098px;" version="1.1" viewBox="0 0 1281 1098" width="1281px" zoomAndPan="magnify"><defs><filter height="300%" id="fmq5zsv90biim" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="595" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="325" x="477" y="47.6611">urtSrtSubscriberFetchNextMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="642.5" y="68.6143"/><path d="M631,72.8594 L631,304.7188 L1119,304.7188 L1119,82.8594 L1109,72.8594 L631,72.8594 " fill="#FBFB77" filter="url(#fmq5zsv90biim)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1109,72.8594 L1109,82.8594 L1119,82.8594 L1109,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="762.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="766.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="766.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="848.5" y="89.4263">: urt_srtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="987.5" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="312" x="637" y="105.0591">The SRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="637" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="717" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="749" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="819" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="823" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="823" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="886" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="931" x2="1119" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="637" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="723" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="826" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="830" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="830" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="875" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="924" x2="1119" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="637" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="799.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="803.5" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="803.5" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="860.5" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="950.5" x2="1119" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="637" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="719" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="804" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="808" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="808" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="857" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="946" x2="1119" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="690" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="798" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="690" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="822" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="875" cy="334.7188" fill="#000000" filter="url(#fmq5zsv90biim)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fmq5zsv90biim)" points="812.5,364.7188,937.5,364.7188,949.5,376.7188,937.5,388.7188,812.5,388.7188,800.5,376.7188,812.5,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="812.5" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="780.5" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="949.5" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#fmq5zsv90biim)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="455" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="465" y="419.8574">lock topic</text><rect fill="#FFFFFF" filter="url(#fmq5zsv90biim)" height="307.7651" style="stroke: #000000; stroke-width: 2.0;" width="365.5" x="322" y="443.4893"/><path d="M506,444.4893 L506,452.7861 L496,462.7861 L322,462.7861 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="325" y="457.4844">find oldest valid message</text><rect fill="#FEFECE" filter="url(#fmq5zsv90biim)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="585.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="606.4556">proceed to next message</text><polygon fill="#FEFECE" filter="url(#fmq5zsv90biim)" points="378,528.1885,612,528.1885,624,540.1885,612,552.1885,378,552.1885,366,540.1885,378,528.1885" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="499" y="562.3989">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="378" y="543.9966">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="352" y="537.5942">no</text><polygon fill="#FEFECE" filter="url(#fmq5zsv90biim)" points="345.5,479.7861,644.5,479.7861,656.5,491.7861,644.5,503.7861,345.5,503.7861,333.5,491.7861,345.5,479.7861" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="499" y="513.9966">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="299" x="345.5" y="495.5942">Timestamp of last read message euqals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="656.5" y="489.1919">yes</text><polygon fill="#FEFECE" filter="url(#fmq5zsv90biim)" points="495,661.2856,507,673.2856,495,685.2856,483,673.2856,495,661.2856" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fmq5zsv90biim)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="705.2856"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="726.4243">proceed to next message</text><rect fill="#FFFFFF" filter="url(#fmq5zsv90biim)" height="226.668" style="stroke: #000000; stroke-width: 2.0;" width="988" x="10" y="762.0562"/><path d="M123,763.0562 L123,771.353 L113,781.353 L10,781.353 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="13" y="776.0513">fetch message</text><rect fill="#000000" filter="url(#fmq5zsv90biim)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="798.353"/><rect fill="#FEFECE" filter="url(#fmq5zsv90biim)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="34" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="44" y="893.894">update message pointer</text><rect fill="#FEFECE" filter="url(#fmq5zsv90biim)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="219" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="229" y="893.894">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#fmq5zsv90biim)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="443" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="453" y="893.894">copy message payload</text><rect fill="#FEFECE" filter="url(#fmq5zsv90biim)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="644" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="654" y="893.894">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="678" y="893.894">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="731" y="893.894">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#fmq5zsv90biim)" points="678.5,824.353,917.5,824.353,929.5,836.353,917.5,848.353,678.5,848.353,666.5,836.353,678.5,824.353" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="802" y="858.5635">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="678.5" y="840.1611">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="828.5" y="840.1611">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="881.5" y="840.1611">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="929.5" y="833.7588">no</text><polygon fill="#FEFECE" filter="url(#fmq5zsv90biim)" points="798,926.7241,810,938.7241,798,950.7241,786,938.7241,798,926.7241" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fmq5zsv90biim)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="970.7241"/><rect fill="#FEFECE" filter="url(#fmq5zsv90biim)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="447" y="1008.7241"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="457" y="1029.8628">unlock topic</text><path d="M282,1061.1265 L282,1086.2593 A0,0 0 0 0 282,1086.2593 L464,1086.2593 A0,0 0 0 0 464,1086.2593 L464,1079.1265 L484,1073.6929 L464,1071.1265 L464,1071.1265 L454,1061.1265 L282,1061.1265 A0,0 0 0 0 282,1061.1265 " fill="#FBFB77" filter="url(#fmq5zsv90biim)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454,1061.1265 L454,1071.1265 L464,1071.1265 L454,1061.1265 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="288" y="1078.1934">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="341" y="1078.1934">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="445" y="1078.1934">.</text><ellipse cx="495" cy="1073.6929" fill="#FFFFFF" filter="url(#fmq5zsv90biim)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="495" cy="1073.6929" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1018,398.7188 L1018,423.8516 A0,0 0 0 0 1018,423.8516 L1224,423.8516 A0,0 0 0 0 1224,423.8516 L1224,416.7188 L1244,411.2852 L1224,408.7188 L1224,408.7188 L1214,398.7188 L1018,398.7188 A0,0 0 0 0 1018,398.7188 " fill="#FBFB77" filter="url(#fmq5zsv90biim)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1214,398.7188 L1214,408.7188 L1224,408.7188 L1214,398.7188 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1024" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1077" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1205" y="415.7856">.</text><ellipse cx="1255" cy="411.2852" fill="#FFFFFF" filter="url(#fmq5zsv90biim)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1255" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="871,314.7188,875,324.7188,879,314.7188,875,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="552.1885" y2="585.3169"/><polygon fill="#A80036" points="491,575.3169,495,585.3169,499,575.3169,495,579.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="619.2856" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="636" y1="629.2856" y2="629.2856"/><polygon fill="#A80036" points="632,593.8989,636,583.8989,640,593.8989,636,589.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="636" y1="540.1885" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="624" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="634,536.1885,624,540.1885,634,544.1885,630,540.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="354" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="350,579.8989,354,589.8989,358,579.8989,354,583.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="540.1885" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="495" y1="641.2856" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="641.2856" y2="661.2856"/><polygon fill="#A80036" points="491,651.2856,495,661.2856,499,651.2856,495,655.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="503.7861" y2="528.1885"/><polygon fill="#A80036" points="491,518.1885,495,528.1885,499,518.1885,495,522.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656.5" x2="668.5" y1="491.7861" y2="491.7861"/><polygon fill="#A80036" points="664.5,573.8989,668.5,583.8989,672.5,573.8989,668.5,577.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="668.5" y1="491.7861" y2="673.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="507" y1="673.2856" y2="673.2856"/><polygon fill="#A80036" points="517,669.2856,507,673.2856,517,677.2856,513,673.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="685.2856" y2="705.2856"/><polygon fill="#A80036" points="491,695.2856,495,705.2856,499,695.2856,495,699.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="432.6875" y2="479.7861"/><polygon fill="#A80036" points="491,469.7861,495,479.7861,499,469.7861,495,473.7861" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="848.353" y2="872.7554"/><polygon fill="#A80036" points="794,862.7554,798,872.7554,802,862.7554,798,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="929.5" x2="962" y1="836.353" y2="836.353"/><polygon fill="#A80036" points="958,879.7397,962,889.7397,966,879.7397,962,883.7397" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="962" y1="836.353" y2="938.7241"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="810" y1="938.7241" y2="938.7241"/><polygon fill="#A80036" points="820,934.7241,810,938.7241,820,942.7241,816,938.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="906.7241" y2="926.7241"/><polygon fill="#A80036" points="794,916.7241,798,926.7241,802,916.7241,798,920.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="117.5,862.7554,121.5,872.7554,125.5,862.7554,121.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="313,862.7554,317,872.7554,321,862.7554,317,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="520.5,862.7554,524.5,872.7554,528.5,862.7554,524.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="804.353" y2="824.353"/><polygon fill="#A80036" points="794,814.353,798,824.353,802,814.353,798,818.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="117.5,960.7241,121.5,970.7241,125.5,960.7241,121.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="313,960.7241,317,970.7241,321,960.7241,317,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="520.5,960.7241,524.5,970.7241,528.5,960.7241,524.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="950.7241" y2="970.7241"/><polygon fill="#A80036" points="794,960.7241,798,970.7241,802,960.7241,798,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="739.2544" y2="798.353"/><polygon fill="#A80036" points="491,788.353,495,798.353,499,788.353,495,792.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="976.7241" y2="1008.7241"/><polygon fill="#A80036" points="491,998.7241,495,1008.7241,499,998.7241,495,1002.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="1042.6929" y2="1062.6929"/><polygon fill="#A80036" points="491,1052.6929,495,1062.6929,499,1052.6929,495,1056.6929" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="800.5" x2="495" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="491,388.7188,495,398.7188,499,388.7188,495,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="1255" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255" x2="1255" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1251,390.2852,1255,400.2852,1259,390.2852,1255,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="871,354.7188,875,364.7188,879,354.7188,875,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[04424566a7b22901c52697f7877ffb6b]
+@startuml
+
+title **µRtWare**\nurtSrtSubscriberFetchNextMessage()\n
+
+
+note
+  - - **subscriber** : urt_srtsubscriber_t* - -
+  The SRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  - - **payload** : void* - -
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  - - **bytes** : size_t - -
+  Payload size in bytes.
+  - - **latency** : urt_delay_t* - -
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+
+partition "find oldest valid message" {
+  if (Timestamp of last read message euqals local copy?) then (yes)
+  else (no)
+    while (Timestamp of next message is younger?) is (yes)
+      :proceed to next message;
+    endwhile (no)
+  endif
+  :proceed to next message;
+}
+
+
+partition "fetch message" {
+  fork
+    :update message pointer;
+  fork again
+      :copy timestamp of message;
+  fork again
+    :copy message payload;
+  fork again
+    if (Optional output argument ""latency"" given?) then (yes)
+      :set ""latency"" value (now - message origin time);
+    else (no)
+    endif
+  endfork
+}
+
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSrtSubscriberFetchNextMessage.uml b/doc/activitydiagrams/subscriber/urtSrtSubscriberFetchNextMessage.uml
new file mode 100644
index 0000000..11af46a
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtSrtSubscriberFetchNextMessage.uml
@@ -0,0 +1,69 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtSrtSubscriberFetchNextMessage()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_srtsubscriber_t* --
+  The SRT subscriber that shall fetch the message.
+  Must not be ""NULL"".
+  -- **payload** : void* --
+  Pointer where to copy the payload to.
+  May be ""NULL"" for messages without payload.
+  -- **bytes** : size_t --
+  Payload size in bytes.
+  -- **latency** : urt_delay_t* --
+  The latency can be returned by reference.
+  May be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Associated to a topic?) then (yes)
+  :lock topic;
+  !include findoldestvalidmessage.iuml
+  !include fetchmessage.iuml
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSrtSubscriberInit.svg b/doc/activitydiagrams/subscriber/urtSrtSubscriberInit.svg
new file mode 100644
index 0000000..c69042b
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtSrtSubscriberInit.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="495px" preserveAspectRatio="none" style="width:508px;height:495px;" version="1.1" viewBox="0 0 508 495" width="508px" zoomAndPan="magnify"><defs><filter height="300%" id="f15ks931pbyyq5" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="208.75" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="188" x="159.25" y="47.6611">urtSrtSubscriberInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="256.25" y="68.6143"/><path d="M250.5,72.8594 L250.5,168.5234 L496.5,168.5234 L496.5,82.8594 L486.5,72.8594 L250.5,72.8594 " fill="#FBFB77" filter="url(#f15ks931pbyyq5)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M486.5,72.8594 L486.5,82.8594 L496.5,82.8594 L486.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="250.5" x2="261" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="265" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="265" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="347" y="89.4263">: urt_srtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="486" x2="496.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="197" x="256.5" y="105.0591">The SRT subscriber to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="256.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="336.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="368.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="250.5" x2="496.5" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="250.5" x2="496.5" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="250.5" x2="302.5" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="306.5" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="306.5" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="355.5" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="444.5" x2="496.5" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="256.5" y="160.4575">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="353.5" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="457.5" y="160.4575">.</text><ellipse cx="373.5" cy="198.5234" fill="#000000" filter="url(#f15ks931pbyyq5)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,218.5234 L10,440.3828 A0,0 0 0 0 10,440.3828 L288,440.3828 A0,0 0 0 0 288,440.3828 L288,333.4531 L308,329.4531 L288,325.4531 L288,228.5234 L278,218.5234 L10,218.5234 A0,0 0 0 0 10,218.5234 " fill="#FBFB77" filter="url(#f15ks931pbyyq5)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M278,218.5234 L278,228.5234 L288,228.5234 L278,218.5234 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="78" y1="231.0898" y2="231.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="82" y="235.0903">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="220" x2="288" y1="231.0898" y2="231.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="16" y="250.7231">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="57" y="250.7231">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="72" y="250.7231">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="16" y="265.856">urtEventListenerInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="82" x="145" y="265.856">evtListener</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="227" y="265.856">)</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="16" y="280.9888">lastMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="113" y="280.9888">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="128" y="280.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="128" x="16" y="296.1216">lastMessageTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="148" y="296.1216">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="306.7539" y2="306.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="24.5" y="310.7544">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="277.5" x2="288" y1="306.7539" y2="306.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="101" x="16" y="326.3872">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="121" y="326.3872">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="173" x="16" y="341.52">numMessagesReceived</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="193" y="341.52">← 0</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="85" y1="352.1523" y2="352.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="89" y="356.1528">urt_srtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="213" x2="288" y1="352.1523" y2="352.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="97" x="16" y="371.7856">usefulnesscb</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="117" y="371.7856">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="132" y="371.7856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="74" x="16" y="386.9185">cbparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="94" y="386.9185">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="109" y="386.9185">NULL</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="397.5508" y2="397.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="24.5" y="401.5513">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="277.5" x2="288" y1="397.5508" y2="397.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="84" x="16" y="417.1841">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="104" y="417.1841">← 0xF..F</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="16" y="432.3169">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="108" y="432.3169">← 0</text><rect fill="#FEFECE" filter="url(#f15ks931pbyyq5)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="308" y="312.4688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="318" y="333.6074">initialize members</text><path d="M160.5,458.8164 L160.5,483.9492 A0,0 0 0 0 160.5,483.9492 L342.5,483.9492 A0,0 0 0 0 342.5,483.9492 L342.5,476.8164 L362.5,471.3828 L342.5,468.8164 L342.5,468.8164 L332.5,458.8164 L160.5,458.8164 A0,0 0 0 0 160.5,458.8164 " fill="#FBFB77" filter="url(#f15ks931pbyyq5)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M332.5,458.8164 L332.5,468.8164 L342.5,468.8164 L332.5,458.8164 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="166.5" y="475.8833">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="219.5" y="475.8833">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="323.5" y="475.8833">.</text><ellipse cx="373.5" cy="471.3828" fill="#FFFFFF" filter="url(#f15ks931pbyyq5)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="373.5" cy="471.3828" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="168.5234" y2="188.5234"/><polygon fill="#A80036" points="369.5,178.5234,373.5,188.5234,377.5,178.5234,373.5,182.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="208.5234" y2="312.4688"/><polygon fill="#A80036" points="369.5,302.4688,373.5,312.4688,377.5,302.4688,373.5,306.4688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="346.4375" y2="460.3828"/><polygon fill="#A80036" points="369.5,450.3828,373.5,460.3828,377.5,450.3828,373.5,454.3828" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0745453a98b4dfc33b42f23ddd6ecabe]
+@startuml
+
+title **µRtWare**\nurtSrtSubscriberInit()\n
+
+
+note
+  - - **subscriber** : urt_srtsubscriber_t* - -
+  The SRT subscriber to initialize.
+  Must not be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Always returns ""URT_STATUS_OK"".
+endnote
+
+
+start
+:initialize members;
+note
+  - - urt_basesubscriber_t - -
+  **topic** ← ""NULL""
+  urtEventListenerInit(**evtListener**)
+  **lastMessage** ← ""NULL""
+  **lastMessageTime** ← 0
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **sumLatencies** ← 0
+  **numMessagesReceived** ← 0
+  - - urt_srtsubscriber_t - -
+  **usefulnesscb** ← ""NULL""
+  **cbparams** ← ""NULL""
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **minLatency** ← 0xF..F
+  **maxLatency** ← 0
+endnote
+stop
+note
+  Returns ""URT_STATUS_OK"".
+endnote
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSrtSubscriberInit.uml b/doc/activitydiagrams/subscriber/urtSrtSubscriberInit.uml
new file mode 100644
index 0000000..d195378
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtSrtSubscriberInit.uml
@@ -0,0 +1,66 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtSrtSubscriberInit()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_srtsubscriber_t* --
+  The SRT subscriber to initialize.
+  Must not be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Always returns ""URT_STATUS_OK"".
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+:initialize members;
+note
+  -- urt_basesubscriber_t --
+  **topic** ← ""NULL""
+  urtEventListenerInit(**evtListener**)
+  **lastMessage** ← ""NULL""
+  **lastMessageTime** ← 0
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **sumLatencies** ← 0
+  **numMessagesReceived** ← 0
+  -- urt_srtsubscriber_t --
+  **usefulnesscb** ← ""NULL""
+  **cbparams** ← ""NULL""
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **minLatency** ← 0xF..F
+  **maxLatency** ← 0
+endnote
+stop
+note
+  Returns ""URT_STATUS_OK"".
+endnote
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSrtSubscriberSubscribe.svg b/doc/activitydiagrams/subscriber/urtSrtSubscriberSubscribe.svg
new file mode 100644
index 0000000..cfc842e
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtSrtSubscriberSubscribe.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1035px" preserveAspectRatio="none" style="width:2404px;height:1035px;" version="1.1" viewBox="0 0 2404 1035" width="2404px" zoomAndPan="magnify"><defs><filter height="300%" id="f1a9200w17db8v" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="1156.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="244" x="1079" y="47.6611">urtSrtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1204" y="68.6143"/><path d="M525.25,72.8594 L525.25,395.5156 L1039.25,395.5156 L1039.25,82.8594 L1029.25,72.8594 L525.25,72.8594 " fill="#FBFB77" filter="url(#f1a9200w17db8v)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1029.25,72.8594 L1029.25,82.8594 L1039.25,82.8594 L1029.25,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="669.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="673.75" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="673.75" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="755.75" y="89.4263">: urt_srtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="894.75" x2="1039.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="326" x="531.25" y="105.0591">The SRT subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="531.25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="611.25" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="643.25" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="716.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="720.25" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="720.25" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="761.25" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="848.25" x2="1039.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="531.25" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="531.25" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="611.25" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="643.25" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="683.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="687.25" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="687.25" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="766.25" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="881.25" x2="1039.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="531.25" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="567.25" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="531.25" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="531.25" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="531.25" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="581.25" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="617.25" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="645.75" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="649.75" y="255.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="97" x="649.75" y="255.8872">usefulnesscb</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="164" x="750.75" y="255.8872">: urt_srtusefulnessfunc_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="918.75" x2="1039.25" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="374" x="531.25" y="271.52">Pointer to a function to calculate usefulness of a message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="531.25" y="286.6528">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="611.25" y="286.6528">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="643.25" y="286.6528">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="718.75" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="722.75" y="301.2856"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="74" x="722.75" y="301.2856">cbparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="800.75" y="301.2856">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="845.75" x2="1039.25" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="309" x="531.25" y="316.9185">Optional parameters for the usefulness callback.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="531.25" y="332.0513">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="581.25" y="332.0513">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="617.25" y="332.0513">if the callback expects no parameters.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="1039.25" y1="340.1172" y2="340.1172"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="1039.25" y1="342.1172" y2="342.1172"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="525.25" x2="711.25" y1="352.6836" y2="352.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="715.25" y="356.6841"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="715.25" y="356.6841">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="764.25" y="356.6841">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="853.25" x2="1039.25" y1="352.6836" y2="352.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="531.25" y="372.3169">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="584.25" y="372.3169">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="692.25" y="372.3169">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="531.25" y="387.4497">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="584.25" y="387.4497">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="716.25" y="387.4497">if the subscriber is already associated to a topic.</text><ellipse cx="782.25" cy="425.5156" fill="#000000" filter="url(#f1a9200w17db8v)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1a9200w17db8v)" points="724.75,455.5156,839.75,455.5156,851.75,467.5156,839.75,479.5156,724.75,479.5156,712.75,467.5156,724.75,455.5156" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="724.75" y="471.3237">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="692.75" y="464.9214">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="851.75" y="464.9214">no</text><path d="M10,489.5156 L10,514.6484 A0,0 0 0 0 10,514.6484 L216,514.6484 A0,0 0 0 0 216,514.6484 L216,507.5156 L236,502.082 L216,499.5156 L216,499.5156 L206,489.5156 L10,489.5156 A0,0 0 0 0 10,489.5156 " fill="#FBFB77" filter="url(#f1a9200w17db8v)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M206,489.5156 L206,499.5156 L216,499.5156 L206,489.5156 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="506.5825">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="69" y="506.5825">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="197" y="506.5825">.</text><ellipse cx="247" cy="502.082" fill="#FFFFFF" filter="url(#f1a9200w17db8v)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="247" cy="502.082" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#f1a9200w17db8v)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="491" x="1094" y="489.5156"/><rect fill="#FEFECE" filter="url(#f1a9200w17db8v)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1108" y="515.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1118" y="536.6543">set topic</text><rect fill="#FEFECE" filter="url(#f1a9200w17db8v)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="167" x="1211" y="515.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="1221" y="536.6543">set usefulness callback</text><rect fill="#FEFECE" filter="url(#f1a9200w17db8v)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="165" x="1406" y="515.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="145" x="1416" y="536.6543">set callback parameter</text><rect fill="#000000" filter="url(#f1a9200w17db8v)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="491" x="1094" y="569.4844"/><rect fill="#FEFECE" filter="url(#f1a9200w17db8v)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1299.5" y="595.4844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1309.5" y="616.623">lock topic</text><rect fill="#000000" filter="url(#f1a9200w17db8v)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2125" x="268" y="649.4531"/><rect fill="#FFFFFF" filter="url(#f1a9200w17db8v)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1168" x="280" y="721.9653"/><path d="M437,722.9653 L437,731.2622 L427,741.2622 L280,741.2622 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="283" y="735.9604">contribute messages</text><rect fill="#000000" filter="url(#f1a9200w17db8v)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="758.2622"/><rect fill="#FEFECE" filter="url(#f1a9200w17db8v)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="304" y="784.2622"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="314" y="805.4009">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f1a9200w17db8v)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="806" y="784.2622"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="816" y="805.4009">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#f1a9200w17db8v)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="838.231"/><polygon fill="#FEFECE" filter="url(#f1a9200w17db8v)" points="794,675.4531,934,675.4531,946,687.4531,934,699.4531,794,699.4531,782,687.4531,794,675.4531" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="868" y="709.6636">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="794" y="691.2612">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="946" y="684.8589">no</text><polygon fill="#FEFECE" filter="url(#f1a9200w17db8v)" points="864,876.231,876,888.231,864,900.231,852,888.231,864,876.231" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1a9200w17db8v)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="656" x="1498" y="750.1138"/><rect fill="#FEFECE" filter="url(#f1a9200w17db8v)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1512" y="776.1138"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1522" y="797.2524">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#f1a9200w17db8v)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="297" x="1845" y="776.1138"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="277" x="1855" y="797.2524">copy timestamp from topic's latest message</text><rect fill="#000000" filter="url(#f1a9200w17db8v)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="656" x="1498" y="830.0825"/><rect fill="#FEFECE" filter="url(#f1a9200w17db8v)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="2164" y="776.1138"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="2174" y="797.2524">register to topic's event source</text><rect fill="#000000" filter="url(#f1a9200w17db8v)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2125" x="268" y="920.231"/><rect fill="#FEFECE" filter="url(#f1a9200w17db8v)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1291.5" y="946.231"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1301.5" y="967.3696">unlock topic</text><path d="M1126.5,998.6333 L1126.5,1023.7661 A0,0 0 0 0 1126.5,1023.7661 L1308.5,1023.7661 A0,0 0 0 0 1308.5,1023.7661 L1308.5,1016.6333 L1328.5,1011.1997 L1308.5,1008.6333 L1308.5,1008.6333 L1298.5,998.6333 L1126.5,998.6333 A0,0 0 0 0 1126.5,998.6333 " fill="#FBFB77" filter="url(#f1a9200w17db8v)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1298.5,998.6333 L1298.5,1008.6333 L1308.5,1008.6333 L1298.5,998.6333 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1132.5" y="1015.7002">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1185.5" y="1015.7002">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1289.5" y="1015.7002">.</text><ellipse cx="1339.5" cy="1011.1997" fill="#FFFFFF" filter="url(#f1a9200w17db8v)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1339.5" cy="1011.1997" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782.25" x2="782.25" y1="395.5156" y2="415.5156"/><polygon fill="#A80036" points="778.25,405.5156,782.25,415.5156,786.25,405.5156,782.25,409.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1145.5" x2="1145.5" y1="495.5156" y2="515.5156"/><polygon fill="#A80036" points="1141.5,505.5156,1145.5,515.5156,1149.5,505.5156,1145.5,509.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1294.5" x2="1294.5" y1="495.5156" y2="515.5156"/><polygon fill="#A80036" points="1290.5,505.5156,1294.5,515.5156,1298.5,505.5156,1294.5,509.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1488.5" x2="1488.5" y1="495.5156" y2="515.5156"/><polygon fill="#A80036" points="1484.5,505.5156,1488.5,515.5156,1492.5,505.5156,1488.5,509.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1145.5" x2="1145.5" y1="549.4844" y2="569.4844"/><polygon fill="#A80036" points="1141.5,559.4844,1145.5,569.4844,1149.5,559.4844,1145.5,563.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1294.5" x2="1294.5" y1="549.4844" y2="569.4844"/><polygon fill="#A80036" points="1290.5,559.4844,1294.5,569.4844,1298.5,559.4844,1294.5,563.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1488.5" x2="1488.5" y1="549.4844" y2="569.4844"/><polygon fill="#A80036" points="1484.5,559.4844,1488.5,569.4844,1492.5,559.4844,1488.5,563.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="575.4844" y2="595.4844"/><polygon fill="#A80036" points="1335.5,585.4844,1339.5,595.4844,1343.5,585.4844,1339.5,589.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="764.2622" y2="784.2622"/><polygon fill="#A80036" points="537,774.2622,541,784.2622,545,774.2622,541,778.2622" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="764.2622" y2="784.2622"/><polygon fill="#A80036" points="1111,774.2622,1115,784.2622,1119,774.2622,1115,778.2622" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="818.231" y2="838.231"/><polygon fill="#A80036" points="537,828.231,541,838.231,545,828.231,541,832.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="818.231" y2="838.231"/><polygon fill="#A80036" points="1111,828.231,1115,838.231,1119,828.231,1115,832.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="699.4531" y2="758.2622"/><polygon fill="#A80036" points="860,748.2622,864,758.2622,868,748.2622,864,752.2622" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="946" x2="1458" y1="687.4531" y2="687.4531"/><polygon fill="#A80036" points="1454,783.0981,1458,793.0981,1462,783.0981,1458,787.0981" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="1458" y1="687.4531" y2="888.231"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="876" y1="888.231" y2="888.231"/><polygon fill="#A80036" points="886,884.231,876,888.231,886,892.231,882,888.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="844.231" y2="876.231"/><polygon fill="#A80036" points="860,866.231,864,876.231,868,866.231,864,870.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="756.1138" y2="776.1138"/><polygon fill="#A80036" points="1664.5,766.1138,1668.5,776.1138,1672.5,766.1138,1668.5,770.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1993.5" x2="1993.5" y1="756.1138" y2="776.1138"/><polygon fill="#A80036" points="1989.5,766.1138,1993.5,776.1138,1997.5,766.1138,1993.5,770.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="810.0825" y2="830.0825"/><polygon fill="#A80036" points="1664.5,820.0825,1668.5,830.0825,1672.5,820.0825,1668.5,824.0825" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1993.5" x2="1993.5" y1="810.0825" y2="830.0825"/><polygon fill="#A80036" points="1989.5,820.0825,1993.5,830.0825,1997.5,820.0825,1993.5,824.0825" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="655.4531" y2="675.4531"/><polygon fill="#A80036" points="860,665.4531,864,675.4531,868,665.4531,864,669.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="655.4531" y2="750.1138"/><polygon fill="#A80036" points="1827,740.1138,1831,750.1138,1835,740.1138,1831,744.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2272.5" x2="2272.5" y1="655.4531" y2="776.1138"/><polygon fill="#A80036" points="2268.5,766.1138,2272.5,776.1138,2276.5,766.1138,2272.5,770.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="900.231" y2="920.231"/><polygon fill="#A80036" points="860,910.231,864,920.231,868,910.231,864,914.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="836.0825" y2="920.231"/><polygon fill="#A80036" points="1827,910.231,1831,920.231,1835,910.231,1831,914.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2272.5" x2="2272.5" y1="810.0825" y2="920.231"/><polygon fill="#A80036" points="2268.5,910.231,2272.5,920.231,2276.5,910.231,2272.5,914.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="629.4531" y2="649.4531"/><polygon fill="#A80036" points="1335.5,639.4531,1339.5,649.4531,1343.5,639.4531,1339.5,643.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="926.231" y2="946.231"/><polygon fill="#A80036" points="1335.5,936.231,1339.5,946.231,1343.5,936.231,1339.5,940.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="980.1997" y2="1000.1997"/><polygon fill="#A80036" points="1335.5,990.1997,1339.5,1000.1997,1343.5,990.1997,1339.5,994.1997" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="712.75" x2="247" y1="467.5156" y2="467.5156"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247" x2="247" y1="467.5156" y2="491.082"/><polygon fill="#A80036" points="243,481.082,247,491.082,251,481.082,247,485.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="851.75" x2="1339.5" y1="467.5156" y2="467.5156"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="467.5156" y2="489.5156"/><polygon fill="#A80036" points="1335.5,479.5156,1339.5,489.5156,1343.5,479.5156,1339.5,483.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782.25" x2="782.25" y1="435.5156" y2="455.5156"/><polygon fill="#A80036" points="778.25,445.5156,782.25,455.5156,786.25,445.5156,782.25,449.5156" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[211077ebe8584d2b375248b4c7646ba0]
+@startuml
+
+title **µRtWare**\nurtSrtSubscriberSubscribe()\n
+
+
+note
+  - - **subscriber** : urt_srtsubscriber_t* - -
+  The SRT subscriber which shall subscribe to a topic.
+  Must not be ""NULL"".
+  - - **topic** : urt_topic_t* - -
+  The topic to subscribe to.
+  Must not be ""NULL"".
+  - - **messages** : urt_message_t* - -
+  ""NULL"" terminated list of messages to contribute to the topic.
+  Messages must not be associated to another topic.
+  Once a message has been contributed, it cannot be removed later.
+  May be ""NULL"" (no messages to contribute).
+  - - **usefulnesscb** : urt_srtusefulnessfunc_t* - -
+  Pointer to a function to calculate usefulness of a message.
+  Must not be ""NULL"".
+  - - **cbparams** : void* - -
+  Optional parameters for the usefulness callback.
+  May be ""NULL"" if the callback expects no parameters.
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is already associated to a topic.
+endnote
+
+
+start
+if (Is topic already set?) then (yes)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+else (no)
+  fork
+    :set topic;
+  fork again
+    :set usefulness callback;
+  fork again
+    :set callback parameter;
+  endfork
+  :lock topic;
+  fork
+    if (Messages to contribute?) then (yes)
+
+partition "contribute messages" {
+  fork
+    :set next pointer of topic's latest message to first message to contribute;
+  fork again
+    :set next pointer of last message to contribute to the message after the topic's latest message;
+  endfork
+}
+
+    else (no)
+    endif
+  fork again
+    fork
+      :set message pointer to topic's latest message;
+    fork again
+      :copy timestamp from topic's latest message;
+    endfork
+  fork again
+    :register to topic's event source;
+  endfork
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSrtSubscriberSubscribe.uml b/doc/activitydiagrams/subscriber/urtSrtSubscriberSubscribe.uml
new file mode 100644
index 0000000..80e46e0
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtSrtSubscriberSubscribe.uml
@@ -0,0 +1,94 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtSrtSubscriberSubscribe()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_srtsubscriber_t* --
+  The SRT subscriber which shall subscribe to a topic.
+  Must not be ""NULL"".
+  -- **topic** : urt_topic_t* --
+  The topic to subscribe to.
+  Must not be ""NULL"".
+  -- **messages** : urt_message_t* --
+  ""NULL"" terminated list of messages to contribute to the topic.
+  Messages must not be associated to another topic.
+  Once a message has been contributed, it cannot be removed later.
+  May be ""NULL"" (no messages to contribute).
+  -- **usefulnesscb** : urt_srtusefulnessfunc_t* --
+  Pointer to a function to calculate usefulness of a message.
+  Must not be ""NULL"".
+  -- **cbparams** : void* --
+  Optional parameters for the usefulness callback.
+  May be ""NULL"" if the callback expects no parameters.
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is already associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Is topic already set?) then (yes)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+else (no)
+  fork
+    :set topic;
+  fork again
+    :set usefulness callback;
+  fork again
+    :set callback parameter;
+  endfork
+  :lock topic;
+  fork
+    if (Messages to contribute?) then (yes)
+      !include ../contributemessages.iuml
+    else (no)
+    endif
+  fork again
+    fork
+      :set message pointer to topic's latest message;
+    fork again
+      :copy timestamp from topic's latest message;
+    endfork
+  fork again
+    :register to topic's event source;
+  endfork
+  :unlock topic;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSrtSubscriberUnsubscribe.svg b/doc/activitydiagrams/subscriber/urtSrtSubscriberUnsubscribe.svg
new file mode 100644
index 0000000..fca63b0
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtSrtSubscriberUnsubscribe.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="583px" preserveAspectRatio="none" style="width:781px;height:583px;" version="1.1" viewBox="0 0 781 583" width="781px" zoomAndPan="magnify"><defs><filter height="300%" id="f14poi4zpuvyki" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="345" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="266" x="256.5" y="47.6611">urtSrtSubscriberUnsubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="392.5" y="68.6143"/><path d="M281,72.8594 L281,183.6563 L769,183.6563 L769,82.8594 L759,72.8594 L281,72.8594 " fill="#FBFB77" filter="url(#f14poi4zpuvyki)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M759,72.8594 L759,82.8594 L769,82.8594 L759,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="281" x2="412.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="416.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="416.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="498.5" y="89.4263">: urt_srtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="637.5" x2="769" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="251" x="287" y="105.0591">The SRT subscriber to be unsubscribed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="287" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="367" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="399" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="281" x2="769" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="281" x2="769" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="281" x2="454" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="458" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="458" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="507" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="596" x2="769" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="287" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="340" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="68" x="448" y="160.4575">on sucess.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="287" y="175.5903">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="340" y="175.5903">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="472" y="175.5903">if the subscriber is not associated to a topic.</text><ellipse cx="525" cy="213.6563" fill="#000000" filter="url(#f14poi4zpuvyki)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f14poi4zpuvyki)" points="462.5,243.6563,587.5,243.6563,599.5,255.6563,587.5,267.6563,462.5,267.6563,450.5,255.6563,462.5,243.6563" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="462.5" y="259.4644">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="430.5" y="253.062">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="599.5" y="253.062">no</text><rect fill="#FEFECE" filter="url(#f14poi4zpuvyki)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="303.5" y="277.6563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="313.5" y="298.7949">unregister event</text><path d="M10,321.625 L10,528.3516 A0,0 0 0 0 10,528.3516 L288,528.3516 A0,0 0 0 0 288,528.3516 L288,428.9883 L308,424.9883 L288,420.9883 L288,331.625 L278,321.625 L10,321.625 A0,0 0 0 0 10,321.625 " fill="#FBFB77" filter="url(#f14poi4zpuvyki)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M278,321.625 L278,331.625 L288,331.625 L278,321.625 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="78" y1="334.1914" y2="334.1914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="82" y="338.1919">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="220" x2="288" y1="334.1914" y2="334.1914"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="16" y="353.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="57" y="353.8247">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="72" y="353.8247">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="16" y="368.9575">lastMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="113" y="368.9575">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="128" y="368.9575">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="128" x="16" y="384.0903">lastMessageTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="148" y="384.0903">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="394.7227" y2="394.7227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="24.5" y="398.7231">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="277.5" x2="288" y1="394.7227" y2="394.7227"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="101" x="16" y="414.356">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="121" y="414.356">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="173" x="16" y="429.4888">numMessagesReceived</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="193" y="429.4888">← 0</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="85" y1="440.1211" y2="440.1211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="89" y="444.1216">urt_srtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="213" x2="288" y1="440.1211" y2="440.1211"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="97" x="16" y="459.7544">usefulnesscb</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="117" y="459.7544">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="132" y="459.7544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="74" x="16" y="474.8872">cbparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="94" y="474.8872">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="109" y="474.8872">NULL</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="485.5195" y2="485.5195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="24.5" y="489.52">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="277.5" x2="288" y1="485.5195" y2="485.5195"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="84" x="16" y="505.1528">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="104" y="505.1528">← 0xF..F</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="16" y="520.2856">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="108" y="520.2856">← 0</text><rect fill="#FEFECE" filter="url(#f14poi4zpuvyki)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="308" y="408.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="318" y="429.1426">reset members</text><path d="M152.5,546.7852 L152.5,571.918 A0,0 0 0 0 152.5,571.918 L334.5,571.918 A0,0 0 0 0 334.5,571.918 L334.5,564.7852 L354.5,559.3516 L334.5,556.7852 L334.5,556.7852 L324.5,546.7852 L152.5,546.7852 A0,0 0 0 0 152.5,546.7852 " fill="#FBFB77" filter="url(#f14poi4zpuvyki)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M324.5,546.7852 L324.5,556.7852 L334.5,556.7852 L324.5,546.7852 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="158.5" y="563.8521">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="211.5" y="563.8521">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="315.5" y="563.8521">.</text><ellipse cx="365.5" cy="559.3516" fill="#FFFFFF" filter="url(#f14poi4zpuvyki)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="365.5" cy="559.3516" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M447.5,277.6563 L447.5,302.7891 A0,0 0 0 0 447.5,302.7891 L653.5,302.7891 A0,0 0 0 0 653.5,302.7891 L653.5,295.6563 L673.5,290.2227 L653.5,287.6563 L653.5,287.6563 L643.5,277.6563 L447.5,277.6563 A0,0 0 0 0 447.5,277.6563 " fill="#FBFB77" filter="url(#f14poi4zpuvyki)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M643.5,277.6563 L643.5,287.6563 L653.5,287.6563 L643.5,277.6563 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="453.5" y="294.7231">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="506.5" y="294.7231">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="634.5" y="294.7231">.</text><ellipse cx="684.5" cy="290.2227" fill="#FFFFFF" filter="url(#f14poi4zpuvyki)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="684.5" cy="290.2227" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="525" x2="525" y1="183.6563" y2="203.6563"/><polygon fill="#A80036" points="521,193.6563,525,203.6563,529,193.6563,525,197.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="365.5" y1="311.625" y2="408.0039"/><polygon fill="#A80036" points="361.5,398.0039,365.5,408.0039,369.5,398.0039,365.5,402.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="365.5" y1="441.9727" y2="548.3516"/><polygon fill="#A80036" points="361.5,538.3516,365.5,548.3516,369.5,538.3516,365.5,542.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="450.5" x2="365.5" y1="255.6563" y2="255.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="365.5" y1="255.6563" y2="277.6563"/><polygon fill="#A80036" points="361.5,267.6563,365.5,277.6563,369.5,267.6563,365.5,271.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="599.5" x2="684.5" y1="255.6563" y2="255.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="684.5" x2="684.5" y1="255.6563" y2="279.2227"/><polygon fill="#A80036" points="680.5,269.2227,684.5,279.2227,688.5,269.2227,684.5,273.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="525" x2="525" y1="223.6563" y2="243.6563"/><polygon fill="#A80036" points="521,233.6563,525,243.6563,529,233.6563,525,237.6563" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[81fdee88b368d86a548b42373ff2df74]
+@startuml
+
+title **µRtWare**\nurtSrtSubscriberUnsubscribe()\n
+
+
+note
+  - - **subscriber** : urt_srtsubscriber_t* - -
+  The SRT subscriber to be unsubscribed.
+  Must not be ""NULL"".
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on sucess.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+
+start
+if (Associated to a topic?) then (yes)
+  :unregister event;
+  :reset members;
+  note
+    - - urt_basesubscriber_t - -
+    **topic** ← ""NULL""
+    **lastMessage** ← ""NULL""
+    **lastMessageTime** ← 0
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    **sumLatencies** ← 0
+    **numMessagesReceived** ← 0
+    - - urt_srtsubscriber_t - -
+    **usefulnesscb** ← ""NULL""
+    **cbparams** ← ""NULL""
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    **minLatency** ← 0xF..F
+    **maxLatency** ← 0
+  endnote
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+
+@enduml
+
+PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSrtSubscriberUnsubscribe.uml b/doc/activitydiagrams/subscriber/urtSrtSubscriberUnsubscribe.uml
new file mode 100644
index 0000000..3f29860
--- /dev/null
+++ b/doc/activitydiagrams/subscriber/urtSrtSubscriberUnsubscribe.uml
@@ -0,0 +1,74 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2020  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+/'### INTRO ##################################################################'/
+
+@startuml
+
+title **µRtWare**\nurtSrtSubscriberUnsubscribe()\n
+
+/'### PARAMETERS & RETURN ####################################################'/
+
+note
+  -- **subscriber** : urt_srtsubscriber_t* --
+  The SRT subscriber to be unsubscribed.
+  Must not be ""NULL"".
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on sucess.
+  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
+endnote
+
+/'### PROCEDURE ##############################################################'/
+
+start
+if (Associated to a topic?) then (yes)
+  :unregister event;
+  :reset members;
+  note
+    -- urt_basesubscriber_t --
+    **topic** ← ""NULL""
+    **lastMessage** ← ""NULL""
+    **lastMessageTime** ← 0
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    **sumLatencies** ← 0
+    **numMessagesReceived** ← 0
+    -- urt_srtsubscriber_t --
+    **usefulnesscb** ← ""NULL""
+    **cbparams** ← ""NULL""
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    **minLatency** ← 0xF..F
+    **maxLatency** ← 0
+  endnote
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
+
+/'### OUTRO ##################################################################'/
+
+@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberCalculateUsefulness.svg b/doc/activitydiagrams/subscriber/urtSubscriberCalculateUsefulness.svg
deleted file mode 100644
index a70b121..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberCalculateUsefulness.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="420px" preserveAspectRatio="none" style="width:1061px;height:420px;" version="1.1" viewBox="0 0 1061 420" width="1061px" zoomAndPan="magnify"><defs><filter height="300%" id="fi54d3amdm4ll" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="485" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="307" x="376" y="47.6611">urtSubscriberCalculateUsefulness()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="532.5" y="68.6143"/><path d="M174,72.8594 L174,158.5234 A0,0 0 0 0 174,158.5234 L525,158.5234 A0,0 0 0 0 525,158.5234 L525,119.6914 L545,115.6914 L525,111.6914 L525,82.8594 L515,72.8594 L174,72.8594 A0,0 0 0 0 174,72.8594 " fill="#FBFB77" filter="url(#fi54d3amdm4ll)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M515,72.8594 L515,82.8594 L525,82.8594 L515,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="174" x2="225.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="229.5" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="229.5" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="317.5" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="473.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="473.5" x2="525" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="223" x="180" y="105.0591">The subscriber to be unsubscribed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="180" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="260" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="292" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="174" x2="261.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="265.5" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="265.5" y="134.8247">latency</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="329.5" y="134.8247">: urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="437.5" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="437.5" x2="525" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="330" x="180" y="150.4575">Delay (of a mesage) to calculate the usefulness for.</text><ellipse cx="555" cy="115.6914" fill="#000000" filter="url(#fi54d3amdm4ll)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fi54d3amdm4ll)" points="375,178.5234,423,178.5234,435,190.5234,423,202.5234,375,202.5234,363,190.5234,375,178.5234" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="403" y="212.7339">HRT</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="48" x="375" y="194.3315">RT class</text><path d="M10,238.6519 L10,263.7847 A0,0 0 0 0 10,263.7847 L344,263.7847 A0,0 0 0 0 344,263.7847 L344,256.6519 L364,251.2183 L344,248.6519 L344,248.6519 L334,238.6519 L10,238.6519 A0,0 0 0 0 10,238.6519 " fill="#FBFB77" filter="url(#fi54d3amdm4ll)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M334,238.6519 L334,248.6519 L344,248.6519 L334,238.6519 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="16" y="255.7188">Otherwise some QoS timer would have triggered.</text><rect fill="#FEFECE" filter="url(#fi54d3amdm4ll)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="70" x="364" y="234.2339"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="374" y="255.3726">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="417" y="255.3726">1</text><polygon fill="#FEFECE" filter="url(#fi54d3amdm4ll)" points="716.5,178.5234,764.5,178.5234,776.5,190.5234,764.5,202.5234,716.5,202.5234,704.5,190.5234,716.5,178.5234" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="744.5" y="212.7339">FRT</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="48" x="716.5" y="194.3315">RT class</text><path d="M455,270.6519 L455,295.7847 L636,295.7847 L636,280.6519 L626,270.6519 L455,270.6519 " fill="#FBFB77" filter="url(#fi54d3amdm4ll)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M626,270.6519 L626,280.6519 L636,280.6519 L626,270.6519 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="160" x="461" y="287.7188">ToDo: When is timing ok?</text><polygon fill="#FEFECE" filter="url(#fi54d3amdm4ll)" points="710,234.2339,771,234.2339,783,246.2339,771,258.2339,710,258.2339,698,246.2339,710,234.2339" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="710" y="250.042">Timing ok?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="678" y="243.6396">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="783" y="243.6396">no</text><rect fill="#FEFECE" filter="url(#fi54d3amdm4ll)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="646" y="268.2339"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="656" y="289.3726">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="699" y="289.3726">1.0</text><rect fill="#FEFECE" filter="url(#fi54d3amdm4ll)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="751" y="268.2339"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="761" y="289.3726">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="804" y="289.3726">0.0</text><polygon fill="#FEFECE" filter="url(#fi54d3amdm4ll)" points="740.5,308.2026,752.5,320.2026,740.5,332.2026,728.5,320.2026,740.5,308.2026" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fi54d3amdm4ll)" points="883.5,178.5234,931.5,178.5234,943.5,190.5234,931.5,202.5234,883.5,202.5234,871.5,190.5234,883.5,178.5234" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="911.5" y="212.7339">SRT</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="48" x="883.5" y="194.3315">RT class</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="943.5" y="187.9292">NRT</text><rect fill="#FEFECE" filter="url(#fi54d3amdm4ll)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="845" y="234.2339"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="105" x="855" y="255.3726">execute callback</text><rect fill="#FEFECE" filter="url(#fi54d3amdm4ll)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="858" y="303.2026"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="868" y="324.3413">return result</text><rect fill="#FEFECE" filter="url(#fi54d3amdm4ll)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="70" x="980" y="265.3159"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="990" y="286.4546">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="1033" y="286.4546">1</text><path d="M200,368.0386 L200,408.3042 A0,0 0 0 0 200,408.3042 L524,408.3042 A0,0 0 0 0 524,408.3042 L524,392.1714 L544,388.1714 L524,384.1714 L524,378.0386 L514,368.0386 L200,368.0386 A0,0 0 0 0 200,368.0386 " fill="#FBFB77" filter="url(#fi54d3amdm4ll)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M514,368.0386 L514,378.0386 L524,378.0386 L514,368.0386 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="200" x2="313.5" y1="380.605" y2="380.605"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="317.5" y="384.6055"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="317.5" y="384.6055">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="366.5" y="384.6055"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="40" x="366.5" y="384.6055">float</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="410.5" y="384.6055"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="410.5" x2="524" y1="380.605" y2="380.605"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="255" x="206" y="400.2383">Returns the usefulness as a value within</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="40" x="465" y="400.2383">[0,1]</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="505" y="400.2383">.</text><ellipse cx="555" cy="388.1714" fill="#FFFFFF" filter="url(#fi54d3amdm4ll)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="555" cy="388.1714" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="698" x2="688" y1="246.2339" y2="246.2339"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="688" x2="688" y1="246.2339" y2="268.2339"/><polygon fill="#A80036" points="684,258.2339,688,268.2339,692,258.2339,688,262.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="783" x2="793" y1="246.2339" y2="246.2339"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="793" x2="793" y1="246.2339" y2="268.2339"/><polygon fill="#A80036" points="789,258.2339,793,268.2339,797,258.2339,793,262.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="688" x2="688" y1="302.2026" y2="320.2026"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="688" x2="728.5" y1="320.2026" y2="320.2026"/><polygon fill="#A80036" points="718.5,316.2026,728.5,320.2026,718.5,324.2026,722.5,320.2026" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="793" x2="793" y1="302.2026" y2="320.2026"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="793" x2="752.5" y1="320.2026" y2="320.2026"/><polygon fill="#A80036" points="762.5,316.2026,752.5,320.2026,762.5,324.2026,758.5,320.2026" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="907.5" x2="907.5" y1="268.2026" y2="303.2026"/><polygon fill="#A80036" points="903.5,293.2026,907.5,303.2026,911.5,293.2026,907.5,297.2026" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="399" y1="202.5234" y2="234.2339"/><polygon fill="#A80036" points="395,224.2339,399,234.2339,403,224.2339,399,228.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="399" y1="268.2026" y2="357.1714"/><polygon fill="#A80036" points="395,347.1714,399,357.1714,403,347.1714,399,351.1714" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="202.5234" y2="234.2339"/><polygon fill="#A80036" points="736.5,224.2339,740.5,234.2339,744.5,224.2339,740.5,228.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="332.2026" y2="357.1714"/><polygon fill="#A80036" points="736.5,347.1714,740.5,357.1714,744.5,347.1714,740.5,351.1714" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="907.5" x2="907.5" y1="202.5234" y2="234.2339"/><polygon fill="#A80036" points="903.5,224.2339,907.5,234.2339,911.5,224.2339,907.5,228.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="907.5" x2="907.5" y1="337.1714" y2="357.1714"/><polygon fill="#A80036" points="903.5,347.1714,907.5,357.1714,911.5,347.1714,907.5,351.1714" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="435" x2="704.5" y1="190.5234" y2="190.5234"/><polygon fill="#A80036" points="694.5,186.5234,704.5,190.5234,694.5,194.5234,698.5,190.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="776.5" x2="871.5" y1="190.5234" y2="190.5234"/><polygon fill="#A80036" points="861.5,186.5234,871.5,190.5234,861.5,194.5234,865.5,190.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555" x2="555" y1="125.6914" y2="163.5234"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555" x2="399" y1="163.5234" y2="163.5234"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="399" y1="163.5234" y2="178.5234"/><polygon fill="#A80036" points="395,168.5234,399,178.5234,403,168.5234,399,172.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="943.5" x2="1015" y1="190.5234" y2="190.5234"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015" x2="1015" y1="190.5234" y2="265.3159"/><polygon fill="#A80036" points="1011,255.3159,1015,265.3159,1019,255.3159,1015,259.3159" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015" x2="1015" y1="299.2847" y2="357.1714"/><polygon fill="#A80036" points="1011,347.1714,1015,357.1714,1019,347.1714,1015,351.1714" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="1015" y1="357.1714" y2="357.1714"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555" x2="555" y1="357.1714" y2="377.1714"/><polygon fill="#A80036" points="551,367.1714,555,377.1714,559,367.1714,555,371.1714" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f084c67ec7a24c3b56fd38c273a593b9]
-@startuml
-
-title **µRtWare**\nurtSubscriberCalculateUsefulness()\n
-
-
-
-
-
-
-
-
-
-
-
-
-start
-note
-  - - ""**subscriber** : urt_subscriber_t*"" - -
-  The subscriber to be unsubscribed.
-  Must not be ""NULL"".
-  - - ""**latency** : urt_delay_t"" - -
-  Delay (of a mesage) to calculate the usefulness for.
-end note
-
-
-if (RT class) then (HRT)
-  :return ""1"";
-  note: Otherwise some QoS timer would have triggered.
-elseif (RT class) then (FRT)
-  if (Timing ok?) then (yes)
-  note: ToDo: When is timing ok?
-    :return ""1.0"";
-  else (no)
-    :return ""0.0"";
-  endif
-elseif (RT class) then (SRT)
-  :execute callback;
-  :return result;
-else (NRT)
-  :return ""1"";
-endif
-
-
-stop
-note
-  - - **return** ""float"" - -
-  Returns the usefulness as a value within ""[0,1]"".
-end note
-
-
-@enduml
-
-PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
-Operating System: Linux
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberCalculateUsefulness.uml b/doc/activitydiagrams/subscriber/urtSubscriberCalculateUsefulness.uml
deleted file mode 100644
index 547917d..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberCalculateUsefulness.uml
+++ /dev/null
@@ -1,70 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2020  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-/'### INTRO ##################################################################'/
-
-@startuml
-
-title **µRtWare**\nurtSubscriberCalculateUsefulness()\n
-
-!include ../../functions.iuml
-
-/'### PARAMETERS & START #####################################################'/
-
-start
-note
-  -- ""**subscriber** : urt_subscriber_t*"" --
-  The subscriber to be unsubscribed.
-  Must not be ""NULL"".
-  -- ""**latency** : urt_delay_t"" --
-  Delay (of a mesage) to calculate the usefulness for.
-end note
-
-/'### PROCEDURE ##############################################################'/
-
-if (RT class) then (HRT)
-  :return ""1"";
-  note: Otherwise some QoS timer would have triggered.
-elseif (RT class) then (FRT)
-  if (Timing ok?) then (yes)
-  note: ToDo: When is timing ok?
-    :return ""1.0"";
-  else (no)
-    :return ""0.0"";
-  endif
-elseif (RT class) then (SRT)
-  :execute callback;
-  :return result;
-else (NRT)
-  :return ""1"";
-endif
-
-/'### STOP & RETURN ##########################################################'/
-
-stop
-note
-  -- **return** ""float"" --
-  Returns the usefulness as a value within ""[0,1]"".
-end note
-
-/'### OUTRO ##################################################################'/
-
-@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberFetchLatestMessage.svg b/doc/activitydiagrams/subscriber/urtSubscriberFetchLatestMessage.svg
deleted file mode 100644
index 07daaef..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberFetchLatestMessage.svg
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1712px" preserveAspectRatio="none" style="width:1846px;height:1712px;" version="1.1" viewBox="0 0 1846 1712" width="1846px" zoomAndPan="magnify"><defs><filter height="300%" id="f1n5j7g2wxnm1t" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="877.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="309" x="767.5" y="47.6611">urtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="925" y="68.6143"/><path d="M582.5,72.8594 L582.5,249.3203 A0,0 0 0 0 582.5,249.3203 L887.5,249.3203 A0,0 0 0 0 887.5,249.3203 L887.5,165.0898 L907.5,161.0898 L887.5,157.0898 L887.5,82.8594 L877.5,72.8594 L582.5,72.8594 A0,0 0 0 0 582.5,72.8594 " fill="#FBFB77" filter="url(#f1n5j7g2wxnm1t)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M877.5,72.8594 L877.5,82.8594 L887.5,82.8594 L877.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="611" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="615" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="615" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="703" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="859" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="859" x2="887.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="284" x="588.5" y="105.0591">The subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="588.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="668.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="700.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="671" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="675" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="675" y="134.8247">payload</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="739" y="134.8247">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="799" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="799" x2="887.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="588.5" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="588.5" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="674.5" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="675" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="679" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="679" y="180.2231">bytes</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="727" y="180.2231">: size_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="795" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="795" x2="887.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="588.5" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="643" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="647" y="210.4888"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="647" y="210.4888">latency</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="711" y="210.4888">: urt_delay_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="827" y="210.4888"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="827" x2="887.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="588.5" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="588.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="670.5" y="241.2544">.</text><ellipse cx="917.5" cy="161.0898" fill="#000000" filter="url(#f1n5j7g2wxnm1t)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="877.5" y="269.3203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="887.5" y="290.459">lock topic</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="864,323.2891,971,323.2891,983,335.2891,971,347.2891,864,347.2891,852,335.2891,864,323.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="864" y="339.0972">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="832" y="332.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="983" y="332.6948">no</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="598.375" y="357.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="608.375" y="378.4277">access next message</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1059.125,357.2891,1258.125,357.2891,1270.125,369.2891,1258.125,381.2891,1059.125,381.2891,1047.125,369.2891,1059.125,357.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="1059.125" y="373.0972">Has a message been read before?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1027.125" y="366.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1270.125" y="366.6948">no</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="880.875" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="890.875" y="412.4277">access last read message</text><rect fill="#FFFFFF" filter="url(#f1n5j7g2wxnm1t)" height="213.9448" style="stroke: #000000; stroke-width: 2.0;" width="355" x="794.375" y="491.77"/><path d="M978.375,492.77 L978.375,501.0669 L968.375,511.0669 L794.375,511.0669 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="797.375" y="505.7651">find oldest valid message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="895.375" y="528.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="905.375" y="549.2056">access next message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="888.875" y="637.7461"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="898.875" y="658.8848">iterate by one message</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="840.375,582.0356,1106.375,582.0356,1118.375,594.0356,1106.375,606.0356,840.375,606.0356,828.375,594.0356,840.375,582.0356" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="977.375" y="616.2461">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="266" x="840.375" y="597.8438">Timestamp of next is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="814.375" y="591.4414">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="861.375,445.2578,1085.375,445.2578,1097.375,457.2578,1085.375,469.2578,861.375,469.2578,849.375,457.2578,861.375,445.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="977.375" y="479.4683">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="861.375" y="461.0659">Message timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1097.375" y="454.6636">yes</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="973.375,725.7148,985.375,737.7148,973.375,749.7148,961.375,737.7148,973.375,725.7148" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="305" x="1191.375" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="285" x="1201.375" y="412.4277">access message after topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1158.625,755.7148,1170.625,767.7148,1158.625,779.7148,1146.625,767.7148,1158.625,755.7148" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="917.5,785.7148,929.5,797.7148,917.5,809.7148,905.5,797.7148,917.5,785.7148" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f1n5j7g2wxnm1t)" height="358.3472" style="stroke: #000000; stroke-width: 2.0;" width="709" x="567.5" y="820.5166"/><path d="M681.5,821.5166 L681.5,829.8135 L671.5,839.8135 L567.5,839.8135 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="570.5" y="834.5117">iterate to latest</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="612" x="611.5" y="960.9263"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="625.5" y="986.9263"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="635.5" y="1008.0649">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="949.5" y="986.9263"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="959.5" y="1008.0649">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="612" x="611.5" y="1040.895"/><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="864,912.5239,971,912.5239,983,924.5239,971,936.5239,864,936.5239,852,924.5239,864,912.5239" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="921.5" y="946.7344">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="864" y="928.332">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="983" y="921.9297">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="917.5,1066.895,929.5,1078.895,917.5,1090.895,905.5,1078.895,917.5,1066.895" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="833" y="1110.895"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="843" y="1132.0337">iterate by one message</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="756,856.8135,1079,856.8135,1091,868.8135,1079,880.8135,756,880.8135,744,868.8135,756,856.8135" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="921.5" y="891.0239">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="323" x="756" y="872.6216">Timestamp of next message is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="730" y="866.2192">no</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1198.8638"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="22" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="332" x="32" y="1403.2915">set last fetched message pointer to locked message</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1307.7505"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="396" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="406" y="1403.2915">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="304" x="630" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="284" x="640" y="1403.2915">set latency value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="662,1333.7505,902,1333.7505,914,1345.7505,902,1357.7505,662,1357.7505,650,1345.7505,662,1333.7505" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="786" y="1367.9609">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="662" y="1349.5586">Optional output argument "latency" given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="914" y="1343.1563">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="782,1440.5239,794,1452.5239,782,1464.5239,770,1452.5239,782,1440.5239" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1484.5239"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="998" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="1008" y="1403.2915">copy message payload</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1273.2661"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="1213" y="1299.2661"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="1223" y="1320.4048">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1252.5" y="1416.6372"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1262.5" y="1437.7759">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1257.5,1368.2349,1464.5,1368.2349,1476.5,1380.2349,1464.5,1392.2349,1257.5,1392.2349,1245.5,1380.2349,1257.5,1368.2349" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1365" y="1402.4453">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="207" x="1257.5" y="1384.043">At least one HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1476.5" y="1377.6406">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1361,1475.0083,1373,1487.0083,1361,1499.0083,1349,1487.0083,1361,1475.0083" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="1537" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="1547" y="1403.2915">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1519.0083"/><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1451.5,1224.8638,1558.5,1224.8638,1570.5,1236.8638,1558.5,1248.8638,1451.5,1248.8638,1439.5,1236.8638,1451.5,1224.8638" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1509" y="1259.0742">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="1451.5" y="1240.6719">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1570.5" y="1234.2695">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1505,1545.0083,1517,1557.0083,1505,1569.0083,1493,1557.0083,1505,1545.0083" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1589.0083"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="869.5" y="1615.0083"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="879.5" y="1636.147">unlock topic</text><path d="M704.5,1659.8442 L704.5,1700.1099 A0,0 0 0 0 704.5,1700.1099 L886.5,1700.1099 A0,0 0 0 0 886.5,1700.1099 L886.5,1683.9771 L906.5,1679.9771 L886.5,1675.9771 L886.5,1669.8442 L876.5,1659.8442 L704.5,1659.8442 A0,0 0 0 0 704.5,1659.8442 " fill="#FBFB77" filter="url(#f1n5j7g2wxnm1t)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876.5,1659.8442 L876.5,1669.8442 L886.5,1669.8442 L876.5,1659.8442 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="704.5" x2="719" y1="1672.4106" y2="1672.4106"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723" y="1676.4111"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="723" y="1676.4111">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="772" y="1676.4111"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="772" y="1676.4111">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="872" y="1676.4111"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="872" x2="886.5" y1="1672.4106" y2="1672.4106"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="710.5" y="1692.0439">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="763.5" y="1692.0439">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="867.5" y="1692.0439">.</text><ellipse cx="917.5" cy="1679.9771" fill="#FFFFFF" filter="url(#f1n5j7g2wxnm1t)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="917.5" cy="1679.9771" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="171.0898" y2="269.3203"/><polygon fill="#A80036" points="913.5,259.3203,917.5,269.3203,921.5,259.3203,917.5,263.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="606.0356" y2="637.7461"/><polygon fill="#A80036" points="969.375,627.7461,973.375,637.7461,977.375,627.7461,973.375,631.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="671.7148" y2="681.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="1130.375" y1="681.7148" y2="681.7148"/><polygon fill="#A80036" points="1126.375,646.3281,1130.375,636.3281,1134.375,646.3281,1130.375,642.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1130.375" x2="1130.375" y1="594.0356" y2="681.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1130.375" x2="1118.375" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="1128.375,590.0356,1118.375,594.0356,1128.375,598.0356,1124.375,594.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="828.375" x2="816.375" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="812.375,632.3281,816.375,642.3281,820.375,632.3281,816.375,636.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="816.375" x2="816.375" y1="594.0356" y2="693.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="816.375" x2="973.375" y1="693.7148" y2="693.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="693.7148" y2="725.7148"/><polygon fill="#A80036" points="969.375,715.7148,973.375,725.7148,977.375,715.7148,973.375,719.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="562.0356" y2="582.0356"/><polygon fill="#A80036" points="969.375,572.0356,973.375,582.0356,977.375,572.0356,973.375,576.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="469.2578" y2="528.0669"/><polygon fill="#A80036" points="969.375,518.0669,973.375,528.0669,977.375,518.0669,973.375,522.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1097.375" x2="1159.375" y1="457.2578" y2="457.2578"/><polygon fill="#A80036" points="1155.375,588.7896,1159.375,598.7896,1163.375,588.7896,1159.375,592.7896" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1159.375" x2="1159.375" y1="457.2578" y2="737.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1159.375" x2="985.375" y1="737.7148" y2="737.7148"/><polygon fill="#A80036" points="995.375,733.7148,985.375,737.7148,995.375,741.7148,991.375,737.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="425.2578" y2="445.2578"/><polygon fill="#A80036" points="969.375,435.2578,973.375,445.2578,977.375,435.2578,973.375,439.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1047.125" x2="973.375" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="969.375,381.2891,973.375,391.2891,977.375,381.2891,973.375,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1270.125" x2="1343.875" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343.875" x2="1343.875" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="1339.875,381.2891,1343.875,391.2891,1347.875,381.2891,1343.875,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="749.7148" y2="767.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="1146.625" y1="767.7148" y2="767.7148"/><polygon fill="#A80036" points="1136.625,763.7148,1146.625,767.7148,1136.625,771.7148,1140.625,767.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343.875" x2="1343.875" y1="425.2578" y2="767.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343.875" x2="1170.625" y1="767.7148" y2="767.7148"/><polygon fill="#A80036" points="1180.625,763.7148,1170.625,767.7148,1180.625,771.7148,1176.625,767.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852" x2="676.375" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676.375" x2="676.375" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="672.375,347.2891,676.375,357.2891,680.375,347.2891,676.375,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983" x2="1158.625" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.625" x2="1158.625" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="1154.625,347.2891,1158.625,357.2891,1162.625,347.2891,1158.625,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676.375" x2="676.375" y1="391.2578" y2="797.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676.375" x2="905.5" y1="797.7148" y2="797.7148"/><polygon fill="#A80036" points="895.5,793.7148,905.5,797.7148,895.5,801.7148,899.5,797.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.625" x2="1158.625" y1="779.7148" y2="797.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.625" x2="929.5" y1="797.7148" y2="797.7148"/><polygon fill="#A80036" points="939.5,793.7148,929.5,797.7148,939.5,801.7148,935.5,797.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="303.2891" y2="323.2891"/><polygon fill="#A80036" points="913.5,313.2891,917.5,323.2891,921.5,313.2891,917.5,317.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="773.5" x2="773.5" y1="966.9263" y2="986.9263"/><polygon fill="#A80036" points="769.5,976.9263,773.5,986.9263,777.5,976.9263,773.5,980.9263" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="966.9263" y2="986.9263"/><polygon fill="#A80036" points="1075.5,976.9263,1079.5,986.9263,1083.5,976.9263,1079.5,980.9263" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="773.5" x2="773.5" y1="1020.895" y2="1040.895"/><polygon fill="#A80036" points="769.5,1030.895,773.5,1040.895,777.5,1030.895,773.5,1034.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1020.895" y2="1040.895"/><polygon fill="#A80036" points="1075.5,1030.895,1079.5,1040.895,1083.5,1030.895,1079.5,1034.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="936.5239" y2="960.9263"/><polygon fill="#A80036" points="913.5,950.9263,917.5,960.9263,921.5,950.9263,917.5,954.9263" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983" x2="1233.5" y1="924.5239" y2="924.5239"/><polygon fill="#A80036" points="1229.5,993.9106,1233.5,1003.9106,1237.5,993.9106,1233.5,997.9106" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1233.5" x2="1233.5" y1="924.5239" y2="1078.895"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1233.5" x2="929.5" y1="1078.895" y2="1078.895"/><polygon fill="#A80036" points="939.5,1074.895,929.5,1078.895,939.5,1082.895,935.5,1078.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1046.895" y2="1066.895"/><polygon fill="#A80036" points="913.5,1056.895,917.5,1066.895,921.5,1056.895,917.5,1060.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1090.895" y2="1110.895"/><polygon fill="#A80036" points="913.5,1100.895,917.5,1110.895,921.5,1100.895,917.5,1104.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="880.8135" y2="912.5239"/><polygon fill="#A80036" points="913.5,902.5239,917.5,912.5239,921.5,902.5239,917.5,906.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1144.8638" y2="1154.8638"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="1257.5" y1="1154.8638" y2="1154.8638"/><polygon fill="#A80036" points="1253.5,1029.9927,1257.5,1019.9927,1261.5,1029.9927,1257.5,1025.9927" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1257.5" x2="1257.5" y1="868.8135" y2="1154.8638"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1257.5" x2="1091" y1="868.8135" y2="868.8135"/><polygon fill="#A80036" points="1101,864.8135,1091,868.8135,1101,872.8135,1097,868.8135" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="744" x2="589.5" y1="868.8135" y2="868.8135"/><polygon fill="#A80036" points="585.5,1015.9927,589.5,1025.9927,593.5,1015.9927,589.5,1019.9927" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="589.5" x2="589.5" y1="868.8135" y2="1166.8638"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="589.5" x2="917.5" y1="1166.8638" y2="1166.8638"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1166.8638" y2="1198.8638"/><polygon fill="#A80036" points="913.5,1188.8638,917.5,1198.8638,921.5,1188.8638,917.5,1192.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="809.7148" y2="856.8135"/><polygon fill="#A80036" points="913.5,846.8135,917.5,856.8135,921.5,846.8135,917.5,850.8135" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1357.7505" y2="1382.1528"/><polygon fill="#A80036" points="778,1372.1528,782,1382.1528,786,1372.1528,782,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="914" x2="944" y1="1345.7505" y2="1345.7505"/><polygon fill="#A80036" points="940,1389.1372,944,1399.1372,948,1389.1372,944,1393.1372" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="944" y1="1345.7505" y2="1452.5239"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="794" y1="1452.5239" y2="1452.5239"/><polygon fill="#A80036" points="804,1448.5239,794,1452.5239,804,1456.5239,800,1452.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1416.1216" y2="1440.5239"/><polygon fill="#A80036" points="778,1430.5239,782,1440.5239,786,1430.5239,782,1434.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1313.7505" y2="1382.1528"/><polygon fill="#A80036" points="490,1372.1528,494,1382.1528,498,1372.1528,494,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1313.7505" y2="1333.7505"/><polygon fill="#A80036" points="778,1323.7505,782,1333.7505,786,1323.7505,782,1327.7505" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1416.1216" y2="1484.5239"/><polygon fill="#A80036" points="490,1474.5239,494,1484.5239,498,1474.5239,494,1478.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1464.5239" y2="1484.5239"/><polygon fill="#A80036" points="778,1474.5239,782,1484.5239,786,1474.5239,782,1478.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1392.2349" y2="1416.6372"/><polygon fill="#A80036" points="1357,1406.6372,1361,1416.6372,1365,1406.6372,1361,1410.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1476.5" x2="1488.5" y1="1380.2349" y2="1380.2349"/><polygon fill="#A80036" points="1484.5,1423.6216,1488.5,1433.6216,1492.5,1423.6216,1488.5,1427.6216" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1488.5" x2="1488.5" y1="1380.2349" y2="1487.0083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1488.5" x2="1373" y1="1487.0083" y2="1487.0083"/><polygon fill="#A80036" points="1383,1483.0083,1373,1487.0083,1383,1491.0083,1379,1487.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1450.606" y2="1475.0083"/><polygon fill="#A80036" points="1357,1465.0083,1361,1475.0083,1365,1465.0083,1361,1469.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1333.2349" y2="1368.2349"/><polygon fill="#A80036" points="1357,1358.2349,1361,1368.2349,1365,1358.2349,1361,1362.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1279.2661" y2="1299.2661"/><polygon fill="#A80036" points="1357,1289.2661,1361,1299.2661,1365,1289.2661,1361,1293.2661" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1279.2661" y2="1382.1528"/><polygon fill="#A80036" points="1663,1372.1528,1667,1382.1528,1671,1372.1528,1667,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1499.0083" y2="1519.0083"/><polygon fill="#A80036" points="1357,1509.0083,1361,1519.0083,1365,1509.0083,1361,1513.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1416.1216" y2="1519.0083"/><polygon fill="#A80036" points="1663,1509.0083,1667,1519.0083,1671,1509.0083,1667,1513.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1248.8638" y2="1273.2661"/><polygon fill="#A80036" points="1501,1263.2661,1505,1273.2661,1509,1263.2661,1505,1267.2661" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1570.5" x2="1819" y1="1236.8638" y2="1236.8638"/><polygon fill="#A80036" points="1815,1389.1372,1819,1399.1372,1823,1389.1372,1819,1393.1372" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1819" y1="1236.8638" y2="1557.0083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1517" y1="1557.0083" y2="1557.0083"/><polygon fill="#A80036" points="1527,1553.0083,1517,1557.0083,1527,1561.0083,1523,1557.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1525.0083" y2="1545.0083"/><polygon fill="#A80036" points="1501,1535.0083,1505,1545.0083,1509,1535.0083,1505,1539.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1204.8638" y2="1382.1528"/><polygon fill="#A80036" points="194,1372.1528,198,1382.1528,202,1372.1528,198,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1204.8638" y2="1307.7505"/><polygon fill="#A80036" points="672,1297.7505,676,1307.7505,680,1297.7505,676,1301.7505" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1204.8638" y2="1382.1528"/><polygon fill="#A80036" points="1075.5,1372.1528,1079.5,1382.1528,1083.5,1372.1528,1079.5,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1204.8638" y2="1224.8638"/><polygon fill="#A80036" points="1501,1214.8638,1505,1224.8638,1509,1214.8638,1505,1218.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1416.1216" y2="1589.0083"/><polygon fill="#A80036" points="194,1579.0083,198,1589.0083,202,1579.0083,198,1583.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1490.5239" y2="1589.0083"/><polygon fill="#A80036" points="672,1579.0083,676,1589.0083,680,1579.0083,676,1583.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1416.1216" y2="1589.0083"/><polygon fill="#A80036" points="1075.5,1579.0083,1079.5,1589.0083,1083.5,1579.0083,1079.5,1583.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1569.0083" y2="1589.0083"/><polygon fill="#A80036" points="1501,1579.0083,1505,1589.0083,1509,1579.0083,1505,1583.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1595.0083" y2="1615.0083"/><polygon fill="#A80036" points="913.5,1605.0083,917.5,1615.0083,921.5,1605.0083,917.5,1609.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1648.9771" y2="1668.9771"/><polygon fill="#A80036" points="913.5,1658.9771,917.5,1668.9771,921.5,1658.9771,917.5,1662.9771" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[167292abbdf09640a655e5720c8b3dc1]
-@startuml
-
-title **µRtWare**\nurtSubscriberFetchLatestMessage()\n
-
-
-
-
-
-
-
-
-
-
-
-
-start
-note
-  - - ""**subscriber** : urt_subscriber_t*"" - -
-  The subscriber that shall fetch the message.
-  Must not be ""NULL"".
-  - - ""**payload** : void*"" - -
-  Pointer where to copy the payload to.
-  May be ""NULL"" for messages without payload.
-  - - ""**bytes** : size_t"" - -
-  Payload size in bytes.
-  - - ""**latency** : urt_delay_t*"" - -
-  The latency can be returned by reference.
-  May be ""NULL"".
-end note
-
-
-:lock topic;
-if (Is HRT subscriber?) then (yes)
-  :access next message;
-else (no)
-  if (Has a message been read before?) then (yes)
-    :access last read message;
-    if (Message timestamp equals local copy?) then (yes)
-    else (no)
-      partition "find oldest valid message" {
-        :access next message;
-        while (Timestamp of next is younger than of current?) is (yes)
-          :iterate by one message;
-        endwhile (no)
-      }
-    endif
-  else (no)
-    :access message after topic's latest message;
-  endif
-endif
-partition "iterate to latest" {
-  while (Timestamp of next message is younger than of current?) is (yes)
-    if (Is HRT subscriber?) then (yes)
-      fork
-        :decrement HRT counter of current message;
-      fork again
-        :update QoS delay timer (@subscriber);
-      endfork
-    else (no)
-    endif
-    :iterate by one message;
-  endwhile (no)
-}
-fork
-  :set last fetched message pointer to locked message;
-fork again
-  fork
-    :copy timestamp of message;
-  fork again
-    if (Optional output argument "latency" given?) then (yes)
-      :set latency value (now - message origin time);
-    else (no)
-    endif
-  endfork
-fork again
-  :copy message payload;
-fork again
-  if (Is HRT subscriber?) then (yes)
-    fork
-      :decrement HRT counter of current message;
-      if (At least one HRT counter became 0?) then (yes)
-        :signal topic's condition variable;
-      else (no)
-      endif
-    fork again
-      :update QoS delay timer (@subscriber);
-    endfork
-  else (no)
-  endif
-endfork
-:unlock topic;
-
-
-stop
-note
-  - - **return** ""urt_status_t"" - -
-  Returns ""URT_STATUS_OK"".
-end note
-
-
-@enduml
-
-PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
-Operating System: Linux
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberFetchLatestMessage.uml b/doc/activitydiagrams/subscriber/urtSubscriberFetchLatestMessage.uml
deleted file mode 100644
index b7d691a..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberFetchLatestMessage.uml
+++ /dev/null
@@ -1,120 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2020  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-/'### INTRO ##################################################################'/
-
-@startuml
-
-title **µRtWare**\nurtSubscriberFetchLatestMessage()\n
-
-!include ../../functions.iuml
-
-/'### PARAMETERS & START #####################################################'/
-
-start
-note
-  -- ""**subscriber** : urt_subscriber_t*"" --
-  The subscriber that shall fetch the message.
-  Must not be ""NULL"".
-  -- ""**payload** : void*"" --
-  Pointer where to copy the payload to.
-  May be ""NULL"" for messages without payload.
-  -- ""**bytes** : size_t"" --
-  Payload size in bytes.
-  -- ""**latency** : urt_delay_t*"" --
-  The latency can be returned by reference.
-  May be ""NULL"".
-end note
-
-/'### PROCEDURE ##############################################################'/
-
-:lock topic;
-if (Is HRT subscriber?) then (yes)
-  :access next message;
-else (no)
-  if (Has a message been read before?) then (yes)
-    :access last read message;
-    if (Message timestamp equals local copy?) then (yes)
-    else (no)
-      partition "find oldest valid message" {
-        :access next message;
-        while (Timestamp of next is younger than of current?) is (yes)
-          :iterate by one message;
-        endwhile (no)
-      }
-    endif
-  else (no)
-    :access message after topic's latest message;
-  endif
-endif
-partition "iterate to latest" {
-  while (Timestamp of next message is younger than of current?) is (yes)
-    if (Is HRT subscriber?) then (yes)
-      fork
-        :decrement HRT counter of current message;
-      fork again
-        :update QoS delay timer (@subscriber);
-      endfork
-    else (no)
-    endif
-    :iterate by one message;
-  endwhile (no)
-}
-fork
-  :set last fetched message pointer to locked message;
-fork again
-  fork
-    :copy timestamp of message;
-  fork again
-    if (Optional output argument "latency" given?) then (yes)
-      :set latency value (now - message origin time);
-    else (no)
-    endif
-  endfork
-fork again
-  :copy message payload;
-fork again
-  if (Is HRT subscriber?) then (yes)
-    fork
-      :decrement HRT counter of current message;
-      if (At least one HRT counter became 0?) then (yes)
-        :signal topic's condition variable;
-      else (no)
-      endif
-    fork again
-      :update QoS delay timer (@subscriber);
-    endfork
-  else (no)
-  endif
-endfork
-:unlock topic;
-
-/'### STOP & RETURN ##########################################################'/
-
-stop
-note
-  -- **return** ""urt_status_t"" --
-  Returns ""URT_STATUS_OK"".
-end note
-
-/'### OUTRO ##################################################################'/
-
-@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.svg b/doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.svg
deleted file mode 100644
index 614b589..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1342px" preserveAspectRatio="none" style="width:1846px;height:1342px;" version="1.1" viewBox="0 0 1846 1342" width="1846px" zoomAndPan="magnify"><defs><filter height="300%" id="f1ebgccyfx45cb" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="877.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="299" x="772.5" y="47.6611">urtSubscriberFetchNextMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="925" y="68.6143"/><path d="M582.5,72.8594 L582.5,249.3203 A0,0 0 0 0 582.5,249.3203 L887.5,249.3203 A0,0 0 0 0 887.5,249.3203 L887.5,165.0898 L907.5,161.0898 L887.5,157.0898 L887.5,82.8594 L877.5,72.8594 L582.5,72.8594 A0,0 0 0 0 582.5,72.8594 " fill="#FBFB77" filter="url(#f1ebgccyfx45cb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M877.5,72.8594 L877.5,82.8594 L887.5,82.8594 L877.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="611" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="615" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="615" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="703" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="859" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="859" x2="887.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="284" x="588.5" y="105.0591">The subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="588.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="668.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="700.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="671" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="675" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="675" y="134.8247">payload</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="739" y="134.8247">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="799" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="799" x2="887.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="588.5" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="588.5" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="674.5" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="675" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="679" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="679" y="180.2231">bytes</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="727" y="180.2231">: size_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="795" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="795" x2="887.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="588.5" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="643" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="647" y="210.4888"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="647" y="210.4888">latency</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="711" y="210.4888">: urt_delay_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="827" y="210.4888"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="827" x2="887.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="588.5" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="588.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="670.5" y="241.2544">.</text><ellipse cx="917.5" cy="161.0898" fill="#000000" filter="url(#f1ebgccyfx45cb)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="877.5" y="269.3203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="887.5" y="290.459">lock topic</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="864,323.2891,971,323.2891,983,335.2891,971,347.2891,864,347.2891,852,335.2891,864,323.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="864" y="339.0972">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="832" y="332.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="983" y="332.6948">no</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="577" y="357.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="587" y="378.4277">access next message</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1080.5,357.2891,1279.5,357.2891,1291.5,369.2891,1279.5,381.2891,1080.5,381.2891,1068.5,369.2891,1080.5,357.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="1080.5" y="373.0972">Has a message been read before?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1048.5" y="366.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1291.5" y="366.6948">no</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="888" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="898" y="412.4277">access last read message</text><rect fill="#FFFFFF" filter="url(#f1ebgccyfx45cb)" height="213.9448" style="stroke: #000000; stroke-width: 2.0;" width="412" x="773" y="491.77"/><path d="M957,492.77 L957,501.0669 L947,511.0669 L773,511.0669 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="776" y="505.7651">find oldest valid message</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="902.5" y="528.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="912.5" y="549.2056">access next message</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="896" y="637.7461"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="906" y="658.8848">iterate by one message</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="819,582.0356,1142,582.0356,1154,594.0356,1142,606.0356,819,606.0356,807,594.0356,819,582.0356" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="984.5" y="616.2461">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="323" x="819" y="597.8438">Timestamp of next message is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="793" y="591.4414">no</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="868.5,445.2578,1092.5,445.2578,1104.5,457.2578,1092.5,469.2578,868.5,469.2578,856.5,457.2578,868.5,445.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="984.5" y="479.4683">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="868.5" y="461.0659">Message timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1104.5" y="454.6636">yes</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="980.5,725.7148,992.5,737.7148,980.5,749.7148,968.5,737.7148,980.5,725.7148" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="305" x="1227" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="285" x="1237" y="412.4277">access message after topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1180,755.7148,1192,767.7148,1180,779.7148,1168,767.7148,1180,755.7148" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="917.5,785.7148,929.5,797.7148,917.5,809.7148,905.5,797.7148,917.5,785.7148" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="829.7148"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="22" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="332" x="32" y="1034.1426">set last fetched message pointer to locked message</text><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="938.6016"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="396" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="406" y="1034.1426">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="304" x="630" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="284" x="640" y="1034.1426">set latency value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="662,964.6016,902,964.6016,914,976.6016,902,988.6016,662,988.6016,650,976.6016,662,964.6016" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="786" y="998.812">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="662" y="980.4097">Optional output argument "latency" given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="914" y="974.0073">no</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="782,1071.375,794,1083.375,782,1095.375,770,1083.375,782,1071.375" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1115.375"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="998" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="1008" y="1034.1426">copy message payload</text><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="904.1172"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="1213" y="930.1172"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="1223" y="951.2559">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1252.5" y="1047.4883"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1262.5" y="1068.627">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1293.5,999.0859,1428.5,999.0859,1440.5,1011.0859,1428.5,1023.0859,1293.5,1023.0859,1281.5,1011.0859,1293.5,999.0859" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1365" y="1033.2964">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1293.5" y="1014.894">HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1440.5" y="1008.4917">no</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1361,1105.8594,1373,1117.8594,1361,1129.8594,1349,1117.8594,1361,1105.8594" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="1537" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="1547" y="1034.1426">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1149.8594"/><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1451.5,855.7148,1558.5,855.7148,1570.5,867.7148,1558.5,879.7148,1451.5,879.7148,1439.5,867.7148,1451.5,855.7148" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1509" y="889.9253">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="1451.5" y="871.5229">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1570.5" y="865.1206">no</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1505,1175.8594,1517,1187.8594,1505,1199.8594,1493,1187.8594,1505,1175.8594" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1219.8594"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="869.5" y="1245.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="879.5" y="1266.998">unlock topic</text><path d="M704.5,1290.6953 L704.5,1330.9609 A0,0 0 0 0 704.5,1330.9609 L886.5,1330.9609 A0,0 0 0 0 886.5,1330.9609 L886.5,1314.8281 L906.5,1310.8281 L886.5,1306.8281 L886.5,1300.6953 L876.5,1290.6953 L704.5,1290.6953 A0,0 0 0 0 704.5,1290.6953 " fill="#FBFB77" filter="url(#f1ebgccyfx45cb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876.5,1290.6953 L876.5,1300.6953 L886.5,1300.6953 L876.5,1290.6953 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="704.5" x2="719" y1="1303.2617" y2="1303.2617"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723" y="1307.2622"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="723" y="1307.2622">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="772" y="1307.2622"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="772" y="1307.2622">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="872" y="1307.2622"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="872" x2="886.5" y1="1303.2617" y2="1303.2617"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="710.5" y="1322.895">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="763.5" y="1322.895">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="867.5" y="1322.895">.</text><ellipse cx="917.5" cy="1310.8281" fill="#FFFFFF" filter="url(#f1ebgccyfx45cb)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="917.5" cy="1310.8281" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="171.0898" y2="269.3203"/><polygon fill="#A80036" points="913.5,259.3203,917.5,269.3203,921.5,259.3203,917.5,263.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="606.0356" y2="637.7461"/><polygon fill="#A80036" points="976.5,627.7461,980.5,637.7461,984.5,627.7461,980.5,631.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="671.7148" y2="681.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="1166" y1="681.7148" y2="681.7148"/><polygon fill="#A80036" points="1162,646.3281,1166,636.3281,1170,646.3281,1166,642.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1166" x2="1166" y1="594.0356" y2="681.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1166" x2="1154" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="1164,590.0356,1154,594.0356,1164,598.0356,1160,594.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="807" x2="795" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="791,632.3281,795,642.3281,799,632.3281,795,636.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="795" x2="795" y1="594.0356" y2="693.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="795" x2="980.5" y1="693.7148" y2="693.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="693.7148" y2="725.7148"/><polygon fill="#A80036" points="976.5,715.7148,980.5,725.7148,984.5,715.7148,980.5,719.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="562.0356" y2="582.0356"/><polygon fill="#A80036" points="976.5,572.0356,980.5,582.0356,984.5,572.0356,980.5,576.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="469.2578" y2="528.0669"/><polygon fill="#A80036" points="976.5,518.0669,980.5,528.0669,984.5,518.0669,980.5,522.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1104.5" x2="1195" y1="457.2578" y2="457.2578"/><polygon fill="#A80036" points="1191,588.7896,1195,598.7896,1199,588.7896,1195,592.7896" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1195" x2="1195" y1="457.2578" y2="737.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1195" x2="992.5" y1="737.7148" y2="737.7148"/><polygon fill="#A80036" points="1002.5,733.7148,992.5,737.7148,1002.5,741.7148,998.5,737.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="425.2578" y2="445.2578"/><polygon fill="#A80036" points="976.5,435.2578,980.5,445.2578,984.5,435.2578,980.5,439.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1068.5" x2="980.5" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="976.5,381.2891,980.5,391.2891,984.5,381.2891,980.5,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1291.5" x2="1379.5" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1379.5" x2="1379.5" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="1375.5,381.2891,1379.5,391.2891,1383.5,381.2891,1379.5,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="749.7148" y2="767.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="1168" y1="767.7148" y2="767.7148"/><polygon fill="#A80036" points="1158,763.7148,1168,767.7148,1158,771.7148,1162,767.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1379.5" x2="1379.5" y1="425.2578" y2="767.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1379.5" x2="1192" y1="767.7148" y2="767.7148"/><polygon fill="#A80036" points="1202,763.7148,1192,767.7148,1202,771.7148,1198,767.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852" x2="655" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="655" x2="655" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="651,347.2891,655,357.2891,659,347.2891,655,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983" x2="1180" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1180" x2="1180" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="1176,347.2891,1180,357.2891,1184,347.2891,1180,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="655" x2="655" y1="391.2578" y2="797.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="655" x2="905.5" y1="797.7148" y2="797.7148"/><polygon fill="#A80036" points="895.5,793.7148,905.5,797.7148,895.5,801.7148,899.5,797.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1180" x2="1180" y1="779.7148" y2="797.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1180" x2="929.5" y1="797.7148" y2="797.7148"/><polygon fill="#A80036" points="939.5,793.7148,929.5,797.7148,939.5,801.7148,935.5,797.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="303.2891" y2="323.2891"/><polygon fill="#A80036" points="913.5,313.2891,917.5,323.2891,921.5,313.2891,917.5,317.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="988.6016" y2="1013.0039"/><polygon fill="#A80036" points="778,1003.0039,782,1013.0039,786,1003.0039,782,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="914" x2="944" y1="976.6016" y2="976.6016"/><polygon fill="#A80036" points="940,1019.9883,944,1029.9883,948,1019.9883,944,1023.9883" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="944" y1="976.6016" y2="1083.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="794" y1="1083.375" y2="1083.375"/><polygon fill="#A80036" points="804,1079.375,794,1083.375,804,1087.375,800,1083.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1046.9727" y2="1071.375"/><polygon fill="#A80036" points="778,1061.375,782,1071.375,786,1061.375,782,1065.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="944.6016" y2="1013.0039"/><polygon fill="#A80036" points="490,1003.0039,494,1013.0039,498,1003.0039,494,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="944.6016" y2="964.6016"/><polygon fill="#A80036" points="778,954.6016,782,964.6016,786,954.6016,782,958.6016" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1046.9727" y2="1115.375"/><polygon fill="#A80036" points="490,1105.375,494,1115.375,498,1105.375,494,1109.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1095.375" y2="1115.375"/><polygon fill="#A80036" points="778,1105.375,782,1115.375,786,1105.375,782,1109.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1023.0859" y2="1047.4883"/><polygon fill="#A80036" points="1357,1037.4883,1361,1047.4883,1365,1037.4883,1361,1041.4883" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1440.5" x2="1479.5" y1="1011.0859" y2="1011.0859"/><polygon fill="#A80036" points="1475.5,1054.4727,1479.5,1064.4727,1483.5,1054.4727,1479.5,1058.4727" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1479.5" x2="1479.5" y1="1011.0859" y2="1117.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1479.5" x2="1373" y1="1117.8594" y2="1117.8594"/><polygon fill="#A80036" points="1383,1113.8594,1373,1117.8594,1383,1121.8594,1379,1117.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1081.457" y2="1105.8594"/><polygon fill="#A80036" points="1357,1095.8594,1361,1105.8594,1365,1095.8594,1361,1099.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="964.0859" y2="999.0859"/><polygon fill="#A80036" points="1357,989.0859,1361,999.0859,1365,989.0859,1361,993.0859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="910.1172" y2="930.1172"/><polygon fill="#A80036" points="1357,920.1172,1361,930.1172,1365,920.1172,1361,924.1172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="910.1172" y2="1013.0039"/><polygon fill="#A80036" points="1663,1003.0039,1667,1013.0039,1671,1003.0039,1667,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1129.8594" y2="1149.8594"/><polygon fill="#A80036" points="1357,1139.8594,1361,1149.8594,1365,1139.8594,1361,1143.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1046.9727" y2="1149.8594"/><polygon fill="#A80036" points="1663,1139.8594,1667,1149.8594,1671,1139.8594,1667,1143.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="879.7148" y2="904.1172"/><polygon fill="#A80036" points="1501,894.1172,1505,904.1172,1509,894.1172,1505,898.1172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1570.5" x2="1819" y1="867.7148" y2="867.7148"/><polygon fill="#A80036" points="1815,1019.9883,1819,1029.9883,1823,1019.9883,1819,1023.9883" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1819" y1="867.7148" y2="1187.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1517" y1="1187.8594" y2="1187.8594"/><polygon fill="#A80036" points="1527,1183.8594,1517,1187.8594,1527,1191.8594,1523,1187.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1155.8594" y2="1175.8594"/><polygon fill="#A80036" points="1501,1165.8594,1505,1175.8594,1509,1165.8594,1505,1169.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="835.7148" y2="1013.0039"/><polygon fill="#A80036" points="194,1003.0039,198,1013.0039,202,1003.0039,198,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="835.7148" y2="938.6016"/><polygon fill="#A80036" points="672,928.6016,676,938.6016,680,928.6016,676,932.6016" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="835.7148" y2="1013.0039"/><polygon fill="#A80036" points="1075.5,1003.0039,1079.5,1013.0039,1083.5,1003.0039,1079.5,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="835.7148" y2="855.7148"/><polygon fill="#A80036" points="1501,845.7148,1505,855.7148,1509,845.7148,1505,849.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1046.9727" y2="1219.8594"/><polygon fill="#A80036" points="194,1209.8594,198,1219.8594,202,1209.8594,198,1213.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1121.375" y2="1219.8594"/><polygon fill="#A80036" points="672,1209.8594,676,1219.8594,680,1209.8594,676,1213.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1046.9727" y2="1219.8594"/><polygon fill="#A80036" points="1075.5,1209.8594,1079.5,1219.8594,1083.5,1209.8594,1079.5,1213.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1199.8594" y2="1219.8594"/><polygon fill="#A80036" points="1501,1209.8594,1505,1219.8594,1509,1209.8594,1505,1213.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="809.7148" y2="829.7148"/><polygon fill="#A80036" points="913.5,819.7148,917.5,829.7148,921.5,819.7148,917.5,823.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1225.8594" y2="1245.8594"/><polygon fill="#A80036" points="913.5,1235.8594,917.5,1245.8594,921.5,1235.8594,917.5,1239.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1279.8281" y2="1299.8281"/><polygon fill="#A80036" points="913.5,1289.8281,917.5,1299.8281,921.5,1289.8281,917.5,1293.8281" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e08c7f0874ec9d4be907a4b7beeb2994]
-@startuml
-
-title **µRtWare**\nurtSubscriberFetchNextMessage()\n
-
-
-
-
-
-
-
-
-
-
-
-
-start
-note
-  - - ""**subscriber** : urt_subscriber_t*"" - -
-  The subscriber that shall fetch the message.
-  Must not be ""NULL"".
-  - - ""**payload** : void*"" - -
-  Pointer where to copy the payload to.
-  May be ""NULL"" for messages without payload.
-  - - ""**bytes** : size_t"" - -
-  Payload size in bytes.
-  - - ""**latency** : urt_delay_t*"" - -
-  The latency can be returned by reference.
-  May be ""NULL"".
-end note
-
-
-:lock topic;
-if (Is HRT subscriber?) then (yes)
-  :access next message;
-else (no)
-  if (Has a message been read before?) then (yes)
-    :access last read message;
-    if (Message timestamp equals local copy?) then (yes)
-    else (no)
-      partition "find oldest valid message" {
-        :access next message;
-        while (Timestamp of next message is younger than of current?) is (yes)
-          :iterate by one message;
-        endwhile (no)
-      }
-    endif
-  else (no)
-    :access message after topic's latest message;
-  endif
-endif
-fork
-  :set last fetched message pointer to locked message;
-fork again
-  fork
-    :copy timestamp of message;
-  fork again
-    if (Optional output argument "latency" given?) then (yes)
-      :set latency value (now - message origin time);
-    else (no)
-    endif
-  endfork
-fork again
-  :copy message payload;
-fork again
-  if (Is HRT subscriber?) then (yes)
-    fork
-      :decrement HRT counter of current message;
-      if (HRT counter became 0?) then (yes)
-        :signal topic's condition variable;
-      else (no)
-      endif
-    fork again
-      :update QoS delay timer (@subscriber);
-    endfork
-  else (no)
-  endif
-endfork
-:unlock topic;
-
-
-stop
-note
-  - - **return** ""urt_status_t"" - -
-  Returns ""URT_STATUS_OK"".
-end note
-
-
-@enduml
-
-PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
-Operating System: Linux
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.uml b/doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.uml
deleted file mode 100644
index c70c8db..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.uml
+++ /dev/null
@@ -1,107 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2020  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-/'### INTRO ##################################################################'/
-
-@startuml
-
-title **µRtWare**\nurtSubscriberFetchNextMessage()\n
-
-!include ../../functions.iuml
-
-/'### PARAMETERS & START #####################################################'/
-
-start
-note
-  -- ""**subscriber** : urt_subscriber_t*"" --
-  The subscriber that shall fetch the message.
-  Must not be ""NULL"".
-  -- ""**payload** : void*"" --
-  Pointer where to copy the payload to.
-  May be ""NULL"" for messages without payload.
-  -- ""**bytes** : size_t"" --
-  Payload size in bytes.
-  -- ""**latency** : urt_delay_t*"" --
-  The latency can be returned by reference.
-  May be ""NULL"".
-end note
-
-/'### PROCEDURE ##############################################################'/
-
-:lock topic;
-if (Is HRT subscriber?) then (yes)
-  :access next message;
-else (no)
-  if (Has a message been read before?) then (yes)
-    :access last read message;
-    if (Message timestamp equals local copy?) then (yes)
-    else (no)
-      partition "find oldest valid message" {
-        :access next message;
-        while (Timestamp of next message is younger than of current?) is (yes)
-          :iterate by one message;
-        endwhile (no)
-      }
-    endif
-  else (no)
-    :access message after topic's latest message;
-  endif
-endif
-fork
-  :set last fetched message pointer to locked message;
-fork again
-  fork
-    :copy timestamp of message;
-  fork again
-    if (Optional output argument "latency" given?) then (yes)
-      :set latency value (now - message origin time);
-    else (no)
-    endif
-  endfork
-fork again
-  :copy message payload;
-fork again
-  if (Is HRT subscriber?) then (yes)
-    fork
-      :decrement HRT counter of current message;
-      if (HRT counter became 0?) then (yes)
-        :signal topic's condition variable;
-      else (no)
-      endif
-    fork again
-      :update QoS delay timer (@subscriber);
-    endfork
-  else (no)
-  endif
-endfork
-:unlock topic;
-
-/'### STOP & RETURN ##########################################################'/
-
-stop
-note
-  -- **return** ""urt_status_t"" --
-  Returns ""URT_STATUS_OK"".
-end note
-
-/'### OUTRO ##################################################################'/
-
-@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberInit.svg b/doc/activitydiagrams/subscriber/urtSubscriberInit.svg
deleted file mode 100644
index e768148..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberInit.svg
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="245px" preserveAspectRatio="none" style="width:385px;height:245px;" version="1.1" viewBox="0 0 385 245" width="385px" zoomAndPan="magnify"><defs><filter height="300%" id="f6uexfk9udhqe" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="147.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="162" x="110.75" y="47.6611">urtSubscriberInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="194.75" y="68.6143"/><path d="M10,72.8594 L10,128.2578 A0,0 0 0 0 10,128.2578 L279,128.2578 A0,0 0 0 0 279,128.2578 L279,104.5586 L299,100.5586 L279,96.5586 L279,82.8594 L269,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#f6uexfk9udhqe)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M269,72.8594 L269,82.8594 L279,82.8594 L269,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="20.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="24.5" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="24.5" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="112.5" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="268.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="268.5" x2="279" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="169" x="16" y="105.0591">The subscriber to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><ellipse cx="309" cy="100.5586" fill="#000000" filter="url(#f6uexfk9udhqe)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f6uexfk9udhqe)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="243.5" y="148.2578"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="253.5" y="169.3965">initialize members</text><path d="M96,193.0938 L96,233.3594 A0,0 0 0 0 96,233.3594 L278,233.3594 A0,0 0 0 0 278,233.3594 L278,217.2266 L298,213.2266 L278,209.2266 L278,203.0938 L268,193.0938 L96,193.0938 A0,0 0 0 0 96,193.0938 " fill="#FBFB77" filter="url(#f6uexfk9udhqe)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M268,193.0938 L268,203.0938 L278,203.0938 L268,193.0938 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="96" x2="110.5" y1="205.6602" y2="205.6602"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="114.5" y="209.6606"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="114.5" y="209.6606">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="163.5" y="209.6606"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="163.5" y="209.6606">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="263.5" y="209.6606"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="263.5" x2="278" y1="205.6602" y2="205.6602"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="102" y="225.2935">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="155" y="225.2935">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="259" y="225.2935">.</text><ellipse cx="309" cy="213.2266" fill="#FFFFFF" filter="url(#f6uexfk9udhqe)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="309" cy="213.2266" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="309" x2="309" y1="110.5586" y2="148.2578"/><polygon fill="#A80036" points="305,138.2578,309,148.2578,313,138.2578,309,142.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="309" x2="309" y1="182.2266" y2="202.2266"/><polygon fill="#A80036" points="305,192.2266,309,202.2266,313,192.2266,309,196.2266" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ffaca355b74f349bc9f1411a91e3e6e0]
-@startuml
-
-title **µRtWare**\nurtSubscriberInit()\n
-
-
-
-
-
-
-
-
-
-
-
-
-start
-note
-  - - ""**subscriber** : urt_subscriber_t*"" - -
-  The subscriber to initialize.
-  Must not be ""NULL"".
-end note
-
-
-:initialize members;
-
-
-stop
-note
-  - - **return** ""urt_status_t"" - -
-  Returns ""URT_STATUS_OK"".
-end note
-
-
-@enduml
-
-PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
-Operating System: Linux
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberInit.uml b/doc/activitydiagrams/subscriber/urtSubscriberInit.uml
deleted file mode 100644
index 3d87b0d..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberInit.uml
+++ /dev/null
@@ -1,53 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2020  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-/'### INTRO ##################################################################'/
-
-@startuml
-
-title **µRtWare**\nurtSubscriberInit()\n
-
-!include ../../functions.iuml
-
-/'### PARAMETERS & START #####################################################'/
-
-start
-note
-  -- ""**subscriber** : urt_subscriber_t*"" --
-  The subscriber to initialize.
-  Must not be ""NULL"".
-end note
-
-/'### PROCEDURE ##############################################################'/
-
-:initialize members;
-
-/'### STOP & RETURN ##########################################################'/
-
-stop
-note
-  -- **return** ""urt_status_t"" --
-  Returns ""URT_STATUS_OK"".
-end note
-
-/'### OUTRO ##################################################################'/
-
-@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeFrt.svg b/doc/activitydiagrams/subscriber/urtSubscriberSubscribeFrt.svg
deleted file mode 100644
index 16e832c..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeFrt.svg
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1131px" preserveAspectRatio="none" style="width:1766px;height:1131px;" version="1.1" viewBox="0 0 1766 1131" width="1766px" zoomAndPan="magnify"><defs><filter height="300%" id="f1dgqi4y7e2l0d" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="837.875" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="158" x="803.375" y="47.6611">urtSubscriberFrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="885.375" y="68.6143"/><path d="M10,72.8594 L10,370.3828 A0,0 0 0 0 10,370.3828 L710,370.3828 A0,0 0 0 0 710,370.3828 L710,225.6211 L730,221.6211 L710,217.6211 L710,82.8594 L700,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#f1dgqi4y7e2l0d)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M700,72.8594 L700,82.8594 L710,82.8594 L700,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="236" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="240" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="240" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="328" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="484" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="484" x2="710" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="298" x="16" y="105.0591">The subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="276" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="280" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="280" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="328" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="444" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="444" x2="710" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="16" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="256" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="260" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="260" y="180.2231">messages</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="332" y="180.2231">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="464" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="464" x2="710" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="303" x="16" y="195.856">List of messages to be contributed to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="373" x="16" y="210.9888">Those messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="517" x="16" y="226.1216">Once a message was contributed, it cannot be removed from the topic anymore.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="268" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="272" y="240.7544"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="272" y="240.7544">deadline</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="344" y="240.7544">: urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="452" y="240.7544"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="452" x2="710" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="16" y="256.3872">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="16" y="271.52">A value of 0 indicates, that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="276" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="280" y="286.1528"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="280" y="286.1528">rate</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="320" y="286.1528">: urt_delay_t_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="444" y="286.1528"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="444" x2="710" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="621" x="16" y="301.7856">Expected minimum rate of new messages (= mamximum time between consecutive messages).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="309" x="16" y="316.9185">A value of 0 indicates, that rate is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="268" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="272" y="331.5513"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="48" x="272" y="331.5513">jitter</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="328" y="331.5513">: urt_delay_t_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="452" y="331.5513"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="452" x2="710" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="16" y="347.1841">Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="312" x="16" y="362.3169">A value of 0 indicates, that jitter is of no concern.</text><ellipse cx="740" cy="221.6211" fill="#000000" filter="url(#f1dgqi4y7e2l0d)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" points="682.5,390.3828,797.5,390.3828,809.5,402.3828,797.5,414.3828,682.5,414.3828,670.5,402.3828,682.5,390.3828" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="682.5" y="406.1909">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="650.5" y="399.7886">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="809.5" y="399.7886">no</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="270.75" y="424.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="280.75" y="445.5215">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="323.75" y="445.5215">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="230" x="1006.75" y="424.3828"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="1020.75" y="450.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="1030.75" y="471.5215">set FRT data</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1147.75" y="450.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1157.75" y="471.5215">set topic</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="230" x="1006.75" y="504.3516"/><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="465.75" y="530.3516"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="959.25" y="556.3516"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="969.25" y="577.4902">lock topic</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="479.75" y="610.3203"/><rect fill="#FFFFFF" filter="url(#f1dgqi4y7e2l0d)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="638" x="503.75" y="682.8325"/><path d="M660.75,683.8325 L660.75,692.1294 L650.75,702.1294 L503.75,702.1294 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="506.75" y="696.8276">contribute messages</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="585.75" y="719.1294"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="595.75" y="740.2681">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="513.75" y="788.0981"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="523.75" y="809.2368">set next pointer of last message to contribute to the message after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" points="752.75,636.3203,892.75,636.3203,904.75,648.3203,892.75,660.3203,752.75,660.3203,740.75,648.3203,752.75,636.3203" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="826.75" y="670.5308">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="752.75" y="652.1284">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="904.75" y="645.7261">no</text><polygon fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" points="822.75,854.0669,834.75,866.0669,822.75,878.0669,810.75,866.0669,822.75,854.0669" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1191.75" y="745.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1201.75" y="766.604">set message pointer to topic's latest message</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="479.75" y="898.0669"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="951.25" y="924.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="961.25" y="945.2056">unlock topic</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1526.75" y="745.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1536.75" y="766.604">register to topic's event source</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="465.75" y="978.0356"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="1044.75" y="1004.0356"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="1054.75" y="1025.1743">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="1097.75" y="1025.1743">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" points="740,1044.0044,752,1056.0044,740,1068.0044,728,1056.0044,740,1044.0044" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M181,1078.8716 L181,1119.1372 A0,0 0 0 0 181,1119.1372 L709,1119.1372 A0,0 0 0 0 709,1119.1372 L709,1103.0044 L729,1099.0044 L709,1095.0044 L709,1088.8716 L699,1078.8716 L181,1078.8716 A0,0 0 0 0 181,1078.8716 " fill="#FBFB77" filter="url(#f1dgqi4y7e2l0d)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M699,1078.8716 L699,1088.8716 L709,1088.8716 L699,1078.8716 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="181" x2="368.5" y1="1091.438" y2="1091.438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="372.5" y="1095.4385"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="372.5" y="1095.4385">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="421.5" y="1095.4385"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="421.5" y="1095.4385">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="521.5" y="1095.4385"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="521.5" x2="709" y1="1091.438" y2="1091.438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="187" y="1111.0713">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="240" y="1111.0713">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="372" y="1111.0713">if the subscriber was already associated to a topic.</text><ellipse cx="740" cy="1099.0044" fill="#FFFFFF" filter="url(#f1dgqi4y7e2l0d)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="740" cy="1099.0044" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1070.25" x2="1070.25" y1="430.3828" y2="450.3828"/><polygon fill="#A80036" points="1066.25,440.3828,1070.25,450.3828,1074.25,440.3828,1070.25,444.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1185.25" x2="1185.25" y1="430.3828" y2="450.3828"/><polygon fill="#A80036" points="1181.25,440.3828,1185.25,450.3828,1189.25,440.3828,1185.25,444.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1070.25" x2="1070.25" y1="484.3516" y2="504.3516"/><polygon fill="#A80036" points="1066.25,494.3516,1070.25,504.3516,1074.25,494.3516,1070.25,498.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1185.25" x2="1185.25" y1="484.3516" y2="504.3516"/><polygon fill="#A80036" points="1181.25,494.3516,1185.25,504.3516,1189.25,494.3516,1185.25,498.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="753.0981" y2="788.0981"/><polygon fill="#A80036" points="818.75,778.0981,822.75,788.0981,826.75,778.0981,822.75,782.0981" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="660.3203" y2="719.1294"/><polygon fill="#A80036" points="818.75,709.1294,822.75,719.1294,826.75,709.1294,822.75,713.1294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="904.75" x2="1151.75" y1="648.3203" y2="648.3203"/><polygon fill="#A80036" points="1147.75,752.4497,1151.75,762.4497,1155.75,752.4497,1151.75,756.4497" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1151.75" x2="1151.75" y1="648.3203" y2="866.0669"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1151.75" x2="834.75" y1="866.0669" y2="866.0669"/><polygon fill="#A80036" points="844.75,862.0669,834.75,866.0669,844.75,870.0669,840.75,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="822.0669" y2="854.0669"/><polygon fill="#A80036" points="818.75,844.0669,822.75,854.0669,826.75,844.0669,822.75,848.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="616.3203" y2="636.3203"/><polygon fill="#A80036" points="818.75,626.3203,822.75,636.3203,826.75,626.3203,822.75,630.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1348.25" x2="1348.25" y1="616.3203" y2="745.4653"/><polygon fill="#A80036" points="1344.25,735.4653,1348.25,745.4653,1352.25,735.4653,1348.25,739.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="878.0669" y2="898.0669"/><polygon fill="#A80036" points="818.75,888.0669,822.75,898.0669,826.75,888.0669,822.75,892.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1348.25" x2="1348.25" y1="779.4341" y2="898.0669"/><polygon fill="#A80036" points="1344.25,888.0669,1348.25,898.0669,1352.25,888.0669,1348.25,892.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.25" x2="999.25" y1="590.3203" y2="610.3203"/><polygon fill="#A80036" points="995.25,600.3203,999.25,610.3203,1003.25,600.3203,999.25,604.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.25" x2="999.25" y1="904.0669" y2="924.0669"/><polygon fill="#A80036" points="995.25,914.0669,999.25,924.0669,1003.25,914.0669,999.25,918.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.25" x2="999.25" y1="536.3516" y2="556.3516"/><polygon fill="#A80036" points="995.25,546.3516,999.25,556.3516,1003.25,546.3516,999.25,550.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1635.25" x2="1635.25" y1="536.3516" y2="745.4653"/><polygon fill="#A80036" points="1631.25,735.4653,1635.25,745.4653,1639.25,735.4653,1635.25,739.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.25" x2="999.25" y1="958.0356" y2="978.0356"/><polygon fill="#A80036" points="995.25,968.0356,999.25,978.0356,1003.25,968.0356,999.25,972.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1635.25" x2="1635.25" y1="779.4341" y2="978.0356"/><polygon fill="#A80036" points="1631.25,968.0356,1635.25,978.0356,1639.25,968.0356,1635.25,972.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="1121.75" y1="510.3516" y2="530.3516"/><polygon fill="#A80036" points="1117.75,520.3516,1121.75,530.3516,1125.75,520.3516,1121.75,524.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="1121.75" y1="984.0356" y2="1004.0356"/><polygon fill="#A80036" points="1117.75,994.0356,1121.75,1004.0356,1125.75,994.0356,1121.75,998.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.5" x2="358.25" y1="402.3828" y2="402.3828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="358.25" x2="358.25" y1="402.3828" y2="424.3828"/><polygon fill="#A80036" points="354.25,414.3828,358.25,424.3828,362.25,414.3828,358.25,418.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="809.5" x2="1121.75" y1="402.3828" y2="402.3828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="1121.75" y1="402.3828" y2="424.3828"/><polygon fill="#A80036" points="1117.75,414.3828,1121.75,424.3828,1125.75,414.3828,1121.75,418.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="358.25" x2="358.25" y1="458.3516" y2="1056.0044"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="358.25" x2="728" y1="1056.0044" y2="1056.0044"/><polygon fill="#A80036" points="718,1052.0044,728,1056.0044,718,1060.0044,722,1056.0044" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="1121.75" y1="1038.0044" y2="1056.0044"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="752" y1="1056.0044" y2="1056.0044"/><polygon fill="#A80036" points="762,1052.0044,752,1056.0044,762,1060.0044,758,1056.0044" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740" x2="740" y1="231.6211" y2="390.3828"/><polygon fill="#A80036" points="736,380.3828,740,390.3828,744,380.3828,740,384.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740" x2="740" y1="1068.0044" y2="1088.0044"/><polygon fill="#A80036" points="736,1078.0044,740,1088.0044,744,1078.0044,740,1082.0044" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a6d104aca358dff4eeaced4e385ef4b8]
-@startuml
-
-title **µRtWare**\nurtSubscriberFrt()\n
-
-
-
-
-
-
-
-
-
-
-
-
-start
-note
-  - - ""**subscriber** : urt_subscriber_t*"" - -
-  The subscriber which shall subscribe to a topic.
-  Must not be ""NULL"".
-  - - ""**topic** : urt_topic_t*"" - -
-  The topic to subscribe to.
-  Must not be ""NULL"".
-  - - ""**messages** : urt_message_t*"" - -
-  List of messages to be contributed to the topic.
-  Those messages must not be associated to another topic.
-  Once a message was contributed, it cannot be removed from the topic anymore.
-  - - ""**deadline** : urt_delay_t"" - -
-  Maximum latency to consume messages.
-  A value of 0 indicates, that latency is of no concern.
-  - - ""**rate** : urt_delay_t_t"" - -
-  Expected minimum rate of new messages (= mamximum time between consecutive messages).
-  A value of 0 indicates, that rate is of no concern.
-  - - ""**jitter** : urt_delay_t_t"" - -
-  Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.
-  A value of 0 indicates, that jitter is of no concern.
-end note
-
-
-if (Is topic already set?) then (yes)
-  :return ""URT_STATUS_ERROR"";
-else (no)
-  fork
-    :set FRT data;
-  fork again
-    :set topic;
-  endfork
-  fork
-    :lock topic;
-    fork
-      if (Messages to contribute?) then (yes)
-        partition "contribute messages" {
-          :set next pointer of topic's latest message to first message to contribute;
-          :set next pointer of last message to contribute to the message after the topic's latest message;
-        }
-      else (no)
-      endif
-    fork again
-      :set message pointer to topic's latest message;
-    endfork
-    :unlock topic;
-  fork again
-    :register to topic's event source;
-  endfork
-  :return ""URT_STATUS_OK"";
-endif
-
-
-stop
-note
-  - - **return** ""urt_status_t"" - -
-  Returns ""URT_STATUS_ERROR"" if the subscriber was already associated to a topic.
-end note
-
-
-@enduml
-
-PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
-Operating System: Linux
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeFrt.uml b/doc/activitydiagrams/subscriber/urtSubscriberSubscribeFrt.uml
deleted file mode 100644
index 84d4f53..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeFrt.uml
+++ /dev/null
@@ -1,95 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2020  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-/'### INTRO ##################################################################'/
-
-@startuml
-
-title **µRtWare**\nurtSubscriberFrt()\n
-
-!include ../../functions.iuml
-
-/'### PARAMETERS & START #####################################################'/
-
-start
-note
-  -- ""**subscriber** : urt_subscriber_t*"" --
-  The subscriber which shall subscribe to a topic.
-  Must not be ""NULL"".
-  -- ""**topic** : urt_topic_t*"" --
-  The topic to subscribe to.
-  Must not be ""NULL"".
-  -- ""**messages** : urt_message_t*"" --
-  List of messages to be contributed to the topic.
-  Those messages must not be associated to another topic.
-  Once a message was contributed, it cannot be removed from the topic anymore.
-  -- ""**deadline** : urt_delay_t"" --
-  Maximum latency to consume messages.
-  A value of 0 indicates, that latency is of no concern.
-  -- ""**rate** : urt_delay_t_t"" --
-  Expected minimum rate of new messages (= mamximum time between consecutive messages).
-  A value of 0 indicates, that rate is of no concern.
-  -- ""**jitter** : urt_delay_t_t"" --
-  Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.
-  A value of 0 indicates, that jitter is of no concern.
-end note
-
-/'### PROCEDURE ##############################################################'/
-
-if (Is topic already set?) then (yes)
-  :return ""URT_STATUS_ERROR"";
-else (no)
-  fork
-    :set FRT data;
-  fork again
-    :set topic;
-  endfork
-  fork
-    :lock topic;
-    fork
-      if (Messages to contribute?) then (yes)
-        partition "contribute messages" {
-          :set next pointer of topic's latest message to first message to contribute;
-          :set next pointer of last message to contribute to the message after the topic's latest message;
-        }
-      else (no)
-      endif
-    fork again
-      :set message pointer to topic's latest message;
-    endfork
-    :unlock topic;
-  fork again
-    :register to topic's event source;
-  endfork
-  :return ""URT_STATUS_OK"";
-endif
-
-/'### STOP & RETURN ##########################################################'/
-
-stop
-note
-  -- **return** ""urt_status_t"" --
-  Returns ""URT_STATUS_ERROR"" if the subscriber was already associated to a topic.
-end note
-
-/'### OUTRO ##################################################################'/
-
-@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeHrt.svg b/doc/activitydiagrams/subscriber/urtSubscriberSubscribeHrt.svg
deleted file mode 100644
index b885c48..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeHrt.svg
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1079px" preserveAspectRatio="none" style="width:2149px;height:1079px;" version="1.1" viewBox="0 0 2149 1079" width="2149px" zoomAndPan="magnify"><defs><filter height="300%" id="fuj8ganickisx" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="1029.375" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="162" x="992.875" y="47.6611">urtSubscriberHrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1076.875" y="68.6143"/><path d="M10,72.8594 L10,370.3828 A0,0 0 0 0 10,370.3828 L710,370.3828 A0,0 0 0 0 710,370.3828 L710,225.6211 L730,221.6211 L710,217.6211 L710,82.8594 L700,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#fuj8ganickisx)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M700,72.8594 L700,82.8594 L710,82.8594 L700,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="236" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="240" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="240" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="328" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="484" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="484" x2="710" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="298" x="16" y="105.0591">The subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="276" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="280" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="280" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="328" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="444" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="444" x2="710" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="16" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="256" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="260" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="260" y="180.2231">messages</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="332" y="180.2231">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="464" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="464" x2="710" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="303" x="16" y="195.856">List of messages to be contributed to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="373" x="16" y="210.9888">Those messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="517" x="16" y="226.1216">Once a message was contributed, it cannot be removed from the topic anymore.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="268" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="272" y="240.7544"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="272" y="240.7544">deadline</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="344" y="240.7544">: urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="452" y="240.7544"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="452" x2="710" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="16" y="256.3872">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="16" y="271.52">A value of 0 indicates, that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="276" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="280" y="286.1528"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="280" y="286.1528">rate</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="320" y="286.1528">: urt_delay_t_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="444" y="286.1528"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="444" x2="710" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="621" x="16" y="301.7856">Expected minimum rate of new messages (= mamximum time between consecutive messages).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="309" x="16" y="316.9185">A value of 0 indicates, that rate is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="268" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="272" y="331.5513"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="48" x="272" y="331.5513">jitter</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="328" y="331.5513">: urt_delay_t_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="452" y="331.5513"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="452" x2="710" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="16" y="347.1841">Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="312" x="16" y="362.3169">A value of 0 indicates, that jitter is of no concern.</text><ellipse cx="740" cy="221.6211" fill="#000000" filter="url(#fuj8ganickisx)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fuj8ganickisx)" points="682.5,390.3828,797.5,390.3828,809.5,402.3828,797.5,414.3828,682.5,414.3828,670.5,402.3828,682.5,390.3828" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="682.5" y="406.1909">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="650.5" y="399.7886">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="809.5" y="399.7886">no</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="128.75" y="424.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="138.75" y="445.5215">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="181.75" y="445.5215">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#fuj8ganickisx)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="231" x="1121.75" y="424.3828"/><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="101" x="1135.75" y="450.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="1145.75" y="471.5215">set HRT data</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1264.75" y="450.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1274.75" y="471.5215">set topic</text><rect fill="#000000" filter="url(#fuj8ganickisx)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="231" x="1121.75" y="504.3516"/><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1197.75" y="530.3516"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1207.75" y="551.4902">lock topic</text><rect fill="#000000" filter="url(#fuj8ganickisx)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1815" x="323.75" y="584.3203"/><rect fill="#FFFFFF" filter="url(#fuj8ganickisx)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="638" x="347.75" y="656.8325"/><path d="M504.75,657.8325 L504.75,666.1294 L494.75,676.1294 L347.75,676.1294 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="350.75" y="670.8276">contribute messages</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="429.75" y="693.1294"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="439.75" y="714.2681">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="357.75" y="762.0981"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="367.75" y="783.2368">set next pointer of last message to contribute to the message after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#fuj8ganickisx)" points="596.75,610.3203,736.75,610.3203,748.75,622.3203,736.75,634.3203,596.75,634.3203,584.75,622.3203,596.75,610.3203" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="670.75" y="644.5308">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="596.75" y="626.1284">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="748.75" y="619.7261">no</text><polygon fill="#FEFECE" filter="url(#fuj8ganickisx)" points="666.75,828.0669,678.75,840.0669,666.75,852.0669,654.75,840.0669,666.75,828.0669" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1009.75" y="719.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1019.75" y="740.604">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1349.75" y="719.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1359.75" y="740.604">register to topic's event source</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="331" x="1576.75" y="719.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="311" x="1586.75" y="740.604">insert subscriber to topic's list of HRT subscribers</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="1917.75" y="719.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="189" x="1927.75" y="740.604">increment topic's HRT counter</text><rect fill="#000000" filter="url(#fuj8ganickisx)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1815" x="323.75" y="872.0669"/><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1189.75" y="898.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1199.75" y="919.2056">unlock topic</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="1160.75" y="952.0356"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="1170.75" y="973.1743">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="1213.75" y="973.1743">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#fuj8ganickisx)" points="740,992.0044,752,1004.0044,740,1016.0044,728,1004.0044,740,992.0044" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M181,1026.8716 L181,1067.1372 A0,0 0 0 0 181,1067.1372 L709,1067.1372 A0,0 0 0 0 709,1067.1372 L709,1051.0044 L729,1047.0044 L709,1043.0044 L709,1036.8716 L699,1026.8716 L181,1026.8716 A0,0 0 0 0 181,1026.8716 " fill="#FBFB77" filter="url(#fuj8ganickisx)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M699,1026.8716 L699,1036.8716 L709,1036.8716 L699,1026.8716 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="181" x2="368.5" y1="1039.438" y2="1039.438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="372.5" y="1043.4385"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="372.5" y="1043.4385">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="421.5" y="1043.4385"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="421.5" y="1043.4385">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="521.5" y="1043.4385"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="521.5" x2="709" y1="1039.438" y2="1039.438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="187" y="1059.0713">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="240" y="1059.0713">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="372" y="1059.0713">if the subscriber was already associated to a topic.</text><ellipse cx="740" cy="1047.0044" fill="#FFFFFF" filter="url(#fuj8ganickisx)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="740" cy="1047.0044" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186.25" x2="1186.25" y1="430.3828" y2="450.3828"/><polygon fill="#A80036" points="1182.25,440.3828,1186.25,450.3828,1190.25,440.3828,1186.25,444.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1302.25" x2="1302.25" y1="430.3828" y2="450.3828"/><polygon fill="#A80036" points="1298.25,440.3828,1302.25,450.3828,1306.25,440.3828,1302.25,444.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186.25" x2="1186.25" y1="484.3516" y2="504.3516"/><polygon fill="#A80036" points="1182.25,494.3516,1186.25,504.3516,1190.25,494.3516,1186.25,498.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1302.25" x2="1302.25" y1="484.3516" y2="504.3516"/><polygon fill="#A80036" points="1298.25,494.3516,1302.25,504.3516,1306.25,494.3516,1302.25,498.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="1237.75" y1="510.3516" y2="530.3516"/><polygon fill="#A80036" points="1233.75,520.3516,1237.75,530.3516,1241.75,520.3516,1237.75,524.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="666.75" x2="666.75" y1="727.0981" y2="762.0981"/><polygon fill="#A80036" points="662.75,752.0981,666.75,762.0981,670.75,752.0981,666.75,756.0981" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="666.75" x2="666.75" y1="634.3203" y2="693.1294"/><polygon fill="#A80036" points="662.75,683.1294,666.75,693.1294,670.75,683.1294,666.75,687.1294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="748.75" x2="995.75" y1="622.3203" y2="622.3203"/><polygon fill="#A80036" points="991.75,726.4497,995.75,736.4497,999.75,726.4497,995.75,730.4497" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="995.75" x2="995.75" y1="622.3203" y2="840.0669"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="995.75" x2="678.75" y1="840.0669" y2="840.0669"/><polygon fill="#A80036" points="688.75,836.0669,678.75,840.0669,688.75,844.0669,684.75,840.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="666.75" x2="666.75" y1="796.0669" y2="828.0669"/><polygon fill="#A80036" points="662.75,818.0669,666.75,828.0669,670.75,818.0669,666.75,822.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="666.75" x2="666.75" y1="590.3203" y2="610.3203"/><polygon fill="#A80036" points="662.75,600.3203,666.75,610.3203,670.75,600.3203,666.75,604.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1166.25" x2="1166.25" y1="590.3203" y2="719.4653"/><polygon fill="#A80036" points="1162.25,709.4653,1166.25,719.4653,1170.25,709.4653,1166.25,713.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458.25" x2="1458.25" y1="590.3203" y2="719.4653"/><polygon fill="#A80036" points="1454.25,709.4653,1458.25,719.4653,1462.25,709.4653,1458.25,713.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1742.25" x2="1742.25" y1="590.3203" y2="719.4653"/><polygon fill="#A80036" points="1738.25,709.4653,1742.25,719.4653,1746.25,709.4653,1742.25,713.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2022.25" x2="2022.25" y1="590.3203" y2="719.4653"/><polygon fill="#A80036" points="2018.25,709.4653,2022.25,719.4653,2026.25,709.4653,2022.25,713.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="666.75" x2="666.75" y1="852.0669" y2="872.0669"/><polygon fill="#A80036" points="662.75,862.0669,666.75,872.0669,670.75,862.0669,666.75,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1166.25" x2="1166.25" y1="753.4341" y2="872.0669"/><polygon fill="#A80036" points="1162.25,862.0669,1166.25,872.0669,1170.25,862.0669,1166.25,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458.25" x2="1458.25" y1="753.4341" y2="872.0669"/><polygon fill="#A80036" points="1454.25,862.0669,1458.25,872.0669,1462.25,862.0669,1458.25,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1742.25" x2="1742.25" y1="753.4341" y2="872.0669"/><polygon fill="#A80036" points="1738.25,862.0669,1742.25,872.0669,1746.25,862.0669,1742.25,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2022.25" x2="2022.25" y1="753.4341" y2="872.0669"/><polygon fill="#A80036" points="2018.25,862.0669,2022.25,872.0669,2026.25,862.0669,2022.25,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="1237.75" y1="564.3203" y2="584.3203"/><polygon fill="#A80036" points="1233.75,574.3203,1237.75,584.3203,1241.75,574.3203,1237.75,578.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="1237.75" y1="878.0669" y2="898.0669"/><polygon fill="#A80036" points="1233.75,888.0669,1237.75,898.0669,1241.75,888.0669,1237.75,892.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="1237.75" y1="932.0356" y2="952.0356"/><polygon fill="#A80036" points="1233.75,942.0356,1237.75,952.0356,1241.75,942.0356,1237.75,946.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.5" x2="216.25" y1="402.3828" y2="402.3828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="216.25" x2="216.25" y1="402.3828" y2="424.3828"/><polygon fill="#A80036" points="212.25,414.3828,216.25,424.3828,220.25,414.3828,216.25,418.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="809.5" x2="1237.75" y1="402.3828" y2="402.3828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="1237.75" y1="402.3828" y2="424.3828"/><polygon fill="#A80036" points="1233.75,414.3828,1237.75,424.3828,1241.75,414.3828,1237.75,418.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="216.25" x2="216.25" y1="458.3516" y2="1004.0044"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="216.25" x2="728" y1="1004.0044" y2="1004.0044"/><polygon fill="#A80036" points="718,1000.0044,728,1004.0044,718,1008.0044,722,1004.0044" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="1237.75" y1="986.0044" y2="1004.0044"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="752" y1="1004.0044" y2="1004.0044"/><polygon fill="#A80036" points="762,1000.0044,752,1004.0044,762,1008.0044,758,1004.0044" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740" x2="740" y1="231.6211" y2="390.3828"/><polygon fill="#A80036" points="736,380.3828,740,390.3828,744,380.3828,740,384.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740" x2="740" y1="1016.0044" y2="1036.0044"/><polygon fill="#A80036" points="736,1026.0044,740,1036.0044,744,1026.0044,740,1030.0044" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[86f4e621ff1428b72db951ab1c7d8a26]
-@startuml
-
-title **µRtWare**\nurtSubscriberHrt()\n
-
-
-
-
-
-
-
-
-
-
-
-
-start
-note
-  - - ""**subscriber** : urt_subscriber_t*"" - -
-  The subscriber which shall subscribe to a topic.
-  Must not be ""NULL"".
-  - - ""**topic** : urt_topic_t*"" - -
-  The topic to subscribe to.
-  Must not be ""NULL"".
-  - - ""**messages** : urt_message_t*"" - -
-  List of messages to be contributed to the topic.
-  Those messages must not be associated to another topic.
-  Once a message was contributed, it cannot be removed from the topic anymore.
-  - - ""**deadline** : urt_delay_t"" - -
-  Maximum latency to consume messages.
-  A value of 0 indicates, that latency is of no concern.
-  - - ""**rate** : urt_delay_t_t"" - -
-  Expected minimum rate of new messages (= mamximum time between consecutive messages).
-  A value of 0 indicates, that rate is of no concern.
-  - - ""**jitter** : urt_delay_t_t"" - -
-  Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.
-  A value of 0 indicates, that jitter is of no concern.
-end note
-
-
-if (Is topic already set?) then (yes)
-  :return ""URT_STATUS_ERROR"";
-else (no)
-  fork
-    :set HRT data;
-  fork again
-    :set topic;
-  endfork
-  :lock topic;
-  fork
-    if (Messages to contribute?) then (yes)
-      partition "contribute messages" {
-        :set next pointer of topic's latest message to first message to contribute;
-        :set next pointer of last message to contribute to the message after the topic's latest message;
-      }
-    else (no)
-    endif
-  fork again
-    :set message pointer to topic's latest message;
-  fork again
-    :register to topic's event source;
-  fork again
-    :insert subscriber to topic's list of HRT subscribers;
-  fork again
-    :increment topic's HRT counter;
-  endfork
-  :unlock topic;
-  :return ""URT_STATUS_OK"";
-endif
-
-
-stop
-note
-  - - **return** ""urt_status_t"" - -
-  Returns ""URT_STATUS_ERROR"" if the subscriber was already associated to a topic.
-end note
-
-
-@enduml
-
-PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
-Operating System: Linux
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeHrt.uml b/doc/activitydiagrams/subscriber/urtSubscriberSubscribeHrt.uml
deleted file mode 100644
index 26755aa..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeHrt.uml
+++ /dev/null
@@ -1,97 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2020  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-/'### INTRO ##################################################################'/
-
-@startuml
-
-title **µRtWare**\nurtSubscriberHrt()\n
-
-!include ../../functions.iuml
-
-/'### PARAMETERS & START #####################################################'/
-
-start
-note
-  -- ""**subscriber** : urt_subscriber_t*"" --
-  The subscriber which shall subscribe to a topic.
-  Must not be ""NULL"".
-  -- ""**topic** : urt_topic_t*"" --
-  The topic to subscribe to.
-  Must not be ""NULL"".
-  -- ""**messages** : urt_message_t*"" --
-  List of messages to be contributed to the topic.
-  Those messages must not be associated to another topic.
-  Once a message was contributed, it cannot be removed from the topic anymore.
-  -- ""**deadline** : urt_delay_t"" --
-  Maximum latency to consume messages.
-  A value of 0 indicates, that latency is of no concern.
-  -- ""**rate** : urt_delay_t_t"" --
-  Expected minimum rate of new messages (= mamximum time between consecutive messages).
-  A value of 0 indicates, that rate is of no concern.
-  -- ""**jitter** : urt_delay_t_t"" --
-  Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.
-  A value of 0 indicates, that jitter is of no concern.
-end note
-
-/'### PROCEDURE ##############################################################'/
-
-if (Is topic already set?) then (yes)
-  :return ""URT_STATUS_ERROR"";
-else (no)
-  fork
-    :set HRT data;
-  fork again
-    :set topic;
-  endfork
-  :lock topic;
-  fork
-    if (Messages to contribute?) then (yes)
-      partition "contribute messages" {
-        :set next pointer of topic's latest message to first message to contribute;
-        :set next pointer of last message to contribute to the message after the topic's latest message;
-      }
-    else (no)
-    endif
-  fork again
-    :set message pointer to topic's latest message;
-  fork again
-    :register to topic's event source;
-  fork again
-    :insert subscriber to topic's list of HRT subscribers;
-  fork again
-    :increment topic's HRT counter;
-  endfork
-  :unlock topic;
-  :return ""URT_STATUS_OK"";
-endif
-
-/'### STOP & RETURN ##########################################################'/
-
-stop
-note
-  -- **return** ""urt_status_t"" --
-  Returns ""URT_STATUS_ERROR"" if the subscriber was already associated to a topic.
-end note
-
-/'### OUTRO ##################################################################'/
-
-@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeNrt.svg b/doc/activitydiagrams/subscriber/urtSubscriberSubscribeNrt.svg
deleted file mode 100644
index 46d8d6a..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeNrt.svg
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="994px" preserveAspectRatio="none" style="width:1604px;height:994px;" version="1.1" viewBox="0 0 1604 994" width="1604px" zoomAndPan="magnify"><defs><filter height="300%" id="f2tngkxb3de0k" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="756.875" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="162" x="720.375" y="47.6611">urtSubscriberNrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="804.375" y="68.6143"/><path d="M10,72.8594 L10,234.1875 A0,0 0 0 0 10,234.1875 L548,234.1875 A0,0 0 0 0 548,234.1875 L548,157.5234 L568,153.5234 L548,149.5234 L548,82.8594 L538,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#f2tngkxb3de0k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M538,72.8594 L538,82.8594 L548,82.8594 L538,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="155" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="159" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="159" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="247" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="403" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="403" x2="548" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="298" x="16" y="105.0591">The subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="195" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="199" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="199" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="247" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="363" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="363" x2="548" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="16" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="175" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="179" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="179" y="180.2231">messages</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="251" y="180.2231">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="383" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="383" x2="548" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="303" x="16" y="195.856">List of messages to be contributed to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="373" x="16" y="210.9888">Those messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="517" x="16" y="226.1216">Once a message was contributed, it cannot be removed from the topic anymore.</text><ellipse cx="578" cy="153.5234" fill="#000000" filter="url(#f2tngkxb3de0k)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f2tngkxb3de0k)" points="520.5,254.1875,635.5,254.1875,647.5,266.1875,635.5,278.1875,520.5,278.1875,508.5,266.1875,520.5,254.1875" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="520.5" y="269.9956">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="488.5" y="263.5933">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="647.5" y="263.5933">no</text><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="108.75" y="288.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="118.75" y="309.3262">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="161.75" y="309.3262">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f2tngkxb3de0k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="232" x="843.75" y="288.1875"/><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="101" x="857.75" y="314.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="867.75" y="335.3262">set NRT data</text><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="986.75" y="314.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="996.75" y="335.3262">set topic</text><rect fill="#000000" filter="url(#f2tngkxb3de0k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="232" x="843.75" y="368.1563"/><rect fill="#000000" filter="url(#f2tngkxb3de0k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="303.75" y="394.1563"/><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="797.25" y="420.1563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="807.25" y="441.2949">lock topic</text><rect fill="#000000" filter="url(#f2tngkxb3de0k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="317.75" y="474.125"/><rect fill="#FFFFFF" filter="url(#f2tngkxb3de0k)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="638" x="341.75" y="546.6372"/><path d="M498.75,547.6372 L498.75,555.9341 L488.75,565.9341 L341.75,565.9341 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="344.75" y="560.6323">contribute messages</text><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="423.75" y="582.9341"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="433.75" y="604.0728">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="351.75" y="651.9028"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="361.75" y="673.0415">set next pointer of last message to contribute to the message after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#f2tngkxb3de0k)" points="590.75,500.125,730.75,500.125,742.75,512.125,730.75,524.125,590.75,524.125,578.75,512.125,590.75,500.125" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="664.75" y="534.3354">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="590.75" y="515.9331">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="742.75" y="509.5308">no</text><polygon fill="#FEFECE" filter="url(#f2tngkxb3de0k)" points="660.75,717.8716,672.75,729.8716,660.75,741.8716,648.75,729.8716,660.75,717.8716" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1029.75" y="609.27"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1039.75" y="630.4087">set message pointer to topic's latest message</text><rect fill="#000000" filter="url(#f2tngkxb3de0k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="317.75" y="761.8716"/><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="789.25" y="787.8716"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="799.25" y="809.0103">unlock topic</text><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1364.75" y="609.27"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1374.75" y="630.4087">register to topic's event source</text><rect fill="#000000" filter="url(#f2tngkxb3de0k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="303.75" y="841.8403"/><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="882.75" y="867.8403"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="892.75" y="888.979">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="935.75" y="888.979">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f2tngkxb3de0k)" points="578,907.8091,590,919.8091,578,931.8091,566,919.8091,578,907.8091" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M19,942.6763 L19,982.9419 A0,0 0 0 0 19,982.9419 L547,982.9419 A0,0 0 0 0 547,982.9419 L547,966.8091 L567,962.8091 L547,958.8091 L547,952.6763 L537,942.6763 L19,942.6763 A0,0 0 0 0 19,942.6763 " fill="#FBFB77" filter="url(#f2tngkxb3de0k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M537,942.6763 L537,952.6763 L547,952.6763 L537,942.6763 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="206.5" y1="955.2427" y2="955.2427"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="210.5" y="959.2432"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="210.5" y="959.2432">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="259.5" y="959.2432"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="259.5" y="959.2432">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="359.5" y="959.2432"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="359.5" x2="547" y1="955.2427" y2="955.2427"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="25" y="974.876">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="78" y="974.876">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="210" y="974.876">if the subscriber was already associated to a topic.</text><ellipse cx="578" cy="962.8091" fill="#FFFFFF" filter="url(#f2tngkxb3de0k)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="578" cy="962.8091" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="908.25" x2="908.25" y1="294.1875" y2="314.1875"/><polygon fill="#A80036" points="904.25,304.1875,908.25,314.1875,912.25,304.1875,908.25,308.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1024.25" x2="1024.25" y1="294.1875" y2="314.1875"/><polygon fill="#A80036" points="1020.25,304.1875,1024.25,314.1875,1028.25,304.1875,1024.25,308.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="908.25" x2="908.25" y1="348.1563" y2="368.1563"/><polygon fill="#A80036" points="904.25,358.1563,908.25,368.1563,912.25,358.1563,908.25,362.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1024.25" x2="1024.25" y1="348.1563" y2="368.1563"/><polygon fill="#A80036" points="1020.25,358.1563,1024.25,368.1563,1028.25,358.1563,1024.25,362.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="616.9028" y2="651.9028"/><polygon fill="#A80036" points="656.75,641.9028,660.75,651.9028,664.75,641.9028,660.75,645.9028" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="524.125" y2="582.9341"/><polygon fill="#A80036" points="656.75,572.9341,660.75,582.9341,664.75,572.9341,660.75,576.9341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="742.75" x2="989.75" y1="512.125" y2="512.125"/><polygon fill="#A80036" points="985.75,616.2544,989.75,626.2544,993.75,616.2544,989.75,620.2544" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="989.75" x2="989.75" y1="512.125" y2="729.8716"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="989.75" x2="672.75" y1="729.8716" y2="729.8716"/><polygon fill="#A80036" points="682.75,725.8716,672.75,729.8716,682.75,733.8716,678.75,729.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="685.8716" y2="717.8716"/><polygon fill="#A80036" points="656.75,707.8716,660.75,717.8716,664.75,707.8716,660.75,711.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="480.125" y2="500.125"/><polygon fill="#A80036" points="656.75,490.125,660.75,500.125,664.75,490.125,660.75,494.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186.25" x2="1186.25" y1="480.125" y2="609.27"/><polygon fill="#A80036" points="1182.25,599.27,1186.25,609.27,1190.25,599.27,1186.25,603.27" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="741.8716" y2="761.8716"/><polygon fill="#A80036" points="656.75,751.8716,660.75,761.8716,664.75,751.8716,660.75,755.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186.25" x2="1186.25" y1="643.2388" y2="761.8716"/><polygon fill="#A80036" points="1182.25,751.8716,1186.25,761.8716,1190.25,751.8716,1186.25,755.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="454.125" y2="474.125"/><polygon fill="#A80036" points="833.25,464.125,837.25,474.125,841.25,464.125,837.25,468.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="767.8716" y2="787.8716"/><polygon fill="#A80036" points="833.25,777.8716,837.25,787.8716,841.25,777.8716,837.25,781.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="400.1563" y2="420.1563"/><polygon fill="#A80036" points="833.25,410.1563,837.25,420.1563,841.25,410.1563,837.25,414.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1473.25" x2="1473.25" y1="400.1563" y2="609.27"/><polygon fill="#A80036" points="1469.25,599.27,1473.25,609.27,1477.25,599.27,1473.25,603.27" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="821.8403" y2="841.8403"/><polygon fill="#A80036" points="833.25,831.8403,837.25,841.8403,841.25,831.8403,837.25,835.8403" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1473.25" x2="1473.25" y1="643.2388" y2="841.8403"/><polygon fill="#A80036" points="1469.25,831.8403,1473.25,841.8403,1477.25,831.8403,1473.25,835.8403" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="374.1563" y2="394.1563"/><polygon fill="#A80036" points="955.75,384.1563,959.75,394.1563,963.75,384.1563,959.75,388.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="847.8403" y2="867.8403"/><polygon fill="#A80036" points="955.75,857.8403,959.75,867.8403,963.75,857.8403,959.75,861.8403" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="508.5" x2="196.25" y1="266.1875" y2="266.1875"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="196.25" x2="196.25" y1="266.1875" y2="288.1875"/><polygon fill="#A80036" points="192.25,278.1875,196.25,288.1875,200.25,278.1875,196.25,282.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="647.5" x2="959.75" y1="266.1875" y2="266.1875"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="266.1875" y2="288.1875"/><polygon fill="#A80036" points="955.75,278.1875,959.75,288.1875,963.75,278.1875,959.75,282.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="196.25" x2="196.25" y1="322.1563" y2="919.8091"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="196.25" x2="566" y1="919.8091" y2="919.8091"/><polygon fill="#A80036" points="556,915.8091,566,919.8091,556,923.8091,560,919.8091" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="901.8091" y2="919.8091"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="590" y1="919.8091" y2="919.8091"/><polygon fill="#A80036" points="600,915.8091,590,919.8091,600,923.8091,596,919.8091" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="578" y1="163.5234" y2="254.1875"/><polygon fill="#A80036" points="574,244.1875,578,254.1875,582,244.1875,578,248.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="578" y1="931.8091" y2="951.8091"/><polygon fill="#A80036" points="574,941.8091,578,951.8091,582,941.8091,578,945.8091" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[de98d552df3bf5a78dc344288367cb63]
-@startuml
-
-title **µRtWare**\nurtSubscriberNrt()\n
-
-
-
-
-
-
-
-
-
-
-
-
-start
-note
-  - - ""**subscriber** : urt_subscriber_t*"" - -
-  The subscriber which shall subscribe to a topic.
-  Must not be ""NULL"".
-  - - ""**topic** : urt_topic_t*"" - -
-  The topic to subscribe to.
-  Must not be ""NULL"".
-  - - ""**messages** : urt_message_t*"" - -
-  List of messages to be contributed to the topic.
-  Those messages must not be associated to another topic.
-  Once a message was contributed, it cannot be removed from the topic anymore.
-end note
-
-
-if (Is topic already set?) then (yes)
-  :return ""URT_STATUS_ERROR"";
-else (no)
-  fork
-    :set NRT data;
-  fork again
-    :set topic;
-  endfork
-  fork
-    :lock topic;
-    fork
-      if (Messages to contribute?) then (yes)
-        partition "contribute messages" {
-          :set next pointer of topic's latest message to first message to contribute;
-          :set next pointer of last message to contribute to the message after the topic's latest message;
-        }
-      else (no)
-      endif
-    fork again
-      :set message pointer to topic's latest message;
-    endfork
-    :unlock topic;
-  fork again
-    :register to topic's event source;
-  endfork
-  :return ""URT_STATUS_OK"";
-endif
-
-
-stop
-note
-  - - **return** ""urt_status_t"" - -
-  Returns ""URT_STATUS_ERROR"" if the subscriber was already associated to a topic.
-end note
-
-
-@enduml
-
-PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
-Operating System: Linux
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeNrt.uml b/doc/activitydiagrams/subscriber/urtSubscriberSubscribeNrt.uml
deleted file mode 100644
index c780f66..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeNrt.uml
+++ /dev/null
@@ -1,86 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2020  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-/'### INTRO ##################################################################'/
-
-@startuml
-
-title **µRtWare**\nurtSubscriberNrt()\n
-
-!include ../../functions.iuml
-
-/'### PARAMETERS & START #####################################################'/
-
-start
-note
-  -- ""**subscriber** : urt_subscriber_t*"" --
-  The subscriber which shall subscribe to a topic.
-  Must not be ""NULL"".
-  -- ""**topic** : urt_topic_t*"" --
-  The topic to subscribe to.
-  Must not be ""NULL"".
-  -- ""**messages** : urt_message_t*"" --
-  List of messages to be contributed to the topic.
-  Those messages must not be associated to another topic.
-  Once a message was contributed, it cannot be removed from the topic anymore.
-end note
-
-/'### PROCEDURE ##############################################################'/
-
-if (Is topic already set?) then (yes)
-  :return ""URT_STATUS_ERROR"";
-else (no)
-  fork
-    :set NRT data;
-  fork again
-    :set topic;
-  endfork
-  fork
-    :lock topic;
-    fork
-      if (Messages to contribute?) then (yes)
-        partition "contribute messages" {
-          :set next pointer of topic's latest message to first message to contribute;
-          :set next pointer of last message to contribute to the message after the topic's latest message;
-        }
-      else (no)
-      endif
-    fork again
-      :set message pointer to topic's latest message;
-    endfork
-    :unlock topic;
-  fork again
-    :register to topic's event source;
-  endfork
-  :return ""URT_STATUS_OK"";
-endif
-
-/'### STOP & RETURN ##########################################################'/
-
-stop
-note
-  -- **return** ""urt_status_t"" --
-  Returns ""URT_STATUS_ERROR"" if the subscriber was already associated to a topic.
-end note
-
-/'### OUTRO ##################################################################'/
-
-@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeSrt.svg b/doc/activitydiagrams/subscriber/urtSubscriberSubscribeSrt.svg
deleted file mode 100644
index eb412dd..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeSrt.svg
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1085px" preserveAspectRatio="none" style="width:1604px;height:1085px;" version="1.1" viewBox="0 0 1604 1085" width="1604px" zoomAndPan="magnify"><defs><filter height="300%" id="f1miq1q8f5q9kf" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="756.875" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="159" x="721.875" y="47.6611">urtSubscriberSrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="804.375" y="68.6143"/><path d="M10,72.8594 L10,324.9844 A0,0 0 0 0 10,324.9844 L548,324.9844 A0,0 0 0 0 548,324.9844 L548,202.9219 L568,198.9219 L548,194.9219 L548,82.8594 L538,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#f1miq1q8f5q9kf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M538,72.8594 L538,82.8594 L548,82.8594 L538,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="155" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="159" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="159" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="247" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="403" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="403" x2="548" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="298" x="16" y="105.0591">The subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="195" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="199" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="199" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="247" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="363" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="363" x2="548" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="16" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="175" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="179" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="179" y="180.2231">messages</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="251" y="180.2231">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="383" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="383" x2="548" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="303" x="16" y="195.856">List of messages to be contributed to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="373" x="16" y="210.9888">Those messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="517" x="16" y="226.1216">Once a message was contributed, it cannot be removed from the topic anymore.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="119" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="123" y="240.7544"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="96" x="123" y="240.7544">usefulnesscb</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="227" y="240.7544">: urt_srtusefulnessfunc_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="439" y="240.7544"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="439" x2="548" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="374" x="16" y="256.3872">Pointer to a function to calculate usefulness of a message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="271.52">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="271.52">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="271.52">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="211" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="215" y="286.1528"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="215" y="286.1528">cbparams</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="287" y="286.1528">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="347" y="286.1528"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="347" x2="548" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="309" x="16" y="301.7856">Optional parameters for the usefulness callback.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="16" y="316.9185">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="66" y="316.9185">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="102" y="316.9185">if the callback expects no parameters.</text><ellipse cx="578" cy="198.9219" fill="#000000" filter="url(#f1miq1q8f5q9kf)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" points="520.5,344.9844,635.5,344.9844,647.5,356.9844,635.5,368.9844,520.5,368.9844,508.5,356.9844,520.5,344.9844" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="520.5" y="360.7925">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="488.5" y="354.3901">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="647.5" y="354.3901">no</text><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="108.75" y="378.9844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="118.75" y="400.123">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="161.75" y="400.123">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f1miq1q8f5q9kf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="231" x="844.25" y="378.9844"/><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="858.25" y="404.9844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="80" x="868.25" y="426.123">set SRT data</text><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="986.25" y="404.9844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="996.25" y="426.123">set topic</text><rect fill="#000000" filter="url(#f1miq1q8f5q9kf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="231" x="844.25" y="458.9531"/><rect fill="#000000" filter="url(#f1miq1q8f5q9kf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="303.75" y="484.9531"/><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="797.25" y="510.9531"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="807.25" y="532.0918">lock topic</text><rect fill="#000000" filter="url(#f1miq1q8f5q9kf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="317.75" y="564.9219"/><rect fill="#FFFFFF" filter="url(#f1miq1q8f5q9kf)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="638" x="341.75" y="637.4341"/><path d="M498.75,638.4341 L498.75,646.731 L488.75,656.731 L341.75,656.731 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="344.75" y="651.4292">contribute messages</text><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="423.75" y="673.731"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="433.75" y="694.8696">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="351.75" y="742.6997"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="361.75" y="763.8384">set next pointer of last message to contribute to the message after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" points="590.75,590.9219,730.75,590.9219,742.75,602.9219,730.75,614.9219,590.75,614.9219,578.75,602.9219,590.75,590.9219" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="664.75" y="625.1323">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="590.75" y="606.73">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="742.75" y="600.3276">no</text><polygon fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" points="660.75,808.6685,672.75,820.6685,660.75,832.6685,648.75,820.6685,660.75,808.6685" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1029.75" y="700.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1039.75" y="721.2056">set message pointer to topic's latest message</text><rect fill="#000000" filter="url(#f1miq1q8f5q9kf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="317.75" y="852.6685"/><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="789.25" y="878.6685"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="799.25" y="899.8071">unlock topic</text><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1364.75" y="700.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1374.75" y="721.2056">register to topic's event source</text><rect fill="#000000" filter="url(#f1miq1q8f5q9kf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="303.75" y="932.6372"/><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="882.75" y="958.6372"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="892.75" y="979.7759">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="935.75" y="979.7759">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" points="578,998.606,590,1010.606,578,1022.606,566,1010.606,578,998.606" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M19,1033.4731 L19,1073.7388 A0,0 0 0 0 19,1073.7388 L547,1073.7388 A0,0 0 0 0 547,1073.7388 L547,1057.606 L567,1053.606 L547,1049.606 L547,1043.4731 L537,1033.4731 L19,1033.4731 A0,0 0 0 0 19,1033.4731 " fill="#FBFB77" filter="url(#f1miq1q8f5q9kf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M537,1033.4731 L537,1043.4731 L547,1043.4731 L537,1033.4731 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="206.5" y1="1046.0396" y2="1046.0396"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="210.5" y="1050.04"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="210.5" y="1050.04">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="259.5" y="1050.04"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="259.5" y="1050.04">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="359.5" y="1050.04"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="359.5" x2="547" y1="1046.0396" y2="1046.0396"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="25" y="1065.6729">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="78" y="1065.6729">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="210" y="1065.6729">if the subscriber was already associated to a topic.</text><ellipse cx="578" cy="1053.606" fill="#FFFFFF" filter="url(#f1miq1q8f5q9kf)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="578" cy="1053.606" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="908.25" x2="908.25" y1="384.9844" y2="404.9844"/><polygon fill="#A80036" points="904.25,394.9844,908.25,404.9844,912.25,394.9844,908.25,398.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1023.75" x2="1023.75" y1="384.9844" y2="404.9844"/><polygon fill="#A80036" points="1019.75,394.9844,1023.75,404.9844,1027.75,394.9844,1023.75,398.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="908.25" x2="908.25" y1="438.9531" y2="458.9531"/><polygon fill="#A80036" points="904.25,448.9531,908.25,458.9531,912.25,448.9531,908.25,452.9531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1023.75" x2="1023.75" y1="438.9531" y2="458.9531"/><polygon fill="#A80036" points="1019.75,448.9531,1023.75,458.9531,1027.75,448.9531,1023.75,452.9531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="707.6997" y2="742.6997"/><polygon fill="#A80036" points="656.75,732.6997,660.75,742.6997,664.75,732.6997,660.75,736.6997" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="614.9219" y2="673.731"/><polygon fill="#A80036" points="656.75,663.731,660.75,673.731,664.75,663.731,660.75,667.731" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="742.75" x2="989.75" y1="602.9219" y2="602.9219"/><polygon fill="#A80036" points="985.75,707.0513,989.75,717.0513,993.75,707.0513,989.75,711.0513" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="989.75" x2="989.75" y1="602.9219" y2="820.6685"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="989.75" x2="672.75" y1="820.6685" y2="820.6685"/><polygon fill="#A80036" points="682.75,816.6685,672.75,820.6685,682.75,824.6685,678.75,820.6685" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="776.6685" y2="808.6685"/><polygon fill="#A80036" points="656.75,798.6685,660.75,808.6685,664.75,798.6685,660.75,802.6685" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="570.9219" y2="590.9219"/><polygon fill="#A80036" points="656.75,580.9219,660.75,590.9219,664.75,580.9219,660.75,584.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186.25" x2="1186.25" y1="570.9219" y2="700.0669"/><polygon fill="#A80036" points="1182.25,690.0669,1186.25,700.0669,1190.25,690.0669,1186.25,694.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="832.6685" y2="852.6685"/><polygon fill="#A80036" points="656.75,842.6685,660.75,852.6685,664.75,842.6685,660.75,846.6685" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186.25" x2="1186.25" y1="734.0356" y2="852.6685"/><polygon fill="#A80036" points="1182.25,842.6685,1186.25,852.6685,1190.25,842.6685,1186.25,846.6685" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="544.9219" y2="564.9219"/><polygon fill="#A80036" points="833.25,554.9219,837.25,564.9219,841.25,554.9219,837.25,558.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="858.6685" y2="878.6685"/><polygon fill="#A80036" points="833.25,868.6685,837.25,878.6685,841.25,868.6685,837.25,872.6685" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="490.9531" y2="510.9531"/><polygon fill="#A80036" points="833.25,500.9531,837.25,510.9531,841.25,500.9531,837.25,504.9531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1473.25" x2="1473.25" y1="490.9531" y2="700.0669"/><polygon fill="#A80036" points="1469.25,690.0669,1473.25,700.0669,1477.25,690.0669,1473.25,694.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="912.6372" y2="932.6372"/><polygon fill="#A80036" points="833.25,922.6372,837.25,932.6372,841.25,922.6372,837.25,926.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1473.25" x2="1473.25" y1="734.0356" y2="932.6372"/><polygon fill="#A80036" points="1469.25,922.6372,1473.25,932.6372,1477.25,922.6372,1473.25,926.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="464.9531" y2="484.9531"/><polygon fill="#A80036" points="955.75,474.9531,959.75,484.9531,963.75,474.9531,959.75,478.9531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="938.6372" y2="958.6372"/><polygon fill="#A80036" points="955.75,948.6372,959.75,958.6372,963.75,948.6372,959.75,952.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="508.5" x2="196.25" y1="356.9844" y2="356.9844"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="196.25" x2="196.25" y1="356.9844" y2="378.9844"/><polygon fill="#A80036" points="192.25,368.9844,196.25,378.9844,200.25,368.9844,196.25,372.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="647.5" x2="959.75" y1="356.9844" y2="356.9844"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="356.9844" y2="378.9844"/><polygon fill="#A80036" points="955.75,368.9844,959.75,378.9844,963.75,368.9844,959.75,372.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="196.25" x2="196.25" y1="412.9531" y2="1010.606"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="196.25" x2="566" y1="1010.606" y2="1010.606"/><polygon fill="#A80036" points="556,1006.606,566,1010.606,556,1014.606,560,1010.606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="992.606" y2="1010.606"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="590" y1="1010.606" y2="1010.606"/><polygon fill="#A80036" points="600,1006.606,590,1010.606,600,1014.606,596,1010.606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="578" y1="208.9219" y2="344.9844"/><polygon fill="#A80036" points="574,334.9844,578,344.9844,582,334.9844,578,338.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="578" y1="1022.606" y2="1042.606"/><polygon fill="#A80036" points="574,1032.606,578,1042.606,582,1032.606,578,1036.606" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[3006daf8e172fefe467b3d1c67bc119c]
-@startuml
-
-title **µRtWare**\nurtSubscriberSrt()\n
-
-
-
-
-
-
-
-
-
-
-
-
-start
-note
-  - - ""**subscriber** : urt_subscriber_t*"" - -
-  The subscriber which shall subscribe to a topic.
-  Must not be ""NULL"".
-  - - ""**topic** : urt_topic_t*"" - -
-  The topic to subscribe to.
-  Must not be ""NULL"".
-  - - ""**messages** : urt_message_t*"" - -
-  List of messages to be contributed to the topic.
-  Those messages must not be associated to another topic.
-  Once a message was contributed, it cannot be removed from the topic anymore.
-  - - ""**usefulnesscb** : urt_srtusefulnessfunc_t*"" - -
-  Pointer to a function to calculate usefulness of a message.
-  Must not be ""NULL"".
-  - - ""**cbparams** : void*"" - -
-  Optional parameters for the usefulness callback.
-  May be ""NULL"" if the callback expects no parameters.
-end note
-
-
-if (Is topic already set?) then (yes)
-  :return ""URT_STATUS_ERROR"";
-else (no)
-  fork
-    :set SRT data;
-  fork again
-    :set topic;
-  endfork
-  fork
-    :lock topic;
-    fork
-      if (Messages to contribute?) then (yes)
-        partition "contribute messages" {
-          :set next pointer of topic's latest message to first message to contribute;
-          :set next pointer of last message to contribute to the message after the topic's latest message;
-        }
-      else (no)
-      endif
-    fork again
-      :set message pointer to topic's latest message;
-    endfork
-    :unlock topic;
-  fork again
-    :register to topic's event source;
-  endfork
-  :return ""URT_STATUS_OK"";
-endif
-
-
-stop
-note
-  - - **return** ""urt_status_t"" - -
-  Returns ""URT_STATUS_ERROR"" if the subscriber was already associated to a topic.
-end note
-
-
-@enduml
-
-PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
-Operating System: Linux
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeSrt.uml b/doc/activitydiagrams/subscriber/urtSubscriberSubscribeSrt.uml
deleted file mode 100644
index 5bf02f5..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberSubscribeSrt.uml
+++ /dev/null
@@ -1,92 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2020  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-/'### INTRO ##################################################################'/
-
-@startuml
-
-title **µRtWare**\nurtSubscriberSrt()\n
-
-!include ../../functions.iuml
-
-/'### PARAMETERS & START #####################################################'/
-
-start
-note
-  -- ""**subscriber** : urt_subscriber_t*"" --
-  The subscriber which shall subscribe to a topic.
-  Must not be ""NULL"".
-  -- ""**topic** : urt_topic_t*"" --
-  The topic to subscribe to.
-  Must not be ""NULL"".
-  -- ""**messages** : urt_message_t*"" --
-  List of messages to be contributed to the topic.
-  Those messages must not be associated to another topic.
-  Once a message was contributed, it cannot be removed from the topic anymore.
-  -- ""**usefulnesscb** : urt_srtusefulnessfunc_t*"" --
-  Pointer to a function to calculate usefulness of a message.
-  Must not be ""NULL"".
-  -- ""**cbparams** : void*"" --
-  Optional parameters for the usefulness callback.
-  May be ""NULL"" if the callback expects no parameters.
-end note
-
-/'### PROCEDURE ##############################################################'/
-
-if (Is topic already set?) then (yes)
-  :return ""URT_STATUS_ERROR"";
-else (no)
-  fork
-    :set SRT data;
-  fork again
-    :set topic;
-  endfork
-  fork
-    :lock topic;
-    fork
-      if (Messages to contribute?) then (yes)
-        partition "contribute messages" {
-          :set next pointer of topic's latest message to first message to contribute;
-          :set next pointer of last message to contribute to the message after the topic's latest message;
-        }
-      else (no)
-      endif
-    fork again
-      :set message pointer to topic's latest message;
-    endfork
-    :unlock topic;
-  fork again
-    :register to topic's event source;
-  endfork
-  :return ""URT_STATUS_OK"";
-endif
-
-/'### STOP & RETURN ##########################################################'/
-
-stop
-note
-  -- **return** ""urt_status_t"" --
-  Returns ""URT_STATUS_ERROR"" if the subscriber was already associated to a topic.
-end note
-
-/'### OUTRO ##################################################################'/
-
-@enduml
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberUnsubscribe.svg b/doc/activitydiagrams/subscriber/urtSubscriberUnsubscribe.svg
deleted file mode 100644
index 74b456a..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberUnsubscribe.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="891px" preserveAspectRatio="none" style="width:1657px;height:891px;" version="1.1" viewBox="0 0 1657 891" width="1657px" zoomAndPan="magnify"><defs><filter height="300%" id="fccm23bhyk6p9" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="783" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="240" x="707.5" y="47.6611">urtSubscriberUnsubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="830.5" y="68.6143"/><path d="M1002.75,72.8594 L1002.75,128.2578 A0,0 0 0 0 1002.75,128.2578 L1271.75,128.2578 A0,0 0 0 0 1271.75,128.2578 L1271.75,104.5586 L1291.75,100.5586 L1271.75,96.5586 L1271.75,82.8594 L1261.75,72.8594 L1002.75,72.8594 A0,0 0 0 0 1002.75,72.8594 " fill="#FBFB77" filter="url(#fccm23bhyk6p9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1261.75,72.8594 L1261.75,82.8594 L1271.75,82.8594 L1261.75,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1002.75" x2="1013.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1017.25" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="1017.25" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="1105.25" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1261.25" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1261.25" x2="1271.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="223" x="1008.75" y="105.0591">The subscriber to be unsubscribed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1008.75" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1088.75" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1120.75" y="120.1919">.</text><ellipse cx="1301.75" cy="100.5586" fill="#000000" filter="url(#fccm23bhyk6p9)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fccm23bhyk6p9)" points="1239.25,148.2578,1364.25,148.2578,1376.25,160.2578,1364.25,172.2578,1239.25,172.2578,1227.25,160.2578,1239.25,148.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1239.25" y="164.0659">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1207.25" y="157.6636">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1376.25" y="157.6636">no</text><polygon fill="#FEFECE" filter="url(#fccm23bhyk6p9)" points="971.5,182.2578,1078.5,182.2578,1090.5,194.2578,1078.5,206.2578,971.5,206.2578,959.5,194.2578,971.5,182.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="971.5" y="198.0659">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="939.5" y="191.6636">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1090.5" y="191.6636">no</text><rect fill="#FEFECE" filter="url(#fccm23bhyk6p9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="616" y="216.2578"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="626" y="237.3965">lock topic</text><rect fill="#000000" filter="url(#fccm23bhyk6p9)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1307" x="10" y="270.2266"/><path d="M22,425.9336 L22,451.0664 A0,0 0 0 0 22,451.0664 L323,451.0664 A0,0 0 0 0 323,451.0664 L323,443.9336 L343,438.5 L323,435.9336 L323,435.9336 L313,425.9336 L22,425.9336 A0,0 0 0 0 22,425.9336 " fill="#FBFB77" filter="url(#fccm23bhyk6p9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M313,425.9336 L313,435.9336 L323,435.9336 L313,425.9336 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="280" x="28" y="443.0005">Must be within lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#fccm23bhyk6p9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="343" y="421.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="353" y="442.6543">unregister event</text><rect fill="#FEFECE" filter="url(#fccm23bhyk6p9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="214" x="477" y="421.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="194" x="487" y="442.6543">decrement topic's HRT counter</text><rect fill="#FEFECE" filter="url(#fccm23bhyk6p9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="312" x="714" y="338.6289"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="292" x="724" y="359.7676">remove self from topic's list of HRT subscribers</text><rect fill="#FEFECE" filter="url(#fccm23bhyk6p9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="218" x="761" y="456"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="198" x="771" y="477.1387">update QoS rate timer (@topic)</text><polygon fill="#FEFECE" filter="url(#fccm23bhyk6p9)" points="786,407.5977,954,407.5977,966,419.5977,954,431.5977,786,431.5977,774,419.5977,786,407.5977" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="874" y="441.8081">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="786" y="423.4058">Was most critical subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="966" y="417.0034">no</text><polygon fill="#FEFECE" filter="url(#fccm23bhyk6p9)" points="870,514.3711,882,526.3711,870,538.3711,858,526.3711,870,514.3711" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fccm23bhyk6p9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="1088" y="357.0313"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="1098" y="378.1699">decrement HRT counter</text><polygon fill="#FEFECE" filter="url(#fccm23bhyk6p9)" points="1098,296.2266,1247,296.2266,1259,308.2266,1247,320.2266,1098,320.2266,1086,308.2266,1098,296.2266" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1176.5" y="330.437">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="1098" y="312.0347">Unfetched messages left?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1072" y="305.6323">no</text><rect fill="#FEFECE" filter="url(#fccm23bhyk6p9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1064" y="498.4023"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1074" y="519.541">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#fccm23bhyk6p9)" points="1069,450,1276,450,1288,462,1276,474,1069,474,1057,462,1069,450" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1176.5" y="484.2104">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="207" x="1069" y="465.8081">At least one HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1288" y="459.4058">no</text><polygon fill="#FEFECE" filter="url(#fccm23bhyk6p9)" points="1172.5,556.7734,1184.5,568.7734,1172.5,580.7734,1160.5,568.7734,1172.5,556.7734" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fccm23bhyk6p9)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1307" x="10" y="600.7734"/><rect fill="#FEFECE" filter="url(#fccm23bhyk6p9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="608" y="626.7734"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="618" y="647.9121">unlock topic</text><rect fill="#FEFECE" filter="url(#fccm23bhyk6p9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="1337" y="216.2578"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="1347" y="237.3965">unregister event</text><polygon fill="#FEFECE" filter="url(#fccm23bhyk6p9)" points="1025,666.7422,1037,678.7422,1025,690.7422,1013,678.7422,1025,666.7422" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fccm23bhyk6p9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="967.5" y="710.7422"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="977.5" y="731.8809">reset members</text><rect fill="#FEFECE" filter="url(#fccm23bhyk6p9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="948" y="764.7109"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="958" y="785.8496">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="1001" y="785.8496">URT_STATUS_OK</text><rect fill="#FEFECE" filter="url(#fccm23bhyk6p9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="1471" y="182.2578"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="1481" y="203.3965">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1524" y="203.3965">URT_STATUS_ERROR</text><polygon fill="#FEFECE" filter="url(#fccm23bhyk6p9)" points="1301.75,804.6797,1313.75,816.6797,1301.75,828.6797,1289.75,816.6797,1301.75,804.6797" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M753.75,839.5469 L753.75,879.8125 A0,0 0 0 0 753.75,879.8125 L1270.75,879.8125 A0,0 0 0 0 1270.75,879.8125 L1270.75,863.6797 L1290.75,859.6797 L1270.75,855.6797 L1270.75,849.5469 L1260.75,839.5469 L753.75,839.5469 A0,0 0 0 0 753.75,839.5469 " fill="#FBFB77" filter="url(#fccm23bhyk6p9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1260.75,839.5469 L1260.75,849.5469 L1270.75,849.5469 L1260.75,839.5469 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="753.75" x2="935.75" y1="852.1133" y2="852.1133"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="939.75" y="856.1138"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="939.75" y="856.1138">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="988.75" y="856.1138"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="988.75" y="856.1138">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1088.75" y="856.1138"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1088.75" x2="1270.75" y1="852.1133" y2="852.1133"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="759.75" y="871.7466">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="812.75" y="871.7466">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="311" x="944.75" y="871.7466">if the subscriber was not associated to any topic.</text><ellipse cx="1301.75" cy="859.6797" fill="#FFFFFF" filter="url(#fccm23bhyk6p9)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1301.75" cy="859.6797" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="870" x2="870" y1="431.5977" y2="456"/><polygon fill="#A80036" points="866,446,870,456,874,446,870,450" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="966" x2="989" y1="419.5977" y2="419.5977"/><polygon fill="#A80036" points="985,462.9844,989,472.9844,993,462.9844,989,466.9844" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="989" x2="989" y1="419.5977" y2="526.3711"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="989" x2="882" y1="526.3711" y2="526.3711"/><polygon fill="#A80036" points="892,522.3711,882,526.3711,892,530.3711,888,526.3711" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="870" x2="870" y1="489.9688" y2="514.3711"/><polygon fill="#A80036" points="866,504.3711,870,514.3711,874,504.3711,870,508.3711" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="870" x2="870" y1="372.5977" y2="407.5977"/><polygon fill="#A80036" points="866,397.5977,870,407.5977,874,397.5977,870,401.5977" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="320.2266" y2="357.0313"/><polygon fill="#A80036" points="1168.5,347.0313,1172.5,357.0313,1176.5,347.0313,1172.5,351.0313" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="391" y2="403"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1271" y1="403" y2="403"/><polygon fill="#A80036" points="1267,365.6133,1271,355.6133,1275,365.6133,1271,361.6133" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1271" x2="1271" y1="308.2266" y2="403"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1271" x2="1259" y1="308.2266" y2="308.2266"/><polygon fill="#A80036" points="1269,304.2266,1259,308.2266,1269,312.2266,1265,308.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1086" x2="1074" y1="308.2266" y2="308.2266"/><polygon fill="#A80036" points="1070,351.6133,1074,361.6133,1078,351.6133,1074,355.6133" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1074" x2="1074" y1="308.2266" y2="415"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1074" x2="1172.5" y1="415" y2="415"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="415" y2="450"/><polygon fill="#A80036" points="1168.5,440,1172.5,450,1176.5,440,1172.5,444" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="474" y2="498.4023"/><polygon fill="#A80036" points="1168.5,488.4023,1172.5,498.4023,1176.5,488.4023,1172.5,492.4023" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1288" x2="1300" y1="462" y2="462"/><polygon fill="#A80036" points="1296,505.3867,1300,515.3867,1304,505.3867,1300,509.3867" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1300" y1="462" y2="568.7734"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1184.5" y1="568.7734" y2="568.7734"/><polygon fill="#A80036" points="1194.5,564.7734,1184.5,568.7734,1194.5,572.7734,1190.5,568.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="532.3711" y2="556.7734"/><polygon fill="#A80036" points="1168.5,546.7734,1172.5,556.7734,1176.5,546.7734,1172.5,550.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="276.2266" y2="421.5156"/><polygon fill="#A80036" points="401,411.5156,405,421.5156,409,411.5156,405,415.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="584" x2="584" y1="276.2266" y2="421.5156"/><polygon fill="#A80036" points="580,411.5156,584,421.5156,588,411.5156,584,415.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="870" x2="870" y1="276.2266" y2="338.6289"/><polygon fill="#A80036" points="866,328.6289,870,338.6289,874,328.6289,870,332.6289" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="276.2266" y2="296.2266"/><polygon fill="#A80036" points="1168.5,286.2266,1172.5,296.2266,1176.5,286.2266,1172.5,290.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="455.4844" y2="600.7734"/><polygon fill="#A80036" points="401,590.7734,405,600.7734,409,590.7734,405,594.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="584" x2="584" y1="455.4844" y2="600.7734"/><polygon fill="#A80036" points="580,590.7734,584,600.7734,588,590.7734,584,594.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="870" x2="870" y1="538.3711" y2="600.7734"/><polygon fill="#A80036" points="866,590.7734,870,600.7734,874,590.7734,870,594.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="580.7734" y2="600.7734"/><polygon fill="#A80036" points="1168.5,590.7734,1172.5,600.7734,1176.5,590.7734,1172.5,594.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656" x2="656" y1="250.2266" y2="270.2266"/><polygon fill="#A80036" points="652,260.2266,656,270.2266,660,260.2266,656,264.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656" x2="656" y1="606.7734" y2="626.7734"/><polygon fill="#A80036" points="652,616.7734,656,626.7734,660,616.7734,656,620.7734" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.5" x2="656" y1="194.2578" y2="194.2578"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656" x2="656" y1="194.2578" y2="216.2578"/><polygon fill="#A80036" points="652,206.2578,656,216.2578,660,206.2578,656,210.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1090.5" x2="1399" y1="194.2578" y2="194.2578"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1399" x2="1399" y1="194.2578" y2="216.2578"/><polygon fill="#A80036" points="1395,206.2578,1399,216.2578,1403,206.2578,1399,210.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656" x2="656" y1="660.7422" y2="678.7422"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656" x2="1013" y1="678.7422" y2="678.7422"/><polygon fill="#A80036" points="1003,674.7422,1013,678.7422,1003,682.7422,1007,678.7422" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1399" x2="1399" y1="250.2266" y2="678.7422"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1399" x2="1037" y1="678.7422" y2="678.7422"/><polygon fill="#A80036" points="1047,674.7422,1037,678.7422,1047,682.7422,1043,678.7422" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1025" x2="1025" y1="690.7422" y2="710.7422"/><polygon fill="#A80036" points="1021,700.7422,1025,710.7422,1029,700.7422,1025,704.7422" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1025" x2="1025" y1="744.7109" y2="764.7109"/><polygon fill="#A80036" points="1021,754.7109,1025,764.7109,1029,754.7109,1025,758.7109" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1227.25" x2="1025" y1="160.2578" y2="160.2578"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1025" x2="1025" y1="160.2578" y2="182.2578"/><polygon fill="#A80036" points="1021,172.2578,1025,182.2578,1029,172.2578,1025,176.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1376.25" x2="1558.5" y1="160.2578" y2="160.2578"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1558.5" x2="1558.5" y1="160.2578" y2="182.2578"/><polygon fill="#A80036" points="1554.5,172.2578,1558.5,182.2578,1562.5,172.2578,1558.5,176.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1025" x2="1025" y1="798.6797" y2="816.6797"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1025" x2="1289.75" y1="816.6797" y2="816.6797"/><polygon fill="#A80036" points="1279.75,812.6797,1289.75,816.6797,1279.75,820.6797,1283.75,816.6797" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1558.5" x2="1558.5" y1="216.2266" y2="816.6797"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1558.5" x2="1313.75" y1="816.6797" y2="816.6797"/><polygon fill="#A80036" points="1323.75,812.6797,1313.75,816.6797,1323.75,820.6797,1319.75,816.6797" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1301.75" x2="1301.75" y1="110.5586" y2="148.2578"/><polygon fill="#A80036" points="1297.75,138.2578,1301.75,148.2578,1305.75,138.2578,1301.75,142.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1301.75" x2="1301.75" y1="828.6797" y2="848.6797"/><polygon fill="#A80036" points="1297.75,838.6797,1301.75,848.6797,1305.75,838.6797,1301.75,842.6797" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8a07dd42e72916e7bc5513d69a8ac196]
-@startuml
-
-title **µRtWare**\nurtSubscriberUnsubscribe()\n
-
-
-
-
-
-
-
-
-
-
-
-
-start
-note
-  - - ""**subscriber** : urt_subscriber_t*"" - -
-  The subscriber to be unsubscribed.
-  Must not be ""NULL"".
-end note
-
-
-if (Associated to a topic?) then (yes)
-  if (Is HRT subscriber?) then (yes)
-    :lock topic;
-    fork
-      :unregister event;
-      note: Must be within lock because of HRT counter.
-    fork again
-      :decrement topic's HRT counter;
-    fork again
-      :remove self from topic's list of HRT subscribers;
-      if (Was most critical subscriber?) then (yes)
-        :update QoS rate timer (@topic);
-      else (no)
-      endif
-    fork again
-      while (Unfetched messages left?) is (yes)
-        :decrement HRT counter;
-      endwhile (no)
-      if (At least one HRT counter became 0?) then (yes)
-        :signal topic's condition variable;
-      else (no)
-      endif
-    endfork
-    :unlock topic;
-  else (no)
-    :unregister event;
-  endif
-  :reset members;
-  :return ""URT_STATUS_OK"";
-else (no)
-  :return ""URT_STATUS_ERROR"";
-endif
-
-
-stop
-note
-  - - **return** ""urt_status_t"" - -
-  Returns ""URT_STATUS_ERROR"" if the subscriber was not associated to any topic.
-end note
-
-
-@enduml
-
-PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
-Operating System: Linux
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/activitydiagrams/subscriber/urtSubscriberUnsubscribe.uml b/doc/activitydiagrams/subscriber/urtSubscriberUnsubscribe.uml
deleted file mode 100644
index b3d9fdb..0000000
--- a/doc/activitydiagrams/subscriber/urtSubscriberUnsubscribe.uml
+++ /dev/null
@@ -1,84 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2020  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-/'### INTRO ##################################################################'/
-
-@startuml
-
-title **µRtWare**\nurtSubscriberUnsubscribe()\n
-
-!include ../../functions.iuml
-
-/'### PARAMETERS & START #####################################################'/
-
-start
-note
-  -- ""**subscriber** : urt_subscriber_t*"" --
-  The subscriber to be unsubscribed.
-  Must not be ""NULL"".
-end note
-
-/'### PROCEDURE ##############################################################'/
-
-if (Associated to a topic?) then (yes)
-  if (Is HRT subscriber?) then (yes)
-    :lock topic;
-    fork
-      :unregister event;
-      note: Must be within lock because of HRT counter.
-    fork again
-      :decrement topic's HRT counter;
-    fork again
-      :remove self from topic's list of HRT subscribers;
-      if (Was most critical subscriber?) then (yes)
-        :update QoS rate timer (@topic);
-      else (no)
-      endif
-    fork again
-      while (Unfetched messages left?) is (yes)
-        :decrement HRT counter;
-      endwhile (no)
-      if (At least one HRT counter became 0?) then (yes)
-        :signal topic's condition variable;
-      else (no)
-      endif
-    endfork
-    :unlock topic;
-  else (no)
-    :unregister event;
-  endif
-  :reset members;
-  :return ""URT_STATUS_OK"";
-else (no)
-  :return ""URT_STATUS_ERROR"";
-endif
-
-/'### STOP & RETURN ##########################################################'/
-
-stop
-note
-  -- **return** ""urt_status_t"" --
-  Returns ""URT_STATUS_ERROR"" if the subscriber was not associated to any topic.
-end note
-
-/'### OUTRO ##################################################################'/
-
-@enduml
diff --git a/doc/activitydiagrams/topic/urtTopicInit.svg b/doc/activitydiagrams/topic/urtTopicInit.svg
index c3f0969..9fb1efa 100644
--- a/doc/activitydiagrams/topic/urtTopicInit.svg
+++ b/doc/activitydiagrams/topic/urtTopicInit.svg
@@ -1,40 +1,66 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="437px" preserveAspectRatio="none" style="width:702px;height:437px;" version="1.1" viewBox="0 0 702 437" width="702px" zoomAndPan="magnify"><defs><filter height="300%" id="f1rfgzv3aiz2lu" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="305.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="117" x="291.5" y="47.6611">urtTopicInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="353" y="68.6143"/><path d="M297,72.8594 L297,158.5234 A0,0 0 0 0 297,158.5234 L562,158.5234 A0,0 0 0 0 562,158.5234 L562,119.6914 L582,115.6914 L562,111.6914 L562,82.8594 L552,72.8594 L297,72.8594 A0,0 0 0 0 297,72.8594 " fill="#FBFB77" filter="url(#f1rfgzv3aiz2lu)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M552,72.8594 L552,82.8594 L562,82.8594 L552,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="297" x2="345.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="349.5" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="349.5" y="89.4263">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="397.5" y="89.4263">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="513.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="513.5" x2="562" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="303" y="105.0591">The topic to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="303" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="383" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="415" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="297" x2="353.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="357.5" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="16" x="357.5" y="134.8247">id</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="381.5" y="134.8247">: urt_topicid_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="505.5" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="505.5" x2="562" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="303" y="150.4575">Unique, numeric identifier of the topic.</text><ellipse cx="592" cy="115.6914" fill="#000000" filter="url(#f1rfgzv3aiz2lu)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1rfgzv3aiz2lu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="526.5" y="178.5234"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="536.5" y="199.6621">initialize members</text><rect fill="#FEFECE" filter="url(#f1rfgzv3aiz2lu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="553.5" y="232.4922"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="563.5" y="253.6309">lock core</text><rect fill="#FEFECE" filter="url(#f1rfgzv3aiz2lu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="198" x="493" y="286.4609"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="178" x="503" y="307.5996">insert self to global topic list</text><rect fill="#FEFECE" filter="url(#f1rfgzv3aiz2lu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="545.5" y="340.4297"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="555.5" y="361.5684">unlock core</text><path d="M10,385.2656 L10,425.5313 A0,0 0 0 0 10,425.5313 L561,425.5313 A0,0 0 0 0 561,425.5313 L561,409.3984 L581,405.3984 L561,401.3984 L561,395.2656 L551,385.2656 L10,385.2656 A0,0 0 0 0 10,385.2656 " fill="#FBFB77" filter="url(#f1rfgzv3aiz2lu)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M551,385.2656 L551,395.2656 L561,395.2656 L551,385.2656 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="209" y1="397.832" y2="397.832"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="213" y="401.8325"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="213" y="401.8325">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="262" y="401.8325"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="262" y="401.8325">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="362" y="401.8325"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="362" x2="561" y1="397.832" y2="397.832"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="417.4653">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="69" y="417.4653">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="345" x="201" y="417.4653">if another topic with the same identifier already exists.</text><ellipse cx="592" cy="405.3984" fill="#FFFFFF" filter="url(#f1rfgzv3aiz2lu)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="592" cy="405.3984" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592" x2="592" y1="125.6914" y2="178.5234"/><polygon fill="#A80036" points="588,168.5234,592,178.5234,596,168.5234,592,172.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592" x2="592" y1="212.4922" y2="232.4922"/><polygon fill="#A80036" points="588,222.4922,592,232.4922,596,222.4922,592,226.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592" x2="592" y1="266.4609" y2="286.4609"/><polygon fill="#A80036" points="588,276.4609,592,286.4609,596,276.4609,592,280.4609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592" x2="592" y1="320.4297" y2="340.4297"/><polygon fill="#A80036" points="588,330.4297,592,340.4297,596,330.4297,592,334.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592" x2="592" y1="374.3984" y2="394.3984"/><polygon fill="#A80036" points="588,384.3984,592,394.3984,596,384.3984,592,388.3984" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[39b5d771579172087171e2a826b6cc04]
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="977px" preserveAspectRatio="none" style="width:999px;height:977px;" version="1.1" viewBox="0 0 999 977" width="999px" zoomAndPan="magnify"><defs><filter height="300%" id="f1xarfbp77gxeg" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="454.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="117" x="440.25" y="47.6611">urtTopicInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="501.75" y="68.6143"/><path d="M223.75,72.8594 L223.75,213.9219 L774.75,213.9219 L774.75,82.8594 L764.75,72.8594 L223.75,72.8594 " fill="#FBFB77" filter="url(#f1xarfbp77gxeg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M764.75,72.8594 L764.75,82.8594 L774.75,82.8594 L764.75,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="433.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="437.25" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="437.25" y="89.4263">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="478.25" y="89.4263">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="565.25" x2="774.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="229.75" y="105.0591">The topic to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="229.75" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="309.75" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="341.75" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="442.75" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="446.75" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="446.75" y="134.8247">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="87" x="464.75" y="134.8247">: urt_topicid_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="555.75" x2="774.75" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="229.75" y="150.4575">Unique, numeric identifier of the topic.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="774.75" y1="158.5234" y2="158.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="774.75" y1="160.5234" y2="160.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="428.25" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="432.25" y="175.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="432.25" y="175.0903">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="481.25" y="175.0903">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="570.25" x2="774.75" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="229.75" y="190.7231">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="282.75" y="190.7231">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="390.75" y="190.7231">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="229.75" y="205.856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="282.75" y="205.856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="345" x="414.75" y="205.856">if another topic with the same identifier already exists.</text><ellipse cx="499.25" cy="243.9219" fill="#000000" filter="url(#f1xarfbp77gxeg)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M80.75,263.9219 L80.75,485.7813 A0,0 0 0 0 80.75,485.7813 L413.75,485.7813 A0,0 0 0 0 413.75,485.7813 L413.75,378.8516 L433.75,374.8516 L413.75,370.8516 L413.75,273.9219 L403.75,263.9219 L80.75,263.9219 A0,0 0 0 0 80.75,263.9219 " fill="#FBFB77" filter="url(#f1xarfbp77gxeg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M403.75,263.9219 L403.75,273.9219 L413.75,273.9219 L403.75,263.9219 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="86.75" y="280.9888">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="122.75" y="280.9888">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="137.75" y="280.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="86.75" y="296.1216">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="104.75" y="296.1216">← id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="86.75" y="311.2544">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="167.75" y="311.2544">lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="197.75" y="311.2544">)</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="86.75" y="326.3872">urtEventSourceInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="73" x="209.75" y="326.3872">evtSource</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="282.75" y="326.3872">)</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="134" x="86.75" y="341.52">numHrtSubscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="224.75" y="341.52">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="108" x="86.75" y="356.6528">hrtSubscribers</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="198.75" y="356.6528">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="213.75" y="356.6528">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="86.75" y="371.7856">urtCondvarInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="181.75" y="371.7856">hrtReleased</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="270.75" y="371.7856">)</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="99" x="86.75" y="386.9185">urtMessageInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="146" x="185.75" y="386.9185">mandatoryMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="331.75" y="386.9185">)</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="108" x="86.75" y="402.0513">latestMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="153" x="198.75" y="402.0513">← &amp;mandatoryMessage</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="80.75" x2="91.25" y1="412.6836" y2="412.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="304" x="95.25" y="416.6841">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="403.25" x2="413.75" y1="412.6836" y2="412.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="78" x="86.75" y="432.3169">urtTimerInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="102" x="164.75" y="432.3169">qosRateTimer</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="266.75" y="432.3169">)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="80.75" x2="118.75" y1="442.9492" y2="442.9492"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="122.75" y="446.9497">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="375.75" x2="413.75" y1="442.9492" y2="442.9492"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="181" x="86.75" y="462.5825">numDiscardedMessages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="271.75" y="462.5825">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="119" x="86.75" y="477.7153">numSubscribers</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="209.75" y="477.7153">← 0</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="433.75" y="357.8672"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="443.75" y="379.0059">initialize members</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="460.75" y="505.7813"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="470.75" y="526.9199">lock core</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="435.75" y="559.75"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="107" x="445.75" y="580.8887">access first topic</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="421.75" y="671.0386"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="431.75" y="692.1772">proceed to next topic</text><polygon fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" points="438.25,613.7188,560.25,613.7188,572.25,626.5234,560.25,639.3281,438.25,639.3281,426.25,626.5234,438.25,613.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="503.25" y="649.5386">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="66" x="438.25" y="623.9292">Topic is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="508.25" y="623.9292">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="438.25" y="636.7339">and topic ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="412.25" y="623.9292">no</text><polygon fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" points="160,747.0073,286,747.0073,298,759.0073,286,771.0073,160,771.0073,148,759.0073,160,747.0073" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="781.2178">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="88" x="160" y="762.8154">Current topic is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="252" y="762.8154">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="280" y="762.8154">?</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="110" y="802.7178"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="206" x="120" y="823.8564">append self to core's list of topic</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="871.6865"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="892.8252">unlock core</text><path d="M10,940.6553 L10,965.7881 A0,0 0 0 0 10,965.7881 L192,965.7881 A0,0 0 0 0 192,965.7881 L192,958.6553 L212,953.2217 L192,950.6553 L192,950.6553 L182,940.6553 L10,940.6553 A0,0 0 0 0 10,940.6553 " fill="#FBFB77" filter="url(#f1xarfbp77gxeg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,940.6553 L182,950.6553 L192,950.6553 L182,940.6553 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="957.7222">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="957.7222">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="957.7222">.</text><ellipse cx="223" cy="953.2217" fill="#FFFFFF" filter="url(#f1xarfbp77gxeg)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="953.2217" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" points="491.5,747.0073,646.5,747.0073,658.5,759.0073,646.5,771.0073,491.5,771.0073,479.5,759.0073,491.5,747.0073" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="573" y="781.2178">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="155" x="491.5" y="762.8154">Current topic ID is greater?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="658.5" y="756.4131">no</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="232" x="453" y="802.7178"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="212" x="463" y="823.8564">insert self in front of current topic</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="522.5" y="871.6865"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="532.5" y="892.8252">unlock core</text><path d="M356,940.6553 L356,965.7881 A0,0 0 0 0 356,965.7881 L538,965.7881 A0,0 0 0 0 538,965.7881 L538,958.6553 L558,953.2217 L538,950.6553 L538,950.6553 L528,940.6553 L356,940.6553 A0,0 0 0 0 356,940.6553 " fill="#FBFB77" filter="url(#f1xarfbp77gxeg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M528,940.6553 L528,950.6553 L538,950.6553 L528,940.6553 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="362" y="957.7222">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="415" y="957.7222">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="519" y="957.7222">.</text><ellipse cx="569" cy="953.2217" fill="#FFFFFF" filter="url(#f1xarfbp77gxeg)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="569" cy="953.2217" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="895.5" y="833.7998"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="905.5" y="854.9385">unlock core</text><path d="M705,902.7686 L705,927.9014 A0,0 0 0 0 705,927.9014 L911,927.9014 A0,0 0 0 0 911,927.9014 L911,920.7686 L931,915.335 L911,912.7686 L911,912.7686 L901,902.7686 L705,902.7686 A0,0 0 0 0 705,902.7686 " fill="#FBFB77" filter="url(#f1xarfbp77gxeg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M901,902.7686 L901,912.7686 L911,912.7686 L901,902.7686 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="711" y="919.8354">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="764" y="919.8354">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="892" y="919.8354">.</text><ellipse cx="942" cy="915.335" fill="#FFFFFF" filter="url(#f1xarfbp77gxeg)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="942" cy="915.335" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="213.9219" y2="233.9219"/><polygon fill="#A80036" points="495.25,223.9219,499.25,233.9219,503.25,223.9219,499.25,227.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="253.9219" y2="357.8672"/><polygon fill="#A80036" points="495.25,347.8672,499.25,357.8672,503.25,347.8672,499.25,351.8672" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="391.8359" y2="505.7813"/><polygon fill="#A80036" points="495.25,495.7813,499.25,505.7813,503.25,495.7813,499.25,499.7813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="539.75" y2="559.75"/><polygon fill="#A80036" points="495.25,549.75,499.25,559.75,503.25,549.75,499.25,553.75" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="639.3281" y2="671.0386"/><polygon fill="#A80036" points="495.25,661.0386,499.25,671.0386,503.25,661.0386,499.25,665.0386" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="705.0073" y2="715.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="588.75" y1="715.0073" y2="715.0073"/><polygon fill="#A80036" points="584.75,679.2183,588.75,669.2183,592.75,679.2183,588.75,675.2183" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="588.75" x2="588.75" y1="626.5234" y2="715.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="588.75" x2="572.25" y1="626.5234" y2="626.5234"/><polygon fill="#A80036" points="582.25,622.5234,572.25,626.5234,582.25,630.5234,578.25,626.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="426.25" x2="409.75" y1="626.5234" y2="626.5234"/><polygon fill="#A80036" points="405.75,665.2183,409.75,675.2183,413.75,665.2183,409.75,669.2183" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.75" x2="409.75" y1="626.5234" y2="727.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.75" x2="499.25" y1="727.0073" y2="727.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="727.0073" y2="732.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="593.7188" y2="613.7188"/><polygon fill="#A80036" points="495.25,603.7188,499.25,613.7188,503.25,603.7188,499.25,607.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="836.6865" y2="871.6865"/><polygon fill="#A80036" points="219,861.6865,223,871.6865,227,861.6865,223,865.6865" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="905.6553" y2="942.2217"/><polygon fill="#A80036" points="219,932.2217,223,942.2217,227,932.2217,223,936.2217" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="569" x2="569" y1="836.6865" y2="871.6865"/><polygon fill="#A80036" points="565,861.6865,569,871.6865,573,861.6865,569,865.6865" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="569" x2="569" y1="905.6553" y2="942.2217"/><polygon fill="#A80036" points="565,932.2217,569,942.2217,573,932.2217,569,936.2217" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="942" x2="942" y1="867.7686" y2="904.335"/><polygon fill="#A80036" points="938,894.335,942,904.335,946,894.335,942,898.335" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="771.0073" y2="802.7178"/><polygon fill="#A80036" points="219,792.7178,223,802.7178,227,792.7178,223,796.7178" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="569" x2="569" y1="771.0073" y2="802.7178"/><polygon fill="#A80036" points="565,792.7178,569,802.7178,573,792.7178,569,796.7178" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="479.5" y1="759.0073" y2="759.0073"/><polygon fill="#A80036" points="469.5,755.0073,479.5,759.0073,469.5,763.0073,473.5,759.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="223" y1="732.0073" y2="732.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="732.0073" y2="747.0073"/><polygon fill="#A80036" points="219,737.0073,223,747.0073,227,737.0073,223,741.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="658.5" x2="942" y1="759.0073" y2="759.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="942" x2="942" y1="759.0073" y2="833.7998"/><polygon fill="#A80036" points="938,823.7998,942,833.7998,946,823.7998,942,827.7998" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9fa9be30da8e21a18991e544c89f1de4]
 @startuml
 
 title **µRtWare**\nurtTopicInit()\n
 
 
-
-
-
-
-
-
-
-
-
-
-start
 note
-  - - ""**topic** : urt_topic_t*"" - -
+  - - **topic** : urt_topic_t* - -
   The topic to initialize.
   Must not be ""NULL"".
-  - - ""**id** : urt_topicid_t"" - -
+  - - **id** : urt_topicid_t - -
   Unique, numeric identifier of the topic.
-end note
+  ====
+  - - **return** : urt_status_t - -
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if another topic with the same identifier already exists.
+endnote
 
 
+start
 :initialize members;
-:lock core;
-:insert self to global topic list;
-:unlock core;
-
-
-stop
 note
-  - - **return** ""urt_status_t"" - -
-  Returns ""URT_STATUS_ERROR"" if another topic with the same identifier already exists.
-end note
+  **next** ← ""NULL""
+  **id** ← id
+  urtMutexInit(**lock**)
+  urtEventSourceInit(**evtSource**)
+  **numHrtSubscriber** ← 0
+  **hrtSubscribers** ← ""NULL""
+  urtCondvarInit(**hrtReleased**)
+  urtMessageInit(**mandatoryMessage**)
+  **latestMessage** ← &mandatoryMessage
+  .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
+  urtTimerInit(**qosRateTimer**)
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **numDiscardedMessages** ← 0
+  **numSubscribers** ← 0
+endnote
+:lock core;
+:access first topic;
+while (Topic is not ""NULL""\nand topic ID is lower?) is (yes)
+  :proceed to next topic;
+endwhile (no)
+if (Current topic is ""NULL""?) then (yes)
+  :append self to core's list of topic;
+  :unlock core;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+elseif (Current topic ID is greater?) then (yes)
+  :insert self in front of current topic;
+  :unlock core;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  :unlock core;
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
 
 
 @enduml
diff --git a/doc/activitydiagrams/topic/urtTopicInit.uml b/doc/activitydiagrams/topic/urtTopicInit.uml
index 5977fab..871538e 100644
--- a/doc/activitydiagrams/topic/urtTopicInit.uml
+++ b/doc/activitydiagrams/topic/urtTopicInit.uml
@@ -25,33 +25,66 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 title **µRtWare**\nurtTopicInit()\n
 
-!include ../../functions.iuml
+/'### PARAMETERS & RETURN ####################################################'/
 
-/'### PARAMETERS & START #####################################################'/
-
-start
 note
-  -- ""**topic** : urt_topic_t*"" --
+  -- **topic** : urt_topic_t* --
   The topic to initialize.
   Must not be ""NULL"".
-  -- ""**id** : urt_topicid_t"" --
+  -- **id** : urt_topicid_t --
   Unique, numeric identifier of the topic.
-end note
+  ====
+  -- **return** : urt_status_t --
+  Returns ""URT_STATUS_OK"" on success.
+  Returns ""URT_STATUS_ERROR"" if another topic with the same identifier already exists.
+endnote
 
 /'### PROCEDURE ##############################################################'/
 
+start
 :initialize members;
-:lock core;
-:insert self to global topic list;
-:unlock core;
-
-/'### STOP & RETURN ##########################################################'/
-
-stop
 note
-  -- **return** ""urt_status_t"" --
-  Returns ""URT_STATUS_ERROR"" if another topic with the same identifier already exists.
-end note
+  **next** ← ""NULL""
+  **id** ← id
+  urtMutexInit(**lock**)
+  urtEventSourceInit(**evtSource**)
+  **numHrtSubscriber** ← 0
+  **hrtSubscribers** ← ""NULL""
+  urtCondvarInit(**hrtReleased**)
+  urtMessageInit(**mandatoryMessage**)
+  **latestMessage** ← &mandatoryMessage
+  .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
+  urtTimerInit(**qosRateTimer**)
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+  **numDiscardedMessages** ← 0
+  **numSubscribers** ← 0
+endnote
+:lock core;
+:access first topic;
+while (Topic is not ""NULL""\nand topic ID is lower?) is (yes)
+  :proceed to next topic;
+endwhile (no)
+if (Current topic is ""NULL""?) then (yes)
+  :append self to core's list of topic;
+  :unlock core;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+elseif (Current topic ID is greater?) then (yes)
+  :insert self in front of current topic;
+  :unlock core;
+  stop
+  note
+    Returns ""URT_STATUS_OK"".
+  endnote
+else (no)
+  :unlock core;
+  stop
+  note
+    Returns ""URT_STATUS_ERROR"".
+  endnote
+endif
 
 /'### OUTRO ##################################################################'/
 
diff --git a/doc/classdiagrams/overview.svg b/doc/classdiagrams/overview.svg
index abafdc0..4166fe1 100644
--- a/doc/classdiagrams/overview.svg
+++ b/doc/classdiagrams/overview.svg
@@ -1,161 +1,160 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="2192px" preserveAspectRatio="none" style="width:12249px;height:2192px;" version="1.1" viewBox="0 0 12249 2192" width="12249px" zoomAndPan="magnify"><defs><filter height="300%" id="fhythnghqj5dw" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="6065" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="87" x="6066" y="37.6611">Overview</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="6112.5" y="58.6143"/><!--MD5=[915f6a2b4bff9d90dc7327d570275f1b]
-cluster Configuration--><polygon fill="#FFFFFF" filter="url(#fhythnghqj5dw)" points="6808.7624,1767.8594,6818.7624,1757.8594,7114.7624,1757.8594,7114.7624,2017.8594,7104.7624,2027.8594,6808.7624,2027.8594,6808.7624,1767.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="7104.7624" x2="7113.7624" y1="1767.8594" y2="1758.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="6808.7624" x2="7104.7624" y1="1767.8594" y2="1767.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="7104.7624" x2="7104.7624" y1="1767.8594" y2="2027.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="107" x="6904.2624" y="1783.8545">Configuration</text><!--MD5=[1cb8ced355c85ab51f1ab55883ed8585]
-cluster Primitives--><polygon fill="#FFFFFF" filter="url(#fhythnghqj5dw)" points="5877.7624,1549.8594,5887.7624,1539.8594,7286.7624,1539.8594,7286.7624,1727.8594,7276.7624,1737.8594,5877.7624,1737.8594,5877.7624,1549.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="7276.7624" x2="7285.7624" y1="1549.8594" y2="1540.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="5877.7624" x2="7276.7624" y1="1549.8594" y2="1549.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="7276.7624" x2="7276.7624" y1="1549.8594" y2="1737.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="77" x="6539.7624" y="1565.8545">Primitives</text><!--MD5=[ba9da179b6f0b3bb0ea21772c5f4ec75]
-cluster OSAL--><polygon fill="#FFFFFF" filter="url(#fhythnghqj5dw)" points="452.7624,1124.8594,462.7624,1114.8594,5731.7624,1114.8594,5731.7624,1934.8594,5721.7624,1944.8594,452.7624,1944.8594,452.7624,1124.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="5721.7624" x2="5730.7624" y1="1124.8594" y2="1115.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="452.7624" x2="5721.7624" y1="1124.8594" y2="1124.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="5721.7624" x2="5721.7624" y1="1124.8594" y2="1944.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="42" x="3067.2624" y="1140.8545">OSAL</text><!--MD5=[2e45f233f6bb64aa81ebe67fb6de8946]
-cluster condition variable--><rect fill="#FFFFFF" filter="url(#fhythnghqj5dw)" height="435.5" style="stroke: #000000; stroke-width: 1.5;" width="726" x="4997.7624" y="1266.3594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="140" x="5290.7624" y="1281.3545">condition variable</text><!--MD5=[c7113df1f710ca294cbd01734aa00974]
-cluster timer--><rect fill="#FFFFFF" filter="url(#fhythnghqj5dw)" height="429.5" style="stroke: #000000; stroke-width: 1.5;" width="798" x="4180.7624" y="1259.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="4559.2624" y="1274.8545">timer</text><!--MD5=[107bb3f79455a18bd83c75ada1ac7979]
-cluster thread--><rect fill="#FFFFFF" filter="url(#fhythnghqj5dw)" height="587" style="stroke: #000000; stroke-width: 1.5;" width="1039" x="3133.7624" y="1146.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="3627.2624" y="1161.8545">thread</text><!--MD5=[8d74b40516bd265adb19f202ab81f40d]
-cluster events--><rect fill="#FFFFFF" filter="url(#fhythnghqj5dw)" height="664" style="stroke: #000000; stroke-width: 1.5;" width="1642" x="1472.7624" y="1272.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="54" x="2266.7624" y="1287.8545">events</text><!--MD5=[4e1a3510868d06a507f098bb08f0dae0]
-cluster Middleware--><polygon fill="#FFFFFF" filter="url(#fhythnghqj5dw)" points="7348.7624,88.8594,7358.7624,78.8594,12024.7624,78.8594,12024.7624,1711.3594,12014.7624,1721.3594,7348.7624,1721.3594,7348.7624,88.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="12014.7624" x2="12023.7624" y1="88.8594" y2="79.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="7348.7624" x2="12014.7624" y1="88.8594" y2="88.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="12014.7624" x2="12014.7624" y1="88.8594" y2="1721.3594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="91" x="9637.2624" y="104.8545">Middleware</text><!--MD5=[b9de0669a29c7bc934fd916b09c39491]
-cluster node--><rect fill="#FFFFFF" filter="url(#fhythnghqj5dw)" height="440.5" style="stroke: #000000; stroke-width: 1.5;" width="1138" x="10223.7624" y="474.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="10772.7624" y="489.8545">node</text><!--MD5=[d74e2ef346f73688f9378f6d3d42598c]
-cluster Publish-Subscribe System--><polygon fill="#FFFFFF" filter="url(#fhythnghqj5dw)" points="7356.7624,384.8594,7366.7624,374.8594,10215.7624,374.8594,10215.7624,1703.3594,10205.7624,1713.3594,7356.7624,1713.3594,7356.7624,384.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="10205.7624" x2="10214.7624" y1="384.8594" y2="375.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="7356.7624" x2="10205.7624" y1="384.8594" y2="384.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="10205.7624" x2="10205.7624" y1="384.8594" y2="1713.3594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="205" x="8679.7624" y="400.8545">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
-cluster subscriber--><rect fill="#FFFFFF" filter="url(#fhythnghqj5dw)" height="1298.5" style="stroke: #000000; stroke-width: 1.5;" width="1638" x="8569.7624" y="406.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="9346.2624" y="421.8545">subscriber</text><!--MD5=[94ad99421f5a0f525bc1c13a3777c25e]
-cluster real-time constraint data--><rect fill="#FFFFFF" filter="url(#fhythnghqj5dw)" height="884.5" style="stroke: #000000; stroke-width: 1.5;" width="1622" x="8577.7624" y="812.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="194" x="9291.7624" y="827.8545">real-time constraint data</text><!--MD5=[57c3116dbac3d3a2ea35fece1cdc00f4]
-cluster SRT data--><rect fill="#FFFFFF" filter="url(#fhythnghqj5dw)" height="410.5" style="stroke: #000000; stroke-width: 1.5;" width="390" x="9801.7624" y="1278.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="9962.2624" y="1293.8545">SRT data</text><!--MD5=[810d0f07e53ef611b6d803ef30301147]
-cluster Remote Procedure Call System--><polygon fill="#FFFFFF" filter="url(#fhythnghqj5dw)" points="11380.7624,456.8594,11390.7624,446.8594,12016.7624,446.8594,12016.7624,905.3594,12006.7624,915.3594,11380.7624,915.3594,11380.7624,456.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="12006.7624" x2="12015.7624" y1="456.8594" y2="447.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="11380.7624" x2="12006.7624" y1="456.8594" y2="456.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="12006.7624" x2="12006.7624" y1="456.8594" y2="915.3594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="244" x="11572.7624" y="472.8545">Remote Procedure Call System</text><!--MD5=[e443ac33c80100c2d54e1f5fe669f6d7]
-class urt_config--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="230.4609" id="urt_config" style="stroke: #A80036; stroke-width: 1.5;" width="290" x="6816.7624" y="1789.8594"/><ellipse cx="6926.5124" cy="1805.8594" fill="#BFBFBF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6929.4812,1811.5 Q6928.903,1811.7969 6928.2624,1811.9375 Q6927.6218,1812.0938 6926.9187,1812.0938 Q6924.4187,1812.0938 6923.0905,1810.4531 Q6921.778,1808.7969 6921.778,1805.6719 Q6921.778,1802.5469 6923.0905,1800.8906 Q6924.4187,1799.2344 6926.9187,1799.2344 Q6927.6218,1799.2344 6928.2624,1799.3906 Q6928.9187,1799.5469 6929.4812,1799.8438 L6929.4812,1802.5625 Q6928.8562,1801.9844 6928.2624,1801.7188 Q6927.6687,1801.4375 6927.0437,1801.4375 Q6925.6999,1801.4375 6925.0124,1802.5156 Q6924.3249,1803.5781 6924.3249,1805.6719 Q6924.3249,1807.7656 6925.0124,1808.8438 Q6925.6999,1809.9063 6927.0437,1809.9063 Q6927.6687,1809.9063 6928.2624,1809.6406 Q6928.8562,1809.3594 6929.4812,1808.7813 L6929.4812,1811.5 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="6947.0124" y="1810.0137">urt_config</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6817.7624" x2="7105.7624" y1="1821.8594" y2="1821.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="159" x="6822.7624" y="1836.0698">URT_CFG_DELAY_WIDTH : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="169" x="6822.7624" y="1848.8745">URT_CFG_TOPICID_WIDTH : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="182" x="6822.7624" y="1861.6792">URT_CFG_SERVICEID_WIDTH : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="6822.7624" y="1874.4839">URT_CFG_NODESTAGE_WIDTH : int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6817.7624" x2="7105.7624" y1="1881.0781" y2="1881.0781"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="6822.7624" y="1895.2886">URT_CFG_DEBUG_ENABLED : bool</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6817.7624" x2="7105.7624" y1="1901.8828" y2="1901.8828"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="6822.7624" y="1916.0933">URT_CFG_PUBSUB_ENABLED : bool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="204" x="6822.7624" y="1928.8979">URT_CFG_PUBSUB_PROFILING : bool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="278" x="6822.7624" y="1941.7026">URT_CFG_PUBSUB_QOS_DEADLINECHECKS : bool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="252" x="6822.7624" y="1954.5073">URT_CFG_PUBSUB_QOS_RATECHECKS : bool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="6822.7624" y="1967.312">URT_CFG_PUBSUB_QOS_JITTERCHECKS : bool</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6817.7624" x2="7105.7624" y1="1973.9063" y2="1973.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="172" x="6822.7624" y="1988.1167">URT_CFG_RPC_ENABLED : bool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="179" x="6822.7624" y="2000.9214">URT_CFG_RPC_PROFILING : bool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="233" x="6822.7624" y="2013.7261">URT_CFG_RPC_QOS_JITTERCHECKS : bool</text><!--MD5=[9f69b6f4e23017059189983d6906a1eb]
-class urt_nodestage_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="158.4375" id="urt_nodestage_t" style="stroke: #A80036; stroke-width: 1.5;" width="216" x="6608.7624" y="1571.8594"/><ellipse cx="6661.0124" cy="1587.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6661.8562,1594.6094 L6659.403,1594.6094 L6659.403,1584.3594 L6656.2624,1584.3594 L6656.2624,1582.2188 L6664.9968,1582.2188 L6664.9968,1584.3594 L6661.8562,1584.3594 L6661.8562,1594.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="103" x="6681.5124" y="1592.0137">urt_nodestage_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6609.7624" x2="6823.7624" y1="1603.8594" y2="1603.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="34" x="6614.7624" y="1634.8745">uin8_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6609.7624" x2="6616.2624" y1="1618.2617" y2="1618.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="201" x="6616.2624" y="1621.5698">URT_CFG_NODESTAGE_WIDTH == 8</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6817.2624" x2="6823.7624" y1="1618.2617" y2="1618.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="6614.7624" y="1664.4839">uint16_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6609.7624" x2="6612.7624" y1="1647.8711" y2="1647.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="208" x="6612.7624" y="1651.1792">URT_CFG_NODESTAGE_WIDTH == 16</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6820.7624" x2="6823.7624" y1="1647.8711" y2="1647.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="6614.7624" y="1694.0933">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6609.7624" x2="6612.7624" y1="1677.4805" y2="1677.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="208" x="6612.7624" y="1680.7886">URT_CFG_NODESTAGE_WIDTH == 32</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6820.7624" x2="6823.7624" y1="1677.4805" y2="1677.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="6614.7624" y="1723.7026">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6609.7624" x2="6612.7624" y1="1707.0898" y2="1707.0898"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="208" x="6612.7624" y="1710.3979">URT_CFG_NODESTAGE_WIDTH == 64</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6820.7624" x2="6823.7624" y1="1707.0898" y2="1707.0898"/><!--MD5=[a55671f9c3a4eb2d749fd774fc81a82b]
-class urt_topicid_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="158.4375" id="urt_topicid_t" style="stroke: #A80036; stroke-width: 1.5;" width="191" x="6166.2624" y="1571.8594"/><ellipse cx="6219.0124" cy="1587.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6219.8562,1594.6094 L6217.403,1594.6094 L6217.403,1584.3594 L6214.2624,1584.3594 L6214.2624,1582.2188 L6222.9968,1582.2188 L6222.9968,1584.3594 L6219.8562,1584.3594 L6219.8562,1594.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="6239.5124" y="1592.0137">urt_topicid_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6167.2624" x2="6356.2624" y1="1603.8594" y2="1603.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="34" x="6172.2624" y="1634.8745">uin8_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6167.2624" x2="6173.7624" y1="1618.2617" y2="1618.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="6173.7624" y="1621.5698">URT_CFG_TOPICID_WIDTH == 8</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6349.7624" x2="6356.2624" y1="1618.2617" y2="1618.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="6172.2624" y="1664.4839">uint16_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6167.2624" x2="6170.2624" y1="1647.8711" y2="1647.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="6170.2624" y="1651.1792">URT_CFG_TOPICID_WIDTH == 16</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6353.2624" x2="6356.2624" y1="1647.8711" y2="1647.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="6172.2624" y="1694.0933">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6167.2624" x2="6170.2624" y1="1677.4805" y2="1677.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="6170.2624" y="1680.7886">URT_CFG_TOPICID_WIDTH == 32</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6353.2624" x2="6356.2624" y1="1677.4805" y2="1677.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="6172.2624" y="1723.7026">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6167.2624" x2="6170.2624" y1="1707.0898" y2="1707.0898"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="6170.2624" y="1710.3979">URT_CFG_TOPICID_WIDTH == 64</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6353.2624" x2="6356.2624" y1="1707.0898" y2="1707.0898"/><!--MD5=[4d8326c7af3a397210cbde406c7c860c]
-class urt_serviceid_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="158.4375" id="urt_serviceid_t" style="stroke: #A80036; stroke-width: 1.5;" width="204" x="6859.7624" y="1571.8594"/><ellipse cx="6912.5124" cy="1587.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6913.3562,1594.6094 L6910.903,1594.6094 L6910.903,1584.3594 L6907.7624,1584.3594 L6907.7624,1582.2188 L6916.4968,1582.2188 L6916.4968,1584.3594 L6913.3562,1584.3594 L6913.3562,1594.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="6933.0124" y="1592.0137">urt_serviceid_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6860.7624" x2="7062.7624" y1="1603.8594" y2="1603.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="34" x="6865.7624" y="1634.8745">uin8_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6860.7624" x2="6867.2624" y1="1618.2617" y2="1618.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="6867.2624" y="1621.5698">URT_CFG_SERVICEID_WIDTH == 8</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7056.2624" x2="7062.7624" y1="1618.2617" y2="1618.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="6865.7624" y="1664.4839">uint16_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6860.7624" x2="6863.7624" y1="1647.8711" y2="1647.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="6863.7624" y="1651.1792">URT_CFG_SERVICEID_WIDTH == 16</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7059.7624" x2="7062.7624" y1="1647.8711" y2="1647.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="6865.7624" y="1694.0933">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6860.7624" x2="6863.7624" y1="1677.4805" y2="1677.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="6863.7624" y="1680.7886">URT_CFG_SERVICEID_WIDTH == 32</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7059.7624" x2="7062.7624" y1="1677.4805" y2="1677.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="6865.7624" y="1723.7026">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6860.7624" x2="6863.7624" y1="1707.0898" y2="1707.0898"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="6863.7624" y="1710.3979">URT_CFG_SERVICEID_WIDTH == 64</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7059.7624" x2="7062.7624" y1="1707.0898" y2="1707.0898"/><!--MD5=[e750dab3ce4ebe0433cc930181355272]
-class urt_status_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="73.6094" id="urt_status_t" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="7098.7624" y="1613.8594"/><ellipse cx="7147.0124" cy="1629.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7147.8562,1636.6094 L7145.403,1636.6094 L7145.403,1626.3594 L7142.2624,1626.3594 L7142.2624,1624.2188 L7150.9968,1624.2188 L7150.9968,1626.3594 L7147.8562,1626.3594 L7147.8562,1636.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="7167.5124" y="1634.0137">urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7099.7624" x2="7277.7624" y1="1645.8594" y2="1645.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="7104.7624" y="1660.0698">URT_STATUS_OK = 0x0..0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="7104.7624" y="1672.8745">URT_STATUS_ERROR = 0x8..0</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7099.7624" x2="7277.7624" y1="1679.4688" y2="1679.4688"/><!--MD5=[15452fea434e71f16c7de0feaca2b066]
-class urt_delay_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="99.2188" id="urt_delay_t" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="6392.2624" y="1601.3594"/><ellipse cx="6444.5124" cy="1617.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6445.3562,1624.1094 L6442.903,1624.1094 L6442.903,1613.8594 L6439.7624,1613.8594 L6439.7624,1611.7188 L6448.4968,1611.7188 L6448.4968,1613.8594 L6445.3562,1613.8594 L6445.3562,1624.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="68" x="6465.0124" y="1621.5137">urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6393.2624" x2="6572.2624" y1="1633.3594" y2="1633.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="6398.2624" y="1664.3745">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6393.2624" x2="6396.2624" y1="1647.7617" y2="1647.7617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="6396.2624" y="1651.0698">URT_CFG_DELAY_WIDTH == 32</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6569.2624" x2="6572.2624" y1="1647.7617" y2="1647.7617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="6398.2624" y="1693.9839">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6393.2624" x2="6396.2624" y1="1677.3711" y2="1677.3711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="6396.2624" y="1680.6792">URT_CFG_DELAY_WIDTH == 64</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6569.2624" x2="6572.2624" y1="1677.3711" y2="1677.3711"/><!--MD5=[f106a25c06a671b3918b1a8f37571a4d]
-class urt_debug--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="60.8047" id="urt_debug" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="5886.2624" y="1620.3594"/><ellipse cx="5972.5124" cy="1636.3594" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5976.7468,1632.125 L5971.4655,1632.125 L5971.4655,1634.7969 L5976.2624,1634.7969 L5976.2624,1636.9531 L5971.4655,1636.9531 L5971.4655,1642.3594 L5969.028,1642.3594 L5969.028,1629.9688 L5976.7468,1629.9688 L5976.7468,1632.125 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="5993.0124" y="1640.5137">urt_debug</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5887.2624" x2="6130.2624" y1="1652.3594" y2="1652.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5887.2624" x2="6130.2624" y1="1660.3594" y2="1660.3594"/><ellipse cx="5897.2624" cy="1671.3594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="219" x="5906.2624" y="1674.5698">urtDebugAssert(condition : bool) : void</text><!--MD5=[3677786d1f00795918091b0110bfa4af]
-class urt_osTime_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="86.4141" id="urt_osTime_t" style="stroke: #A80036; stroke-width: 1.5;" width="425" x="1039.2624" y="1299.8594"/><ellipse cx="1208.0124" cy="1315.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1208.8562,1322.6094 L1206.403,1322.6094 L1206.403,1312.3594 L1203.2624,1312.3594 L1203.2624,1310.2188 L1211.9968,1310.2188 L1211.9968,1312.3594 L1208.8562,1312.3594 L1208.8562,1322.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="1228.5124" y="1320.0137">urt_osTime_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1040.2624" x2="1463.2624" y1="1331.8594" y2="1331.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1040.2624" x2="1463.2624" y1="1339.8594" y2="1339.8594"/><ellipse cx="1050.2624" cy="1350.8594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="231" x="1059.2624" y="1354.0698">urtTime2Us (t : urt_osTime_t*) : uint64_t</text><ellipse cx="1050.2624" cy="1363.6641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="1059.2624" y="1366.8745">urtTimeNow (void) : urt_osTime_t</text><ellipse cx="1050.2624" cy="1376.4688" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="399" x="1059.2624" y="1379.6792">urtTimeAddUs (time : urt_osTime_t*, offset : uint32_t) : urt_osTime_t*</text><!--MD5=[532279a7a1cac9af7f32856ca2ae6b9b]
-class urt_osMutex_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="99.2188" id="urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.5;" width="298" x="705.7624" y="1293.3594"/><ellipse cx="807.0124" cy="1309.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M807.8562,1316.1094 L805.403,1316.1094 L805.403,1305.8594 L802.2624,1305.8594 L802.2624,1303.7188 L810.9968,1303.7188 L810.9968,1305.8594 L807.8562,1305.8594 L807.8562,1316.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="827.5124" y="1313.5137">urt_osMutex_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="706.7624" x2="1002.7624" y1="1325.3594" y2="1325.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="706.7624" x2="1002.7624" y1="1333.3594" y2="1333.3594"/><ellipse cx="716.7624" cy="1344.3594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="245" x="725.7624" y="1347.5698">urtMutexInit (mutex : urt_osMutex_t*) : void</text><ellipse cx="716.7624" cy="1357.1641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="253" x="725.7624" y="1360.3745">urtMutexLock (mutex : urt_osMutex_t*) : void</text><ellipse cx="716.7624" cy="1369.9688" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="272" x="725.7624" y="1373.1792">urtMutexTryLock (mutex : urt_osMutex_t*) : bool</text><ellipse cx="716.7624" cy="1382.7734" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="725.7624" y="1385.9839">urtMutexUnlock (mutex : urt_osMutex_t*) : void</text><!--MD5=[0cf29100c96c506429a28b45d347cc92]
-class urt_streams--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="73.6094" id="urt_streams" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="461.2624" y="1305.8594"/><ellipse cx="524.0124" cy="1321.8594" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M528.2468,1317.625 L522.9655,1317.625 L522.9655,1320.2969 L527.7624,1320.2969 L527.7624,1322.4531 L522.9655,1322.4531 L522.9655,1327.8594 L520.528,1327.8594 L520.528,1315.4688 L528.2468,1315.4688 L528.2468,1317.625 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="544.5124" y="1326.0137">urt_streams</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="462.2624" x2="669.2624" y1="1337.8594" y2="1337.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="462.2624" x2="669.2624" y1="1345.8594" y2="1345.8594"/><ellipse cx="472.2624" cy="1356.8594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="166" x="481.2624" y="1360.0698">urtPrintf(fmt : char*, ... ) : int</text><ellipse cx="472.2624" cy="1369.6641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="481.2624" y="1372.8745">urtErrPrintf(fmt : char*, ... ) : int</text><!--MD5=[52fa11869cb40c93fa7702378ddd839e]
-class urt_osCondvarWaitStatus_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="86.4141" id="urt_osCondvarWaitStatus_t" style="stroke: #A80036; stroke-width: 1.5;" width="270" x="5225.7624" y="1607.8594"/><ellipse cx="5272.0124" cy="1623.8594" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5276.1218,1629.8594 L5268.403,1629.8594 L5268.403,1617.4688 L5276.1218,1617.4688 L5276.1218,1619.625 L5270.8562,1619.625 L5270.8562,1622.2969 L5275.6218,1622.2969 L5275.6218,1624.4531 L5270.8562,1624.4531 L5270.8562,1627.7031 L5276.1218,1627.7031 L5276.1218,1629.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="169" x="5292.5124" y="1628.0137">urt_osCondvarWaitStatus_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5226.7624" x2="5494.7624" y1="1639.8594" y2="1639.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="230" x="5231.7624" y="1654.0698">URT_CONDVAR_WAITSTATUS_SIGNAL = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="5231.7624" y="1666.8745">URT_CONDVAR_WAITSTATUS_BROADCAST = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="239" x="5231.7624" y="1679.6792">URT_CONDVAR_WAITSTATUS_TIMEOUT = 0</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5226.7624" x2="5494.7624" y1="1686.2734" y2="1686.2734"/><!--MD5=[004fc5dee471033e8e4138c1c73f0692]
-class urt_osCondvar_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="99.2188" id="urt_osCondvar_t" style="stroke: #A80036; stroke-width: 1.5;" width="710" x="5005.7624" y="1293.3594"/><ellipse cx="5306.0124" cy="1309.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5306.8562,1316.1094 L5304.403,1316.1094 L5304.403,1305.8594 L5301.2624,1305.8594 L5301.2624,1303.7188 L5309.9968,1303.7188 L5309.9968,1305.8594 L5306.8562,1305.8594 L5306.8562,1316.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="5326.5124" y="1313.5137">urt_osCondvar_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5006.7624" x2="5714.7624" y1="1325.3594" y2="1325.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5006.7624" x2="5714.7624" y1="1333.3594" y2="1333.3594"/><ellipse cx="5016.7624" cy="1344.3594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="283" x="5025.7624" y="1347.5698">urtCondvarInit (condvar : urt_osCondvar_t*) : void</text><ellipse cx="5016.7624" cy="1357.1641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="301" x="5025.7624" y="1360.3745">urtCondvarSignal (condvar : urt_osCondvar_t*) : void</text><ellipse cx="5016.7624" cy="1369.9688" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="324" x="5025.7624" y="1373.1792">urtCondvarBroadcast (condvar : urt_osCondvar_t*) : void</text><ellipse cx="5016.7624" cy="1382.7734" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="684" x="5025.7624" y="1385.9839">urtCondvarWait (condvar : urt_osCondvar_t*, mutex : urt_osMutex_t*, timeout : urt_delay_t) : urt_osCondvarWaitStatus_t</text><!--MD5=[93799a03260ba286abda700174f4f205]
-class urt_osTimerCallback_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="60.8047" id="urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="4436.7624" y="1620.3594"/><ellipse cx="4507.5124" cy="1636.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4508.3562,1643.1094 L4505.903,1643.1094 L4505.903,1632.8594 L4502.7624,1632.8594 L4502.7624,1630.7188 L4511.4968,1630.7188 L4511.4968,1632.8594 L4508.3562,1632.8594 L4508.3562,1643.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="4528.0124" y="1640.5137">urt_osTimerCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4437.7624" x2="4721.7624" y1="1652.3594" y2="1652.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4437.7624" x2="4721.7624" y1="1660.3594" y2="1660.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="274" x="4442.7624" y="1674.5698">urt_osTimerCallback_t (parameter : void*) : void</text><!--MD5=[0b340d7b925b1eab6a1b7e084f68a7c2]
-class urt_osTimer_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="112.0234" id="urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.5;" width="782" x="4188.7624" y="1286.8594"/><ellipse cx="4533.5124" cy="1302.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4534.3562,1309.6094 L4531.903,1309.6094 L4531.903,1299.3594 L4528.7624,1299.3594 L4528.7624,1297.2188 L4537.4968,1297.2188 L4537.4968,1299.3594 L4534.3562,1299.3594 L4534.3562,1309.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="4554.0124" y="1307.0137">urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4189.7624" x2="4969.7624" y1="1318.8594" y2="1318.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4189.7624" x2="4969.7624" y1="1326.8594" y2="1326.8594"/><ellipse cx="4199.7624" cy="1337.8594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="4208.7624" y="1341.0698">urtTimerInit (timer : urt_osTimer_t*) : void</text><ellipse cx="4199.7624" cy="1350.6641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="705" x="4208.7624" y="1353.8745">urtTimerSet (timer : urt_osTimer_t*, delay : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t</text><ellipse cx="4199.7624" cy="1363.4688" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="756" x="4208.7624" y="1366.6792">urtTimerSetPeriodic (timer : urt_osTimer_t*, period : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t</text><ellipse cx="4199.7624" cy="1376.2734" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="300" x="4208.7624" y="1379.4839">urtTimerReset (timer : urt_osTimer_t*) : urt_status_t</text><ellipse cx="4199.7624" cy="1389.0781" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="4208.7624" y="1392.2886">urtTimerIsArmed (timer : urt_osTimer_t*) : bool</text><!--MD5=[86c16d91227b9a9ec3b6b9b0285de4e9]
-class urt_osThreadPrio_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="150.4375" id="urt_osThreadPrio_t" style="stroke: #A80036; stroke-width: 1.5;" width="197" x="3690.2624" y="1575.8594"/><ellipse cx="3726.4124" cy="1591.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3727.2562,1598.6094 L3724.803,1598.6094 L3724.803,1588.3594 L3721.6624,1588.3594 L3721.6624,1586.2188 L3730.3968,1586.2188 L3730.3968,1588.3594 L3727.2562,1588.3594 L3727.2562,1598.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="3745.1124" y="1596.0137">urt_osThreadPrio_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3691.2624" x2="3886.2624" y1="1607.8594" y2="1607.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="3696.2624" y="1622.0698">URT_THREAD_PRIO_LOW_MIN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="163" x="3696.2624" y="1634.8745">URT_THREAD_PRIO_LOW_MAX</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="182" x="3696.2624" y="1647.6792">URT_THREAD_PRIO_NORMAL_MIN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="3696.2624" y="1660.4839">URT_THREAD_PRIO_NORMAL_MAX</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="164" x="3696.2624" y="1673.2886">URT_THREAD_PRIO_HIGH_MIN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="167" x="3696.2624" y="1686.0933">URT_THREAD_PRIO_HIGH_MAX</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="3696.2624" y="1698.8979">URT_THREAD_PRIO_RT_MIN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="3696.2624" y="1711.7026">URT_THREAD_PRIO_RT_MAX</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3691.2624" x2="3886.2624" y1="1718.2969" y2="1718.2969"/><!--MD5=[69d8aab9aa387a2f5052ea3da80e80ea]
-class urt_osThreadFunction_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="60.8047" id="urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="3141.7624" y="1620.3594"/><ellipse cx="3189.5124" cy="1636.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3190.3562,1643.1094 L3187.903,1643.1094 L3187.903,1632.8594 L3184.7624,1632.8594 L3184.7624,1630.7188 L3193.4968,1630.7188 L3193.4968,1632.8594 L3190.3562,1632.8594 L3190.3562,1643.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="3210.0124" y="1640.5137">urt_osThreadFunction_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3142.7624" x2="3392.7624" y1="1652.3594" y2="1652.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3142.7624" x2="3392.7624" y1="1660.3594" y2="1660.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="3147.7624" y="1674.5698">urt_osThreadFunction_t (arg : void*) : void</text><!--MD5=[ab5f611d45c3fa10609c33f780d8c3e1]
-class urt_osThreadTerminateSignal_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="73.6094" id="urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="3922.7624" y="1613.8594"/><ellipse cx="3944.5124" cy="1629.8594" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3948.6218,1635.8594 L3940.903,1635.8594 L3940.903,1623.4688 L3948.6218,1623.4688 L3948.6218,1625.625 L3943.3562,1625.625 L3943.3562,1628.2969 L3948.1218,1628.2969 L3948.1218,1630.4531 L3943.3562,1630.4531 L3943.3562,1633.7031 L3948.6218,1633.7031 L3948.6218,1635.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="195" x="3960.0124" y="1634.0137">urt_osThreadTerminateSignal_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3923.7624" x2="4163.7624" y1="1645.8594" y2="1645.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="230" x="3928.7624" y="1660.0698">URT_THREAD_TERMINATE_REQUEST = 15</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="3928.7624" y="1672.8745">URT_THREAD_TERMINATE_KILL = 9</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3923.7624" x2="4163.7624" y1="1679.4688" y2="1679.4688"/><!--MD5=[47d14ad2c233fae1b32b8d0a283e820a]
-class urt_osThreadState_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="137.6328" id="urt_osThreadState_t" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="3428.7624" y="1581.8594"/><ellipse cx="3473.5124" cy="1597.8594" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3477.6218,1603.8594 L3469.903,1603.8594 L3469.903,1591.4688 L3477.6218,1591.4688 L3477.6218,1593.625 L3472.3562,1593.625 L3472.3562,1596.2969 L3477.1218,1596.2969 L3477.1218,1598.4531 L3472.3562,1598.4531 L3472.3562,1601.7031 L3477.6218,1601.7031 L3477.6218,1603.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="128" x="3494.0124" y="1602.0137">urt_osThreadState_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3429.7624" x2="3653.7624" y1="1613.8594" y2="1613.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="3434.7624" y="1628.0698">URT_THREAD_STATE_INACTIVE = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="3434.7624" y="1640.8745">URT_THREAD_STATE_RUNNING = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="180" x="3434.7624" y="1653.6792">URT_THREAD_STATE_READY = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="3434.7624" y="1666.4839">URT_THREAD_STATE_SLEEPING = 3</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="213" x="3434.7624" y="1679.2886">URT_THREAD_STATE_SUSPENDED = 4</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="3434.7624" y="1692.0933">URT_THREAD_STATE_WAITING = 5</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="214" x="3434.7624" y="1704.8979">URT_THREAD_STATE_TERMINATED = 6</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3429.7624" x2="3653.7624" y1="1711.4922" y2="1711.4922"/><!--MD5=[0a16224ede9ffa9bb2d34e085a076e6d]
-class urt_osThread_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="337.7031" id="urt_osThread_t" style="stroke: #A80036; stroke-width: 1.5;" width="560" x="3551.7624" y="1173.8594"/><ellipse cx="3780.5124" cy="1189.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3781.3562,1196.6094 L3778.903,1196.6094 L3778.903,1186.3594 L3775.7624,1186.3594 L3775.7624,1184.2188 L3784.4968,1184.2188 L3784.4968,1186.3594 L3781.3562,1186.3594 L3781.3562,1196.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="94" x="3801.0124" y="1194.0137">urt_osThread_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3552.7624" x2="4110.7624" y1="1205.8594" y2="1205.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="179" x="3557.7624" y="1220.0698">URT_THREAD_SLEEP_MAX : float</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="3557.7624" y="1232.8745">URT_THREAD_SSLEP_MAX : urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="225" x="3557.7624" y="1245.6792">URT_THREAD_MSLEEP_MAX : urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="3557.7624" y="1258.4839">URT_THREAD_USLEEP_MAX : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="3552.7624" x2="4110.7624" y1="1265.0781" y2="1265.0781"/><ellipse cx="3562.7624" cy="1276.0781" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="248" x="3571.7624" y="1279.2886">URT_THREAD_MEMORY (varname, stacksize)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3552.7624" x2="4110.7624" y1="1285.8828" y2="1285.8828"/><ellipse cx="3562.7624" cy="1296.8828" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="534" x="3571.7624" y="1300.0933">urtThreadInit (memory : void*, size : size_t, func : urt_osThreadFunction_t*) : urt_osThread_t*</text><ellipse cx="3562.7624" cy="1309.6875" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="490" x="3571.7624" y="1312.8979">urtThreadStart (thread : urt_osThread_t*, prio : urt_osThreadPrio_t, arg : void*) : void</text><ellipse cx="3562.7624" cy="1322.4922" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="3571.7624" y="1325.7026">urtThreadYield (void) : void</text><ellipse cx="3562.7624" cy="1335.2969" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="3571.7624" y="1338.5073">urtThreadGetPriority (void) : urt_osThreadPrio_t</text><ellipse cx="3562.7624" cy="1348.1016" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="304" x="3571.7624" y="1351.312">urtThreadSetPriority (prio : urt_osThreadPrio_t) : void</text><ellipse cx="3562.7624" cy="1360.9063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="294" x="3571.7624" y="1364.1167">urtThreadSuspend (thread : urt_osThread_t*) : void</text><ellipse cx="3562.7624" cy="1373.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="335" x="3571.7624" y="1376.9214">urtThreadResume (thread : urt_osThread_t*) : urt_status_t</text><ellipse cx="3562.7624" cy="1386.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="3571.7624" y="1389.7261">urtThreadSleep (seconds : float) : void</text><ellipse cx="3562.7624" cy="1399.3203" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="3571.7624" y="1402.5308">urtThreadSSleep (seconds : urt_delay_t) : void</text><ellipse cx="3562.7624" cy="1412.125" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="289" x="3571.7624" y="1415.3354">urtThreadMSleep (milliseconds : urt_delay_t) : void</text><ellipse cx="3562.7624" cy="1424.9297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="297" x="3571.7624" y="1428.1401">urtThreadUSleep (microseconds : urt_delay_t) : void</text><ellipse cx="3562.7624" cy="1437.7344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="3571.7624" y="1440.9448">urtThreadSleepUntil (time : urt_osTime_t) : void</text><ellipse cx="3562.7624" cy="1450.5391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="3571.7624" y="1453.7495">urtThreadExit (void) : void</text><ellipse cx="3562.7624" cy="1463.3438" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="518" x="3571.7624" y="1466.5542">urtThreadTerminate (thread : urt_osThread_t*, sig : urt_osThreadTerminateSignal_t) : void</text><ellipse cx="3562.7624" cy="1476.1484" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="264" x="3571.7624" y="1479.3589">urtThreadJoin (thread : urt_osThread_t*) : void</text><ellipse cx="3562.7624" cy="1488.9531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="387" x="3571.7624" y="1492.1636">urtThreadGetState (thread : urt_osThread_t*) : urt_osThreadState_t</text><ellipse cx="3562.7624" cy="1501.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="237" x="3571.7624" y="1504.9683">urtThreadGetSelf (void) : urt_osThread_t*</text><!--MD5=[0a4e0f34d8da0ad3ed6ecf72f02e09c8]
-class urt_osEventMask_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="60.8047" id="urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.5;" width="280" x="2826.7624" y="1620.3594"/><ellipse cx="2904.0124" cy="1636.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2904.8562,1643.1094 L2902.403,1643.1094 L2902.403,1632.8594 L2899.2624,1632.8594 L2899.2624,1630.7188 L2907.9968,1630.7188 L2907.9968,1632.8594 L2904.8562,1632.8594 L2904.8562,1643.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="2924.5124" y="1640.5137">urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2827.7624" x2="3105.7624" y1="1652.3594" y2="1652.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="268" x="2832.7624" y="1666.5698">URT_EVENTMASK_MAXPRIO : urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2827.7624" x2="3105.7624" y1="1673.1641" y2="1673.1641"/><!--MD5=[dc1cc33af288560680c15dec1e56eda0]
-class urt_osEventFlags_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="48" id="urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="2235.7624" y="1880.8594"/><ellipse cx="2250.7624" cy="1896.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2251.6062,1903.6094 L2249.153,1903.6094 L2249.153,1893.3594 L2246.0124,1893.3594 L2246.0124,1891.2188 L2254.7468,1891.2188 L2254.7468,1893.3594 L2251.6062,1893.3594 L2251.6062,1903.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="2264.7624" y="1901.0137">urt_osEventFlags_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2236.7624" x2="2384.7624" y1="1912.8594" y2="1912.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2236.7624" x2="2384.7624" y1="1920.8594" y2="1920.8594"/><!--MD5=[e2bbbd64e6979bf7b755747a6c0ba948]
-class urt_osEventWait_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="86.4141" id="urt_osEventWait_t" style="stroke: #A80036; stroke-width: 1.5;" width="162" x="2629.7624" y="1607.8594"/><ellipse cx="2652.8624" cy="1623.8594" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2656.9718,1629.8594 L2649.253,1629.8594 L2649.253,1617.4688 L2656.9718,1617.4688 L2656.9718,1619.625 L2651.7062,1619.625 L2651.7062,1622.2969 L2656.4718,1622.2969 L2656.4718,1624.4531 L2651.7062,1624.4531 L2651.7062,1627.7031 L2656.9718,1627.7031 L2656.9718,1629.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="2668.6624" y="1628.0137">urt_osEventWait_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2630.7624" x2="2790.7624" y1="1639.8594" y2="1639.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="2635.7624" y="1654.0698">URT_EVENT_WAIT_ONE = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="2635.7624" y="1666.8745">URT_EVENT_WAIT_ANY = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="2635.7624" y="1679.6792">URT_EVENT_WAIT_ALL = 2</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2630.7624" x2="2790.7624" y1="1686.2734" y2="1686.2734"/><!--MD5=[d054ac2eda12ce4b1fe5a18c9be716c1]
-class urt_osEventListener_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="86.4141" id="urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.5;" width="494" x="2063.7624" y="1607.8594"/><ellipse cx="2239.0124" cy="1623.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2239.8562,1630.6094 L2237.403,1630.6094 L2237.403,1620.3594 L2234.2624,1620.3594 L2234.2624,1618.2188 L2242.9968,1618.2188 L2242.9968,1620.3594 L2239.8562,1620.3594 L2239.8562,1630.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="2259.5124" y="1628.0137">urt_osEventListener_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2064.7624" x2="2556.7624" y1="1639.8594" y2="1639.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2064.7624" x2="2556.7624" y1="1647.8594" y2="1647.8594"/><ellipse cx="2074.7624" cy="1658.8594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="341" x="2083.7624" y="1662.0698">urtEventListenerInit (listener : urt_osEventListener_t*) : void</text><ellipse cx="2074.7624" cy="1671.6641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="458" x="2083.7624" y="1674.8745">urtEventListenerGetFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><ellipse cx="2074.7624" cy="1684.4688" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="468" x="2083.7624" y="1687.6792">urtEventListenerClearFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><!--MD5=[4d6906f8b977dc26629fa492460e6327]
-class urt_osEventSource_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="73.6094" id="urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.5;" width="547" x="1481.2624" y="1613.8594"/><ellipse cx="1686.0124" cy="1629.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1686.8562,1636.6094 L1684.403,1636.6094 L1684.403,1626.3594 L1681.2624,1626.3594 L1681.2624,1624.2188 L1689.9968,1624.2188 L1689.9968,1626.3594 L1686.8562,1626.3594 L1686.8562,1636.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="129" x="1706.5124" y="1634.0137">urt_osEventSource_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1482.2624" x2="2027.2624" y1="1645.8594" y2="1645.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1482.2624" x2="2027.2624" y1="1653.8594" y2="1653.8594"/><ellipse cx="1492.2624" cy="1664.8594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="325" x="1501.2624" y="1668.0698">urtEventSourceInit (source : urt_osEventSource_t*) : void</text><ellipse cx="1492.2624" cy="1677.6641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="521" x="1501.2624" y="1680.8745">urtEventSourceBroadcast (source : urt_osEventSource_t*, flags : urt_osEventFlags_t) : void</text><!--MD5=[04a3b5a37031e2a4d723f19d8adf86f5]
-class urt_events--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="86.4141" id="urt_events" style="stroke: #A80036; stroke-width: 1.5;" width="890" x="2216.7624" y="1299.8594"/><ellipse cx="2624.5124" cy="1315.8594" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2628.7468,1311.625 L2623.4655,1311.625 L2623.4655,1314.2969 L2628.2624,1314.2969 L2628.2624,1316.4531 L2623.4655,1316.4531 L2623.4655,1321.8594 L2621.028,1321.8594 L2621.028,1309.4688 L2628.7468,1309.4688 L2628.7468,1311.625 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="2645.0124" y="1320.0137">urt_events</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2217.7624" x2="3105.7624" y1="1331.8594" y2="1331.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2217.7624" x2="3105.7624" y1="1339.8594" y2="1339.8594"/><ellipse cx="2227.7624" cy="1350.8594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="864" x="2236.7624" y="1354.0698">urtEventRegister (source : urt_osEventSource_t*, listener : urt_osEventListener_t*, mask : urt_osEventMask_t, flags : urt_osEventFlags_t) : urt_status_t</text><ellipse cx="2227.7624" cy="1363.6641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="567" x="2236.7624" y="1366.8745">urtEventUnregister (source _ urt_osEventSource_t*, listener : urt_osEventListener_t*) : urt_status_t</text><ellipse cx="2227.7624" cy="1376.4688" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="618" x="2236.7624" y="1379.6792">urtEventWait (mask : urt_osEventMask_t, type : urt_osEventWait_t, timeout : urt_delay_t) : urt_osEventMask_t</text><!--MD5=[89d25e87afdd75480e1ec2bd05524873]
-class urt_core_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="256.0703" id="urt_core_t" style="stroke: #A80036; stroke-width: 1.5;" width="515" x="7357.2624" y="110.8594"/><ellipse cx="7579.0124" cy="126.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7578.4968,127.4219 Q7576.6374,126.7188 7575.9812,125.9531 Q7575.3405,125.1719 7575.3405,123.8594 Q7575.3405,122.1719 7576.4187,121.2031 Q7577.4968,120.2344 7579.3718,120.2344 Q7580.2312,120.2344 7581.0749,120.4375 Q7581.9343,120.625 7582.778,121.0156 L7582.778,123.4063 Q7581.9968,122.8438 7581.1687,122.5625 Q7580.3562,122.2656 7579.5593,122.2656 Q7578.6843,122.2656 7578.1999,122.625 Q7577.7312,122.9844 7577.7312,123.6406 Q7577.7312,124.1563 7578.0749,124.5 Q7578.4187,124.8281 7579.5124,125.2344 L7580.5749,125.6406 Q7582.0593,126.1875 7582.7624,127.0938 Q7583.4812,128 7583.4812,129.375 Q7583.4812,131.25 7582.3718,132.1719 Q7581.2624,133.0938 7579.0124,133.0938 Q7578.0905,133.0938 7577.1687,132.875 Q7576.2468,132.6563 7575.3874,132.2344 L7575.3874,129.7031 Q7576.3562,130.3906 7577.278,130.7344 Q7578.1999,131.0781 7579.0905,131.0781 Q7579.9968,131.0781 7580.4968,130.6719 Q7580.9968,130.25 7580.9968,129.5156 Q7580.9968,128.9531 7580.653,128.5469 Q7580.3249,128.125 7579.6999,127.875 L7578.4968,127.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="7599.5124" y="131.0137">urt_core_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7358.2624" x2="7871.2624" y1="142.8594" y2="142.8594"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="7365.2624" y="150.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="7377.2624" y="157.0698">_nodes : urt_node_t*</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="7365.2624" y="163.6641"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="192" x="7377.2624" y="169.8745">_evtSource : urt_osEventSource_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="7365.2624" y="176.4688"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="7377.2624" y="182.6792">_lock : urt_osMutex_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="7365.2624" y="206.0781"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="117" x="7377.2624" y="212.2886">_topics : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7358.2624" x2="7509.7624" y1="195.6758" y2="195.6758"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="7509.7624" y="198.9839">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7719.7624" x2="7871.2624" y1="195.6758" y2="195.6758"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="7365.2624" y="235.6875"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="145" x="7377.2624" y="241.8979">_services : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7358.2624" x2="7522.2624" y1="225.2852" y2="225.2852"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="7522.2624" y="228.5933">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7707.2624" x2="7871.2624" y1="225.2852" y2="225.2852"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7358.2624" x2="7871.2624" y1="248.4922" y2="248.4922"/><ellipse cx="7368.2624" cy="259.4922" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="7377.2624" y="262.7026">urtCoreInit (void) : urt_status_t</text><ellipse cx="7368.2624" cy="272.2969" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="222" x="7377.2624" y="275.5073">urtCoreStartNodes (void) : urt_status_t</text><ellipse cx="7368.2624" cy="285.1016" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="489" x="7377.2624" y="288.312">urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodestage_t) : urt_status_t</text><ellipse cx="7368.2624" cy="297.9063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="7377.2624" y="301.1167">urtCoreStopNodes (void) : urt_status_t</text><ellipse cx="7368.2624" cy="327.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="299" x="7377.2624" y="330.7261">urtCoreRetrieveTopic (id : urt_topicid_t) : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7358.2624" x2="7509.7624" y1="314.1133" y2="314.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="7509.7624" y="317.4214">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7719.7624" x2="7871.2624" y1="314.1133" y2="314.1133"/><ellipse cx="7368.2624" cy="357.125" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="339" x="7377.2624" y="360.3354">urtCoreRetrieveService (id : urt_serviceid_t) : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7358.2624" x2="7522.2624" y1="343.7227" y2="343.7227"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="7522.2624" y="347.0308">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7707.2624" x2="7871.2624" y1="343.7227" y2="343.7227"/><!--MD5=[a7dea26996a1231aa68629b332780450]
-class urt_nodeSetupCallback_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="60.8047" id="urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="456" x="10880.7624" y="846.3594"/><ellipse cx="11026.5124" cy="862.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M11027.3562,869.1094 L11024.903,869.1094 L11024.903,858.8594 L11021.7624,858.8594 L11021.7624,856.7188 L11030.4968,856.7188 L11030.4968,858.8594 L11027.3562,858.8594 L11027.3562,869.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="11047.0124" y="866.5137">urt_nodeSetupCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="10881.7624" x2="11335.7624" y1="878.3594" y2="878.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="10881.7624" x2="11335.7624" y1="886.3594" y2="886.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="444" x="10886.7624" y="900.5698">urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t</text><!--MD5=[7f869e17e281b89d59a4c09e0f22c3af]
-class urt_nodeLoopCallback_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="60.8047" id="urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="614" x="10231.7624" y="846.3594"/><ellipse cx="10460.0124" cy="862.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M10460.8562,869.1094 L10458.403,869.1094 L10458.403,858.8594 L10455.2624,858.8594 L10455.2624,856.7188 L10463.9968,856.7188 L10463.9968,858.8594 L10460.8562,858.8594 L10460.8562,869.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="10480.5124" y="866.5137">urt_nodeLoopCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="10232.7624" x2="10844.7624" y1="878.3594" y2="878.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="10232.7624" x2="10844.7624" y1="886.3594" y2="886.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="602" x="10237.7624" y="900.5698">urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t</text><!--MD5=[d2563153d77472384a15c07b815d639f]
-class urt_node_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="176.0469" id="urt_node_t" style="stroke: #A80036; stroke-width: 1.5;" width="1104" x="10231.7624" y="501.8594"/><ellipse cx="10746.0124" cy="517.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M10745.4968,518.4219 Q10743.6374,517.7188 10742.9812,516.9531 Q10742.3405,516.1719 10742.3405,514.8594 Q10742.3405,513.1719 10743.4187,512.2031 Q10744.4968,511.2344 10746.3718,511.2344 Q10747.2312,511.2344 10748.0749,511.4375 Q10748.9343,511.625 10749.778,512.0156 L10749.778,514.4063 Q10748.9968,513.8438 10748.1687,513.5625 Q10747.3562,513.2656 10746.5593,513.2656 Q10745.6843,513.2656 10745.1999,513.625 Q10744.7312,513.9844 10744.7312,514.6406 Q10744.7312,515.1563 10745.0749,515.5 Q10745.4187,515.8281 10746.5124,516.2344 L10747.5749,516.6406 Q10749.0593,517.1875 10749.7624,518.0938 Q10750.4812,519 10750.4812,520.375 Q10750.4812,522.25 10749.3718,523.1719 Q10748.2624,524.0938 10746.0124,524.0938 Q10745.0905,524.0938 10744.1687,523.875 Q10743.2468,523.6563 10742.3874,523.2344 L10742.3874,520.7031 Q10743.3562,521.3906 10744.278,521.7344 Q10745.1999,522.0781 10746.0905,522.0781 Q10746.9968,522.0781 10747.4968,521.6719 Q10747.9968,521.25 10747.9968,520.5156 Q10747.9968,519.9531 10747.653,519.5469 Q10747.3249,519.125 10746.6999,518.875 L10745.4968,518.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="67" x="10766.5124" y="522.0137">urt_node_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="10232.7624" x2="11334.7624" y1="533.8594" y2="533.8594"/><ellipse cx="10242.7624" cy="544.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="10251.7624" y="548.0698">next : urt_node_t*</text><ellipse cx="10242.7624" cy="557.6641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="10251.7624" y="560.8745">thread : urt_osThread_t*</text><ellipse cx="10242.7624" cy="570.4688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="10251.7624" y="573.6792">setupcallback : urt_nodeSetupCallback_t*</text><ellipse cx="10242.7624" cy="583.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="117" x="10251.7624" y="586.4839">setupparams : void*</text><ellipse cx="10242.7624" cy="596.0781" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="221" x="10251.7624" y="599.2886">loopcallback : urt_nodeLoopCallback_t*</text><ellipse cx="10242.7624" cy="608.8828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="10251.7624" y="612.0933">loopparams : void*</text><ellipse cx="10242.7624" cy="621.6875" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="10251.7624" y="624.8979">stage : urt_nodestage_t</text><ellipse cx="10242.7624" cy="634.4922" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="178" x="10251.7624" y="637.7026">listener : urt_osEventListener_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="10232.7624" x2="11334.7624" y1="644.2969" y2="644.2969"/><rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="10239.7624" y="652.2969"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="179" x="10251.7624" y="658.5073">_main : urt_osThreadFunction_t</text><ellipse cx="10242.7624" cy="668.1016" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1078" x="10251.7624" y="671.312">urtNodeInit (node : urt_node_t*, stacksize : size_t, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t</text><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
-class urt_message_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="141.6328" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="7364.2624" y="805.8594"/><ellipse cx="7539.5124" cy="821.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7538.9968,822.4219 Q7537.1374,821.7188 7536.4812,820.9531 Q7535.8405,820.1719 7535.8405,818.8594 Q7535.8405,817.1719 7536.9187,816.2031 Q7537.9968,815.2344 7539.8718,815.2344 Q7540.7312,815.2344 7541.5749,815.4375 Q7542.4343,815.625 7543.278,816.0156 L7543.278,818.4063 Q7542.4968,817.8438 7541.6687,817.5625 Q7540.8562,817.2656 7540.0593,817.2656 Q7539.1843,817.2656 7538.6999,817.625 Q7538.2312,817.9844 7538.2312,818.6406 Q7538.2312,819.1563 7538.5749,819.5 Q7538.9187,819.8281 7540.0124,820.2344 L7541.0749,820.6406 Q7542.5593,821.1875 7543.2624,822.0938 Q7543.9812,823 7543.9812,824.375 Q7543.9812,826.25 7542.8718,827.1719 Q7541.7624,828.0938 7539.5124,828.0938 Q7538.5905,828.0938 7537.6687,827.875 Q7536.7468,827.6563 7535.8874,827.2344 L7535.8874,824.7031 Q7536.8562,825.3906 7537.778,825.7344 Q7538.6999,826.0781 7539.5905,826.0781 Q7540.4968,826.0781 7540.9968,825.6719 Q7541.4968,825.25 7541.4968,824.5156 Q7541.4968,823.9531 7541.153,823.5469 Q7540.8249,823.125 7540.1999,822.875 L7538.9968,822.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="7560.0124" y="826.0137">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7365.2624" x2="7814.2624" y1="837.8594" y2="837.8594"/><ellipse cx="7375.2624" cy="848.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="7384.2624" y="852.0698">next : urt_message_t*</text><ellipse cx="7375.2624" cy="861.6641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="7384.2624" y="864.8745">payload : void*</text><ellipse cx="7375.2624" cy="874.4688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="7384.2624" y="877.6792">originTime : urt_osTime_t</text><ellipse cx="7375.2624" cy="887.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="7384.2624" y="890.4839">numHrtConsumersLeft : unsigned int</text><ellipse cx="7375.2624" cy="916.8828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="7384.2624" y="920.0933">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7365.2624" x2="7481.2624" y1="903.4805" y2="903.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="7481.2624" y="906.7886">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7698.2624" x2="7814.2624" y1="903.4805" y2="903.4805"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7365.2624" x2="7814.2624" y1="926.6875" y2="926.6875"/><ellipse cx="7375.2624" cy="937.6875" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="425" x="7384.2624" y="940.8979">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
-class urt_publisher_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="7802.2624" y="525.3594"/><ellipse cx="8131.0124" cy="541.3594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M8130.4968,541.9219 Q8128.6374,541.2188 8127.9812,540.4531 Q8127.3405,539.6719 8127.3405,538.3594 Q8127.3405,536.6719 8128.4187,535.7031 Q8129.4968,534.7344 8131.3718,534.7344 Q8132.2312,534.7344 8133.0749,534.9375 Q8133.9343,535.125 8134.778,535.5156 L8134.778,537.9063 Q8133.9968,537.3438 8133.1687,537.0625 Q8132.3562,536.7656 8131.5593,536.7656 Q8130.6843,536.7656 8130.1999,537.125 Q8129.7312,537.4844 8129.7312,538.1406 Q8129.7312,538.6563 8130.0749,539 Q8130.4187,539.3281 8131.5124,539.7344 L8132.5749,540.1406 Q8134.0593,540.6875 8134.7624,541.5938 Q8135.4812,542.5 8135.4812,543.875 Q8135.4812,545.75 8134.3718,546.6719 Q8133.2624,547.5938 8131.0124,547.5938 Q8130.0905,547.5938 8129.1687,547.375 Q8128.2468,547.1563 8127.3874,546.7344 L8127.3874,544.2031 Q8128.3562,544.8906 8129.278,545.2344 Q8130.1999,545.5781 8131.0905,545.5781 Q8131.9968,545.5781 8132.4968,545.1719 Q8132.9968,544.75 8132.9968,544.0156 Q8132.9968,543.4531 8132.653,543.0469 Q8132.3249,542.625 8131.6999,542.375 L8130.4968,541.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="8151.5124" y="545.5137">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7803.2624" x2="8560.2624" y1="557.3594" y2="557.3594"/><ellipse cx="7813.2624" cy="568.3594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="7822.2624" y="571.5698">topic : urt_topic_t*</text><ellipse cx="7813.2624" cy="597.9688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="7822.2624" y="601.1792">publishAttempts : uint64_t</text><ellipse cx="7813.2624" cy="610.7734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="7822.2624" y="613.9839">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7803.2624" x2="8099.7624" y1="584.5664" y2="584.5664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="164" x="8099.7624" y="587.8745">URT_CFG_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8263.7624" x2="8560.2624" y1="584.5664" y2="584.5664"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7803.2624" x2="8560.2624" y1="620.5781" y2="620.5781"/><ellipse cx="7813.2624" cy="631.5781" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="617" x="7822.2624" y="634.7886">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="7813.2624" cy="644.3828" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="733" x="7822.2624" y="647.5933">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
-class urt_topic_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="248.0703" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="7364.7624" y="465.8594"/><ellipse cx="7519.5124" cy="481.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7518.9968,482.4219 Q7517.1374,481.7188 7516.4812,480.9531 Q7515.8405,480.1719 7515.8405,478.8594 Q7515.8405,477.1719 7516.9187,476.2031 Q7517.9968,475.2344 7519.8718,475.2344 Q7520.7312,475.2344 7521.5749,475.4375 Q7522.4343,475.625 7523.278,476.0156 L7523.278,478.4063 Q7522.4968,477.8438 7521.6687,477.5625 Q7520.8562,477.2656 7520.0593,477.2656 Q7519.1843,477.2656 7518.6999,477.625 Q7518.2312,477.9844 7518.2312,478.6406 Q7518.2312,479.1563 7518.5749,479.5 Q7518.9187,479.8281 7520.0124,480.2344 L7521.0749,480.6406 Q7522.5593,481.1875 7523.2624,482.0938 Q7523.9812,483 7523.9812,484.375 Q7523.9812,486.25 7522.8718,487.1719 Q7521.7624,488.0938 7519.5124,488.0938 Q7518.5905,488.0938 7517.6687,487.875 Q7516.7468,487.6563 7515.8874,487.2344 L7515.8874,484.7031 Q7516.8562,485.3906 7517.778,485.7344 Q7518.6999,486.0781 7519.5905,486.0781 Q7520.4968,486.0781 7520.9968,485.6719 Q7521.4968,485.25 7521.4968,484.5156 Q7521.4968,483.9531 7521.153,483.5469 Q7520.8249,483.125 7520.1999,482.875 L7518.9968,482.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="7540.0124" y="486.0137">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7365.7624" x2="7747.7624" y1="497.8594" y2="497.8594"/><ellipse cx="7375.7624" cy="508.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="7384.7624" y="512.0698">next : urt_topic_t*</text><ellipse cx="7375.7624" cy="521.6641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="7384.7624" y="524.8745">id : urt_topicid_t</text><ellipse cx="7375.7624" cy="534.4688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="7384.7624" y="537.6792">lock : urt_osMutex_t</text><ellipse cx="7375.7624" cy="547.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="7384.7624" y="550.4839">evtSource : urt_osEventSource_t</text><ellipse cx="7375.7624" cy="560.0781" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="7384.7624" y="563.2886">numHrtSubscribers : unsigned int</text><ellipse cx="7375.7624" cy="572.8828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="7384.7624" y="576.0933">hrtSubscribers : urt_subscriber_t*</text><ellipse cx="7375.7624" cy="585.6875" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="7384.7624" y="588.8979">hrtReleased : urt_osCondvar_t</text><ellipse cx="7375.7624" cy="598.4922" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="7384.7624" y="601.7026">mandatoryMessage : urt_message_t</text><ellipse cx="7375.7624" cy="611.2969" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="7384.7624" y="614.5073">latestMessage : urt_message_t*</text><ellipse cx="7375.7624" cy="640.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="7384.7624" y="644.1167">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7365.7624" x2="7424.2624" y1="627.5039" y2="627.5039"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="7424.2624" y="630.812">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7689.2624" x2="7747.7624" y1="627.5039" y2="627.5039"/><ellipse cx="7375.7624" cy="670.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="7384.7624" y="673.7261">numDiscardedMessages : uint64_t</text><ellipse cx="7375.7624" cy="683.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="7384.7624" y="686.5308">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7365.7624" x2="7448.2624" y1="657.1133" y2="657.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="7448.2624" y="660.4214">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7665.2624" x2="7747.7624" y1="657.1133" y2="657.1133"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7365.7624" x2="7747.7624" y1="693.125" y2="693.125"/><ellipse cx="7375.7624" cy="704.125" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="358" x="7384.7624" y="707.3354">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--MD5=[ab7cf431813e3be5d474948fd959cdbf]
-class urt_subscriber_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="312.0938" id="urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1068" x="8596.7624" y="433.8594"/><ellipse cx="9076.0124" cy="449.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9075.4968,450.4219 Q9073.6374,449.7188 9072.9812,448.9531 Q9072.3405,448.1719 9072.3405,446.8594 Q9072.3405,445.1719 9073.4187,444.2031 Q9074.4968,443.2344 9076.3718,443.2344 Q9077.2312,443.2344 9078.0749,443.4375 Q9078.9343,443.625 9079.778,444.0156 L9079.778,446.4063 Q9078.9968,445.8438 9078.1687,445.5625 Q9077.3562,445.2656 9076.5593,445.2656 Q9075.6843,445.2656 9075.1999,445.625 Q9074.7312,445.9844 9074.7312,446.6406 Q9074.7312,447.1563 9075.0749,447.5 Q9075.4187,447.8281 9076.5124,448.2344 L9077.5749,448.6406 Q9079.0593,449.1875 9079.7624,450.0938 Q9080.4812,451 9080.4812,452.375 Q9080.4812,454.25 9079.3718,455.1719 Q9078.2624,456.0938 9076.0124,456.0938 Q9075.0905,456.0938 9074.1687,455.875 Q9073.2468,455.6563 9072.3874,455.2344 L9072.3874,452.7031 Q9073.3562,453.3906 9074.278,453.7344 Q9075.1999,454.0781 9076.0905,454.0781 Q9076.9968,454.0781 9077.4968,453.6719 Q9077.9968,453.25 9077.9968,452.5156 Q9077.9968,451.9531 9077.653,451.5469 Q9077.3249,451.125 9076.6999,450.875 L9075.4968,450.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="9096.5124" y="454.0137">urt_subscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8597.7624" x2="9663.7624" y1="465.8594" y2="465.8594"/><ellipse cx="8607.7624" cy="476.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="8616.7624" y="480.0698">topic : urt_topic_t*</text><ellipse cx="8607.7624" cy="489.6641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="8616.7624" y="492.8745">evtListener : urt_osEventListener_t</text><ellipse cx="8607.7624" cy="502.4688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="8616.7624" y="505.6792">rtdata : urt_rtdata_t</text><ellipse cx="8607.7624" cy="515.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="8616.7624" y="518.4839">lastMessage : urt_message_t*</text><ellipse cx="8607.7624" cy="528.0781" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="8616.7624" y="531.2886">lastMessageTime : urt_osTime_t</text><ellipse cx="8607.7624" cy="557.6875" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="8616.7624" y="560.8979">sumLatencies : uint64_t</text><ellipse cx="8607.7624" cy="570.4922" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="8616.7624" y="573.7026">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8597.7624" x2="9022.2624" y1="544.2852" y2="544.2852"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="9022.2624" y="547.5933">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9239.2624" x2="9663.7624" y1="544.2852" y2="544.2852"/><ellipse cx="8607.7624" cy="600.1016" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="8616.7624" y="603.312">minLatency : urt_delay_t</text><ellipse cx="8607.7624" cy="612.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="8616.7624" y="616.1167">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8597.7624" x2="9022.2624" y1="586.6992" y2="586.6992"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="9022.2624" y="590.0073">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9239.2624" x2="9663.7624" y1="586.6992" y2="586.6992"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="8597.7624" x2="9663.7624" y1="622.7109" y2="622.7109"/><ellipse cx="8607.7624" cy="633.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="359" x="8616.7624" y="636.9214">urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="8607.7624" cy="646.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1042" x="8616.7624" y="649.7261">urtSubscriberSubscribeHrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="8607.7624" cy="659.3203" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1040" x="8616.7624" y="662.5308">urtSubscriberSubscribeFrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="8607.7624" cy="672.125" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1042" x="8616.7624" y="675.3354">urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t</text><ellipse cx="8607.7624" cy="684.9297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="699" x="8616.7624" y="688.1401">urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="8607.7624" cy="697.7344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="413" x="8616.7624" y="700.9448">urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="8607.7624" cy="710.5391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="752" x="8616.7624" y="713.7495">urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="8607.7624" cy="723.3438" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="762" x="8616.7624" y="726.5542">urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="8607.7624" cy="736.1484" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="537" x="8616.7624" y="739.3589">urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float</text><!--MD5=[82a1b6b26b12edcbd86fa16935c3353e]
-class urt_rtdata_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="73.6094" id="urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="9015.2624" y="839.8594"/><ellipse cx="9089.5124" cy="855.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9088.9968,856.4219 Q9087.1374,855.7188 9086.4812,854.9531 Q9085.8405,854.1719 9085.8405,852.8594 Q9085.8405,851.1719 9086.9187,850.2031 Q9087.9968,849.2344 9089.8718,849.2344 Q9090.7312,849.2344 9091.5749,849.4375 Q9092.4343,849.625 9093.278,850.0156 L9093.278,852.4063 Q9092.4968,851.8438 9091.6687,851.5625 Q9090.8562,851.2656 9090.0593,851.2656 Q9089.1843,851.2656 9088.6999,851.625 Q9088.2312,851.9844 9088.2312,852.6406 Q9088.2312,853.1563 9088.5749,853.5 Q9088.9187,853.8281 9090.0124,854.2344 L9091.0749,854.6406 Q9092.5593,855.1875 9093.2624,856.0938 Q9093.9812,857 9093.9812,858.375 Q9093.9812,860.25 9092.8718,861.1719 Q9091.7624,862.0938 9089.5124,862.0938 Q9088.5905,862.0938 9087.6687,861.875 Q9086.7468,861.6563 9085.8874,861.2344 L9085.8874,858.7031 Q9086.8562,859.3906 9087.778,859.7344 Q9088.6999,860.0781 9089.5905,860.0781 Q9090.4968,860.0781 9090.9968,859.6719 Q9091.4968,859.25 9091.4968,858.5156 Q9091.4968,857.9531 9091.153,857.5469 Q9090.8249,857.125 9090.1999,856.875 L9088.9968,856.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="9110.0124" y="860.0137">urt_rtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9016.2624" x2="9245.2624" y1="871.8594" y2="871.8594"/><ellipse cx="9026.2624" cy="882.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="9035.2624" y="886.0698">class : urt_rtconstraintclass_t</text><ellipse cx="9026.2624" cy="895.6641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="205" x="9035.2624" y="898.8745">params : urt_rtconstraintsparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9016.2624" x2="9245.2624" y1="905.4688" y2="905.4688"/><!--MD5=[4bd59d3bc50b317c5523bafe6b73a042]
-class urt_rtclass_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="99.2188" id="urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="8988.2624" y="1007.8594"/><ellipse cx="9023.0624" cy="1023.8594" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9027.1718,1029.8594 L9019.453,1029.8594 L9019.453,1017.4688 L9027.1718,1017.4688 L9027.1718,1019.625 L9021.9061,1019.625 L9021.9061,1022.2969 L9026.6718,1022.2969 L9026.6718,1024.4531 L9021.9061,1024.4531 L9021.9061,1027.7031 L9027.1718,1027.7031 L9027.1718,1029.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="9041.4624" y="1028.0137">urt_rtclass_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8989.2624" x2="9140.2624" y1="1039.8594" y2="1039.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="8994.2624" y="1054.0698">URT_RTCLASS_HARD = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="8994.2624" y="1066.8745">URT_RTCLASS_FIRM = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="8994.2624" y="1079.6792">URT_RTCLASS_SOFT = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="8994.2624" y="1092.4839">URT_RTCLASS_NONE = 3</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8989.2624" x2="9140.2624" y1="1099.0781" y2="1099.0781"/><!--MD5=[7b207cc31d63d27c526f257c1fda2512]
-class urt_rtclassdata_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="99.2188" id="urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="9176.7624" y="1007.8594"/><ellipse cx="9195.3624" cy="1023.8594" fill="#7FCF7F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9191.2374,1025.7813 L9191.2374,1017.9688 L9193.6905,1017.9688 L9193.6905,1026.4063 Q9193.6905,1027.3281 9194.1593,1027.8594 Q9194.6437,1028.3906 9195.4718,1028.3906 Q9196.3155,1028.3906 9196.7843,1027.8594 Q9197.253,1027.3281 9197.253,1026.4063 L9197.253,1017.9688 L9199.7062,1017.9688 L9199.7062,1025.7813 Q9199.7062,1028.3125 9198.7062,1029.4531 Q9197.7062,1030.5938 9195.4718,1030.5938 Q9193.253,1030.5938 9192.2374,1029.4531 Q9191.2374,1028.3125 9191.2374,1025.7813 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="9210.1624" y="1028.0137">urt_rtclassdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9177.7624" x2="9321.7624" y1="1039.8594" y2="1039.8594"/><ellipse cx="9187.7624" cy="1050.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="9196.7624" y="1054.0698">hrt : urt_hrtparams_t</text><ellipse cx="9187.7624" cy="1063.6641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="9196.7624" y="1066.8745">frt : urt_frtparams_t</text><ellipse cx="9187.7624" cy="1076.4688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="9196.7624" y="1079.6792">srt : urt_srtparans_t</text><ellipse cx="9187.7624" cy="1089.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="9196.7624" y="1092.4839">nrt : urt_nrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9177.7624" x2="9321.7624" y1="1099.0781" y2="1099.0781"/><!--MD5=[c57ade65ef97beb73587233399d5250a]
-class urt_hrtdata_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="180.0469" id="urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="512" x="9281.7624" y="1252.8594"/><ellipse cx="9492.5124" cy="1268.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9491.9968,1269.4219 Q9490.1374,1268.7188 9489.4812,1267.9531 Q9488.8405,1267.1719 9488.8405,1265.8594 Q9488.8405,1264.1719 9489.9187,1263.2031 Q9490.9968,1262.2344 9492.8718,1262.2344 Q9493.7312,1262.2344 9494.5749,1262.4375 Q9495.4343,1262.625 9496.278,1263.0156 L9496.278,1265.4063 Q9495.4968,1264.8438 9494.6687,1264.5625 Q9493.8562,1264.2656 9493.0593,1264.2656 Q9492.1843,1264.2656 9491.6999,1264.625 Q9491.2312,1264.9844 9491.2312,1265.6406 Q9491.2312,1266.1563 9491.5749,1266.5 Q9491.9187,1266.8281 9493.0124,1267.2344 L9494.0749,1267.6406 Q9495.5593,1268.1875 9496.2624,1269.0938 Q9496.9812,1270 9496.9812,1271.375 Q9496.9812,1273.25 9495.8718,1274.1719 Q9494.7624,1275.0938 9492.5124,1275.0938 Q9491.5905,1275.0938 9490.6687,1274.875 Q9489.7468,1274.6563 9488.8874,1274.2344 L9488.8874,1271.7031 Q9489.8562,1272.3906 9490.778,1272.7344 Q9491.6999,1273.0781 9492.5905,1273.0781 Q9493.4968,1273.0781 9493.9968,1272.6719 Q9494.4968,1272.25 9494.4968,1271.5156 Q9494.4968,1270.9531 9494.153,1270.5469 Q9493.8249,1270.125 9493.1999,1269.875 L9491.9968,1269.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="9513.0124" y="1273.0137">urt_hrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9282.7624" x2="9792.7624" y1="1284.8594" y2="1284.8594"/><ellipse cx="9292.7624" cy="1295.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="9301.7624" y="1299.0698">next : urt_subscriber_t*</text><ellipse cx="9292.7624" cy="1325.4688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="9301.7624" y="1328.6792">qosDeadlineTimer : urt_osTimer_t</text><ellipse cx="9292.7624" cy="1338.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="9301.7624" y="1341.4839">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9282.7624" x2="9392.2624" y1="1312.0664" y2="1312.0664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="9392.2624" y="1315.3745">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9683.2624" x2="9792.7624" y1="1312.0664" y2="1312.0664"/><ellipse cx="9292.7624" cy="1367.8828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="9301.7624" y="1371.0933">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9282.7624" x2="9405.2624" y1="1354.4805" y2="1354.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="9405.2624" y="1357.7886">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9670.2624" x2="9792.7624" y1="1354.4805" y2="1354.4805"/><ellipse cx="9292.7624" cy="1397.4922" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="9301.7624" y="1400.7026">maxJitter : urt_delay_t</text><ellipse cx="9292.7624" cy="1410.2969" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="9301.7624" y="1413.5073">minLatency : urt_delay_t</text><ellipse cx="9292.7624" cy="1423.1016" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="9301.7624" y="1426.312">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9282.7624" x2="9285.7624" y1="1384.0898" y2="1384.0898"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="9285.7624" y="1387.3979">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9789.7624" x2="9792.7624" y1="1384.0898" y2="1384.0898"/><!--MD5=[72774668522d2286013bfbc0db723956]
-class urt_frtdata_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="154.4375" id="urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="512" x="8585.7624" y="1265.8594"/><ellipse cx="8798.5124" cy="1281.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M8797.9968,1282.4219 Q8796.1374,1281.7188 8795.4812,1280.9531 Q8794.8405,1280.1719 8794.8405,1278.8594 Q8794.8405,1277.1719 8795.9187,1276.2031 Q8796.9968,1275.2344 8798.8718,1275.2344 Q8799.7312,1275.2344 8800.5749,1275.4375 Q8801.4343,1275.625 8802.278,1276.0156 L8802.278,1278.4063 Q8801.4968,1277.8438 8800.6687,1277.5625 Q8799.8562,1277.2656 8799.0593,1277.2656 Q8798.1843,1277.2656 8797.6999,1277.625 Q8797.2312,1277.9844 8797.2312,1278.6406 Q8797.2312,1279.1563 8797.5749,1279.5 Q8797.9187,1279.8281 8799.0124,1280.2344 L8800.0749,1280.6406 Q8801.5593,1281.1875 8802.2624,1282.0938 Q8802.9812,1283 8802.9812,1284.375 Q8802.9812,1286.25 8801.8718,1287.1719 Q8800.7624,1288.0938 8798.5124,1288.0938 Q8797.5905,1288.0938 8796.6687,1287.875 Q8795.7468,1287.6563 8794.8874,1287.2344 L8794.8874,1284.7031 Q8795.8562,1285.3906 8796.778,1285.7344 Q8797.6999,1286.0781 8798.5905,1286.0781 Q8799.4968,1286.0781 8799.9968,1285.6719 Q8800.4968,1285.25 8800.4968,1284.5156 Q8800.4968,1283.9531 8800.153,1283.5469 Q8799.8249,1283.125 8799.1999,1282.875 L8797.9968,1282.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="78" x="8819.0124" y="1286.0137">urt_frtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8586.7624" x2="9096.7624" y1="1297.8594" y2="1297.8594"/><ellipse cx="8596.7624" cy="1325.6641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="8605.7624" y="1328.8745">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8586.7624" x2="8696.2624" y1="1312.2617" y2="1312.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="8696.2624" y="1315.5698">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8987.2624" x2="9096.7624" y1="1312.2617" y2="1312.2617"/><ellipse cx="8596.7624" cy="1355.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="8605.7624" y="1358.4839">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8586.7624" x2="8709.2624" y1="1341.8711" y2="1341.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="8709.2624" y="1345.1792">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8974.2624" x2="9096.7624" y1="1341.8711" y2="1341.8711"/><ellipse cx="8596.7624" cy="1384.8828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="8605.7624" y="1388.0933">maxJitter : urt_delay_t</text><ellipse cx="8596.7624" cy="1397.6875" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="8605.7624" y="1400.8979">minLatency : urt_delay_t</text><ellipse cx="8596.7624" cy="1410.4922" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="8605.7624" y="1413.7026">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8586.7624" x2="8589.7624" y1="1371.4805" y2="1371.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="8589.7624" y="1374.7886">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9093.7624" x2="9096.7624" y1="1371.4805" y2="1371.4805"/><!--MD5=[ca63c4d42025d7ce195746a6a8d32f3e]
-class urt_nrtdata_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="48" id="urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="9132.7624" y="1318.8594"/><ellipse cx="9147.7624" cy="1334.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9147.2468,1335.4219 Q9145.3874,1334.7188 9144.7312,1333.9531 Q9144.0905,1333.1719 9144.0905,1331.8594 Q9144.0905,1330.1719 9145.1687,1329.2031 Q9146.2468,1328.2344 9148.1218,1328.2344 Q9148.9812,1328.2344 9149.8249,1328.4375 Q9150.6843,1328.625 9151.528,1329.0156 L9151.528,1331.4063 Q9150.7468,1330.8438 9149.9187,1330.5625 Q9149.1062,1330.2656 9148.3093,1330.2656 Q9147.4343,1330.2656 9146.9499,1330.625 Q9146.4812,1330.9844 9146.4812,1331.6406 Q9146.4812,1332.1563 9146.8249,1332.5 Q9147.1687,1332.8281 9148.2624,1333.2344 L9149.3249,1333.6406 Q9150.8093,1334.1875 9151.5124,1335.0938 Q9152.2312,1336 9152.2312,1337.375 Q9152.2312,1339.25 9151.1218,1340.1719 Q9150.0124,1341.0938 9147.7624,1341.0938 Q9146.8405,1341.0938 9145.9187,1340.875 Q9144.9968,1340.6563 9144.1374,1340.2344 L9144.1374,1337.7031 Q9145.1062,1338.3906 9146.028,1338.7344 Q9146.9499,1339.0781 9147.8405,1339.0781 Q9148.7468,1339.0781 9149.2468,1338.6719 Q9149.7468,1338.25 9149.7468,1337.5156 Q9149.7468,1336.9531 9149.403,1336.5469 Q9149.0749,1336.125 9148.4499,1335.875 L9147.2468,1335.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="9161.7624" y="1339.0137">urt_nrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9133.7624" x2="9245.7624" y1="1350.8594" y2="1350.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="9133.7624" x2="9245.7624" y1="1358.8594" y2="1358.8594"/><!--MD5=[fc7708c915a0148c667d62e1370980fd]
-class urt_srtusefulnessfunc_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="60.8047" id="urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="9809.7624" y="1620.3594"/><ellipse cx="9919.0124" cy="1636.3594" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9923.2468,1632.125 L9917.9655,1632.125 L9917.9655,1634.7969 L9922.7624,1634.7969 L9922.7624,1636.9531 L9917.9655,1636.9531 L9917.9655,1642.3594 L9915.528,1642.3594 L9915.528,1629.9688 L9923.2468,1629.9688 L9923.2468,1632.125 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="9939.5124" y="1640.5137">urt_srtusefulnessfunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9810.7624" x2="10182.7624" y1="1652.3594" y2="1652.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="9810.7624" x2="10182.7624" y1="1660.3594" y2="1660.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="362" x="9815.7624" y="1674.5698">urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float</text><!--MD5=[4a2daf41193a31389d6311337c2a120f]
-class urt_srtdata_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="73.6094" id="urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="9847.7624" y="1305.8594"/><ellipse cx="9932.0124" cy="1321.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9931.4968,1322.4219 Q9929.6374,1321.7188 9928.9812,1320.9531 Q9928.3405,1320.1719 9928.3405,1318.8594 Q9928.3405,1317.1719 9929.4187,1316.2031 Q9930.4968,1315.2344 9932.3718,1315.2344 Q9933.2312,1315.2344 9934.0749,1315.4375 Q9934.9343,1315.625 9935.778,1316.0156 L9935.778,1318.4063 Q9934.9968,1317.8438 9934.1687,1317.5625 Q9933.3562,1317.2656 9932.5593,1317.2656 Q9931.6843,1317.2656 9931.1999,1317.625 Q9930.7312,1317.9844 9930.7312,1318.6406 Q9930.7312,1319.1563 9931.0749,1319.5 Q9931.4187,1319.8281 9932.5124,1320.2344 L9933.5749,1320.6406 Q9935.0593,1321.1875 9935.7624,1322.0938 Q9936.4812,1323 9936.4812,1324.375 Q9936.4812,1326.25 9935.3718,1327.1719 Q9934.2624,1328.0938 9932.0124,1328.0938 Q9931.0905,1328.0938 9930.1687,1327.875 Q9929.2468,1327.6563 9928.3874,1327.2344 L9928.3874,1324.7031 Q9929.3562,1325.3906 9930.278,1325.7344 Q9931.1999,1326.0781 9932.0905,1326.0781 Q9932.9968,1326.0781 9933.4968,1325.6719 Q9933.9968,1325.25 9933.9968,1324.5156 Q9933.9968,1323.9531 9933.653,1323.5469 Q9933.3249,1323.125 9932.6999,1322.875 L9931.4968,1322.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="9952.5124" y="1326.0137">urt_srtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9848.7624" x2="10104.7624" y1="1337.8594" y2="1337.8594"/><ellipse cx="9858.7624" cy="1348.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="232" x="9867.7624" y="1352.0698">usefullnesscb : urt_srtusefulnessfunc_t*</text><ellipse cx="9858.7624" cy="1361.6641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="9867.7624" y="1364.8745">cbparams : void*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9848.7624" x2="10104.7624" y1="1371.4688" y2="1371.4688"/><!--MD5=[3226071078d8aeaa18fbafa5359ddee6]
-class urt_servicefunc_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="60.8047" id="urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="11388.2624" y="846.3594"/><ellipse cx="11556.5124" cy="862.3594" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M11560.7468,858.125 L11555.4655,858.125 L11555.4655,860.7969 L11560.2624,860.7969 L11560.2624,862.9531 L11555.4655,862.9531 L11555.4655,868.3594 L11553.028,868.3594 L11553.028,855.9688 L11560.7468,855.9688 L11560.7468,858.125 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="11577.0124" y="866.5137">urt_servicefunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="11389.2624" x2="11838.2624" y1="878.3594" y2="878.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="11389.2624" x2="11838.2624" y1="886.3594" y2="886.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="439" x="11394.2624" y="900.5698">urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
-class urt_service_t--><rect fill="#FEFECE" filter="url(#fhythnghqj5dw)" height="222.4609" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="602" x="11388.7624" y="478.8594"/><ellipse cx="11646.0124" cy="494.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M11645.4968,495.4219 Q11643.6374,494.7188 11642.9812,493.9531 Q11642.3405,493.1719 11642.3405,491.8594 Q11642.3405,490.1719 11643.4187,489.2031 Q11644.4968,488.2344 11646.3718,488.2344 Q11647.2312,488.2344 11648.0749,488.4375 Q11648.9343,488.625 11649.778,489.0156 L11649.778,491.4063 Q11648.9968,490.8438 11648.1687,490.5625 Q11647.3562,490.2656 11646.5593,490.2656 Q11645.6843,490.2656 11645.1999,490.625 Q11644.7312,490.9844 11644.7312,491.6406 Q11644.7312,492.1563 11645.0749,492.5 Q11645.4187,492.8281 11646.5124,493.2344 L11647.5749,493.6406 Q11649.0593,494.1875 11649.7624,495.0938 Q11650.4812,496 11650.4812,497.375 Q11650.4812,499.25 11649.3718,500.1719 Q11648.2624,501.0938 11646.0124,501.0938 Q11645.0905,501.0938 11644.1687,500.875 Q11643.2468,500.6563 11642.3874,500.2344 L11642.3874,497.7031 Q11643.3562,498.3906 11644.278,498.7344 Q11645.1999,499.0781 11646.0905,499.0781 Q11646.9968,499.0781 11647.4968,498.6719 Q11647.9968,498.25 11647.9968,497.5156 Q11647.9968,496.9531 11647.653,496.5469 Q11647.3249,496.125 11646.6999,495.875 L11645.4968,495.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="11666.5124" y="499.0137">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="11389.7624" x2="11989.7624" y1="510.8594" y2="510.8594"/><ellipse cx="11399.7624" cy="521.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="11408.7624" y="525.0698">next : urt_service_t*</text><ellipse cx="11399.7624" cy="534.6641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="11408.7624" y="537.8745">id : urt_serviceid_t</text><ellipse cx="11399.7624" cy="547.4688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="11408.7624" y="550.6792">lock : urt_osMutex_t</text><ellipse cx="11399.7624" cy="560.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="11408.7624" y="563.4839">callback : urt_servicefunc_t*</text><ellipse cx="11399.7624" cy="589.8828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="11408.7624" y="593.0933">sumDurations : uint64_t</text><ellipse cx="11399.7624" cy="602.6875" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="11408.7624" y="605.8979">numCalls : uint64_t</text><ellipse cx="11399.7624" cy="615.4922" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="11408.7624" y="618.7026">numTimeouts : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="11389.7624" x2="11595.2624" y1="576.4805" y2="576.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="11595.2624" y="579.7886">URT_CFG_RPC_PROFLING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="11784.2624" x2="11989.7624" y1="576.4805" y2="576.4805"/><ellipse cx="11399.7624" cy="645.1016" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="11408.7624" y="648.312">minDuration : urt_delay_t</text><ellipse cx="11399.7624" cy="657.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="11408.7624" y="661.1167">maxDuration : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="11389.7624" x2="11462.7624" y1="631.6992" y2="631.6992"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="11462.7624" y="635.0073">URT_CFG_RPC_PROFILING == true || URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="11916.7624" x2="11989.7624" y1="631.6992" y2="631.6992"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="11389.7624" x2="11989.7624" y1="667.7109" y2="667.7109"/><ellipse cx="11399.7624" cy="678.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="576" x="11408.7624" y="681.9214">urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t</text><ellipse cx="11399.7624" cy="691.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="557" x="11408.7624" y="694.7261">urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[5fff9a13948f7f5b5e6ca18c1c7a9716]
-link urt_nodestage_t to urt_config--><path d="M6793.2742,1730.1818 C6810.3857,1747.9219 6828.8977,1767.1139 6847.1738,1786.0614 " fill="none" id="urt_nodestage_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6850.8254,1789.8471,6847.4565,1780.5923,6847.3543,1786.2483,6841.6984,1786.1461,6850.8254,1789.8471" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7db439499cb1afd557b9be4c8c52b2ba]
-link urt_topicid_t to urt_config--><path d="M6357.5807,1728.3363 C6363.2665,1731.758 6369.0134,1734.9633 6374.7624,1737.8594 C6514.8764,1808.4428 6689.2887,1853.245 6811.4464,1878.4761 " fill="none" id="urt_topicid_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6816.4959,1879.514,6808.4857,1873.7836,6811.5983,1878.5071,6806.8748,1881.6197,6816.4959,1879.514" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e851a4e79ca88682282ceaaad2100c63]
-link urt_serviceid_t to urt_config--><path d="M6961.7624,1730.1818 C6961.7624,1747.4784 6961.7624,1766.1552 6961.7624,1784.6399 " fill="none" id="urt_serviceid_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6961.7624,1789.8471,6965.7624,1780.8471,6961.7624,1784.8471,6957.7624,1780.8471,6961.7624,1789.8471" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[844001065b3bef53527c5dd4ba0c22e5]
-link urt_delay_t to urt_config--><path d="M6539.339,1700.4045 C6555.6566,1713.4588 6573.8943,1726.9338 6591.7624,1737.8594 C6660.9024,1780.1353 6742.582,1818.1266 6811.5864,1847.1527 " fill="none" id="urt_delay_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6816.5324,1849.2271,6809.7796,1842.0577,6811.9215,1847.2934,6806.6857,1849.4352,6816.5324,1849.2271" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7766572fa0c619a5409829048dc0b6d6]
-link urt_osCondvar_t to urt_osCondvarWaitStatus_t--><path d="M5360.7624,1392.6872 C5360.7624,1450.5308 5360.7624,1545.2868 5360.7624,1602.4978 " fill="none" id="urt_osCondvar_t-&gt;urt_osCondvarWaitStatus_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="5360.7624,1607.5732,5364.7624,1598.5732,5360.7624,1602.5732,5356.7624,1598.5732,5360.7624,1607.5732" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9b2507ea88616aeae65e3c4d63560016]
-link urt_osCondvar_t to urt_osMutex_t--><path d="M5310.1437,1293.3481 C5240.2882,1229.9649 5107.2411,1126.4276 4969.2624,1110.8594 C4942.1429,1107.7995 1066.382,1107.7995 1039.2624,1110.8594 C951.0478,1120.8127 897.9434,1222.6974 872.6871,1288.0978 " fill="none" id="urt_osCondvar_t-&gt;urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="870.7697,1293.1327,877.7108,1286.1455,872.5492,1288.46,870.2346,1283.2984,870.7697,1293.1327" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[83094e108045c8f9585007cdb3b7cb2e]
-link urt_osTimer_t to urt_osTimerCallback_t--><path d="M4579.7624,1398.9932 C4579.7624,1461.7318 4579.7624,1561.4721 4579.7624,1614.6616 " fill="none" id="urt_osTimer_t-&gt;urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="4579.7624,1619.9737,4583.7624,1610.9737,4579.7624,1614.9737,4575.7624,1610.9737,4579.7624,1619.9737" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8d8c3240b5b2b5edf6544088e583ffa5]
-link urt_osThread_t to urt_osThreadPrio_t--><path d="M3808.124,1512.1767 C3805.2877,1532.4924 3802.5016,1552.449 3799.9656,1570.6135 " fill="none" id="urt_osThread_t-&gt;urt_osThreadPrio_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3799.2572,1575.688,3804.4633,1567.3276,3799.9486,1570.736,3796.5402,1566.2213,3799.2572,1575.688" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[d7d1d43fd970fb07a484642bc19fcb13]
-link urt_osThread_t to urt_osThreadFunction_t--><path d="M3551.6491,1463.7886 C3504.0228,1487.2895 3455.7694,1513.0211 3411.7624,1539.8594 C3374.2612,1562.73 3334.9809,1593.5348 3306.9364,1616.8902 " fill="none" id="urt_osThread_t-&gt;urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3302.8818,1620.2802,3312.3521,1617.5759,3306.7177,1617.073,3307.2206,1611.4385,3302.8818,1620.2802" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6564761b32ad7eeb5abb8896c72cfca5]
-link urt_osThread_t to urt_osThreadTerminateSignal_t--><path d="M3948.3055,1512.1767 C3973.2268,1548.3831 3997.363,1583.4489 4015.1305,1609.262 " fill="none" id="urt_osThread_t-&gt;urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="4018.1491,1613.6475,4016.3411,1603.966,4015.3142,1609.5288,4009.7513,1608.5019,4018.1491,1613.6475" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[92ba23225d8de8f8080583fedda5e6f8]
-link urt_osThread_t to urt_osThreadState_t--><path d="M3672.3403,1512.1767 C3650.6238,1535.2412 3629.3431,1557.8428 3610.4726,1577.8845 " fill="none" id="urt_osThread_t-&gt;urt_osThreadState_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3606.7312,1581.8581,3615.8131,1578.0476,3610.1588,1578.2178,3609.9886,1572.5635,3606.7312,1581.8581" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[78b286ab2177e5f7b31e6e832d821818]
-link urt_osThread_t to urt_osTime_t--><path d="M3551.4946,1224.9424 C3418.8912,1176.5876 3256.7309,1127.9497 3105.2624,1110.8594 C3060.5738,1105.8171 1530.9511,1105.8171 1486.2624,1110.8594 C1384.7005,1122.3187 1310.7769,1230.5523 1275.3152,1295.0613 " fill="none" id="urt_osThread_t-&gt;urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1272.8286,1299.6284,1280.6452,1293.6366,1275.2194,1295.237,1273.619,1289.8113,1272.8286,1299.6284" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[659af6ab57e6a38ebfd5c07c5616787c]
-link urt_osEventListener_t to urt_osEventFlags_t--><path d="M2310.7624,1693.947 C2310.7624,1745.6304 2310.7624,1830.8733 2310.7624,1875.518 " fill="none" id="urt_osEventListener_t-&gt;urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2310.7624,1880.7562,2314.7624,1871.7562,2310.7624,1875.7562,2306.7624,1871.7562,2310.7624,1880.7562" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[eac11679f26c499aa1c571e1f795945d]
-link urt_osEventSource_t to urt_osEventFlags_t--><path d="M1835.9071,1687.9291 C1949.6905,1739.9092 2153.835,1833.1695 2253.2333,1878.5781 " fill="none" id="urt_osEventSource_t-&gt;urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2257.8866,1880.7039,2251.3625,1873.3258,2253.3387,1878.6262,2248.0383,1880.6024,2257.8866,1880.7039" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0259cdb10c6c32168d1d17d25519d939]
-link urt_events to urt_osEventSource_t--><path d="M2564.1398,1385.8685 C2474.3749,1423.8985 2336.8017,1478.3908 2212.7624,1511.8594 C2140.5259,1531.3504 2118.967,1520.2501 2046.7624,1539.8594 C1977.0202,1558.8 1900.7671,1588.0974 1843.6775,1611.8378 " fill="none" id="urt_events-&gt;urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1838.9087,1613.8265,1848.7549,1614.0544,1843.5235,1611.9021,1845.6759,1606.6707,1838.9087,1613.8265" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0ce043e0e9532fc393f3f8836f5de19a]
-link urt_events to urt_osEventListener_t--><path d="M2612.5878,1386.0098 C2547.0099,1443.554 2431.372,1545.0254 2363.8632,1604.2639 " fill="none" id="urt_events-&gt;urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2359.8868,1607.7531,2369.2899,1604.8236,2363.645,1604.4553,2364.0134,1598.8104,2359.8868,1607.7531" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[430bebba9cd89d3ba8f63b2078968bca]
-link urt_events to urt_osEventMask_t--><path d="M2704.4925,1386.0098 C2765.6139,1447.7324 2876.7812,1559.9931 2932.7052,1616.4672 " fill="none" id="urt_events-&gt;urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2936.3079,1620.1053,2932.8174,1610.8957,2932.7897,1616.5525,2927.1329,1616.5248,2936.3079,1620.1053" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b1b185abc2161e087cab32ae7fdb2c40]
-link urt_events to urt_osEventFlags_t--><path d="M2650.2222,1386.1156 C2639.7905,1425.9151 2624.3402,1486.6533 2612.7624,1539.8594 C2593.7275,1627.3356 2626.0601,1663.8015 2575.7624,1737.8594 C2529.0866,1806.5847 2443.7473,1852.7573 2382.5122,1878.8197 " fill="none" id="urt_events-&gt;urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2377.7765,1880.8158,2387.6235,1881.006,2382.3839,1878.8737,2384.5162,1873.6341,2377.7765,1880.8158" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[706a1974d1b474cbba7e7b0213f243a1]
-link urt_events to urt_osEventWait_t--><path d="M2668.6273,1386.0098 C2677.6781,1442.9005 2693.5595,1542.7263 2703.0259,1602.2294 " fill="none" id="urt_events-&gt;urt_osEventWait_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2703.8651,1607.5046,2706.4011,1597.9878,2703.0794,1602.5667,2698.5005,1599.245,2703.8651,1607.5046" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[5f656ccbf337bb70e2692ec6599b22aa]
-link urt_osCondvar_t to urt_delay_t--><path d="M5465.5674,1392.5021 C5555.6705,1432.5889 5690.2435,1486.374 5813.7624,1511.8594 C5936.0093,1537.0824 6261.0183,1488.4516 6374.7624,1539.8594 C6402.3257,1552.3169 6426.52,1575.2611 6444.9835,1597.0696 " fill="none" id="urt_osCondvar_t-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6448.3639,1601.1257,6445.6747,1591.6511,6445.1628,1597.2847,6439.5291,1596.7728,6448.3639,1601.1257" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2da0e339f7ca878d257c4a5336e8cad5]
-link urt_osThread_t to urt_delay_t--><path d="M4111.8614,1493.5658 C4132.1109,1500.7506 4152.5284,1506.9845 4172.7624,1511.8594 C4291.7025,1540.5149 6262.3602,1491.5521 6374.7624,1539.8594 C6402.7849,1551.9027 6427.1793,1575.0684 6445.6584,1597.1345 " fill="none" id="urt_osThread_t-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6449.0396,1601.239,6446.4045,1591.7492,6445.8605,1597.3798,6440.2298,1596.8358,6449.0396,1601.239" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[4dd831efde278dc905a11b75839a39d0]
-link urt_osThread_t to urt_status_t--><path d="M4111.8441,1493.638 C4132.0977,1500.8054 4152.5209,1507.0158 4172.7624,1511.8594 C4329.9436,1549.4713 6933.3259,1475.9285 7081.7624,1539.8594 C7114.878,1554.1221 7142.7696,1584.1091 7161.7656,1609.323 " fill="none" id="urt_osThread_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7164.9724,1613.6471,7162.8242,1604.0354,7161.994,1609.631,7156.3984,1608.8008,7164.9724,1613.6471" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8bf77663ad208115c32fd5300d37f092]
-link urt_osTimer_t to urt_delay_t--><path d="M4685.0481,1399.0186 C4765.8776,1438.934 4881.608,1489.3048 4989.7624,1511.8594 C5140.4412,1543.2821 6233.5777,1478.554 6374.7624,1539.8594 C6402.7396,1552.0077 6427.1287,1575.1853 6445.6162,1597.2322 " fill="none" id="urt_osTimer_t-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6448.9991,1601.3327,6446.357,1591.8448,6445.8171,1597.4759,6440.1861,1596.936,6448.9991,1601.3327" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[97e66fd6906ece822f393f9bfe719297]
-link urt_osTimer_t to urt_status_t--><path d="M4684.5818,1399.0236 C4765.4072,1439.083 4881.343,1489.6356 4989.7624,1511.8594 C5103.6276,1535.1995 6975.0967,1493.6811 7081.7624,1539.8594 C7114.8511,1554.1843 7142.7441,1584.168 7161.7475,1609.3649 " fill="none" id="urt_osTimer_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7164.9557,1613.6859,7162.802,1604.0754,7161.975,1609.6715,7156.3789,1608.8445,7164.9557,1613.6859" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a4e2abbbace7909006fa5f13364d6021]
-link urt_events to urt_delay_t--><path d="M2751.6297,1386.0313 C2843.2765,1427.5313 2990.7811,1487.4428 3125.7624,1511.8594 C3214.5745,1527.9245 6291.7698,1504.3927 6374.7624,1539.8594 C6402.8095,1551.8452 6427.2067,1575.0044 6445.6813,1597.0811 " fill="none" id="urt_events-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6449.0616,1601.1877,6446.4303,1591.6968,6445.884,1597.3272,6440.2536,1596.7809,6449.0616,1601.1877" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0549e7b45a7543f4046fb7eaa1b75598]
-link urt_events to urt_status_t--><path d="M2751.1926,1385.8806 C2842.8014,1427.4219 2990.5514,1487.5087 3125.7624,1511.8594 C3233.9142,1531.3369 6980.7786,1496.5185 7081.7624,1539.8594 C7114.8961,1554.0799 7142.7867,1584.0691 7161.7778,1609.2946 " fill="none" id="urt_events-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7164.9838,1613.6207,7162.8389,1604.0082,7162.0068,1609.6035,7156.4115,1608.7714,7164.9838,1613.6207" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[182342162f0b9b45ddce11acc6582c59]
-reverse link urt_node_t to urt_node_t--><path d="M11348.1812,563.4244 C11362.6515,570.7541 11370.7624,579.5658 11370.7624,589.8594 C11370.7624,602.7769 11357.9895,613.3606 11335.9051,621.6107 " fill="none" id="urt_node_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="11335.9051,558.1081,11339.8214,564.163,11346.9169,562.8768,11343.0006,556.8219,11335.9051,558.1081" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="11343.7259" y="554.6236">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="11343.8384" y="619.0192">0..1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
-reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M10881.3571,686.757 C10942.8663,742.4211 11019.0849,808.5799 11065.9823,846.3514 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="10871.6183,677.9193,10873.3734,684.9135,10880.5047,685.9835,10878.7496,678.9892,10871.6183,677.9193" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="10870.5626" y="697.9033">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="11047.7492" y="835.1399">1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
-reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M10899.9813,681.2948 C10966.1045,738.0341 11043.2627,807.3364 11082.932,846.3514 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t-1" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="10896.0433,677.9193,10900.2734,686.8134,10899.8396,681.1733,10905.4798,680.7394,10896.0433,677.9193" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b913f036db99e36b937989146817bd94]
-reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M10688.0035,687.789 C10639.1892,743.2367 10584.5186,808.8131 10556.5732,846.3514 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="10696.7258,677.9193,10689.7553,679.7664,10688.7794,686.9112,10695.7499,685.064,10696.7258,677.9193" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="10681.1868" y="697.9033">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="10551.5943" y="835.1399">1</text><!--MD5=[b913f036db99e36b937989146817bd94]
-reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M10717.8277,681.9736 C10671.3386,738.5859 10611.1889,807.4919 10573.5229,846.3514 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t-1" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="10721.1508,677.9193,10712.3519,682.344,10717.9811,681.7862,10718.539,687.4155,10721.1508,677.9193" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0c465c1a61dfd99ff8b5568ca35c92d1]
-reverse link urt_srtdata_t to urt_srtusefulnessfunc_t--><path d="M9980.019,1393.011 C9984.1949,1457.3196 9991.3084,1566.8665 9994.7624,1620.0592 " fill="none" id="urt_srtdata_t&lt;-urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="9979.1749,1380.0114,9975.5721,1386.258,9979.9525,1391.9862,9983.5553,1385.7396,9979.1749,1380.0114" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9970.912" y="1399.5171">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="9967.8749" y="1609.2605">0..1</text><!--MD5=[3f22cd2af9b1d30da63b75b4db75ae6e]
-reverse link urt_rtclassdata_t to urt_hrtdata_t--><path d="M9309.2131,1116.294 C9348.9295,1155.6656 9401.9328,1208.2088 9446.8969,1252.7826 " fill="none" id="urt_rtclassdata_t&lt;-urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="9299.9282,1107.0897,9301.3732,1114.1545,9308.4504,1115.5379,9307.0054,1108.4731,9299.9282,1107.0897" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9298.4203" y="1127.1985">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="9414.3784" y="1241.7724">0..1</text><!--MD5=[a94a8c9c209e194384613684e912df80]
-reverse link urt_rtclassdata_t to urt_frtdata_t--><path d="M9164.6226,1104.6787 C9162.6639,1105.44 9160.7089,1106.1685 9158.7624,1106.8594 C9140.4431,1113.3616 9133.3584,1106.5975 9115.7624,1114.8594 C9038.3191,1151.2219 8964.6106,1214.8045 8913.1888,1265.6025 " fill="none" id="urt_rtclassdata_t&lt;-urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="9176.6629,1099.6292,9169.5828,1098.2609,9165.5967,1104.2701,9172.6768,1105.6384,9176.6629,1099.6292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9160.712" y="1100.2773">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="8894.6672" y="1254.8418">0..1</text><!--MD5=[e6a6d7a2212fadf5661857a71d4f05c3]
-reverse link urt_rtclassdata_t to urt_srtdata_t--><path d="M9336.1201,1061.3858 C9490.5845,1069.2198 9802.0094,1088.1199 9843.7624,1114.8594 C9913.0322,1159.2211 9950.5503,1253.4668 9966.7876,1305.832 " fill="none" id="urt_rtclassdata_t&lt;-urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="9323.0248,1060.7291,9328.8169,1065.0246,9335.0097,1061.3303,9329.2177,1057.0347,9323.0248,1060.7291" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9330.9925" y="1057.3656">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="9938.736" y="1294.7374">0..1</text><!--MD5=[206fe31eaf8244c7272230bb0ec7137c]
-reverse link urt_rtclassdata_t to urt_nrtdata_t--><path d="M9236.6141,1119.9238 C9223.4934,1182.3564 9204.0075,1275.0767 9194.857,1318.6179 " fill="none" id="urt_rtclassdata_t&lt;-urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="9239.3112,1107.0897,9234.1627,1112.1387,9236.8432,1118.8331,9241.9917,1113.7841,9239.3112,1107.0897" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9229.279" y="1127.1985">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="9169.1738" y="1307.964">0..1</text><!--MD5=[1ba55993ff077c77667f6c7be6552d53]
-reverse link urt_rtdata_t to urt_rtclass_t--><path d="M9112.5926,926.5512 C9103.357,951.8091 9092.1648,982.4182 9082.9296,1007.675 " fill="none" id="urt_rtdata_t&lt;-urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="9117.0872,914.2591,9111.27,918.5205,9112.9662,925.5293,9118.7834,921.2678,9117.0872,914.2591" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9106.2702" y="933.5236">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9076.9219" y="996.6943">1</text><!--MD5=[8318054091d2ecf2336b9e490f482e2a]
-reverse link urt_rtdata_t to urt_rtclassdata_t--><path d="M9162.6144,925.1726 C9179.4369,950.6891 9200.0511,981.9569 9217.0065,1007.675 " fill="none" id="urt_rtdata_t&lt;-urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="9155.4193,914.2591,9155.3823,921.4701,9162.0244,924.2777,9162.0614,917.0667,9155.4193,914.2591" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9150.7115" y="933.5236">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9203.8377" y="996.6943">1</text><!--MD5=[b6ee30948a218449c72edbee7363b5d7]
-link urt_subscriber_t to urt_hrtdata_t--><path d="M9228.8673,745.8878 C9240.8655,765.9263 9252.7617,786.2782 9263.7624,805.8594 C9347.2688,954.4991 9435.442,1131.4004 9488.5328,1240.4159 " fill="none" id="urt_subscriber_t-&gt;urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="9494.3535,1252.3848,9495.3266,1245.2396,9489.1053,1241.5933,9488.1322,1248.7384,9494.3535,1252.3848" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="9209.038" y="765.8765">0..1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9482.5756" y="1241.6477">1</text><!--MD5=[536025241394544a90bc53fb552f3a08]
-reverse link urt_message_t to urt_message_t--><path d="M7827.7465,853.6645 C7841.8277,859.2105 7850.2624,866.9422 7850.2624,876.8594 C7850.2624,889.4278 7836.7153,898.4858 7815.2965,904.0336 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7815.2965,849.6852,7819.7939,855.322,7826.7268,853.3386,7822.2295,847.7018,7815.2965,849.6852" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7823.5454" y="845.5149">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="7823.0906" y="901.7542">0..1</text><!--MD5=[f7eb638a1c2d853c6fb0ae6f53692e50]
-reverse link urt_subscriber_t to urt_rtdata_t--><path d="M9130.7624,759.0569 C9130.7624,789.4345 9130.7624,818.2238 9130.7624,839.7378 " fill="none" id="urt_subscriber_t&lt;-urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="9130.7624,745.9573,9126.7624,751.9573,9130.7624,757.9573,9134.7624,751.9573,9130.7624,745.9573" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9122.5687" y="765.9494">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9122.0499" y="828.9031">1</text><!--MD5=[bf7bf5810813e0e9b75d3053dc098443]
-reverse link urt_subscriber_t to urt_topic_t--><path d="M8805.7338,429.1279 C8731.8372,401.8838 8652.35,379.5572 8575.2624,370.8594 C8532.5888,366.0445 7844.9361,366.0445 7802.2624,370.8594 C7794.3344,371.7539 7791.8006,371.1019 7784.7624,374.8594 C7741.207,398.113 7699.8801,431.8981 7664.6752,465.8258 " fill="none" id="urt_subscriber_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="8818.0219,433.7221,8813.8027,427.8741,8806.7818,429.5196,8811.001,435.3675,8818.0219,433.7221" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8794.6798" y="422.8637">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="7646.5199" y="454.8792">0..1</text><!--MD5=[d3b08a81de663c21a5ec062e6c430f2b]
-reverse link urt_topic_t to urt_subscriber_t--><path d="M7674.3094,456.6922 C7707.324,425.9123 7745.1202,396.0238 7784.7624,374.8594 C7791.8006,371.1019 7794.3344,371.7539 7802.2624,370.8594 C7844.9361,366.0445 8532.5888,366.0445 8575.2624,370.8594 C8656.6415,380.0415 8740.6947,404.4119 8818.0219,433.7221 " fill="none" id="urt_topic_t&lt;-urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7664.6752,465.8258,7671.7815,464.6006,7673.3837,457.5698,7666.2775,458.7949,7664.6752,465.8258" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7671.4949" y="454.8792">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="8803.4548" y="422.8637">0..1</text><!--MD5=[67fd999c5486ad1c37ee9b77e12afd1b]
-reverse link urt_subscriber_t to urt_message_t--><path d="M8583.6968,747.7287 C8318.5534,802.2604 8016.5612,837.5624 7815.4844,857.2957 " fill="none" id="urt_subscriber_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="8596.6935,745.034,8590.0063,742.3355,8584.9434,747.4704,8591.6306,750.1689,8596.6935,745.034" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8580.9571" y="746.4855">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="7823.2847" y="853.4827">0..1</text><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
-reverse link urt_publisher_t to urt_topic_t--><path d="M7788.6417,589.8594 C7775.4355,589.8594 7762.2293,589.8594 7749.0232,589.8594 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7801.8478,589.8594,7795.8478,585.8594,7789.8478,589.8594,7795.8478,593.8594,7801.8478,589.8594" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7786.0495" y="586.777">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7756.6896" y="586.6345">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
-link urt_publisher_t to urt_message_t--><path d="M8048.5372,654.4466 C7957.1604,698.7459 7835.7477,757.6064 7740.7778,803.6475 " fill="none" id="urt_publisher_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7736.2757,805.8302,7746.1191,805.5033,7740.7748,803.649,7742.6292,798.3047,7736.2757,805.8302" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
-reverse link urt_topic_t to urt_topic_t--><path d="M7760.8063,550.7697 C7775.0685,559.692 7783.7624,572.7219 7783.7624,589.8594 C7783.7624,611.3653 7770.0714,626.4026 7748.8664,634.9713 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7748.8664,544.7475,7752.4222,551.0209,7759.5807,550.1516,7756.0249,543.8781,7748.8664,544.7475" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7756.5267" y="539.7604">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="7756.8392" y="633.5086">0..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
-reverse link urt_topic_t to urt_message_t--><path d="M7559.8325,727.3595 C7562.8642,754.5071 7566.5384,781.9415 7570.4069,805.7673 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7558.3977,714.0726,7555.065,720.4673,7559.6861,726.0032,7563.0188,719.6084,7558.3977,714.0726" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7550.2536" y="734.1676">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="7543.1734" y="794.7551">1..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
-reverse link urt_topic_t to urt_message_t--><path d="M7586.0182,726.9893 C7589.2549,754.2576 7591.8758,781.8332 7593.427,805.7673 " fill="none" id="urt_topic_t&lt;-urt_message_t-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7584.4358,714.0726,7581.1951,720.5145,7585.895,725.9835,7589.1357,719.5416,7584.4358,714.0726" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7577.8784" y="734.1676">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7585.3924" y="794.7551">1</text><!--MD5=[05f2c35569573d3273c65d3342945557]
-reverse link urt_service_t to urt_service_t--><path d="M12002.5507,556.1006 C12017.1861,564.616 12025.7624,575.8689 12025.7624,589.8594 C12025.7624,607.2456 12012.5176,620.4042 11990.8589,629.335 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="11990.8589,550.3838,11994.492,556.6128,12001.6392,555.6549,11998.0061,549.4259,11990.8589,550.3838" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="11998.963" y="546.1985">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="11999.1755" y="627.2469">0..1</text><!--MD5=[586e61fedafd54ae7ea71cebd9f9032a]
-reverse link urt_service_t to urt_servicefunc_t--><path d="M11656.9258,713.8608 C11644.0342,762.5438 11630.3347,814.2775 11621.9117,846.0853 " fill="none" id="urt_service_t&lt;-urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="11660.2701,701.2319,11654.8674,706.008,11657.1982,712.832,11662.6009,708.0559,11660.2701,701.2319" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="11650.0198" y="721.2745">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="11597.1175" y="835.292">0..1</text><!--MD5=[694e7400eb99f74d44ea388aed89d199]
-reverse link urt_core_t to urt_node_t--><path d="M7885.689,242.4411 C8458.7974,251.7451 9777.2467,282.746 10215.7624,374.8594 C10346.5522,402.3327 10487.0696,455.3064 10595.62,501.7942 " fill="none" id="urt_core_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7872.2904,242.2254,7878.2252,246.3215,7884.2888,242.4187,7878.3541,238.3226,7872.2904,242.2254" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7880.0545" y="254.6158">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="10554.4203" y="490.6521">0..1</text><!--MD5=[250695c91040478b50550bc37a8775c7]
-reverse link urt_core_t to urt_topic_t--><path d="M7591.4377,380.0144 C7586.7461,408.4065 7581.8483,438.0467 7577.2617,465.8037 " fill="none" id="urt_core_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7593.5769,367.0684,7588.6522,372.3359,7591.6204,378.9078,7596.5451,373.6403,7593.5769,367.0684" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7584.1209" y="386.9828">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="7553.7796" y="454.8558">0..1</text><!--MD5=[8d0a227ec56585cdbc167f8316b34b64]
-reverse link urt_core_t to urt_service_t--><path d="M7885.744,240.1033 C8692.2686,245.0008 11041.6637,268.3473 11369.7624,374.8594 C11437.8786,396.9722 11504.9572,438.1602 11559.9659,478.6145 " fill="none" id="urt_core_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7872.5213,240.0238,7878.4971,244.0598,7884.5211,240.096,7878.5453,236.06,7872.5213,240.0238" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7880.2923" y="236.9035">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="11526.4389" y="467.6922">0..1</text><!--MD5=[a42c921bb2ae3ef3cd6ba12c97758939]
-reverse link urt_core_t to urt_osEventSource_t--><path d="M7343.5559,240.8195 C6260.5184,249.2334 2277.0717,285.9823 1718.7624,374.8594 C955.0504,496.4345 52.7624,103.5312 52.7624,876.8594 C52.7624,876.8594 52.7624,876.8594 52.7624,1057.3594 C52.7624,1259.5959 -65.7755,1366.4335 74.7624,1511.8594 C170.2544,1610.6726 1029.8612,1639.3128 1481.0118,1647.5595 " fill="none" id="urt_core_t&lt;-urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7356.9455,240.7158,7350.9147,236.7624,7344.9459,240.8087,7350.9767,244.7621,7356.9455,240.7158" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7341.1728" y="253.0614">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1465.634" y="1659.7449">1</text><!--MD5=[b9eb8460041bde16ab6e44c28de7b0fc]
-reverse link urt_core_t to urt_osMutex_t--><path d="M7343.7286,241.5819 C6872.3486,248.8921 5871.6265,275.8091 5032.7624,374.8594 C3232.517,587.4263 2557.1153,151.1374 1021.7624,1114.8594 C953.1929,1157.8997 903.6385,1240.1742 877.0728,1293.2278 " fill="none" id="urt_core_t&lt;-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7356.8311,241.3816,7350.7707,237.4738,7344.8325,241.565,7350.8929,245.4728,7356.8311,241.3816" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7341.055" y="238.3016">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="880.7727" y="1282.2545">1</text><!--MD5=[53eb1ed31b8ffcbb98ca8a87ecf3ad40]
-link urt_core_t to urt_status_t--><path d="M7872.6189,242.0068 C8805.2442,253.994 11952.1108,299.9327 12024.7624,374.8594 C12202.0419,557.6902 12196.8111,760.0979 12024.7624,947.8594 C11887.8484,1097.2776 10410.2077,1097.5233 10207.7624,1106.8594 C10162.3102,1108.9555 8614.465,1106.3755 8569.7624,1114.8594 C8045.1767,1214.4185 7463.1599,1505.0292 7261.8934,1611.3253 " fill="none" id="urt_core_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7257.2101,1613.8018,7267.0361,1613.1305,7261.6301,1611.4644,7263.2963,1606.0585,7257.2101,1613.8018" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f6f8ae0abb3c85244c8639cf15039f58]
-link urt_core_t to urt_nodestage_t--><path d="M7356.8115,249.6522 C6862.7434,271.4517 5826.3613,323.0822 5767.7624,374.8594 C5621.3851,504.1967 5700.9666,611.474 5681.7624,805.8594 C5668.5647,939.4475 5608.7937,1015.0875 5706.7624,1106.8594 C5721.0932,1120.2837 5780.3565,1101.5159 5794.7624,1114.8594 C5926.0397,1236.4556 5727.3525,1393.7352 5861.7624,1511.8594 C5922.6502,1565.3697 6515.4939,1509.7708 6590.7624,1539.8594 C6607.8356,1546.6844 6624.144,1556.8838 6639.0282,1568.3808 " fill="none" id="urt_core_t-&gt;urt_nodestage_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6643.188,1571.6562,6638.5915,1562.9457,6639.2596,1568.5629,6633.6424,1569.2311,6643.188,1571.6562" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e894174e7ccaed139fbaaa0f9b9ae8dc]
-link urt_core_t to urt_topicid_t--><path d="M7357.1994,247.8703 C6841.6428,267.1326 5726.9419,315.4399 5668.7624,374.8594 C5441.0227,607.4531 5424.2498,866.4859 5643.7624,1106.8594 C5657.0039,1121.3592 5717.4884,1101.3749 5731.7624,1114.8594 C5861.4333,1237.3573 5660.3221,1390.1813 5790.7624,1511.8594 C5849.1144,1566.2915 6076.1375,1506.7925 6148.7624,1539.8594 C6164.1857,1546.8818 6178.7315,1556.9554 6191.9287,1568.2044 " fill="none" id="urt_core_t-&gt;urt_topicid_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6195.9805,1571.7311,6191.8181,1562.805,6192.2091,1568.4484,6186.5657,1568.8393,6195.9805,1571.7311" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[972bd788fc5a0ee0badfa994920a3622]
-link urt_core_t to urt_serviceid_t--><path d="M7357.0079,277.2143 C6884.142,353.4165 5908.1795,539.7837 5709.7624,805.8594 C5672.0346,856.4521 5699.8299,885.5348 5709.7624,947.8594 C5721.4638,1021.2827 5703.2895,1060.9376 5761.7624,1106.8594 C5779.992,1121.176 5847.4015,1100.7117 5865.7624,1114.8594 C6013.7318,1228.8747 5853.3534,1401.0825 6003.7624,1511.8594 C6078.8654,1567.1731 6756.5633,1504.2256 6842.7624,1539.8594 C6859.2296,1546.6668 6874.8058,1556.8573 6888.9305,1568.3508 " fill="none" id="urt_core_t-&gt;urt_serviceid_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6892.8755,1571.6254,6888.5053,1562.7992,6889.0283,1568.4318,6883.3956,1568.9548,6892.8755,1571.6254" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[addb2e74eebae0995b3a6bf162197d46]
-reverse link urt_node_t to urt_osThread_t--><path d="M10505.1273,681.4617 C10413.9339,707.3665 10311.4624,732.2071 10215.7624,745.8594 C10108.3648,761.1805 6403.3902,749.3872 6310.7624,805.8594 C6181.2258,884.8338 6279.7439,1028.6193 6149.7624,1106.8594 C6126.237,1121.0201 4199.0212,1106.8314 4172.7624,1114.8594 C4128.6652,1128.341 4085.0601,1149.5888 4044.5191,1173.8116 " fill="none" id="urt_node_t&lt;-urt_osThread_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="10517.6292,677.8838,10510.7602,675.689,10506.0924,681.1855,10512.9614,683.3803,10517.6292,677.8838" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="10487.2588" y="697.8648">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4029.6159" y="1162.8884">0..1</text><!--MD5=[71f626b81c482d35e653d2b548781872]
-reverse link urt_node_t to urt_nodestage_t--><path d="M10504.4856,681.5235 C10413.4483,707.3577 10311.2299,732.1416 10215.7624,745.8594 C10026.0157,773.1243 6930.0464,707.0768 6765.7624,805.8594 C6489.0782,972.2274 6480.9767,1209.7248 6594.7624,1511.8594 C6602.8537,1533.344 6615.942,1553.6704 6630.6049,1571.8096 " fill="none" id="urt_node_t&lt;-urt_nodestage_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="10517.2553,677.8723,10510.3868,675.6759,10505.7177,681.1712,10512.5861,683.3676,10517.2553,677.8723" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="10495.5164" y="697.8524">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6614.2935" y="1560.8836">1</text><!--MD5=[ecbb69d8dc7b8a34ff21337736794c2a]
-reverse link urt_node_t to urt_osEventListener_t--><path d="M10505.1324,681.4973 C10413.9392,707.4041 10311.4666,732.2369 10215.7624,745.8594 C9768.0043,809.5931 6597.2904,779.9383 6145.7624,805.8594 C5514.3122,842.1094 5360.3792,899.2187 4729.7624,947.8594 C3424.6191,1048.5276 3097.2022,1067.8911 1788.7624,1106.8594 C1778.732,1107.1581 350.8385,1107.7441 343.7624,1114.8594 C219.3432,1239.9694 220.0278,1386.0724 343.7624,1511.8594 C376.9213,1545.5682 1999.4834,1530.1618 2045.7624,1539.8594 C2110.4484,1553.4141 2179.1644,1582.673 2230.4101,1607.7487 " fill="none" id="urt_node_t&lt;-urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="10517.6343,677.9191,10510.7653,675.7245,10506.0975,681.2211,10512.9666,683.4157,10517.6343,677.9191" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="10433.6608" y="697.6555">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2218.2415" y="1596.7271">1</text><!--MD5=[a052f483eba01ccbd89eefaa281cffa6]
-reverse link urt_node_t to urt_osThreadFunction_t--><path d="M10505.13,681.4809 C10413.9368,707.3867 10311.4647,732.2231 10215.7624,745.8594 C10105.97,761.5034 6317.223,746.1581 6223.7624,805.8594 C6098.6238,885.7962 6204.4422,1027.776 6078.7624,1106.8594 C6062.2051,1117.278 458.5854,1101.0168 444.7624,1114.8594 C320.086,1239.713 320.6513,1386.4438 444.7624,1511.8594 C497.0905,1564.7374 3052.4297,1515.6187 3122.7624,1539.8594 C3169.2201,1555.8713 3212.5763,1593.1856 3239.5558,1620.1365 " fill="none" id="urt_node_t&lt;-urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="10517.6319,677.9028,10510.7629,675.7082,10506.0951,681.2048,10512.9642,683.3994,10517.6319,677.9028" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="10471.6406" y="697.8854">0..*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3224.9132" y="1609.3537">1</text><!--MD5=[0cba389305cd35ebcbacaedacb3fbe88]
-link urt_node_t to urt_status_t--><path d="M10516.8928,677.942 C10422.8019,705.0328 10315.5895,731.4852 10215.7624,745.8594 C10123.9994,759.0725 6943.726,739.7173 6878.7624,805.8594 C6658.8915,1029.7193 6672.6027,1275.312 6878.7624,1511.8594 C6908.6822,1546.1893 7041.1704,1519.2193 7081.7624,1539.8594 C7113.3387,1555.9152 7140.8635,1585.0357 7160.0869,1609.4219 " fill="none" id="urt_node_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7163.339,1613.6032,7160.9709,1604.0433,7160.2693,1609.6564,7154.6561,1608.9548,7163.339,1613.6032" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b00c0c61b5ae38465e12763fb588229]
-link urt_nodeSetupCallback_t to urt_osEventMask_t--><path d="M11024.1158,907.4169 C10977.4822,922.7115 10918.1744,939.6764 10863.7624,947.8594 C10063.3205,1068.2376 8019.3554,869.8604 7221.7624,1007.8594 C6532.916,1127.0432 6420.9475,1394.6493 5731.7624,1511.8594 C5589.0259,1536.1347 3263.6427,1495.6772 3125.7624,1539.8594 C3078.0519,1555.1477 3032.08,1590.172 3001.9485,1616.8198 " fill="none" id="urt_nodeSetupCallback_t-&gt;urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2997.987,1620.3559,3007.3649,1617.3468,3001.7171,1617.0263,3002.0376,1611.3785,2997.987,1620.3559" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[aa0b59559007c8ad9b783f6dc5ed8ad9]
-link urt_nodeLoopCallback_t to urt_osEventMask_t--><path d="M10422.8655,907.4161 C10359.7536,922.6084 10280.0087,939.4776 10207.7624,947.8594 C9535.4738,1025.8564 7838.5225,970.3915 7162.7624,1007.8594 C6679.7215,1034.6419 6562.028,1084.4935 6078.7624,1106.8594 C6068.9916,1107.3116 451.6739,1107.9381 444.7624,1114.8594 C320.086,1239.713 320.7381,1386.358 444.7624,1511.8594 C490.9429,1558.5898 2747.2681,1519.5906 2809.7624,1539.8594 C2856.8647,1555.1361 2902.095,1589.9785 2931.8076,1616.5824 " fill="none" id="urt_nodeLoopCallback_t-&gt;urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2935.7146,1620.1134,2931.7195,1611.1112,2932.0051,1616.7608,2926.3554,1617.0464,2935.7146,1620.1134" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b3fa89608aace108b23bbfcd22712ec]
-link urt_publisher_t to urt_config--><path d="M8050.6505,654.4845 C7974.9046,688.448 7876.6859,726.8754 7784.7624,745.8594 C7685.524,766.3541 6038.9394,740.1935 5961.7624,805.8594 C5802.1507,941.6648 5680.695,1579.3302 5817.7624,1737.8594 C5881.9562,1812.1045 6515.8935,1870.3858 6811.4728,1893.7552 " fill="none" id="urt_publisher_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6816.6637,1894.1648,6808.0064,1889.469,6811.6792,1893.7713,6807.3769,1897.4442,6816.6637,1894.1648" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[48a81098d0aa451a4923659bb2bbea3c]
-link urt_publisher_t to urt_status_t--><path d="M8050.6417,654.4418 C7974.8929,688.3916 7876.6743,726.8196 7784.7624,745.8594 C7689.0705,765.6823 6094.6747,735.5898 6026.7624,805.8594 C5982.9039,851.2404 6003.4203,889.2236 6026.7624,947.8594 C6064.5534,1042.7907 6120.8524,1035.1374 6184.7624,1114.8594 C6317.9189,1280.9601 6267.0455,1407.7954 6452.7624,1511.8594 C6574.8227,1580.2542 6954.2424,1482.2818 7081.7624,1539.8594 C7114.5091,1554.6451 7142.3333,1584.4439 7161.3938,1609.4463 " fill="none" id="urt_publisher_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7164.6131,1613.7336,7162.4076,1604.1348,7161.6108,1609.7353,7156.0104,1608.9385,7164.6131,1613.7336" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[c16173558393ca1d9128284d70afa235]
-link urt_publisher_t to urt_delay_t--><path d="M8050.6464,654.4645 C7974.8991,688.4216 7876.6805,726.8493 7784.7624,745.8594 C7687.2154,766.0337 6062.0098,734.2547 5992.7624,805.8594 C5948.8892,851.2262 5980.9286,885.8677 5992.7624,947.8594 C6007.0152,1022.5229 6000.8838,1054.2656 6055.7624,1106.8594 C6063.5763,1114.348 6070.9186,1107.4022 6078.7624,1114.8594 C6216.7555,1246.0491 6093.5255,1389.9267 6239.7624,1511.8594 C6286.8259,1551.101 6321.0399,1510.3848 6374.7624,1539.8594 C6400.6154,1554.0435 6424.1389,1576.447 6442.584,1597.424 " fill="none" id="urt_publisher_t-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6445.9684,1601.3219,6443.0881,1591.9036,6442.6903,1597.5465,6437.0474,1597.1486,6445.9684,1601.3219" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[3f75a4ca5db56e37c381a718c71f2950]
-reverse link urt_topic_t to urt_topicid_t--><path d="M7351.3332,598.7628 C6892.7896,620.7418 5817.5114,684.7753 5709.7624,805.8594 C5619.5133,907.2779 5662.0849,1014.691 5761.7624,1106.8594 C5772.843,1117.1052 5782.1254,1106.6096 5794.7624,1114.8594 C5980.6257,1236.1961 5929.5045,1367.0941 6097.7624,1511.8594 C6117.364,1528.7242 6128.0107,1524.432 6148.7624,1539.8594 C6161.6729,1549.4574 6174.5837,1560.4651 6186.8205,1571.7372 " fill="none" id="urt_topic_t&lt;-urt_topicid_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7364.3848,598.1406,7358.2011,594.4309,7352.3984,598.7121,7358.5821,602.4218,7364.3848,598.1406" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7348.7138" y="610.8251">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6171.543" y="1560.8045">1</text><!--MD5=[2ea2859f8de074b5c128ff5997404a58]
-reverse link urt_topic_t to urt_osMutex_t--><path d="M7351.6031,598.8046 C6839.229,622.732 5533.0733,694.0821 5372.7624,805.8594 C5311.7804,848.3794 5289.7279,1067.3357 5226.7624,1106.8594 C5202.0298,1122.3842 1047.7941,1101.6277 1021.7624,1114.8594 C948.4986,1152.0989 899.614,1238.2148 874.5706,1293.3054 " fill="none" id="urt_topic_t&lt;-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7364.6728,598.1965,7358.4934,594.4797,7352.6858,598.7543,7358.8652,602.4711,7364.6728,598.1965" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7349.0131" y="595.2973">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="868.7936" y="1282.343">1</text><!--MD5=[ee40dc1875ed5325eec4e6c8c8102744]
-reverse link urt_topic_t to urt_osEventSource_t--><path d="M7350.9387,603.537 C6159.6652,682.8139 200.3148,1080.9853 168.7624,1114.8594 C48.5005,1243.9706 49.5682,1381.7618 168.7624,1511.8594 C255.4411,1606.467 1050.8039,1636.9597 1481.171,1646.5729 " fill="none" id="urt_topic_t&lt;-urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7364.3071,602.6474,7358.0547,599.0546,7352.3336,603.4443,7358.586,607.037,7364.3071,602.6474" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7348.6331" y="615.508">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1464.93" y="1643.2976">1</text><!--MD5=[f5e2f818dfb7c47ef0a661b061d2efd0]
-link urt_topic_t to urt_config--><path d="M7713.4607,713.8898 C7736.3358,726.8802 7760.4177,738.1387 7784.7624,745.8594 C7896.935,781.4338 11934.5665,725.744 12020.7624,805.8594 C12102.949,882.2482 12042.7624,945.1548 12042.7624,1057.3594 C12042.7624,1057.3594 12042.7624,1057.3594 12042.7624,1342.8594 C12042.7624,2180.5722 11030.2614,1628.1586 10199.7624,1737.8594 C9590.6343,1818.3192 7665.7414,1882.9948 7112.0813,1900.2967 " fill="none" id="urt_topic_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7106.8346,1900.4606,7115.9551,1904.1776,7111.8322,1900.3044,7115.7053,1896.1815,7106.8346,1900.4606" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a01366c261f16bb61c03de8616a1256c]
-reverse link urt_topic_t to urt_osTimer_t--><path d="M7351.4588,600.0922 C6854.0482,626.4167 5613.8212,701.7887 5458.7624,805.8594 C5332.7924,890.4066 5426.8785,1027.1993 5297.7624,1106.8594 C5283.195,1115.847 5006.274,1110.3476 4989.7624,1114.8594 C4862.8783,1149.5307 4732.913,1231.1969 4654.2519,1286.7649 " fill="none" id="urt_topic_t&lt;-urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7364.5139,599.4035,7358.3115,595.7252,7352.5306,600.0358,7358.733,603.7141,7364.5139,599.4035" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7348.9246" y="596.6422">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4638.2584" y="1275.6907">0..1</text><!--MD5=[23aed2412a22c58889d68b772ca9654f]
-link urt_topic_t to urt_status_t--><path d="M7364.5215,598.569 C6919.7044,620.6879 5849.2407,685.9501 5742.7624,805.8594 C5700.8574,853.0503 5720.2651,888.8943 5742.7624,947.8594 C5776.5368,1036.3811 5799.5887,1065.3598 5884.7624,1106.8594 C5909.3862,1118.8569 5983.6192,1101.9221 6007.7624,1114.8594 C6203.4074,1219.6964 6113.6359,1409.8355 6310.7624,1511.8594 C6463.0246,1590.6634 6925.2183,1469.9468 7081.7624,1539.8594 C7114.5693,1554.5109 7142.3906,1584.3163 7161.4347,1609.3553 " fill="none" id="urt_topic_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7164.651,1613.6491,7162.4569,1604.0477,7161.6534,1609.6472,7156.0539,1608.8438,7164.651,1613.6491" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[40d97a101b79fe2b6aede42ee911a5e3]
-reverse link urt_message_t to urt_osTime_t--><path d="M7350.978,894.8111 C7148.3992,913.7889 6876.4877,949.2505 6784.7624,1007.8594 C6739.9921,1036.4659 6764.6731,1081.9174 6717.7624,1106.8594 C6685.5775,1123.9719 1502.2533,1100.4694 1468.7624,1114.8594 C1381.1508,1152.5034 1312.1529,1244.7646 1277.1003,1299.6937 " fill="none" id="urt_message_t&lt;-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7364.2186,893.5849,7357.8753,890.1553,7352.2697,894.6916,7358.6131,898.1212,7364.2186,893.5849" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7347.9694" y="890.9923">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1272.501" y="1288.6633">1</text><!--MD5=[7527c1e2a180419f2ba2182e8f11877d]
-reverse link urt_message_t to urt_osMutex_t--><path d="M7351.2839,900.0377 C7173.7568,920.2965 6926.4027,954.8869 6713.7624,1007.8594 C6585.6829,1039.7663 6563.8388,1084.4418 6433.7624,1106.8594 C6415.2438,1110.0509 1038.5161,1106.3481 1021.7624,1114.8594 C948.4907,1152.0834 899.6085,1238.2041 874.5678,1293.2998 " fill="none" id="urt_message_t&lt;-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7364.2113,898.5737,7357.7993,895.2743,7352.2875,899.9241,7358.6996,903.2235,7364.2113,898.5737" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7347.9618" y="911.6994">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="877.9154" y="1282.3366">1</text><!--MD5=[107def0b4b669b7e1be29db2eeb634c8]
-reverse link urt_message_t to urt_osCondvar_t--><path d="M7351.0108,905.4603 C7228.1555,925.1893 7077.7263,957.2523 6949.7624,1007.8594 C6871.6482,1038.752 6867.4512,1077.4609 6788.7624,1106.8594 C6437.7399,1238.0031 6011.1105,1296.441 5716.0713,1322.3772 " fill="none" id="urt_message_t&lt;-urt_osCondvar_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7363.9483,903.4118,7357.3965,900.3994,7352.096,905.2885,7358.6477,908.3009,7363.9483,903.4118" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7348.4075" y="901.112">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5723.3698" y="1318.8748">1</text><!--MD5=[2bb9471b6fda5815e085c87a24a67f11]
-link urt_message_t to urt_config--><path d="M7386.4997,948.0025 C7334.8027,966.8126 7279.5222,987.5514 7228.7624,1007.8594 C6710.6482,1215.1471 6616.1208,1361.3383 6078.7624,1511.8594 C6033.6399,1524.4988 5900.6188,1504.5935 5869.7624,1539.8594 C5811.8154,1606.0874 5812.4331,1671.0961 5869.7624,1737.8594 C5930.3739,1808.4449 6526.4973,1867.9731 6811.4903,1892.6524 " fill="none" id="urt_message_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6816.4968,1893.0852,6807.8747,1888.325,6811.5154,1892.6546,6807.1858,1896.2953,6816.4968,1893.0852" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[570f5794230ed2cf7946261591bb6cd1]
-link urt_message_t to urt_status_t--><path d="M7396.2038,947.9911 C7363.7497,964.7657 7331.8609,984.6663 7304.7624,1007.8594 C7261.4028,1044.9703 7252.5154,1060.9557 7233.7624,1114.8594 C7172.7805,1290.1463 7179.3623,1516.3173 7185.357,1608.7201 " fill="none" id="urt_message_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7185.6959,1613.8162,7189.0895,1604.5704,7185.3639,1608.8272,7181.1071,1605.1016,7185.6959,1613.8162" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7cee5aa7c1aa784c863bfc703478827b]
-reverse link urt_subscriber_t to urt_osEventListener_t--><path d="M8583.7979,747.1842 C7972.7895,836.816 6469.4532,781.2832 5868.7624,805.8594 C3630.6365,897.4282 3076.2633,1024.9666 837.7624,1106.8594 C829.4617,1107.1631 245.5965,1108.9468 239.7624,1114.8594 C177.7986,1177.6578 177.8653,1448.9952 239.7624,1511.8594 C274.9638,1547.6108 1996.6514,1529.5926 2045.7624,1539.8594 C2110.4548,1553.3835 2179.1706,1582.6435 2230.4146,1607.7274 " fill="none" id="urt_subscriber_t&lt;-urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="8596.7316,745.2446,8590.2047,742.1787,8584.8643,747.0244,8591.3912,750.0902,8596.7316,745.2446" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8580.9963" y="762.1477">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2208.9717" y="1596.7024">1</text><!--MD5=[d78112c1c4e2d668c8a365106ad0148b]
-reverse link urt_subscriber_t to urt_osTime_t--><path d="M8583.7564,746.6633 C8344.9746,766.4599 6077.8553,730.8034 5955.7624,805.8594 C5826.5183,885.3116 5924.8298,1028.7621 5794.7624,1106.8594 C5769.0069,1122.324 1496.3622,1102.9953 1468.7624,1114.8594 C1381.1569,1152.5176 1312.1568,1244.7736 1277.1022,1299.698 " fill="none" id="urt_subscriber_t&lt;-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="8596.7314,745.2431,8590.3318,741.9196,8584.8026,746.5487,8591.2022,749.8721,8596.7314,745.2431" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8581.1653" y="759.6008">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1281.7782" y="1288.6683">1</text><!--MD5=[86ebe93bbfa4ec3b6f23ec8ed904ce0f]
-link urt_subscriber_t to urt_config--><path d="M9665.0576,678.6398 C9840.0762,704.517 10035.7842,730.0541 10215.7624,745.8594 C10318.3107,754.865 11989.771,738.6688 12067.7624,805.8594 C12153.8522,880.0268 12113.7624,943.7273 12113.7624,1057.3594 C12113.7624,1057.3594 12113.7624,1057.3594 12113.7624,1342.8594 C12113.7624,1813.2885 11597.6965,1672.9826 11131.7624,1737.8594 C10331.7571,1849.2524 7762.1353,1893.2881 7112.2182,1902.7989 " fill="none" id="urt_subscriber_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7107.0098,1902.875,7116.0674,1906.7429,7112.0093,1902.8018,7115.9503,1898.7437,7107.0098,1902.875" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[52cc257f73bbbb16d4f5605ee05234fd]
-reverse link urt_subscriber_t to urt_delay_t--><path d="M8583.6725,746.5975 C8368.2572,762.782 6422.0532,718.2701 6336.7624,805.8594 C6261.6379,883.0085 6147.4516,877.8342 6381.7624,1511.8594 C6393.809,1544.4564 6415.808,1576.1714 6436.2064,1601.0564 " fill="none" id="urt_subscriber_t&lt;-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="8596.7302,745.2356,8590.3476,741.8796,8584.795,746.4805,8591.1776,749.8365,8596.7302,745.2356" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8581.1641" y="744.3823">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="6404.3379" y="1590.4174">0..2</text><!--MD5=[e382e2d38ad01b25c47e084dc0da57c4]
-link urt_subscriber_t to urt_status_t--><path d="M8596.7301,745.2345 C8595.4062,745.4451 8594.0837,745.6534 8592.7624,745.8594 C8471.3509,764.7902 6467.4641,717.8005 6381.7624,805.8594 C6228.8936,962.9329 6596.7558,1466.9521 6665.7624,1511.8594 C6743.42,1562.3965 6997.7562,1500.7743 7081.7624,1539.8594 C7114.2243,1554.9628 7141.9755,1584.5874 7161.0762,1609.4349 " fill="none" id="urt_subscriber_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7164.3036,1613.6956,7162.058,1604.1061,7161.2846,1609.7099,7155.6809,1608.9365,7164.3036,1613.6956" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[3efe35f90d26626840318a84096a56c5]
-link urt_hrtdata_t to urt_config--><path d="M9414.9285,1432.8919 C9369.6949,1462.1846 9316.7685,1492.1854 9264.7624,1511.8594 C8490.6669,1804.702 7487.4517,1880.3933 7112.159,1899.0541 " fill="none" id="urt_hrtdata_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7106.953,1899.3113,7116.1394,1902.8623,7111.9469,1899.0646,7115.7447,1894.8721,7106.953,1899.3113" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ed989009be771aee0dc5ea42e965db70]
-reverse link urt_hrtdata_t to urt_osTimer_t--><path d="M9462.1032,1242.5335 C9409.5674,1184.3343 9333.6592,1120.6076 9247.2624,1110.8594 C9218.0037,1107.5581 5036.5212,1107.5581 5007.2624,1110.8594 C4865.033,1126.9073 4723.7352,1223.4104 4644.4872,1286.7933 " fill="none" id="urt_hrtdata_t&lt;-urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="9470.9838,1252.5671,9470.0025,1245.4231,9463.0306,1243.5812,9464.0119,1250.7252,9470.9838,1252.5671" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9457.3436" y="1241.8446">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4654.3176" y="1275.7228">0..1</text><!--MD5=[7e23fc46f17d4a9469ac4a553a110c32]
-reverse link urt_hrtdata_t to urt_delay_t--><path d="M9412.4613,1440.2014 C9368.2452,1468.9971 9316.5822,1496.8242 9264.7624,1511.8594 C9122.1364,1553.2416 6728.4036,1481.6883 6591.7624,1539.8594 C6561.8177,1552.6075 6535.9129,1577.9478 6516.8794,1601.2014 " fill="none" id="urt_hrtdata_t&lt;-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="9423.5378,1432.8668,9416.3267,1432.8443,9413.5325,1439.492,9420.7436,1439.5145,9423.5378,1432.8668" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9405.7473" y="1453.0121">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="6495.9896" y="1590.2244">0..5</text><!--MD5=[84b4ddc626a7a0aa23e58213a3a30632]
-link urt_frtdata_t to urt_config--><path d="M8585.2803,1419.5312 C8187.1436,1538.5487 7432.8887,1764.0227 7112.1639,1859.899 " fill="none" id="urt_frtdata_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7107.0061,1861.4408,7116.7747,1862.6954,7111.7966,1860.0086,7114.4833,1855.0305,7107.0061,1861.4408" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8b5e0556f8c73fbb24cf4e7733c873ff]
-reverse link urt_frtdata_t to urt_osTimer_t--><path d="M8572.8147,1288.5869 C8273.2875,1231.1299 7773.9892,1144.2246 7339.2624,1110.8594 C7306.9685,1108.3808 5039.4471,1107.228 5007.2624,1110.8594 C4865.033,1126.9073 4723.7352,1223.4104 4644.4872,1286.7933 " fill="none" id="urt_frtdata_t&lt;-urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="8585.5971,1291.0443,8580.4602,1285.9834,8573.8129,1288.7786,8578.9498,1293.8395,8585.5971,1291.0443" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8569.8734" y="1286.3457">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4627.2426" y="1275.7228">0..1</text><!--MD5=[29efa6d8db454d55b0473550ef148da3]
-reverse link urt_frtdata_t to urt_delay_t--><path d="M8572.4457,1373.7377 C8237.8775,1411.1569 7649.3709,1473.8972 7143.7624,1511.8594 C7082.5226,1516.4574 6647.7723,1514.6731 6591.7624,1539.8594 C6562.3263,1553.0962 6536.6205,1578.162 6517.5766,1601.1291 " fill="none" id="urt_frtdata_t&lt;-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="8585.7182,1372.2516,8579.3104,1368.9441,8573.7927,1373.5869,8580.2006,1376.8944,8585.7182,1372.2516" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8569.9981" y="1369.9639">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="6524.1598" y="1590.1419">0..5</text><!--MD5=[19bf7f91edc926705d1714d4ed8cf052]
-link urt_srtusefulnessfunc_t to urt_delay_t--><path d="M9960.0912,1620.3377 C9920.5549,1589.5895 9854.3598,1544.1548 9788.2624,1525.8594 C9745.7097,1514.081 6650.9263,1511.2445 6609.2624,1525.8594 C6572.4686,1538.766 6541.1916,1569.3587 6518.9425,1597.0468 " fill="none" id="urt_srtusefulnessfunc_t-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6515.7258,1601.1084,6524.4493,1596.5366,6518.8301,1597.1888,6518.1779,1591.5697,6515.7258,1601.1084" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[85137379eadac9ac066ccd1aa3005a20]
-reverse link urt_service_t to urt_serviceid_t--><path d="M11484.0218,706.3012 C11447.0069,722.5236 11408.0086,736.7425 11369.7624,745.8594 C11257.2906,772.6697 7299.741,735.7976 7207.7624,805.8594 C6965.7334,990.2173 6951.3847,1399.0204 6956.9552,1571.5667 " fill="none" id="urt_service_t&lt;-urt_serviceid_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="11495.9664,700.9677,11488.8569,699.7615,11485.0091,705.8602,11492.1186,707.0664,11495.9664,700.9677" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="11482.6214" y="721.3627">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6948.1708" y="1560.89">1</text><!--MD5=[bfc39859b663e58a9d342532110a4ed9]
-reverse link urt_service_t to urt_osMutex_t--><path d="M11484.0375,706.3671 C11447.0208,722.5821 11408.0179,736.7814 11369.7624,745.8594 C11107.7944,808.0241 6777.138,714.7961 6523.7624,805.8594 C6322.9679,878.025 6350.9445,1035.7812 6149.7624,1106.8594 C6116.1853,1118.7223 1053.5108,1098.7288 1021.7624,1114.8594 C948.4923,1152.0864 899.6096,1238.2062 874.5683,1293.3009 " fill="none" id="urt_service_t&lt;-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="11495.9826,701.0357,11488.8733,699.8284,11485.0245,705.9266,11492.1339,707.1338,11495.9826,701.0357" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="11474.0762" y="721.4355">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="868.791" y="1282.3379">1</text><!--MD5=[33249c42c81fffc5b10022c232aa2b33]
-link urt_service_t to urt_config--><path d="M11990.9626,690.6233 C12041.4761,720.2607 12088.0354,758.0227 12120.7624,805.8594 C12206.4484,931.1056 12237.5755,1362.1188 12139.7624,1511.8594 C12003.0652,1721.1273 11868.4391,1682.1738 11624.7624,1737.8594 C11176.903,1840.2053 7861.3035,1892.2999 7111.9742,1902.8374 " fill="none" id="urt_service_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7106.7899,1902.9102,7115.8452,1906.7833,7111.7894,1902.8399,7115.7328,1898.7841,7106.7899,1902.9102" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ac5bbcedbd2eba97f2e594f2b75734f9]
-reverse link urt_service_t to urt_delay_t--><path d="M11484.0252,706.3155 C11447.0099,722.5362 11408.0106,736.7509 11369.7624,745.8594 C11137.7279,801.1163 7287.6632,694.4403 7076.7624,805.8594 C6740.0321,983.7544 6553.1957,1448.035 6499.2965,1601.1052 " fill="none" id="urt_service_t&lt;-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="11495.9699,700.9824,11488.8604,699.776,11485.0125,705.8747,11492.1219,707.081,11495.9699,700.9824" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="11442.2304" y="721.9741">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="6475.9341" y="1590.1147">0..2</text><!--MD5=[5471b15d17b5493f5e528354308bf7b4]
-link urt_service_t to urt_status_t--><path d="M11495.9624,700.9509 C11455.4532,719.3706 11412.1452,735.7451 11369.7624,745.8594 C11152.4509,797.7187 7542.1058,693.9128 7348.7624,805.8594 C7068.7852,967.9675 7148.1331,1461.0208 7179.1121,1608.6539 " fill="none" id="urt_service_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7180.1931,1613.7589,7182.2418,1604.1255,7179.1573,1608.8673,7174.4154,1605.7828,7180.1931,1613.7589" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0826203957815bb9ddac9132e239afa7]
-link urt_servicefunc_t to urt_delay_t--><path d="M11529.7571,907.3615 C11483.2759,922.691 11424.081,939.7065 11369.7624,947.8594 C11147.0107,981.2931 7519.5151,911.8333 7315.7624,1007.8594 C7259.2914,1034.4735 7256.6022,1061.161 7224.7624,1114.8594 C7128.4016,1277.374 7225.2438,1400.2985 7072.7624,1511.8594 C6986.3509,1575.0812 6689.249,1495.5838 6591.7624,1539.8594 C6564.0978,1552.4239 6539.6981,1575.3811 6521.0362,1597.1705 " fill="none" id="urt_servicefunc_t-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6517.6189,1601.2227,6526.4788,1596.9213,6520.8423,1597.4004,6520.3632,1591.7639,6517.6189,1601.2227" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[3a1e539c88376aaf116c25a44ec54d4f]
-link urt_servicefunc_t to urt_status_t--><path d="M11529.1747,907.4033 C11482.7725,922.6428 11423.8357,939.5601 11369.7624,947.8594 C10754.6009,1042.2764 9191.2567,974.9487 8569.7624,1007.8594 C8288.0422,1022.7776 7513.4973,925.0737 7304.7624,1114.8594 C7172.0828,1235.4942 7275.9083,1337.8046 7232.7624,1511.8594 C7224.5924,1544.8182 7212.9025,1581.4042 7203.6252,1608.7654 " fill="none" id="urt_servicefunc_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7201.9224,1613.764,7208.6108,1606.5345,7203.5347,1609.031,7201.0381,1603.9549,7201.9224,1613.764" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a361f49b537eb2d03f47c7ffbd7d9fd7]
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1635px" preserveAspectRatio="none" style="width:14782px;height:1635px;" version="1.1" viewBox="0 0 14782 1635" width="14782px" zoomAndPan="magnify"><defs><filter height="300%" id="f18prfnycqlkhy" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="7334" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="87" x="7335" y="37.6611">Overview</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="7381.5" y="58.6143"/><!--MD5=[915f6a2b4bff9d90dc7327d570275f1b]
+cluster Configuration--><polygon fill="#FFFFFF" filter="url(#f18prfnycqlkhy)" points="940.9664,1363.8594,950.9664,1353.8594,1246.9664,1353.8594,1246.9664,1613.8594,1236.9664,1623.8594,940.9664,1623.8594,940.9664,1363.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1236.9664" x2="1245.9664" y1="1363.8594" y2="1354.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="940.9664" x2="1236.9664" y1="1363.8594" y2="1363.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1236.9664" x2="1236.9664" y1="1363.8594" y2="1623.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="107" x="1036.4664" y="1379.8545">Configuration</text><!--MD5=[1cb8ced355c85ab51f1ab55883ed8585]
+cluster Primitives--><polygon fill="#FFFFFF" filter="url(#f18prfnycqlkhy)" points="709.9664,1145.8594,719.9664,1135.8594,2119.9664,1135.8594,2119.9664,1323.8594,2109.9664,1333.8594,709.9664,1333.8594,709.9664,1145.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="2109.9664" x2="2118.9664" y1="1145.8594" y2="1136.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="709.9664" x2="2109.9664" y1="1145.8594" y2="1145.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="2109.9664" x2="2109.9664" y1="1145.8594" y2="1333.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="77" x="1372.4664" y="1161.8545">Primitives</text><!--MD5=[ba9da179b6f0b3bb0ea21772c5f4ec75]
+cluster OSAL--><polygon fill="#FFFFFF" filter="url(#f18prfnycqlkhy)" points="9233.9664,720.8594,9243.9664,710.8594,14511.9664,710.8594,14511.9664,1530.8594,14501.9664,1540.8594,9233.9664,1540.8594,9233.9664,720.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="14501.9664" x2="14510.9664" y1="720.8594" y2="711.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="9233.9664" x2="14501.9664" y1="720.8594" y2="720.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="14501.9664" x2="14501.9664" y1="720.8594" y2="1540.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="42" x="11847.9664" y="736.8545">OSAL</text><!--MD5=[2e45f233f6bb64aa81ebe67fb6de8946]
+cluster condition variable--><rect fill="#FFFFFF" filter="url(#f18prfnycqlkhy)" height="435.5" style="stroke: #000000; stroke-width: 1.5;" width="726" x="13777.9664" y="862.3594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="140" x="14070.9664" y="877.3545">condition variable</text><!--MD5=[c7113df1f710ca294cbd01734aa00974]
+cluster timer--><rect fill="#FFFFFF" filter="url(#f18prfnycqlkhy)" height="429.5" style="stroke: #000000; stroke-width: 1.5;" width="798" x="12960.9664" y="855.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="13339.4664" y="870.8545">timer</text><!--MD5=[107bb3f79455a18bd83c75ada1ac7979]
+cluster thread--><rect fill="#FFFFFF" filter="url(#f18prfnycqlkhy)" height="587" style="stroke: #000000; stroke-width: 1.5;" width="1039" x="11913.9664" y="742.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="12407.4664" y="757.8545">thread</text><!--MD5=[8d74b40516bd265adb19f202ab81f40d]
+cluster events--><rect fill="#FFFFFF" filter="url(#f18prfnycqlkhy)" height="664" style="stroke: #000000; stroke-width: 1.5;" width="1642" x="10252.9664" y="868.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="54" x="11046.9664" y="883.8545">events</text><!--MD5=[4e1a3510868d06a507f098bb08f0dae0]
+cluster Middleware--><polygon fill="#FFFFFF" filter="url(#f18prfnycqlkhy)" points="1962.9664,88.8594,1972.9664,78.8594,9170.9664,78.8594,9170.9664,1019.8594,9160.9664,1029.8594,1962.9664,1029.8594,1962.9664,88.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="9160.9664" x2="9169.9664" y1="88.8594" y2="79.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1962.9664" x2="9160.9664" y1="88.8594" y2="88.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="9160.9664" x2="9160.9664" y1="88.8594" y2="1029.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="91" x="5517.4664" y="104.8545">Middleware</text><!--MD5=[b9de0669a29c7bc934fd916b09c39491]
+cluster node--><rect fill="#FFFFFF" filter="url(#f18prfnycqlkhy)" height="539" style="stroke: #000000; stroke-width: 1.5;" width="1184" x="7323.9664" y="438.3594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="7895.9664" y="453.3545">node</text><!--MD5=[d74e2ef346f73688f9378f6d3d42598c]
+cluster Publish-Subscribe System--><polygon fill="#FFFFFF" filter="url(#f18prfnycqlkhy)" points="1970.9664,384.8594,1980.9664,374.8594,7312.9664,374.8594,7312.9664,1011.8594,7302.9664,1021.8594,1970.9664,1021.8594,1970.9664,384.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="7302.9664" x2="7311.9664" y1="384.8594" y2="375.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1970.9664" x2="7302.9664" y1="384.8594" y2="384.8594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="7302.9664" x2="7302.9664" y1="384.8594" y2="1021.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="205" x="4535.4664" y="400.8545">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
+cluster subscriber--><rect fill="#FFFFFF" filter="url(#f18prfnycqlkhy)" height="607" style="stroke: #000000; stroke-width: 1.5;" width="4101" x="3203.9664" y="406.8594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="5211.9664" y="421.8545">subscriber</text><!--MD5=[810d0f07e53ef611b6d803ef30301147]
+cluster Remote Procedure Call System--><polygon fill="#FFFFFF" filter="url(#f18prfnycqlkhy)" points="8526.9664,435.3594,8536.9664,425.3594,9162.9664,425.3594,9162.9664,967.3594,9152.9664,977.3594,8526.9664,977.3594,8526.9664,435.3594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="9152.9664" x2="9161.9664" y1="435.3594" y2="426.3594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="8526.9664" x2="9152.9664" y1="435.3594" y2="435.3594"/><line style="stroke: #000000; stroke-width: 1.5;" x1="9152.9664" x2="9152.9664" y1="435.3594" y2="977.3594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="244" x="8718.9664" y="451.3545">Remote Procedure Call System</text><!--MD5=[e443ac33c80100c2d54e1f5fe669f6d7]
+class urt_config--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="230.4609" id="urt_config" style="stroke: #A80036; stroke-width: 1.5;" width="290" x="948.9664" y="1385.8594"/><ellipse cx="1058.7164" cy="1401.8594" fill="#BFBFBF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1061.6852,1407.5 Q1061.107,1407.7969 1060.4664,1407.9375 Q1059.8258,1408.0938 1059.1227,1408.0938 Q1056.6227,1408.0938 1055.2945,1406.4531 Q1053.982,1404.7969 1053.982,1401.6719 Q1053.982,1398.5469 1055.2945,1396.8906 Q1056.6227,1395.2344 1059.1227,1395.2344 Q1059.8258,1395.2344 1060.4664,1395.3906 Q1061.1227,1395.5469 1061.6852,1395.8438 L1061.6852,1398.5625 Q1061.0602,1397.9844 1060.4664,1397.7188 Q1059.8727,1397.4375 1059.2477,1397.4375 Q1057.9039,1397.4375 1057.2164,1398.5156 Q1056.5289,1399.5781 1056.5289,1401.6719 Q1056.5289,1403.7656 1057.2164,1404.8438 Q1057.9039,1405.9063 1059.2477,1405.9063 Q1059.8727,1405.9063 1060.4664,1405.6406 Q1061.0602,1405.3594 1061.6852,1404.7813 L1061.6852,1407.5 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="1079.2164" y="1406.0137">urt_config</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.9664" x2="1237.9664" y1="1417.8594" y2="1417.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="159" x="954.9664" y="1432.0698">URT_CFG_DELAY_WIDTH : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="169" x="954.9664" y="1444.8745">URT_CFG_TOPICID_WIDTH : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="182" x="954.9664" y="1457.6792">URT_CFG_SERVICEID_WIDTH : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="954.9664" y="1470.4839">URT_CFG_NODESTAGE_WIDTH : int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="949.9664" x2="1237.9664" y1="1477.0781" y2="1477.0781"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="954.9664" y="1491.2886">URT_CFG_DEBUG_ENABLED : bool</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="949.9664" x2="1237.9664" y1="1497.8828" y2="1497.8828"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="954.9664" y="1512.0933">URT_CFG_PUBSUB_ENABLED : bool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="204" x="954.9664" y="1524.8979">URT_CFG_PUBSUB_PROFILING : bool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="278" x="954.9664" y="1537.7026">URT_CFG_PUBSUB_QOS_DEADLINECHECKS : bool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="252" x="954.9664" y="1550.5073">URT_CFG_PUBSUB_QOS_RATECHECKS : bool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="954.9664" y="1563.312">URT_CFG_PUBSUB_QOS_JITTERCHECKS : bool</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="949.9664" x2="1237.9664" y1="1569.9063" y2="1569.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="172" x="954.9664" y="1584.1167">URT_CFG_RPC_ENABLED : bool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="179" x="954.9664" y="1596.9214">URT_CFG_RPC_PROFILING : bool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="233" x="954.9664" y="1609.7261">URT_CFG_RPC_QOS_JITTERCHECKS : bool</text><!--MD5=[9f69b6f4e23017059189983d6906a1eb]
+class urt_nodestage_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="158.4375" id="urt_nodestage_t" style="stroke: #A80036; stroke-width: 1.5;" width="216" x="1224.9664" y="1167.8594"/><ellipse cx="1277.2164" cy="1183.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1278.0602,1190.6094 L1275.607,1190.6094 L1275.607,1180.3594 L1272.4664,1180.3594 L1272.4664,1178.2188 L1281.2008,1178.2188 L1281.2008,1180.3594 L1278.0602,1180.3594 L1278.0602,1190.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="103" x="1297.7164" y="1188.0137">urt_nodestage_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1225.9664" x2="1439.9664" y1="1199.8594" y2="1199.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="34" x="1230.9664" y="1230.8745">uin8_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1225.9664" x2="1232.4664" y1="1214.2617" y2="1214.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="201" x="1232.4664" y="1217.5698">URT_CFG_NODESTAGE_WIDTH == 8</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1433.4664" x2="1439.9664" y1="1214.2617" y2="1214.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="1230.9664" y="1260.4839">uint16_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1225.9664" x2="1228.9664" y1="1243.8711" y2="1243.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="208" x="1228.9664" y="1247.1792">URT_CFG_NODESTAGE_WIDTH == 16</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1436.9664" x2="1439.9664" y1="1243.8711" y2="1243.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="1230.9664" y="1290.0933">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1225.9664" x2="1228.9664" y1="1273.4805" y2="1273.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="208" x="1228.9664" y="1276.7886">URT_CFG_NODESTAGE_WIDTH == 32</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1436.9664" x2="1439.9664" y1="1273.4805" y2="1273.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="1230.9664" y="1319.7026">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1225.9664" x2="1228.9664" y1="1303.0898" y2="1303.0898"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="208" x="1228.9664" y="1306.3979">URT_CFG_NODESTAGE_WIDTH == 64</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1436.9664" x2="1439.9664" y1="1303.0898" y2="1303.0898"/><!--MD5=[a55671f9c3a4eb2d749fd774fc81a82b]
+class urt_topicid_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="158.4375" id="urt_topicid_t" style="stroke: #A80036; stroke-width: 1.5;" width="191" x="998.4664" y="1167.8594"/><ellipse cx="1051.2164" cy="1183.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1052.0602,1190.6094 L1049.607,1190.6094 L1049.607,1180.3594 L1046.4664,1180.3594 L1046.4664,1178.2188 L1055.2008,1178.2188 L1055.2008,1180.3594 L1052.0602,1180.3594 L1052.0602,1190.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="1071.7164" y="1188.0137">urt_topicid_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.4664" x2="1188.4664" y1="1199.8594" y2="1199.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="34" x="1004.4664" y="1230.8745">uin8_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="999.4664" x2="1005.9664" y1="1214.2617" y2="1214.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="1005.9664" y="1217.5698">URT_CFG_TOPICID_WIDTH == 8</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1181.9664" x2="1188.4664" y1="1214.2617" y2="1214.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="1004.4664" y="1260.4839">uint16_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="999.4664" x2="1002.4664" y1="1243.8711" y2="1243.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="1002.4664" y="1247.1792">URT_CFG_TOPICID_WIDTH == 16</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1185.4664" x2="1188.4664" y1="1243.8711" y2="1243.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="1004.4664" y="1290.0933">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="999.4664" x2="1002.4664" y1="1273.4805" y2="1273.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="1002.4664" y="1276.7886">URT_CFG_TOPICID_WIDTH == 32</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1185.4664" x2="1188.4664" y1="1273.4805" y2="1273.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="1004.4664" y="1319.7026">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="999.4664" x2="1002.4664" y1="1303.0898" y2="1303.0898"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="1002.4664" y="1306.3979">URT_CFG_TOPICID_WIDTH == 64</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1185.4664" x2="1188.4664" y1="1303.0898" y2="1303.0898"/><!--MD5=[4d8326c7af3a397210cbde406c7c860c]
+class urt_serviceid_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="158.4375" id="urt_serviceid_t" style="stroke: #A80036; stroke-width: 1.5;" width="204" x="1475.9664" y="1167.8594"/><ellipse cx="1528.7164" cy="1183.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1529.5602,1190.6094 L1527.107,1190.6094 L1527.107,1180.3594 L1523.9664,1180.3594 L1523.9664,1178.2188 L1532.7008,1178.2188 L1532.7008,1180.3594 L1529.5602,1180.3594 L1529.5602,1190.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="1549.2164" y="1188.0137">urt_serviceid_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1476.9664" x2="1678.9664" y1="1199.8594" y2="1199.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="34" x="1481.9664" y="1230.8745">uin8_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1476.9664" x2="1483.4664" y1="1214.2617" y2="1214.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="1483.4664" y="1217.5698">URT_CFG_SERVICEID_WIDTH == 8</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1672.4664" x2="1678.9664" y1="1214.2617" y2="1214.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="1481.9664" y="1260.4839">uint16_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1476.9664" x2="1479.9664" y1="1243.8711" y2="1243.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="1479.9664" y="1247.1792">URT_CFG_SERVICEID_WIDTH == 16</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1675.9664" x2="1678.9664" y1="1243.8711" y2="1243.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="1481.9664" y="1290.0933">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1476.9664" x2="1479.9664" y1="1273.4805" y2="1273.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="1479.9664" y="1276.7886">URT_CFG_SERVICEID_WIDTH == 32</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1675.9664" x2="1678.9664" y1="1273.4805" y2="1273.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="1481.9664" y="1319.7026">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1476.9664" x2="1479.9664" y1="1303.0898" y2="1303.0898"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="1479.9664" y="1306.3979">URT_CFG_SERVICEID_WIDTH == 64</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1675.9664" x2="1678.9664" y1="1303.0898" y2="1303.0898"/><!--MD5=[e750dab3ce4ebe0433cc930181355272]
+class urt_status_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="73.6094" id="urt_status_t" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="1714.9664" y="1209.8594"/><ellipse cx="1763.2164" cy="1225.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1764.0602,1232.6094 L1761.607,1232.6094 L1761.607,1222.3594 L1758.4664,1222.3594 L1758.4664,1220.2188 L1767.2008,1220.2188 L1767.2008,1222.3594 L1764.0602,1222.3594 L1764.0602,1232.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="1783.7164" y="1230.0137">urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1715.9664" x2="1893.9664" y1="1241.8594" y2="1241.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="1720.9664" y="1256.0698">URT_STATUS_OK = 0x0..0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="1720.9664" y="1268.8745">URT_STATUS_ERROR = 0x8..0</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1715.9664" x2="1893.9664" y1="1275.4688" y2="1275.4688"/><!--MD5=[15452fea434e71f16c7de0feaca2b066]
+class urt_delay_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="99.2188" id="urt_delay_t" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="1930.4664" y="1197.3594"/><ellipse cx="1982.7164" cy="1213.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1983.5602,1220.1094 L1981.107,1220.1094 L1981.107,1209.8594 L1977.9664,1209.8594 L1977.9664,1207.7188 L1986.7008,1207.7188 L1986.7008,1209.8594 L1983.5602,1209.8594 L1983.5602,1220.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="68" x="2003.2164" y="1217.5137">urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1931.4664" x2="2110.4664" y1="1229.3594" y2="1229.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="1936.4664" y="1260.3745">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1931.4664" x2="1934.4664" y1="1243.7617" y2="1243.7617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="1934.4664" y="1247.0698">URT_CFG_DELAY_WIDTH == 32</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2107.4664" x2="2110.4664" y1="1243.7617" y2="1243.7617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="1936.4664" y="1289.9839">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1931.4664" x2="1934.4664" y1="1273.3711" y2="1273.3711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="1934.4664" y="1276.6792">URT_CFG_DELAY_WIDTH == 64</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2107.4664" x2="2110.4664" y1="1273.3711" y2="1273.3711"/><!--MD5=[f106a25c06a671b3918b1a8f37571a4d]
+class urt_debug--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="60.8047" id="urt_debug" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="718.4664" y="1216.3594"/><ellipse cx="804.7164" cy="1232.3594" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M808.9508,1228.125 L803.6695,1228.125 L803.6695,1230.7969 L808.4664,1230.7969 L808.4664,1232.9531 L803.6695,1232.9531 L803.6695,1238.3594 L801.232,1238.3594 L801.232,1225.9688 L808.9508,1225.9688 L808.9508,1228.125 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="825.2164" y="1236.5137">urt_debug</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="719.4664" x2="962.4664" y1="1248.3594" y2="1248.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="719.4664" x2="962.4664" y1="1256.3594" y2="1256.3594"/><ellipse cx="729.4664" cy="1267.3594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="219" x="738.4664" y="1270.5698">urtDebugAssert(condition : bool) : void</text><!--MD5=[3677786d1f00795918091b0110bfa4af]
+class urt_osTime_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="86.4141" id="urt_osTime_t" style="stroke: #A80036; stroke-width: 1.5;" width="425" x="9486.4664" y="895.8594"/><ellipse cx="9655.2164" cy="911.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9656.0602,918.6094 L9653.607,918.6094 L9653.607,908.3594 L9650.4664,908.3594 L9650.4664,906.2188 L9659.2008,906.2188 L9659.2008,908.3594 L9656.0602,908.3594 L9656.0602,918.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="9675.7164" y="916.0137">urt_osTime_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9487.4664" x2="9910.4664" y1="927.8594" y2="927.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="9487.4664" x2="9910.4664" y1="935.8594" y2="935.8594"/><ellipse cx="9497.4664" cy="946.8594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="231" x="9506.4664" y="950.0698">urtTime2Us (t : urt_osTime_t*) : uint64_t</text><ellipse cx="9497.4664" cy="959.6641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="9506.4664" y="962.8745">urtTimeNow (void) : urt_osTime_t</text><ellipse cx="9497.4664" cy="972.4688" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="399" x="9506.4664" y="975.6792">urtTimeAddUs (time : urt_osTime_t*, offset : uint32_t) : urt_osTime_t*</text><!--MD5=[532279a7a1cac9af7f32856ca2ae6b9b]
+class urt_osMutex_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="99.2188" id="urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.5;" width="298" x="9946.9664" y="889.3594"/><ellipse cx="10048.2164" cy="905.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M10049.0602,912.1094 L10046.607,912.1094 L10046.607,901.8594 L10043.4664,901.8594 L10043.4664,899.7188 L10052.2008,899.7188 L10052.2008,901.8594 L10049.0602,901.8594 L10049.0602,912.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="10068.7164" y="909.5137">urt_osMutex_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9947.9664" x2="10243.9664" y1="921.3594" y2="921.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="9947.9664" x2="10243.9664" y1="929.3594" y2="929.3594"/><ellipse cx="9957.9664" cy="940.3594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="245" x="9966.9664" y="943.5698">urtMutexInit (mutex : urt_osMutex_t*) : void</text><ellipse cx="9957.9664" cy="953.1641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="253" x="9966.9664" y="956.3745">urtMutexLock (mutex : urt_osMutex_t*) : void</text><ellipse cx="9957.9664" cy="965.9688" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="272" x="9966.9664" y="969.1792">urtMutexTryLock (mutex : urt_osMutex_t*) : bool</text><ellipse cx="9957.9664" cy="978.7734" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="9966.9664" y="981.9839">urtMutexUnlock (mutex : urt_osMutex_t*) : void</text><!--MD5=[0cf29100c96c506429a28b45d347cc92]
+class urt_streams--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="73.6094" id="urt_streams" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="9242.4664" y="901.8594"/><ellipse cx="9305.2164" cy="917.8594" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9309.4508,913.625 L9304.1695,913.625 L9304.1695,916.2969 L9308.9664,916.2969 L9308.9664,918.4531 L9304.1695,918.4531 L9304.1695,923.8594 L9301.732,923.8594 L9301.732,911.4688 L9309.4508,911.4688 L9309.4508,913.625 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="9325.7164" y="922.0137">urt_streams</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9243.4664" x2="9450.4664" y1="933.8594" y2="933.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="9243.4664" x2="9450.4664" y1="941.8594" y2="941.8594"/><ellipse cx="9253.4664" cy="952.8594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="166" x="9262.4664" y="956.0698">urtPrintf(fmt : char*, ... ) : int</text><ellipse cx="9253.4664" cy="965.6641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="9262.4664" y="968.8745">urtErrPrintf(fmt : char*, ... ) : int</text><!--MD5=[52fa11869cb40c93fa7702378ddd839e]
+class urt_osCondvarWaitStatus_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="86.4141" id="urt_osCondvarWaitStatus_t" style="stroke: #A80036; stroke-width: 1.5;" width="270" x="14005.9664" y="1203.8594"/><ellipse cx="14052.2164" cy="1219.8594" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M14056.3258,1225.8594 L14048.607,1225.8594 L14048.607,1213.4688 L14056.3258,1213.4688 L14056.3258,1215.625 L14051.0602,1215.625 L14051.0602,1218.2969 L14055.8258,1218.2969 L14055.8258,1220.4531 L14051.0602,1220.4531 L14051.0602,1223.7031 L14056.3258,1223.7031 L14056.3258,1225.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="169" x="14072.7164" y="1224.0137">urt_osCondvarWaitStatus_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="14006.9664" x2="14274.9664" y1="1235.8594" y2="1235.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="230" x="14011.9664" y="1250.0698">URT_CONDVAR_WAITSTATUS_SIGNAL = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="14011.9664" y="1262.8745">URT_CONDVAR_WAITSTATUS_BROADCAST = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="239" x="14011.9664" y="1275.6792">URT_CONDVAR_WAITSTATUS_TIMEOUT = 0</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="14006.9664" x2="14274.9664" y1="1282.2734" y2="1282.2734"/><!--MD5=[004fc5dee471033e8e4138c1c73f0692]
+class urt_osCondvar_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="99.2188" id="urt_osCondvar_t" style="stroke: #A80036; stroke-width: 1.5;" width="710" x="13785.9664" y="889.3594"/><ellipse cx="14086.2164" cy="905.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M14087.0602,912.1094 L14084.607,912.1094 L14084.607,901.8594 L14081.4664,901.8594 L14081.4664,899.7188 L14090.2008,899.7188 L14090.2008,901.8594 L14087.0602,901.8594 L14087.0602,912.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="14106.7164" y="909.5137">urt_osCondvar_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="13786.9664" x2="14494.9664" y1="921.3594" y2="921.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="13786.9664" x2="14494.9664" y1="929.3594" y2="929.3594"/><ellipse cx="13796.9664" cy="940.3594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="283" x="13805.9664" y="943.5698">urtCondvarInit (condvar : urt_osCondvar_t*) : void</text><ellipse cx="13796.9664" cy="953.1641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="301" x="13805.9664" y="956.3745">urtCondvarSignal (condvar : urt_osCondvar_t*) : void</text><ellipse cx="13796.9664" cy="965.9688" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="324" x="13805.9664" y="969.1792">urtCondvarBroadcast (condvar : urt_osCondvar_t*) : void</text><ellipse cx="13796.9664" cy="978.7734" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="684" x="13805.9664" y="981.9839">urtCondvarWait (condvar : urt_osCondvar_t*, mutex : urt_osMutex_t*, timeout : urt_delay_t) : urt_osCondvarWaitStatus_t</text><!--MD5=[93799a03260ba286abda700174f4f205]
+class urt_osTimerCallback_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="60.8047" id="urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="13216.9664" y="1216.3594"/><ellipse cx="13287.7164" cy="1232.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M13288.5602,1239.1094 L13286.107,1239.1094 L13286.107,1228.8594 L13282.9664,1228.8594 L13282.9664,1226.7188 L13291.7008,1226.7188 L13291.7008,1228.8594 L13288.5602,1228.8594 L13288.5602,1239.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="13308.2164" y="1236.5137">urt_osTimerCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="13217.9664" x2="13501.9664" y1="1248.3594" y2="1248.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="13217.9664" x2="13501.9664" y1="1256.3594" y2="1256.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="274" x="13222.9664" y="1270.5698">urt_osTimerCallback_t (parameter : void*) : void</text><!--MD5=[0b340d7b925b1eab6a1b7e084f68a7c2]
+class urt_osTimer_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="112.0234" id="urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.5;" width="782" x="12968.9664" y="882.8594"/><ellipse cx="13313.7164" cy="898.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M13314.5602,905.6094 L13312.107,905.6094 L13312.107,895.3594 L13308.9664,895.3594 L13308.9664,893.2188 L13317.7008,893.2188 L13317.7008,895.3594 L13314.5602,895.3594 L13314.5602,905.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="13334.2164" y="903.0137">urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="12969.9664" x2="13749.9664" y1="914.8594" y2="914.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="12969.9664" x2="13749.9664" y1="922.8594" y2="922.8594"/><ellipse cx="12979.9664" cy="933.8594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="12988.9664" y="937.0698">urtTimerInit (timer : urt_osTimer_t*) : void</text><ellipse cx="12979.9664" cy="946.6641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="705" x="12988.9664" y="949.8745">urtTimerSet (timer : urt_osTimer_t*, delay : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t</text><ellipse cx="12979.9664" cy="959.4688" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="756" x="12988.9664" y="962.6792">urtTimerSetPeriodic (timer : urt_osTimer_t*, period : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t</text><ellipse cx="12979.9664" cy="972.2734" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="300" x="12988.9664" y="975.4839">urtTimerReset (timer : urt_osTimer_t*) : urt_status_t</text><ellipse cx="12979.9664" cy="985.0781" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="12988.9664" y="988.2886">urtTimerIsArmed (timer : urt_osTimer_t*) : bool</text><!--MD5=[86c16d91227b9a9ec3b6b9b0285de4e9]
+class urt_osThreadPrio_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="150.4375" id="urt_osThreadPrio_t" style="stroke: #A80036; stroke-width: 1.5;" width="197" x="12183.4664" y="1171.8594"/><ellipse cx="12219.6164" cy="1187.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M12220.4601,1194.6094 L12218.007,1194.6094 L12218.007,1184.3594 L12214.8664,1184.3594 L12214.8664,1182.2188 L12223.6008,1182.2188 L12223.6008,1184.3594 L12220.4601,1184.3594 L12220.4601,1194.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="12238.3164" y="1192.0137">urt_osThreadPrio_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="12184.4664" x2="12379.4664" y1="1203.8594" y2="1203.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="12189.4664" y="1218.0698">URT_THREAD_PRIO_LOW_MIN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="163" x="12189.4664" y="1230.8745">URT_THREAD_PRIO_LOW_MAX</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="182" x="12189.4664" y="1243.6792">URT_THREAD_PRIO_NORMAL_MIN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="12189.4664" y="1256.4839">URT_THREAD_PRIO_NORMAL_MAX</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="164" x="12189.4664" y="1269.2886">URT_THREAD_PRIO_HIGH_MIN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="167" x="12189.4664" y="1282.0933">URT_THREAD_PRIO_HIGH_MAX</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="12189.4664" y="1294.8979">URT_THREAD_PRIO_RT_MIN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="12189.4664" y="1307.7026">URT_THREAD_PRIO_RT_MAX</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="12184.4664" x2="12379.4664" y1="1314.2969" y2="1314.2969"/><!--MD5=[69d8aab9aa387a2f5052ea3da80e80ea]
+class urt_osThreadFunction_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="60.8047" id="urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="12692.9664" y="1216.3594"/><ellipse cx="12740.7164" cy="1232.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M12741.5602,1239.1094 L12739.107,1239.1094 L12739.107,1228.8594 L12735.9664,1228.8594 L12735.9664,1226.7188 L12744.7008,1226.7188 L12744.7008,1228.8594 L12741.5602,1228.8594 L12741.5602,1239.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="12761.2164" y="1236.5137">urt_osThreadFunction_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="12693.9664" x2="12943.9664" y1="1248.3594" y2="1248.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="12693.9664" x2="12943.9664" y1="1256.3594" y2="1256.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="12698.9664" y="1270.5698">urt_osThreadFunction_t (arg : void*) : void</text><!--MD5=[ab5f611d45c3fa10609c33f780d8c3e1]
+class urt_osThreadTerminateSignal_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="73.6094" id="urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="12415.9664" y="1209.8594"/><ellipse cx="12437.7164" cy="1225.8594" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M12441.8258,1231.8594 L12434.107,1231.8594 L12434.107,1219.4688 L12441.8258,1219.4688 L12441.8258,1221.625 L12436.5602,1221.625 L12436.5602,1224.2969 L12441.3258,1224.2969 L12441.3258,1226.4531 L12436.5602,1226.4531 L12436.5602,1229.7031 L12441.8258,1229.7031 L12441.8258,1231.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="195" x="12453.2164" y="1230.0137">urt_osThreadTerminateSignal_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="12416.9664" x2="12656.9664" y1="1241.8594" y2="1241.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="230" x="12421.9664" y="1256.0698">URT_THREAD_TERMINATE_REQUEST = 15</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="12421.9664" y="1268.8745">URT_THREAD_TERMINATE_KILL = 9</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="12416.9664" x2="12656.9664" y1="1275.4688" y2="1275.4688"/><!--MD5=[47d14ad2c233fae1b32b8d0a283e820a]
+class urt_osThreadState_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="137.6328" id="urt_osThreadState_t" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="11921.9664" y="1177.8594"/><ellipse cx="11966.7164" cy="1193.8594" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M11970.8258,1199.8594 L11963.107,1199.8594 L11963.107,1187.4688 L11970.8258,1187.4688 L11970.8258,1189.625 L11965.5602,1189.625 L11965.5602,1192.2969 L11970.3258,1192.2969 L11970.3258,1194.4531 L11965.5602,1194.4531 L11965.5602,1197.7031 L11970.8258,1197.7031 L11970.8258,1199.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="128" x="11987.2164" y="1198.0137">urt_osThreadState_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="11922.9664" x2="12146.9664" y1="1209.8594" y2="1209.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="11927.9664" y="1224.0698">URT_THREAD_STATE_INACTIVE = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="11927.9664" y="1236.8745">URT_THREAD_STATE_RUNNING = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="180" x="11927.9664" y="1249.6792">URT_THREAD_STATE_READY = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="11927.9664" y="1262.4839">URT_THREAD_STATE_SLEEPING = 3</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="213" x="11927.9664" y="1275.2886">URT_THREAD_STATE_SUSPENDED = 4</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="11927.9664" y="1288.0933">URT_THREAD_STATE_WAITING = 5</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="214" x="11927.9664" y="1300.8979">URT_THREAD_STATE_TERMINATED = 6</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="11922.9664" x2="12146.9664" y1="1307.4922" y2="1307.4922"/><!--MD5=[0a16224ede9ffa9bb2d34e085a076e6d]
+class urt_osThread_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="337.7031" id="urt_osThread_t" style="stroke: #A80036; stroke-width: 1.5;" width="560" x="11921.9664" y="769.8594"/><ellipse cx="12150.7164" cy="785.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M12151.5602,792.6094 L12149.107,792.6094 L12149.107,782.3594 L12145.9664,782.3594 L12145.9664,780.2188 L12154.7008,780.2188 L12154.7008,782.3594 L12151.5602,782.3594 L12151.5602,792.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="94" x="12171.2164" y="790.0137">urt_osThread_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="11922.9664" x2="12480.9664" y1="801.8594" y2="801.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="179" x="11927.9664" y="816.0698">URT_THREAD_SLEEP_MAX : float</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="11927.9664" y="828.8745">URT_THREAD_SSLEP_MAX : urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="225" x="11927.9664" y="841.6792">URT_THREAD_MSLEEP_MAX : urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="11927.9664" y="854.4839">URT_THREAD_USLEEP_MAX : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="11922.9664" x2="12480.9664" y1="861.0781" y2="861.0781"/><ellipse cx="11932.9664" cy="872.0781" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="248" x="11941.9664" y="875.2886">URT_THREAD_MEMORY (varname, stacksize)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="11922.9664" x2="12480.9664" y1="881.8828" y2="881.8828"/><ellipse cx="11932.9664" cy="892.8828" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="534" x="11941.9664" y="896.0933">urtThreadInit (memory : void*, size : size_t, func : urt_osThreadFunction_t*) : urt_osThread_t*</text><ellipse cx="11932.9664" cy="905.6875" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="490" x="11941.9664" y="908.8979">urtThreadStart (thread : urt_osThread_t*, prio : urt_osThreadPrio_t, arg : void*) : void</text><ellipse cx="11932.9664" cy="918.4922" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="11941.9664" y="921.7026">urtThreadYield (void) : void</text><ellipse cx="11932.9664" cy="931.2969" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="11941.9664" y="934.5073">urtThreadGetPriority (void) : urt_osThreadPrio_t</text><ellipse cx="11932.9664" cy="944.1016" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="304" x="11941.9664" y="947.312">urtThreadSetPriority (prio : urt_osThreadPrio_t) : void</text><ellipse cx="11932.9664" cy="956.9063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="294" x="11941.9664" y="960.1167">urtThreadSuspend (thread : urt_osThread_t*) : void</text><ellipse cx="11932.9664" cy="969.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="335" x="11941.9664" y="972.9214">urtThreadResume (thread : urt_osThread_t*) : urt_status_t</text><ellipse cx="11932.9664" cy="982.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="11941.9664" y="985.7261">urtThreadSleep (seconds : float) : void</text><ellipse cx="11932.9664" cy="995.3203" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="11941.9664" y="998.5308">urtThreadSSleep (seconds : urt_delay_t) : void</text><ellipse cx="11932.9664" cy="1008.125" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="289" x="11941.9664" y="1011.3354">urtThreadMSleep (milliseconds : urt_delay_t) : void</text><ellipse cx="11932.9664" cy="1020.9297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="297" x="11941.9664" y="1024.1401">urtThreadUSleep (microseconds : urt_delay_t) : void</text><ellipse cx="11932.9664" cy="1033.7344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="11941.9664" y="1036.9448">urtThreadSleepUntil (time : urt_osTime_t) : void</text><ellipse cx="11932.9664" cy="1046.5391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="11941.9664" y="1049.7495">urtThreadExit (void) : void</text><ellipse cx="11932.9664" cy="1059.3438" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="518" x="11941.9664" y="1062.5542">urtThreadTerminate (thread : urt_osThread_t*, sig : urt_osThreadTerminateSignal_t) : void</text><ellipse cx="11932.9664" cy="1072.1484" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="264" x="11941.9664" y="1075.3589">urtThreadJoin (thread : urt_osThread_t*) : void</text><ellipse cx="11932.9664" cy="1084.9531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="387" x="11941.9664" y="1088.1636">urtThreadGetState (thread : urt_osThread_t*) : urt_osThreadState_t</text><ellipse cx="11932.9664" cy="1097.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="237" x="11941.9664" y="1100.9683">urtThreadGetSelf (void) : urt_osThread_t*</text><!--MD5=[0a4e0f34d8da0ad3ed6ecf72f02e09c8]
+class urt_osEventMask_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="60.8047" id="urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.5;" width="280" x="10260.9664" y="1216.3594"/><ellipse cx="10338.2164" cy="1232.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M10339.0602,1239.1094 L10336.607,1239.1094 L10336.607,1228.8594 L10333.4664,1228.8594 L10333.4664,1226.7188 L10342.2008,1226.7188 L10342.2008,1228.8594 L10339.0602,1228.8594 L10339.0602,1239.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="10358.7164" y="1236.5137">urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="10261.9664" x2="10539.9664" y1="1248.3594" y2="1248.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="268" x="10266.9664" y="1262.5698">URT_EVENTMASK_MAXPRIO : urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="10261.9664" x2="10539.9664" y1="1269.1641" y2="1269.1641"/><!--MD5=[dc1cc33af288560680c15dec1e56eda0]
+class urt_osEventFlags_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="48" id="urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="10981.9664" y="1476.8594"/><ellipse cx="10996.9664" cy="1492.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M10997.8102,1499.6094 L10995.357,1499.6094 L10995.357,1489.3594 L10992.2164,1489.3594 L10992.2164,1487.2188 L11000.9508,1487.2188 L11000.9508,1489.3594 L10997.8102,1489.3594 L10997.8102,1499.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="11010.9664" y="1497.0137">urt_osEventFlags_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="10982.9664" x2="11130.9664" y1="1508.8594" y2="1508.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="10982.9664" x2="11130.9664" y1="1516.8594" y2="1516.8594"/><!--MD5=[e2bbbd64e6979bf7b755747a6c0ba948]
+class urt_osEventWait_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="86.4141" id="urt_osEventWait_t" style="stroke: #A80036; stroke-width: 1.5;" width="162" x="10575.9664" y="1203.8594"/><ellipse cx="10599.0664" cy="1219.8594" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M10603.1758,1225.8594 L10595.457,1225.8594 L10595.457,1213.4688 L10603.1758,1213.4688 L10603.1758,1215.625 L10597.9102,1215.625 L10597.9102,1218.2969 L10602.6758,1218.2969 L10602.6758,1220.4531 L10597.9102,1220.4531 L10597.9102,1223.7031 L10603.1758,1223.7031 L10603.1758,1225.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="10614.8664" y="1224.0137">urt_osEventWait_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="10576.9664" x2="10736.9664" y1="1235.8594" y2="1235.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="10581.9664" y="1250.0698">URT_EVENT_WAIT_ONE = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="10581.9664" y="1262.8745">URT_EVENT_WAIT_ANY = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="10581.9664" y="1275.6792">URT_EVENT_WAIT_ALL = 2</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="10576.9664" x2="10736.9664" y1="1282.2734" y2="1282.2734"/><!--MD5=[d054ac2eda12ce4b1fe5a18c9be716c1]
+class urt_osEventListener_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="86.4141" id="urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.5;" width="494" x="10809.9664" y="1203.8594"/><ellipse cx="10985.2164" cy="1219.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M10986.0602,1226.6094 L10983.607,1226.6094 L10983.607,1216.3594 L10980.4664,1216.3594 L10980.4664,1214.2188 L10989.2008,1214.2188 L10989.2008,1216.3594 L10986.0602,1216.3594 L10986.0602,1226.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="11005.7164" y="1224.0137">urt_osEventListener_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="10810.9664" x2="11302.9664" y1="1235.8594" y2="1235.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="10810.9664" x2="11302.9664" y1="1243.8594" y2="1243.8594"/><ellipse cx="10820.9664" cy="1254.8594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="341" x="10829.9664" y="1258.0698">urtEventListenerInit (listener : urt_osEventListener_t*) : void</text><ellipse cx="10820.9664" cy="1267.6641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="458" x="10829.9664" y="1270.8745">urtEventListenerGetFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><ellipse cx="10820.9664" cy="1280.4688" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="468" x="10829.9664" y="1283.6792">urtEventListenerClearFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><!--MD5=[4d6906f8b977dc26629fa492460e6327]
+class urt_osEventSource_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="73.6094" id="urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.5;" width="547" x="11339.4664" y="1209.8594"/><ellipse cx="11544.2164" cy="1225.8594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M11545.0602,1232.6094 L11542.607,1232.6094 L11542.607,1222.3594 L11539.4664,1222.3594 L11539.4664,1220.2188 L11548.2008,1220.2188 L11548.2008,1222.3594 L11545.0602,1222.3594 L11545.0602,1232.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="129" x="11564.7164" y="1230.0137">urt_osEventSource_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="11340.4664" x2="11885.4664" y1="1241.8594" y2="1241.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="11340.4664" x2="11885.4664" y1="1249.8594" y2="1249.8594"/><ellipse cx="11350.4664" cy="1260.8594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="325" x="11359.4664" y="1264.0698">urtEventSourceInit (source : urt_osEventSource_t*) : void</text><ellipse cx="11350.4664" cy="1273.6641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="521" x="11359.4664" y="1276.8745">urtEventSourceBroadcast (source : urt_osEventSource_t*, flags : urt_osEventFlags_t) : void</text><!--MD5=[04a3b5a37031e2a4d723f19d8adf86f5]
+class urt_events--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="86.4141" id="urt_events" style="stroke: #A80036; stroke-width: 1.5;" width="890" x="10279.9664" y="895.8594"/><ellipse cx="10687.7164" cy="911.8594" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M10691.9508,907.625 L10686.6695,907.625 L10686.6695,910.2969 L10691.4664,910.2969 L10691.4664,912.4531 L10686.6695,912.4531 L10686.6695,917.8594 L10684.232,917.8594 L10684.232,905.4688 L10691.9508,905.4688 L10691.9508,907.625 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="10708.2164" y="916.0137">urt_events</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="10280.9664" x2="11168.9664" y1="927.8594" y2="927.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="10280.9664" x2="11168.9664" y1="935.8594" y2="935.8594"/><ellipse cx="10290.9664" cy="946.8594" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="864" x="10299.9664" y="950.0698">urtEventRegister (source : urt_osEventSource_t*, listener : urt_osEventListener_t*, mask : urt_osEventMask_t, flags : urt_osEventFlags_t) : urt_status_t</text><ellipse cx="10290.9664" cy="959.6641" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="567" x="10299.9664" y="962.8745">urtEventUnregister (source _ urt_osEventSource_t*, listener : urt_osEventListener_t*) : urt_status_t</text><ellipse cx="10290.9664" cy="972.4688" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="618" x="10299.9664" y="975.6792">urtEventWait (mask : urt_osEventMask_t, type : urt_osEventWait_t, timeout : urt_delay_t) : urt_osEventMask_t</text><!--MD5=[89d25e87afdd75480e1ec2bd05524873]
+class urt_core_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="256.0703" id="urt_core_t" style="stroke: #A80036; stroke-width: 1.5;" width="515" x="2708.4664" y="110.8594"/><ellipse cx="2930.2164" cy="126.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2929.7008,127.4219 Q2927.8414,126.7188 2927.1852,125.9531 Q2926.5445,125.1719 2926.5445,123.8594 Q2926.5445,122.1719 2927.6227,121.2031 Q2928.7008,120.2344 2930.5758,120.2344 Q2931.4352,120.2344 2932.2789,120.4375 Q2933.1383,120.625 2933.982,121.0156 L2933.982,123.4063 Q2933.2008,122.8438 2932.3727,122.5625 Q2931.5602,122.2656 2930.7633,122.2656 Q2929.8883,122.2656 2929.4039,122.625 Q2928.9352,122.9844 2928.9352,123.6406 Q2928.9352,124.1563 2929.2789,124.5 Q2929.6227,124.8281 2930.7164,125.2344 L2931.7789,125.6406 Q2933.2633,126.1875 2933.9664,127.0938 Q2934.6852,128 2934.6852,129.375 Q2934.6852,131.25 2933.5758,132.1719 Q2932.4664,133.0938 2930.2164,133.0938 Q2929.2945,133.0938 2928.3727,132.875 Q2927.4508,132.6563 2926.5914,132.2344 L2926.5914,129.7031 Q2927.5602,130.3906 2928.482,130.7344 Q2929.4039,131.0781 2930.2945,131.0781 Q2931.2008,131.0781 2931.7008,130.6719 Q2932.2008,130.25 2932.2008,129.5156 Q2932.2008,128.9531 2931.857,128.5469 Q2931.5289,128.125 2930.9039,127.875 L2929.7008,127.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="2950.7164" y="131.0137">urt_core_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2709.4664" x2="3222.4664" y1="142.8594" y2="142.8594"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="2716.4664" y="150.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="2728.4664" y="157.0698">_nodes : urt_node_t*</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="2716.4664" y="163.6641"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="192" x="2728.4664" y="169.8745">_evtSource : urt_osEventSource_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="2716.4664" y="176.4688"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="2728.4664" y="182.6792">_lock : urt_osMutex_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="2716.4664" y="206.0781"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="117" x="2728.4664" y="212.2886">_topics : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2709.4664" x2="2860.9664" y1="195.6758" y2="195.6758"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="2860.9664" y="198.9839">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3070.9664" x2="3222.4664" y1="195.6758" y2="195.6758"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="2716.4664" y="235.6875"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="145" x="2728.4664" y="241.8979">_services : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2709.4664" x2="2873.4664" y1="225.2852" y2="225.2852"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="2873.4664" y="228.5933">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3058.4664" x2="3222.4664" y1="225.2852" y2="225.2852"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2709.4664" x2="3222.4664" y1="248.4922" y2="248.4922"/><ellipse cx="2719.4664" cy="259.4922" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="2728.4664" y="262.7026">urtCoreInit (void) : urt_status_t</text><ellipse cx="2719.4664" cy="272.2969" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="222" x="2728.4664" y="275.5073">urtCoreStartNodes (void) : urt_status_t</text><ellipse cx="2719.4664" cy="285.1016" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="489" x="2728.4664" y="288.312">urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodestage_t) : urt_status_t</text><ellipse cx="2719.4664" cy="297.9063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="2728.4664" y="301.1167">urtCoreStopNodes (void) : urt_status_t</text><ellipse cx="2719.4664" cy="327.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="273" x="2728.4664" y="330.7261">urtCoreGetTopic (id : urt_topicid_t) : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2709.4664" x2="2860.9664" y1="314.1133" y2="314.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="2860.9664" y="317.4214">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3070.9664" x2="3222.4664" y1="314.1133" y2="314.1133"/><ellipse cx="2719.4664" cy="357.125" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="313" x="2728.4664" y="360.3354">urtCoreGetService (id : urt_serviceid_t) : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2709.4664" x2="2873.4664" y1="343.7227" y2="343.7227"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="2873.4664" y="347.0308">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3058.4664" x2="3222.4664" y1="343.7227" y2="343.7227"/><!--MD5=[a7dea26996a1231aa68629b332780450]
+class urt_nodeSetupCallback_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="60.8047" id="urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="456" x="7394.9664" y="908.3594"/><ellipse cx="7540.7164" cy="924.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7541.5602,931.1094 L7539.107,931.1094 L7539.107,920.8594 L7535.9664,920.8594 L7535.9664,918.7188 L7544.7008,918.7188 L7544.7008,920.8594 L7541.5602,920.8594 L7541.5602,931.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="7561.2164" y="928.5137">urt_nodeSetupCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7395.9664" x2="7849.9664" y1="940.3594" y2="940.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7395.9664" x2="7849.9664" y1="948.3594" y2="948.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="444" x="7400.9664" y="962.5698">urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t</text><!--MD5=[7f869e17e281b89d59a4c09e0f22c3af]
+class urt_nodeLoopCallback_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="60.8047" id="urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="614" x="7885.9664" y="908.3594"/><ellipse cx="8114.2164" cy="924.3594" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M8115.0602,931.1094 L8112.607,931.1094 L8112.607,920.8594 L8109.4664,920.8594 L8109.4664,918.7188 L8118.2008,918.7188 L8118.2008,920.8594 L8115.0602,920.8594 L8115.0602,931.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="8134.7164" y="928.5137">urt_nodeLoopCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7886.9664" x2="8498.9664" y1="940.3594" y2="940.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7886.9664" x2="8498.9664" y1="948.3594" y2="948.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="602" x="7891.9664" y="962.5698">urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t</text><!--MD5=[d2563153d77472384a15c07b815d639f]
+class urt_node_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="205.6563" id="urt_node_t" style="stroke: #A80036; stroke-width: 1.5;" width="1149" x="7332.4664" y="465.3594"/><ellipse cx="7869.2164" cy="481.3594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7868.7008,481.9219 Q7866.8414,481.2188 7866.1852,480.4531 Q7865.5445,479.6719 7865.5445,478.3594 Q7865.5445,476.6719 7866.6227,475.7031 Q7867.7008,474.7344 7869.5758,474.7344 Q7870.4352,474.7344 7871.2789,474.9375 Q7872.1383,475.125 7872.982,475.5156 L7872.982,477.9063 Q7872.2008,477.3438 7871.3727,477.0625 Q7870.5602,476.7656 7869.7633,476.7656 Q7868.8883,476.7656 7868.4039,477.125 Q7867.9352,477.4844 7867.9352,478.1406 Q7867.9352,478.6563 7868.2789,479 Q7868.6227,479.3281 7869.7164,479.7344 L7870.7789,480.1406 Q7872.2633,480.6875 7872.9664,481.5938 Q7873.6852,482.5 7873.6852,483.875 Q7873.6852,485.75 7872.5758,486.6719 Q7871.4664,487.5938 7869.2164,487.5938 Q7868.2945,487.5938 7867.3727,487.375 Q7866.4508,487.1563 7865.5914,486.7344 L7865.5914,484.2031 Q7866.5602,484.8906 7867.482,485.2344 Q7868.4039,485.5781 7869.2945,485.5781 Q7870.2008,485.5781 7870.7008,485.1719 Q7871.2008,484.75 7871.2008,484.0156 Q7871.2008,483.4531 7870.857,483.0469 Q7870.5289,482.625 7869.9039,482.375 L7868.7008,481.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="67" x="7889.7164" y="485.5137">urt_node_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7333.4664" x2="8480.4664" y1="497.3594" y2="497.3594"/><ellipse cx="7343.4664" cy="508.3594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="7352.4664" y="511.5698">next : urt_node_t*</text><ellipse cx="7343.4664" cy="521.1641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="7352.4664" y="524.3745">thread : urt_osThread_t*</text><ellipse cx="7343.4664" cy="533.9688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="7352.4664" y="537.1792">setupcallback : urt_nodeSetupCallback_t*</text><ellipse cx="7343.4664" cy="546.7734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="117" x="7352.4664" y="549.9839">setupparams : void*</text><ellipse cx="7343.4664" cy="559.5781" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="221" x="7352.4664" y="562.7886">loopcallback : urt_nodeLoopCallback_t*</text><ellipse cx="7343.4664" cy="572.3828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="7352.4664" y="575.5933">loopparams : void*</text><ellipse cx="7343.4664" cy="585.1875" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="7352.4664" y="588.3979">stage : urt_nodestage_t</text><ellipse cx="7343.4664" cy="597.9922" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="178" x="7352.4664" y="601.2026">listener : urt_osEventListener_t</text><ellipse cx="7343.4664" cy="627.6016" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="88" x="7352.4664" y="630.812">loops : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7333.4664" x2="7698.9664" y1="614.1992" y2="614.1992"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="416" x="7698.9664" y="617.5073">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8114.9664" x2="8480.4664" y1="614.1992" y2="614.1992"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7333.4664" x2="8480.4664" y1="637.4063" y2="637.4063"/><rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="7340.4664" y="645.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="179" x="7352.4664" y="651.6167">_main : urt_osThreadFunction_t</text><ellipse cx="7343.4664" cy="661.2109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1123" x="7352.4664" y="664.4214">urtNodeInit (node : urt_node_t*, thread : urt_osThread_t*, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t</text><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
+class urt_message_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="141.6328" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="2727.4664" y="867.8594"/><ellipse cx="2902.7164" cy="883.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2902.2008,884.4219 Q2900.3414,883.7188 2899.6852,882.9531 Q2899.0445,882.1719 2899.0445,880.8594 Q2899.0445,879.1719 2900.1227,878.2031 Q2901.2008,877.2344 2903.0758,877.2344 Q2903.9352,877.2344 2904.7789,877.4375 Q2905.6383,877.625 2906.482,878.0156 L2906.482,880.4063 Q2905.7008,879.8438 2904.8727,879.5625 Q2904.0602,879.2656 2903.2633,879.2656 Q2902.3883,879.2656 2901.9039,879.625 Q2901.4352,879.9844 2901.4352,880.6406 Q2901.4352,881.1563 2901.7789,881.5 Q2902.1227,881.8281 2903.2164,882.2344 L2904.2789,882.6406 Q2905.7633,883.1875 2906.4664,884.0938 Q2907.1852,885 2907.1852,886.375 Q2907.1852,888.25 2906.0758,889.1719 Q2904.9664,890.0938 2902.7164,890.0938 Q2901.7945,890.0938 2900.8727,889.875 Q2899.9508,889.6563 2899.0914,889.2344 L2899.0914,886.7031 Q2900.0602,887.3906 2900.982,887.7344 Q2901.9039,888.0781 2902.7945,888.0781 Q2903.7008,888.0781 2904.2008,887.6719 Q2904.7008,887.25 2904.7008,886.5156 Q2904.7008,885.9531 2904.357,885.5469 Q2904.0289,885.125 2903.4039,884.875 L2902.2008,884.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="2923.2164" y="888.0137">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2728.4664" x2="3177.4664" y1="899.8594" y2="899.8594"/><ellipse cx="2738.4664" cy="910.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="2747.4664" y="914.0698">next : urt_message_t*</text><ellipse cx="2738.4664" cy="923.6641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="2747.4664" y="926.8745">payload : void*</text><ellipse cx="2738.4664" cy="936.4688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="2747.4664" y="939.6792">originTime : urt_osTime_t</text><ellipse cx="2738.4664" cy="949.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="2747.4664" y="952.4839">numHrtConsumersLeft : unsigned int</text><ellipse cx="2738.4664" cy="978.8828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="2747.4664" y="982.0933">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2728.4664" x2="2844.4664" y1="965.4805" y2="965.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2844.4664" y="968.7886">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3061.4664" x2="3177.4664" y1="965.4805" y2="965.4805"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2728.4664" x2="3177.4664" y1="988.6875" y2="988.6875"/><ellipse cx="2738.4664" cy="999.6875" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="425" x="2747.4664" y="1002.8979">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
+class urt_publisher_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="1979.4664" y="503.8594"/><ellipse cx="2308.2164" cy="519.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2307.7008,520.4219 Q2305.8414,519.7188 2305.1852,518.9531 Q2304.5445,518.1719 2304.5445,516.8594 Q2304.5445,515.1719 2305.6227,514.2031 Q2306.7008,513.2344 2308.5758,513.2344 Q2309.4352,513.2344 2310.2789,513.4375 Q2311.1383,513.625 2311.982,514.0156 L2311.982,516.4063 Q2311.2008,515.8438 2310.3727,515.5625 Q2309.5602,515.2656 2308.7633,515.2656 Q2307.8883,515.2656 2307.4039,515.625 Q2306.9352,515.9844 2306.9352,516.6406 Q2306.9352,517.1563 2307.2789,517.5 Q2307.6227,517.8281 2308.7164,518.2344 L2309.7789,518.6406 Q2311.2633,519.1875 2311.9664,520.0938 Q2312.6852,521 2312.6852,522.375 Q2312.6852,524.25 2311.5758,525.1719 Q2310.4664,526.0938 2308.2164,526.0938 Q2307.2945,526.0938 2306.3727,525.875 Q2305.4508,525.6563 2304.5914,525.2344 L2304.5914,522.7031 Q2305.5602,523.3906 2306.482,523.7344 Q2307.4039,524.0781 2308.2945,524.0781 Q2309.2008,524.0781 2309.7008,523.6719 Q2310.2008,523.25 2310.2008,522.5156 Q2310.2008,521.9531 2309.857,521.5469 Q2309.5289,521.125 2308.9039,520.875 L2307.7008,520.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="2328.7164" y="524.0137">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1980.4664" x2="2737.4664" y1="535.8594" y2="535.8594"/><ellipse cx="1990.4664" cy="546.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="1999.4664" y="550.0698">topic : urt_topic_t*</text><ellipse cx="1990.4664" cy="576.4688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="1999.4664" y="579.6792">publishAttempts : uint64_t</text><ellipse cx="1990.4664" cy="589.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="1999.4664" y="592.4839">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1980.4664" x2="2250.4664" y1="563.0664" y2="563.0664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2250.4664" y="566.3745">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2467.4664" x2="2737.4664" y1="563.0664" y2="563.0664"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1980.4664" x2="2737.4664" y1="599.0781" y2="599.0781"/><ellipse cx="1990.4664" cy="610.0781" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="617" x="1999.4664" y="613.2886">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="1990.4664" cy="622.8828" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="733" x="1999.4664" y="626.0933">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
+class urt_topic_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="248.0703" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="2773.9664" y="444.3594"/><ellipse cx="2928.7164" cy="460.3594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2928.2008,460.9219 Q2926.3414,460.2188 2925.6852,459.4531 Q2925.0445,458.6719 2925.0445,457.3594 Q2925.0445,455.6719 2926.1227,454.7031 Q2927.2008,453.7344 2929.0758,453.7344 Q2929.9352,453.7344 2930.7789,453.9375 Q2931.6383,454.125 2932.482,454.5156 L2932.482,456.9063 Q2931.7008,456.3438 2930.8727,456.0625 Q2930.0602,455.7656 2929.2633,455.7656 Q2928.3883,455.7656 2927.9039,456.125 Q2927.4352,456.4844 2927.4352,457.1406 Q2927.4352,457.6563 2927.7789,458 Q2928.1227,458.3281 2929.2164,458.7344 L2930.2789,459.1406 Q2931.7633,459.6875 2932.4664,460.5938 Q2933.1852,461.5 2933.1852,462.875 Q2933.1852,464.75 2932.0758,465.6719 Q2930.9664,466.5938 2928.7164,466.5938 Q2927.7945,466.5938 2926.8727,466.375 Q2925.9508,466.1563 2925.0914,465.7344 L2925.0914,463.2031 Q2926.0602,463.8906 2926.982,464.2344 Q2927.9039,464.5781 2928.7945,464.5781 Q2929.7008,464.5781 2930.2008,464.1719 Q2930.7008,463.75 2930.7008,463.0156 Q2930.7008,462.4531 2930.357,462.0469 Q2930.0289,461.625 2929.4039,461.375 L2928.2008,460.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="2949.2164" y="464.5137">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2774.9664" x2="3156.9664" y1="476.3594" y2="476.3594"/><ellipse cx="2784.9664" cy="487.3594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="2793.9664" y="490.5698">next : urt_topic_t*</text><ellipse cx="2784.9664" cy="500.1641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="2793.9664" y="503.3745">id : urt_topicid_t</text><ellipse cx="2784.9664" cy="512.9688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="2793.9664" y="516.1792">lock : urt_osMutex_t</text><ellipse cx="2784.9664" cy="525.7734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="2793.9664" y="528.9839">evtSource : urt_osEventSource_t</text><ellipse cx="2784.9664" cy="538.5781" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="2793.9664" y="541.7886">numHrtSubscribers : unsigned int</text><ellipse cx="2784.9664" cy="551.3828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="212" x="2793.9664" y="554.5933">hrtSubscribers : urt_hrtsubscriber_t*</text><ellipse cx="2784.9664" cy="564.1875" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="2793.9664" y="567.3979">hrtReleased : urt_osCondvar_t</text><ellipse cx="2784.9664" cy="576.9922" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="2793.9664" y="580.2026">mandatoryMessage : urt_message_t</text><ellipse cx="2784.9664" cy="589.7969" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="2793.9664" y="593.0073">latestMessage : urt_message_t*</text><ellipse cx="2784.9664" cy="619.4063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="2793.9664" y="622.6167">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2774.9664" x2="2833.4664" y1="606.0039" y2="606.0039"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="2833.4664" y="609.312">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3098.4664" x2="3156.9664" y1="606.0039" y2="606.0039"/><ellipse cx="2784.9664" cy="649.0156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="2793.9664" y="652.2261">numDiscardedMessages : uint64_t</text><ellipse cx="2784.9664" cy="661.8203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="2793.9664" y="665.0308">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2774.9664" x2="2857.4664" y1="635.6133" y2="635.6133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2857.4664" y="638.9214">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3074.4664" x2="3156.9664" y1="635.6133" y2="635.6133"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2774.9664" x2="3156.9664" y1="671.625" y2="671.625"/><ellipse cx="2784.9664" cy="682.625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="358" x="2793.9664" y="685.8354">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--MD5=[50a042e24f957794dab9ba3ea8701c50]
+class urt_basesubscriber_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="133.6328" id="urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="4907.4664" y="871.8594"/><ellipse cx="4949.9164" cy="887.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4949.4008,888.4219 Q4947.5414,887.7188 4946.8852,886.9531 Q4946.2445,886.1719 4946.2445,884.8594 Q4946.2445,883.1719 4947.3227,882.2031 Q4948.4008,881.2344 4950.2758,881.2344 Q4951.1352,881.2344 4951.9789,881.4375 Q4952.8383,881.625 4953.682,882.0156 L4953.682,884.4063 Q4952.9008,883.8438 4952.0727,883.5625 Q4951.2602,883.2656 4950.4633,883.2656 Q4949.5883,883.2656 4949.1039,883.625 Q4948.6352,883.9844 4948.6352,884.6406 Q4948.6352,885.1563 4948.9789,885.5 Q4949.3227,885.8281 4950.4164,886.2344 L4951.4789,886.6406 Q4952.9633,887.1875 4953.6664,888.0938 Q4954.3852,889 4954.3852,890.375 Q4954.3852,892.25 4953.2758,893.1719 Q4952.1664,894.0938 4949.9164,894.0938 Q4948.9945,894.0938 4948.0727,893.875 Q4947.1508,893.6563 4946.2914,893.2344 L4946.2914,890.7031 Q4947.2602,891.3906 4948.182,891.7344 Q4949.1039,892.0781 4949.9945,892.0781 Q4950.9008,892.0781 4951.4008,891.6719 Q4951.9008,891.25 4951.9008,890.5156 Q4951.9008,889.9531 4951.557,889.5469 Q4951.2289,889.125 4950.6039,888.875 L4949.4008,888.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="132" x="4970.0164" y="892.0137">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4908.4664" x2="5131.4664" y1="903.8594" y2="903.8594"/><ellipse cx="4918.4664" cy="914.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="4927.4664" y="918.0698">topic : urt_topic_t*</text><ellipse cx="4918.4664" cy="927.6641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="4927.4664" y="930.8745">evtListener : urt_osEventListener_t</text><ellipse cx="4918.4664" cy="940.4688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="4927.4664" y="943.6792">lastMessage : urt_message_t*</text><ellipse cx="4918.4664" cy="953.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="4927.4664" y="956.4839">lastMessageTime : urt_osTime_t</text><ellipse cx="4918.4664" cy="982.8828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="4927.4664" y="986.0933">sumLatencies : uint64_t</text><ellipse cx="4918.4664" cy="995.6875" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="4927.4664" y="998.8979">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4908.4664" x2="4911.4664" y1="969.4805" y2="969.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="4911.4664" y="972.7886">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5128.4664" x2="5131.4664" y1="969.4805" y2="969.4805"/><!--MD5=[fc7708c915a0148c667d62e1370980fd]
+class urt_srtusefulnessfunc_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="60.8047" id="urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="6100.9664" y="908.3594"/><ellipse cx="6210.2164" cy="924.3594" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6214.4508,920.125 L6209.1695,920.125 L6209.1695,922.7969 L6213.9664,922.7969 L6213.9664,924.9531 L6209.1695,924.9531 L6209.1695,930.3594 L6206.732,930.3594 L6206.732,917.9688 L6214.4508,917.9688 L6214.4508,920.125 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="6230.7164" y="928.5137">urt_srtusefulnessfunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6101.9664" x2="6473.9664" y1="940.3594" y2="940.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6101.9664" x2="6473.9664" y1="948.3594" y2="948.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="362" x="6106.9664" y="962.5698">urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float</text><!--MD5=[9ff46073dd541e50679ef35e851c67d6]
+class urt_nrtsubscriber_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="154.4375" id="urt_nrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="821" x="3211.4664" y="491.3594"/><ellipse cx="3558.2164" cy="507.3594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3557.7008,507.9219 Q3555.8414,507.2188 3555.1852,506.4531 Q3554.5445,505.6719 3554.5445,504.3594 Q3554.5445,502.6719 3555.6227,501.7031 Q3556.7008,500.7344 3558.5758,500.7344 Q3559.4352,500.7344 3560.2789,500.9375 Q3561.1383,501.125 3561.982,501.5156 L3561.982,503.9063 Q3561.2008,503.3438 3560.3727,503.0625 Q3559.5602,502.7656 3558.7633,502.7656 Q3557.8883,502.7656 3557.4039,503.125 Q3556.9352,503.4844 3556.9352,504.1406 Q3556.9352,504.6563 3557.2789,505 Q3557.6227,505.3281 3558.7164,505.7344 L3559.7789,506.1406 Q3561.2633,506.6875 3561.9664,507.5938 Q3562.6852,508.5 3562.6852,509.875 Q3562.6852,511.75 3561.5758,512.6719 Q3560.4664,513.5938 3558.2164,513.5938 Q3557.2945,513.5938 3556.3727,513.375 Q3555.4508,513.1563 3554.5914,512.7344 L3554.5914,510.2031 Q3555.5602,510.8906 3556.482,511.2344 Q3557.4039,511.5781 3558.2945,511.5781 Q3559.2008,511.5781 3559.7008,511.1719 Q3560.2008,510.75 3560.2008,510.0156 Q3560.2008,509.4531 3559.857,509.0469 Q3559.5289,508.625 3558.9039,508.375 L3557.7008,507.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="3578.7164" y="511.5137">urt_nrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3212.4664" x2="4031.4664" y1="523.3594" y2="523.3594"/><ellipse cx="3222.4664" cy="551.1641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="3231.4664" y="554.3745">minLatency : urt_delay_t</text><ellipse cx="3222.4664" cy="563.9688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="3231.4664" y="567.1792">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3212.4664" x2="3513.4664" y1="537.7617" y2="537.7617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="3513.4664" y="541.0698">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3730.4664" x2="4031.4664" y1="537.7617" y2="537.7617"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3212.4664" x2="4031.4664" y1="573.7734" y2="573.7734"/><ellipse cx="3222.4664" cy="584.7734" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="392" x="3231.4664" y="587.9839">urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : urt_status_t</text><ellipse cx="3222.4664" cy="597.5781" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="715" x="3231.4664" y="600.7886">urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="3222.4664" cy="610.3828" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="3231.4664" y="613.5933">urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3222.4664" cy="623.1875" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="3231.4664" y="626.3979">urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3222.4664" cy="635.9922" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="3231.4664" y="639.2026">urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t</text><!--MD5=[5c7929572d87ccc448d875bea5da0fb1]
+class urt_srtsubscriber_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="192.8516" id="urt_srtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1084" x="6212.9664" y="471.8594"/><ellipse cx="6691.7164" cy="487.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6691.2008,488.4219 Q6689.3414,487.7188 6688.6852,486.9531 Q6688.0445,486.1719 6688.0445,484.8594 Q6688.0445,483.1719 6689.1227,482.2031 Q6690.2008,481.2344 6692.0758,481.2344 Q6692.9352,481.2344 6693.7789,481.4375 Q6694.6383,481.625 6695.482,482.0156 L6695.482,484.4063 Q6694.7008,483.8438 6693.8727,483.5625 Q6693.0602,483.2656 6692.2633,483.2656 Q6691.3883,483.2656 6690.9039,483.625 Q6690.4352,483.9844 6690.4352,484.6406 Q6690.4352,485.1563 6690.7789,485.5 Q6691.1227,485.8281 6692.2164,486.2344 L6693.2789,486.6406 Q6694.7633,487.1875 6695.4664,488.0938 Q6696.1852,489 6696.1852,490.375 Q6696.1852,492.25 6695.0758,493.1719 Q6693.9664,494.0938 6691.7164,494.0938 Q6690.7945,494.0938 6689.8727,493.875 Q6688.9508,493.6563 6688.0914,493.2344 L6688.0914,490.7031 Q6689.0602,491.3906 6689.982,491.7344 Q6690.9039,492.0781 6691.7945,492.0781 Q6692.7008,492.0781 6693.2008,491.6719 Q6693.7008,491.25 6693.7008,490.5156 Q6693.7008,489.9531 6693.357,489.5469 Q6693.0289,489.125 6692.4039,488.875 L6691.2008,488.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="6712.2164" y="492.0137">urt_srtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6213.9664" x2="7295.9664" y1="503.8594" y2="503.8594"/><ellipse cx="6223.9664" cy="514.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="229" x="6232.9664" y="518.0698">usefulnesscb : urt_srtusefulnessfunc_t*</text><ellipse cx="6223.9664" cy="527.6641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="6232.9664" y="530.8745">cbparams : void*</text><ellipse cx="6223.9664" cy="557.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="6232.9664" y="560.4839">minLatency : urt_delay_t</text><ellipse cx="6223.9664" cy="570.0781" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="6232.9664" y="573.2886">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6213.9664" x2="6646.4664" y1="543.8711" y2="543.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="6646.4664" y="547.1792">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6863.4664" x2="7295.9664" y1="543.8711" y2="543.8711"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6213.9664" x2="7295.9664" y1="579.8828" y2="579.8828"/><ellipse cx="6223.9664" cy="590.8828" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="392" x="6232.9664" y="594.0933">urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : urt_status_t</text><ellipse cx="6223.9664" cy="603.6875" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1058" x="6232.9664" y="606.8979">urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t</text><ellipse cx="6223.9664" cy="616.4922" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="6232.9664" y="619.7026">urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="6223.9664" cy="629.2969" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="6232.9664" y="632.5073">urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="6223.9664" cy="642.1016" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="570" x="6232.9664" y="645.312">urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float</text><ellipse cx="6223.9664" cy="654.9063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="6232.9664" y="658.1167">urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t</text><!--MD5=[17838fb05fe219fd399839979ec8a4a4]
+class urt_frtsubscriber_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="226.4609" id="urt_frtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="974" x="4066.9664" y="455.3594"/><ellipse cx="4492.2164" cy="471.3594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4491.7008,471.9219 Q4489.8414,471.2188 4489.1851,470.4531 Q4488.5445,469.6719 4488.5445,468.3594 Q4488.5445,466.6719 4489.6226,465.7031 Q4490.7008,464.7344 4492.5758,464.7344 Q4493.4351,464.7344 4494.2789,464.9375 Q4495.1383,465.125 4495.982,465.5156 L4495.982,467.9063 Q4495.2008,467.3438 4494.3726,467.0625 Q4493.5601,466.7656 4492.7633,466.7656 Q4491.8883,466.7656 4491.4039,467.125 Q4490.9351,467.4844 4490.9351,468.1406 Q4490.9351,468.6563 4491.2789,469 Q4491.6226,469.3281 4492.7164,469.7344 L4493.7789,470.1406 Q4495.2633,470.6875 4495.9664,471.5938 Q4496.6851,472.5 4496.6851,473.875 Q4496.6851,475.75 4495.5758,476.6719 Q4494.4664,477.5938 4492.2164,477.5938 Q4491.2945,477.5938 4490.3726,477.375 Q4489.4508,477.1563 4488.5914,476.7344 L4488.5914,474.2031 Q4489.5601,474.8906 4490.482,475.2344 Q4491.4039,475.5781 4492.2945,475.5781 Q4493.2008,475.5781 4493.7008,475.1719 Q4494.2008,474.75 4494.2008,474.0156 Q4494.2008,473.4531 4493.857,473.0469 Q4493.5289,472.625 4492.9039,472.375 L4491.7008,471.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="4512.7164" y="475.5137">urt_frtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4067.9664" x2="5039.9664" y1="487.3594" y2="487.3594"/><ellipse cx="4077.9664" cy="515.1641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="4086.9664" y="518.3745">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4067.9664" x2="4408.4664" y1="501.7617" y2="501.7617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="4408.4664" y="505.0698">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4699.4664" x2="5039.9664" y1="501.7617" y2="501.7617"/><ellipse cx="4077.9664" cy="544.7734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="4086.9664" y="547.9839">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4067.9664" x2="4418.4664" y1="531.3711" y2="531.3711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="4418.4664" y="534.6792">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4689.4664" x2="5039.9664" y1="531.3711" y2="531.3711"/><ellipse cx="4077.9664" cy="574.3828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="4086.9664" y="577.5933">minLatency : urt_delay_t</text><ellipse cx="4077.9664" cy="587.1875" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="4086.9664" y="590.3979">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4067.9664" x2="4299.9664" y1="560.9805" y2="560.9805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="508" x="4299.9664" y="564.2886">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ||  URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4807.9664" x2="5039.9664" y1="560.9805" y2="560.9805"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4067.9664" x2="5039.9664" y1="596.9922" y2="596.9922"/><ellipse cx="4077.9664" cy="607.9922" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="387" x="4086.9664" y="611.2026">urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : urt_status_t</text><ellipse cx="4077.9664" cy="620.7969" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="948" x="4086.9664" y="624.0073">urtFrtSubscriberSubscribe (subscriber : urt_frtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="4077.9664" cy="633.6016" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="780" x="4086.9664" y="636.812">urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4077.9664" cy="646.4063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="790" x="4086.9664" y="649.6167">urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4077.9664" cy="659.2109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="540" x="4086.9664" y="662.4214">urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool</text><ellipse cx="4077.9664" cy="672.0156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="441" x="4086.9664" y="675.2261">urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t</text><!--MD5=[104dc879e5721421b987fcc467bc3a1d]
+class urt_hrtsubscriber_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="268.875" id="urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1084" x="5075.9664" y="433.8594"/><ellipse cx="5554.2164" cy="449.8594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5553.7008,450.4219 Q5551.8414,449.7188 5551.1852,448.9531 Q5550.5445,448.1719 5550.5445,446.8594 Q5550.5445,445.1719 5551.6227,444.2031 Q5552.7008,443.2344 5554.5758,443.2344 Q5555.4352,443.2344 5556.2789,443.4375 Q5557.1383,443.625 5557.982,444.0156 L5557.982,446.4063 Q5557.2008,445.8438 5556.3727,445.5625 Q5555.5602,445.2656 5554.7633,445.2656 Q5553.8883,445.2656 5553.4039,445.625 Q5552.9352,445.9844 5552.9352,446.6406 Q5552.9352,447.1563 5553.2789,447.5 Q5553.6227,447.8281 5554.7164,448.2344 L5555.7789,448.6406 Q5557.2633,449.1875 5557.9664,450.0938 Q5558.6852,451 5558.6852,452.375 Q5558.6852,454.25 5557.5758,455.1719 Q5556.4664,456.0938 5554.2164,456.0938 Q5553.2945,456.0938 5552.3727,455.875 Q5551.4508,455.6563 5550.5914,455.2344 L5550.5914,452.7031 Q5551.5602,453.3906 5552.482,453.7344 Q5553.4039,454.0781 5554.2945,454.0781 Q5555.2008,454.0781 5555.7008,453.6719 Q5556.2008,453.25 5556.2008,452.5156 Q5556.2008,451.9531 5555.857,451.5469 Q5555.5289,451.125 5554.9039,450.875 L5553.7008,450.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="5574.7164" y="454.0137">urt_hrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5076.9664" x2="6158.9664" y1="465.8594" y2="465.8594"/><ellipse cx="5086.9664" cy="476.8594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="151" x="5095.9664" y="480.0698">next : urt_hrtsubscriber_t*</text><ellipse cx="5086.9664" cy="506.4688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="5095.9664" y="509.6792">deadlineOffset : urt_delay_t</text><ellipse cx="5086.9664" cy="519.2734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="5095.9664" y="522.4839">qosDeadlineTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5076.9664" x2="5472.4664" y1="493.0664" y2="493.0664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="5472.4664" y="496.3745">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5763.4664" x2="6158.9664" y1="493.0664" y2="493.0664"/><ellipse cx="5086.9664" cy="548.8828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="5095.9664" y="552.0933">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5076.9664" x2="5482.4664" y1="535.4805" y2="535.4805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="5482.4664" y="538.7886">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5753.4664" x2="6158.9664" y1="535.4805" y2="535.4805"/><ellipse cx="5086.9664" cy="578.4922" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="5095.9664" y="581.7026">minLatency : urt_delay_t</text><ellipse cx="5086.9664" cy="591.2969" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="5095.9664" y="594.5073">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5076.9664" x2="5365.9664" y1="565.0898" y2="565.0898"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="5365.9664" y="568.3979">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5869.9664" x2="6158.9664" y1="565.0898" y2="565.0898"/><ellipse cx="5086.9664" cy="620.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="5095.9664" y="624.1167">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5076.9664" x2="5485.4664" y1="607.5039" y2="607.5039"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="5485.4664" y="610.812">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5750.4664" x2="6158.9664" y1="607.5039" y2="607.5039"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5076.9664" x2="6158.9664" y1="630.7109" y2="630.7109"/><ellipse cx="5086.9664" cy="641.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="392" x="5095.9664" y="644.9214">urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : urt_status_t</text><ellipse cx="5086.9664" cy="654.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1058" x="5095.9664" y="657.7261">urtHrtSubscriberSubscribe (subscriber : urt_hrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="5086.9664" cy="667.3203" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="5095.9664" y="670.5308">urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="5086.9664" cy="680.125" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="5095.9664" y="683.3354">urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="5086.9664" cy="692.9297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="5095.9664" y="696.1401">urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t</text><!--MD5=[3226071078d8aeaa18fbafa5359ddee6]
+class urt_servicefunc_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="60.8047" id="urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="8534.4664" y="908.3594"/><ellipse cx="8702.7164" cy="924.3594" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M8706.9508,920.125 L8701.6695,920.125 L8701.6695,922.7969 L8706.4664,922.7969 L8706.4664,924.9531 L8701.6695,924.9531 L8701.6695,930.3594 L8699.232,930.3594 L8699.232,917.9688 L8706.9508,917.9688 L8706.9508,920.125 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="8723.2164" y="928.5137">urt_servicefunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8535.4664" x2="8984.4664" y1="940.3594" y2="940.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="8535.4664" x2="8984.4664" y1="948.3594" y2="948.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="439" x="8540.4664" y="962.5698">urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
+class urt_service_t--><rect fill="#FEFECE" filter="url(#f18prfnycqlkhy)" height="222.4609" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="602" x="8534.9664" y="457.3594"/><ellipse cx="8792.2164" cy="473.3594" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M8791.7008,473.9219 Q8789.8414,473.2188 8789.1852,472.4531 Q8788.5445,471.6719 8788.5445,470.3594 Q8788.5445,468.6719 8789.6227,467.7031 Q8790.7008,466.7344 8792.5758,466.7344 Q8793.4352,466.7344 8794.2789,466.9375 Q8795.1383,467.125 8795.982,467.5156 L8795.982,469.9063 Q8795.2008,469.3438 8794.3727,469.0625 Q8793.5602,468.7656 8792.7633,468.7656 Q8791.8883,468.7656 8791.4039,469.125 Q8790.9352,469.4844 8790.9352,470.1406 Q8790.9352,470.6563 8791.2789,471 Q8791.6227,471.3281 8792.7164,471.7344 L8793.7789,472.1406 Q8795.2633,472.6875 8795.9664,473.5938 Q8796.6852,474.5 8796.6852,475.875 Q8796.6852,477.75 8795.5758,478.6719 Q8794.4664,479.5938 8792.2164,479.5938 Q8791.2945,479.5938 8790.3727,479.375 Q8789.4508,479.1563 8788.5914,478.7344 L8788.5914,476.2031 Q8789.5602,476.8906 8790.482,477.2344 Q8791.4039,477.5781 8792.2945,477.5781 Q8793.2008,477.5781 8793.7008,477.1719 Q8794.2008,476.75 8794.2008,476.0156 Q8794.2008,475.4531 8793.857,475.0469 Q8793.5289,474.625 8792.9039,474.375 L8791.7008,473.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="8812.7164" y="477.5137">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8535.9664" x2="9135.9664" y1="489.3594" y2="489.3594"/><ellipse cx="8545.9664" cy="500.3594" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="8554.9664" y="503.5698">next : urt_service_t*</text><ellipse cx="8545.9664" cy="513.1641" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="8554.9664" y="516.3745">id : urt_serviceid_t</text><ellipse cx="8545.9664" cy="525.9688" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="8554.9664" y="529.1792">lock : urt_osMutex_t</text><ellipse cx="8545.9664" cy="538.7734" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="8554.9664" y="541.9839">callback : urt_servicefunc_t*</text><ellipse cx="8545.9664" cy="568.3828" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="8554.9664" y="571.5933">sumDurations : uint64_t</text><ellipse cx="8545.9664" cy="581.1875" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="8554.9664" y="584.3979">numCalls : uint64_t</text><ellipse cx="8545.9664" cy="593.9922" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="8554.9664" y="597.2026">numTimeouts : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8535.9664" x2="8739.9664" y1="554.9805" y2="554.9805"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="8739.9664" y="558.2886">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8931.9664" x2="9135.9664" y1="554.9805" y2="554.9805"/><ellipse cx="8545.9664" cy="623.6016" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="8554.9664" y="626.812">minDuration : urt_delay_t</text><ellipse cx="8545.9664" cy="636.4063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="8554.9664" y="639.6167">maxDuration : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8535.9664" x2="8608.9664" y1="610.1992" y2="610.1992"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="8608.9664" y="613.5073">URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9062.9664" x2="9135.9664" y1="610.1992" y2="610.1992"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="8535.9664" x2="9135.9664" y1="646.2109" y2="646.2109"/><ellipse cx="8545.9664" cy="657.2109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="576" x="8554.9664" y="660.4214">urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t</text><ellipse cx="8545.9664" cy="670.0156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="557" x="8554.9664" y="673.2261">urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[5fff9a13948f7f5b5e6ca18c1c7a9716]
+link urt_nodestage_t to urt_config--><path d="M1258.3284,1326.1818 C1241.6359,1343.9219 1223.5773,1363.1139 1205.7487,1382.0614 " fill="none" id="urt_nodestage_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1202.1866,1385.8471,1211.2672,1382.0335,1205.6129,1382.2056,1205.4408,1376.5514,1202.1866,1385.8471" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7db439499cb1afd557b9be4c8c52b2ba]
+link urt_topicid_t to urt_config--><path d="M1093.9664,1326.1818 C1093.9664,1343.4784 1093.9664,1362.1552 1093.9664,1380.6399 " fill="none" id="urt_topicid_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1093.9664,1385.8471,1097.9664,1376.8471,1093.9664,1380.8471,1089.9664,1376.8471,1093.9664,1385.8471" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e851a4e79ca88682282ceaaad2100c63]
+link urt_serviceid_t to urt_config--><path d="M1475.9662,1323.4152 C1470.2856,1327.0532 1464.5964,1330.5592 1458.9664,1333.8594 C1390.7166,1373.866 1311.2195,1411.2316 1243.8722,1440.4309 " fill="none" id="urt_serviceid_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1239.0445,1442.5191,1248.8929,1442.6171,1243.6335,1440.534,1245.7167,1435.2747,1239.0445,1442.5191" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[844001065b3bef53527c5dd4ba0c22e5]
+link urt_delay_t to urt_config--><path d="M1969.7393,1296.3928 C1952.8094,1310.3932 1933.1197,1324.3806 1912.9664,1333.8594 C1694.3505,1436.6819 1413.7038,1476.3964 1244.1643,1491.5983 " fill="none" id="urt_delay_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1239.1809,1492.041,1248.4996,1495.2287,1244.1613,1491.5984,1247.7915,1487.2601,1239.1809,1492.041" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7766572fa0c619a5409829048dc0b6d6]
+link urt_osCondvar_t to urt_osCondvarWaitStatus_t--><path d="M14140.9664,988.6872 C14140.9664,1046.5308 14140.9664,1141.2868 14140.9664,1198.4978 " fill="none" id="urt_osCondvar_t-&gt;urt_osCondvarWaitStatus_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="14140.9664,1203.5732,14144.9664,1194.5732,14140.9664,1198.5732,14136.9664,1194.5732,14140.9664,1203.5732" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9b2507ea88616aeae65e3c4d63560016]
+link urt_osCondvar_t to urt_osMutex_t--><path d="M14090.3476,889.3481 C14020.4921,825.9649 13887.445,722.4276 13749.4664,706.8594 C13725.4314,704.1475 10290.5014,704.1475 10266.4664,706.8594 C10180.662,716.5408 10133.021,818.7994 10111.1097,884.2839 " fill="none" id="urt_osCondvar_t-&gt;urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="10109.4493,889.3248,10116.0642,882.0279,10111.0135,884.5758,10108.4657,879.5252,10109.4493,889.3248" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[83094e108045c8f9585007cdb3b7cb2e]
+link urt_osTimer_t to urt_osTimerCallback_t--><path d="M13359.9664,994.9932 C13359.9664,1057.7318 13359.9664,1157.4721 13359.9664,1210.6616 " fill="none" id="urt_osTimer_t-&gt;urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="13359.9664,1215.9737,13363.9664,1206.9737,13359.9664,1210.9737,13355.9664,1206.9737,13359.9664,1215.9737" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8d8c3240b5b2b5edf6544088e583ffa5]
+link urt_osThread_t to urt_osThreadPrio_t--><path d="M12245.9449,1108.1767 C12251.2217,1128.4924 12256.4052,1148.449 12261.1233,1166.6135 " fill="none" id="urt_osThread_t-&gt;urt_osThreadPrio_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="12262.4413,1171.688,12264.0502,1161.9714,12261.1843,1166.8486,12256.3072,1163.9826,12262.4413,1171.688" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[d7d1d43fd970fb07a484642bc19fcb13]
+link urt_osThread_t to urt_osThreadFunction_t--><path d="M12482.0752,1040.7746 C12547.3325,1068.4448 12615.4051,1100.6205 12675.9664,1135.8594 C12714.0258,1158.0051 12753.2593,1189.1589 12780.9816,1212.827 " fill="none" id="urt_osThread_t-&gt;urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="12784.9867,1216.2627,12780.76,1207.3669,12781.1917,1213.0072,12775.5513,1213.4389,12784.9867,1216.2627" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6564761b32ad7eeb5abb8896c72cfca5]
+link urt_osThread_t to urt_osThreadTerminateSignal_t--><path d="M12386.1264,1108.1767 C12425.9949,1144.8319 12464.5919,1180.3181 12492.762,1206.2178 " fill="none" id="urt_osThread_t-&gt;urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="12496.4924,1209.6475,12492.5743,1200.6115,12492.8116,1206.2634,12487.1598,1206.5008,12496.4924,1209.6475" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[92ba23225d8de8f8080583fedda5e6f8]
+link urt_osThread_t to urt_osThreadState_t--><path d="M12110.1612,1108.1767 C12097.7597,1131.0489 12085.605,1153.466 12074.8059,1173.3829 " fill="none" id="urt_osThread_t-&gt;urt_osThreadState_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="12072.3794,1177.8581,12080.1856,1171.8528,12074.7626,1173.4626,12073.1528,1168.0396,12072.3794,1177.8581" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[78b286ab2177e5f7b31e6e832d821818]
+link urt_osThread_t to urt_osTime_t--><path d="M12036.0901,769.6277 C11991.1641,738.0742 11939.7952,712.9894 11885.4664,706.8594 C11858.7194,703.8415 9974.2133,703.8415 9947.4664,706.8594 C9842.7964,718.6694 9763.2942,826.7647 9724.7385,891.1578 " fill="none" id="urt_osThread_t-&gt;urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="9722.0335,895.7166,9730.066,890.0176,9724.5849,891.4165,9723.1859,885.9354,9722.0335,895.7166" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[659af6ab57e6a38ebfd5c07c5616787c]
+link urt_osEventListener_t to urt_osEventFlags_t--><path d="M11056.9664,1289.947 C11056.9664,1341.6304 11056.9664,1426.8733 11056.9664,1471.518 " fill="none" id="urt_osEventListener_t-&gt;urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="11056.9664,1476.7562,11060.9664,1467.7562,11056.9664,1471.7562,11052.9664,1467.7562,11056.9664,1476.7562" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[eac11679f26c499aa1c571e1f795945d]
+link urt_osEventSource_t to urt_osEventFlags_t--><path d="M11531.8217,1283.9291 C11418.0384,1335.9092 11213.8938,1429.1695 11114.4955,1474.5781 " fill="none" id="urt_osEventSource_t-&gt;urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="11109.8422,1476.7039,11119.6905,1476.6024,11114.3901,1474.6262,11116.3663,1469.3258,11109.8422,1476.7039" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0259cdb10c6c32168d1d17d25519d939]
+link urt_events to urt_osEventSource_t--><path d="M10861.311,981.8945 C10982.7075,1020.6759 11164.8816,1080.0151 11321.9664,1135.8594 C11386.3874,1158.7613 11458.1633,1186.1195 11514.3122,1207.9445 " fill="none" id="urt_events-&gt;urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="11519.0101,1209.7719,11512.0724,1202.7813,11514.3502,1207.9593,11509.1722,1210.2371,11519.0101,1209.7719" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0ce043e0e9532fc393f3f8836f5de19a]
+link urt_events to urt_osEventListener_t--><path d="M10771.4791,982.0098 C10833.5073,1039.554 10942.8855,1141.0254 11006.7401,1200.2639 " fill="none" id="urt_events-&gt;urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="11010.5011,1203.7531,11006.6236,1194.6996,11006.8356,1200.3525,11001.1827,1200.5645,11010.5011,1203.7531" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[430bebba9cd89d3ba8f63b2078968bca]
+link urt_events to urt_osEventMask_t--><path d="M10679.5744,982.0098 C10614.6454,1043.7324 10496.553,1155.9931 10437.1452,1212.4672 " fill="none" id="urt_events-&gt;urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="10433.3181,1216.1053,10442.597,1212.8036,10436.942,1212.6604,10437.0852,1207.0053,10433.3181,1216.1053" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b1b185abc2161e087cab32ae7fdb2c40]
+link urt_events to urt_osEventFlags_t--><path d="M10731.9334,982.0692 C10748.2765,1083.044 10788.0706,1326.5256 10792.9664,1333.8594 C10838.8943,1402.6586 10923.81,1448.7583 10984.9514,1474.7849 " fill="none" id="urt_events-&gt;urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="10989.6805,1476.7782,10982.9409,1469.5964,10985.0731,1474.836,10979.8335,1476.9683,10989.6805,1476.7782" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[706a1974d1b474cbba7e7b0213f243a1]
+link urt_events to urt_osEventWait_t--><path d="M10715.4397,982.0098 C10702.8541,1039.0149 10680.7512,1139.1282 10667.6237,1198.5881 " fill="none" id="urt_events-&gt;urt_osEventWait_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="10666.5382,1203.5046,10672.3847,1195.5788,10667.6163,1198.6222,10664.5729,1193.8538,10666.5382,1203.5046" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[5f656ccbf337bb70e2692ec6599b22aa]
+link urt_osCondvar_t to urt_delay_t--><path d="M14058.3183,988.3702 C13984.7639,1029.4052 13872.7484,1084.6285 13766.9664,1107.8594 C13671.4072,1128.8453 10342.7972,1134.8103 10244.9664,1135.8594 C6900.812,1171.7203 2792.0014,1234.8739 2116.8603,1245.3636 " fill="none" id="urt_osCondvar_t-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2111.4811,1245.4472,2120.5422,1249.3068,2116.4805,1245.3695,2120.4178,1241.3078,2111.4811,1245.4472" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2da0e339f7ca878d257c4a5336e8cad5]
+link urt_osThread_t to urt_delay_t--><path d="M11921.54,1102.3807 C11915.3489,1104.3535 11909.1538,1106.1852 11902.9664,1107.8594 C11871.7673,1116.3014 3132.8459,1232.1502 2116.9477,1245.5905 " fill="none" id="urt_osThread_t-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2111.7983,1245.6586,2120.8504,1249.5392,2116.7979,1245.5924,2120.7446,1241.5399,2111.7983,1245.6586" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[4dd831efde278dc905a11b75839a39d0]
+link urt_osThread_t to urt_status_t--><path d="M11921.5657,1102.4767 C11915.3668,1104.4203 11909.1632,1106.22 11902.9664,1107.8594 C11768.8304,1143.3453 2040.7127,1081.7061 1912.9664,1135.8594 C1879.3645,1150.1037 1851.0326,1180.4492 1831.8291,1205.8167 " fill="none" id="urt_osThread_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1828.826,1209.8421,1837.4138,1205.0203,1831.8159,1205.8345,1831.0017,1200.2365,1828.826,1209.8421" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8bf77663ad208115c32fd5300d37f092]
+link urt_osTimer_t to urt_delay_t--><path d="M13258.5736,994.9062 C13180.0061,1035.0466 13067.0163,1085.7564 12960.9664,1107.8594 C12813.2438,1138.6478 10395.8526,1134.0634 10244.9664,1135.8594 C6900.8566,1175.6648 2792.009,1235.5453 2116.8613,1245.4493 " fill="none" id="urt_osTimer_t-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2111.482,1245.5282,2120.5398,1249.3956,2116.4815,1245.4547,2120.4223,1241.3964,2111.482,1245.5282" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[97e66fd6906ece822f393f9bfe719297]
+link urt_osTimer_t to urt_status_t--><path d="M13259.0313,994.9334 C13180.4729,1035.2311 13067.2857,1086.1312 12960.9664,1107.8594 C12810.6288,1138.5836 2054.2498,1075.9899 1912.9664,1135.8594 C1879.3626,1150.0992 1851.0308,1180.445 1831.8278,1205.8137 " fill="none" id="urt_osTimer_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1828.8248,1209.8393,1837.4125,1205.0174,1831.8146,1205.8316,1831.0003,1200.2337,1828.8248,1209.8393" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a4e2abbbace7909006fa5f13364d6021]
+link urt_events to urt_delay_t--><path d="M10637.7103,981.9957 C10549.0907,1023.3101 10406.6678,1082.9379 10275.9664,1107.8594 C9854.8866,1188.1489 3010.737,1239.7719 2116.9477,1246.1833 " fill="none" id="urt_events-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2111.7689,1246.2204,2120.7974,1250.1557,2116.7688,1246.1845,2120.74,1242.1559,2111.7689,1246.2204" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0549e7b45a7543f4046fb7eaa1b75598]
+link urt_events to urt_status_t--><path d="M10638.6103,981.9796 C10550.1063,1023.5984 10407.2426,1083.7447 10275.9664,1107.8594 C10161.7244,1128.845 2019.8954,1090.4964 1912.9664,1135.8594 C1879.3684,1150.1128 1851.0363,1180.4578 1831.8316,1205.8228 " fill="none" id="urt_events-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1828.8284,1209.8477,1837.4166,1205.0266,1831.8186,1205.8403,1831.0049,1200.2423,1828.8284,1209.8477" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[182342162f0b9b45ddce11acc6582c59]
+reverse link urt_node_t to urt_node_t--><path d="M8493.5589,538.3464 C8508.246,546.6918 8516.4664,556.6961 8516.4664,568.3594 C8516.4664,582.8535 8503.7712,594.7857 8481.7467,604.156 " fill="none" id="urt_node_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="8481.7467,532.5628,8485.3764,538.7937,8492.5242,537.8397,8488.8944,531.6088,8481.7467,532.5628" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8489.8858" y="529.0242">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="8489.9983" y="601.6241">0..1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
+reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M7807.9991,681.9944 C7745.8704,760.3847 7671.7576,858.997 7639.1015,908.1135 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7816.2902,671.5643,7809.4254,673.7721,7808.8231,680.958,7815.6879,678.7502,7816.2902,671.5643" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7801.9291" y="691.0852">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7633.6044" y="897.326">1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
+reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M7836.9908,675.7992 C7778.611,755.1174 7698.4794,857.6939 7654.4039,908.1135 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t-1" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7840.1033,671.5643,7831.5502,676.4474,7837.1422,675.5932,7837.9965,681.1852,7840.1033,671.5643" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b913f036db99e36b937989146817bd94]
+reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M7983.1804,682.4746 C8041.6106,760.787 8118.9799,859.0972 8161.8001,908.1135 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7975.067,671.5643,7975.4377,678.7658,7982.2278,681.1935,7981.8572,673.992,7975.067,671.5643" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7971.3738" y="691.0852">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8146.5471" y="897.326">1</text><!--MD5=[b913f036db99e36b937989146817bd94]
+reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M8002.2828,675.7992 C8065.931,755.1174 8143.6093,857.6939 8177.1024,908.1135 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t-1" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7998.8801,671.5643,8001.399,681.0856,8002.0118,675.462,8007.6354,676.0748,7998.8801,671.5643" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[536025241394544a90bc53fb552f3a08]
+reverse link urt_message_t to urt_message_t--><path d="M3190.1073,898.8723 C3204.6943,908.3373 3213.4664,921.6663 3213.4664,938.8594 C3213.4664,960.2256 3199.9192,975.6243 3178.5004,985.0555 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3178.5004,892.6633,3181.9042,899.0205,3189.0816,898.3236,3185.6777,891.9664,3178.5004,892.6633" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3186.7493" y="887.8095">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3186.2945" y="983.4003">0..1</text><!--MD5=[0585cd4928de92ce6927d9c389eadd29]
+link urt_nrtsubscriber_t to urt_basesubscriber_t--><path d="M3824.2073,645.3649 C3894.5924,668.539 3974.7662,690.9609 4049.9664,702.8594 C4073.3981,706.5669 4883.801,698.3634 4903.9664,710.8594 C4953.9844,741.8544 4983.3004,801.8386 4999.9452,852.5028 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="5006.6732,850.5673,5005.8217,871.7399,4993.284,854.6575,5006.6732,850.5673" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[37a8b7f2877a6b7bb4e9d0352ce3d221]
+link urt_nrtsubscriber_t to urt_message_t--><path d="M3334.8482,645.4217 C3286.8752,663.578 3238.8223,685.276 3195.9664,710.8594 C3127.5856,751.6803 3062.479,814.5299 3016.8991,863.9122 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3013.3768,867.7437,3022.4125,863.825,3016.7606,864.0627,3016.5229,858.4108,3013.3768,867.7437" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6d81edfa5aa102b898ad487ae19b49f9]
+link urt_srtsubscriber_t to urt_basesubscriber_t--><path d="M6391.7243,664.9146 C6326.8988,679.5213 6259.7133,692.9827 6195.9664,702.8594 C6146.6502,710.5002 6133.3743,703.8362 6083.9664,710.8594 C5744.9737,759.046 5352.6593,853.2859 5152.4448,904.2154 " fill="none" id="urt_srtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="5153.909,911.066,5132.799,909.2308,5150.4459,897.5011,5153.909,911.066" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[47304731969ac4130b45cc7169c5cada]
+reverse link urt_srtsubscriber_t to urt_srtusefulnessfunc_t--><path d="M6622.9423,673.1022 C6522.4467,752.8317 6390.8164,857.2621 6326.5896,908.2172 " fill="none" id="urt_srtsubscriber_t&lt;-urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6633.1823,664.9783,6625.9958,665.5739,6623.7816,672.4366,6630.968,671.841,6633.1823,664.9783" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6615.945" y="684.7017">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="6308.0806" y="897.4511">0..1</text><!--MD5=[dffdac3aea8c81c86dd1d0b8122fcada]
+link urt_srtsubscriber_t to urt_message_t--><path d="M6408.7378,664.9257 C6338.8344,680.66 6265.4656,694.522 6195.9664,702.8594 C6175.2813,705.3409 3215.3282,703.1684 3195.9664,710.8594 C3118.6785,741.5603 3051.5663,809.6767 3007.5728,863.5069 " fill="none" id="urt_srtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3004.1817,867.6841,3012.9597,863.2179,3007.3331,863.8022,3006.7488,858.1756,3004.1817,867.6841" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f626d284cba98e1d5d5fe914b1fa4188]
+link urt_frtsubscriber_t to urt_basesubscriber_t--><path d="M4867.1646,681.3684 C4880.1408,690.4983 4892.4956,700.3138 4903.9664,710.8594 C4945.5611,749.0994 4974.4624,805.6409 4993.014,852.8495 " fill="none" id="urt_frtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="4999.6366,850.574,5000.0987,871.7586,4986.5265,855.486,4999.6366,850.574" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[cfcdebdb88febc368723fd91f781523c]
+link urt_frtsubscriber_t to urt_message_t--><path d="M4170.0582,681.414 C4129.7874,690.0836 4089.2264,697.5238 4049.9664,702.8594 C4026.4592,706.0541 3217.9844,702.0277 3195.9664,710.8594 C3118.7818,741.8191 3051.6569,809.9036 3007.6324,863.6562 " fill="none" id="urt_frtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3004.2388,867.8272,3013.0215,863.3703,3007.3943,863.9487,3006.8159,858.3215,3004.2388,867.8272" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[1ea71f2b33e56ab0ac5545988c1af396]
+link urt_hrtsubscriber_t to urt_basesubscriber_t--><path d="M5400.8062,702.9043 C5314.9739,756.083 5219.3933,815.3014 5145.4571,861.1097 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="5148.7965,867.2753,5128.1084,871.8583,5141.4231,855.3744,5148.7965,867.2753" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ea2ec5c5272e65289dabade75a749f58]
+reverse link urt_hrtsubscriber_t to urt_hrtsubscriber_t--><path d="M6171.8776,537.5219 C6186.6598,546.0304 6194.9664,556.3095 6194.9664,568.3594 C6194.9664,583.334 6182.1381,595.574 6159.9956,605.0794 " fill="none" id="urt_hrtsubscriber_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6159.9956,531.6394,6163.5979,537.8862,6170.7498,536.9636,6167.1474,530.7168,6159.9956,531.6394" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6167.6741" y="528.0862">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="6167.7866" y="602.559">0..1</text><!--MD5=[a8adaa0500715125c1ab51b9b0fda3ce]
+link urt_hrtsubscriber_t to urt_message_t--><path d="M5075.7601,700.7353 C5070.1398,701.4774 5064.5406,702.1861 5058.9664,702.8594 C5033.2779,705.9623 3220.0061,701.2875 3195.9664,710.8594 C3118.7035,741.6232 3051.5882,809.7318 3007.5872,863.5432 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3004.1956,867.7189,3012.9748,863.255,3007.348,863.8379,3006.7652,858.2111,3004.1956,867.7189" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
+reverse link urt_publisher_t to urt_topic_t--><path d="M2751.7913,568.3594 C2759.0988,568.3594 2766.4063,568.3594 2773.7139,568.3594 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2738.6378,568.3594,2744.6378,572.3594,2750.6378,568.3594,2744.6378,564.3594,2738.6378,568.3594" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2746.4311" y="565.277">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2758.0478" y="565.1345">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
+link urt_publisher_t to urt_message_t--><path d="M2462.4333,632.8956 C2566.1972,697.617 2725.7842,797.1574 2834.548,864.9974 " fill="none" id="urt_publisher_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2839.0413,867.8001,2833.5219,859.6431,2834.7989,865.1539,2829.2881,866.431,2839.0413,867.8001" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
+reverse link urt_topic_t to urt_topic_t--><path d="M3169.5892,523.2297 C3184.1011,533.4693 3192.9664,548.5125 3192.9664,568.3594 C3192.9664,593.0235 3179.2753,610.269 3158.0703,620.0961 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3158.0703,516.6227,3161.2847,523.0777,3168.4795,522.5932,3165.2651,516.1382,3158.0703,516.6227" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3165.7306" y="511.3769">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3166.0431" y="618.8922">0..1</text><!--MD5=[ed3fb6de0913094c41bd74c175d366df]
+reverse link urt_topic_t to urt_hrtsubscriber_t--><path d="M3079.2144,435.5725 C3117.5448,403.3774 3163.4467,376.5032 3213.4664,370.8594 C3238.6952,368.0128 5016.2376,368.0128 5041.4664,370.8594 C5129.3814,380.7789 5221.3763,405.2924 5305.4044,433.8069 " fill="none" id="urt_topic_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3069.1225,444.3196,3076.2763,443.4124,3078.1904,436.46,3071.0366,437.3671,3069.1225,444.3196" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3067.1648" y="433.3727">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="5288.0282" y="422.6688">0..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
+reverse link urt_topic_t to urt_message_t--><path d="M2961.1505,705.6125 C2959.2193,760.6511 2957.0751,821.7608 2955.466,867.619 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2961.6104,692.5034,2957.4024,698.3594,2961.1895,704.496,2965.3975,698.64,2961.6104,692.5034" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2953.1012" y="712.5942">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2947.3113" y="856.5915">1</text><!--MD5=[05f2c35569573d3273c65d3342945557]
+reverse link urt_service_t to urt_service_t--><path d="M9148.7546,529.643 C9163.39,539.4089 9171.9664,552.3144 9171.9664,568.3594 C9171.9664,588.2989 9158.7215,603.3897 9137.0629,613.6321 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="9137.0629,523.0867,9140.3398,529.5102,9147.5296,528.9559,9144.2527,522.5324,9137.0629,523.0867" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9145.167" y="518.7474">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="9145.3795" y="611.6979">0..1</text><!--MD5=[586e61fedafd54ae7ea71cebd9f9032a]
+reverse link urt_service_t to urt_servicefunc_t--><path d="M8810.4727,692.6412 C8794.7668,769.2075 8775.8528,861.4132 8766.2393,908.2789 " fill="none" id="urt_service_t&lt;-urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="8813.1639,679.5216,8808.0398,684.5954,8810.7524,691.2768,8815.8766,686.203,8813.1639,679.5216" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8803.2793" y="699.9204">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="8741.0581" y="897.5255">0..1</text><!--MD5=[694e7400eb99f74d44ea388aed89d199]
+reverse link urt_core_t to urt_node_t--><path d="M3236.9174,242.8738 C4124.9555,256.6503 6913.628,305.0366 7312.9664,374.8594 C7424.0779,394.2868 7542.9445,429.8645 7644.9274,465.2641 " fill="none" id="urt_core_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3223.6616,242.6686,3229.5989,246.761,3235.6602,242.8544,3229.7228,238.762,3223.6616,242.6686" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3231.4307" y="255.0721">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="7600.8027" y="454.2266">0..1</text><!--MD5=[250695c91040478b50550bc37a8775c7]
+reverse link urt_core_t to urt_topic_t--><path d="M2965.9664,380.3343 C2965.9664,401.565 2965.9664,423.322 2965.9664,444.1564 " fill="none" id="urt_core_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2965.9664,367.1962,2961.9664,373.1962,2965.9664,379.1962,2969.9664,373.1962,2965.9664,367.1962" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2957.7352" y="387.1179">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2941.2352" y="433.1995">0..1</text><!--MD5=[8d0a227ec56585cdbc167f8316b34b64]
+reverse link urt_core_t to urt_service_t--><path d="M3236.982,241.6311 C4316.0068,253.1651 8260.5842,300.2662 8515.9664,374.8594 C8576.2598,392.4702 8636.6858,424.4075 8688.5323,457.3271 " fill="none" id="urt_core_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3223.6406,241.4888,3229.5975,245.5526,3235.6399,241.617,3229.683,237.5531,3223.6406,241.4888" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3231.0989" y="238.2608">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="8653.8203" y="446.4191">0..1</text><!--MD5=[a42c921bb2ae3ef3cd6ba12c97758939]
+reverse link urt_core_t to urt_osEventSource_t--><path d="M3236.7866,239.2406 C4946.3881,242.9531 14183.6318,282.8167 14583.9664,710.8594 C14704.4908,839.7256 14708.0775,982.4438 14583.9664,1107.8594 C14557.8023,1134.2984 11942.5193,1128.9699 11905.9664,1135.8594 C11829.2587,1150.3172 11746.4832,1183.4441 11688.545,1209.7674 " fill="none" id="urt_core_t&lt;-urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3223.7547,239.2127,3229.7461,243.2255,3235.7547,239.2384,3229.7633,235.2255,3223.7547,239.2127" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3231.5265" y="251.5136">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="11693.7423" y="1198.6609">1</text><!--MD5=[b9eb8460041bde16ab6e44c28de7b0fc]
+reverse link urt_core_t to urt_osMutex_t--><path d="M3236.5635,241.8229 C4393.4097,254.8729 8878.0297,309.4824 9170.9664,374.8594 C9530.6214,455.1265 9641.9497,479.7404 9928.9664,710.8594 C9990.685,760.558 10040.9953,838.2912 10069.7284,888.908 " fill="none" id="urt_core_t&lt;-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3223.5249,241.676,3229.4794,245.7434,3235.5241,241.8113,3229.5696,237.7439,3223.5249,241.676" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3231.2899" y="238.6048">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="10057.6652" y="878.2491">1</text><!--MD5=[53eb1ed31b8ffcbb98ca8a87ecf3ad40]
+link urt_core_t to urt_status_t--><path d="M2707.9952,256.2487 C2197.2226,296.7989 1087.6905,417.4238 870.9664,710.8594 C766.1404,852.7895 748.3304,981.001 870.9664,1107.8594 C902.9179,1140.911 1655.9684,1117.165 1697.9664,1135.8594 C1730.7912,1150.4706 1758.6117,1180.278 1777.6508,1205.3279 " fill="none" id="urt_core_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1780.8662,1209.6238,1778.6756,1200.0216,1777.8701,1205.6208,1772.2709,1204.8154,1780.8662,1209.6238" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f6f8ae0abb3c85244c8639cf15039f58]
+link urt_core_t to urt_nodestage_t--><path d="M2708.4591,244.7367 C2118.5237,259.435 714.2482,301.9351 642.9664,374.8594 C607.7947,410.8415 615.7647,1091.9008 630.9664,1107.8594 C675.161,1154.2546 1147.5904,1111.7725 1206.9664,1135.8594 C1224.0045,1142.7712 1240.2952,1153.0147 1255.1726,1164.5288 " fill="none" id="urt_core_t-&gt;urt_nodestage_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1259.3307,1167.8083,1254.741,1159.0942,1255.4047,1164.712,1249.787,1165.3758,1259.3307,1167.8083" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e894174e7ccaed139fbaaa0f9b9ae8dc]
+link urt_core_t to urt_topicid_t--><path d="M2708.2298,244.347 C2111.6732,258.3056 681.0993,299.5019 609.9664,374.8594 C374.2787,624.5445 575.0748,907.5825 853.9664,1107.8594 C900.9149,1141.574 930.1519,1108.3143 980.9664,1135.8594 C995.0981,1143.5198 1008.6677,1153.469 1021.1951,1164.2625 " fill="none" id="urt_core_t-&gt;urt_topicid_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1025.0489,1167.6377,1020.9138,1158.6989,1021.2875,1164.3434,1015.643,1164.7171,1025.0489,1167.6377" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[972bd788fc5a0ee0badfa994920a3622]
+link urt_core_t to urt_serviceid_t--><path d="M2708.4474,247.8035 C2165.3401,267.7294 946.4579,318.4801 875.9664,374.8594 C619.2423,580.1881 549.3328,870.6884 776.9664,1107.8594 C829.483,1162.5764 1388.9891,1106.6168 1458.9664,1135.8594 C1475.4073,1142.7299 1490.9702,1152.9524 1505.0898,1164.4583 " fill="none" id="urt_core_t-&gt;urt_serviceid_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1509.0335,1167.7359,1504.6688,1158.907,1505.1883,1164.5399,1499.5553,1165.0593,1509.0335,1167.7359" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[addb2e74eebae0995b3a6bf162197d46]
+reverse link urt_node_t to urt_osThread_t--><path d="M8331.435,673.8866 C8393.9679,685.8595 8457.8873,696.1538 8518.9664,702.8594 C8565.6858,707.9885 11858.4556,695.7663 11902.9664,710.8594 C11942.8418,724.3807 11981.6043,745.5621 12017.2835,769.6852 " fill="none" id="urt_node_t&lt;-urt_osThread_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="8318.5318,671.3888,8323.6622,676.4562,8330.3131,673.6694,8325.1827,668.602,8318.5318,671.3888" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8339.1887" y="691.244">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="12000.7338" y="758.7563">1</text><!--MD5=[71f626b81c482d35e653d2b548781872]
+reverse link urt_node_t to urt_nodestage_t--><path d="M7495.0992,673.9422 C7434.3893,685.9068 7372.3142,696.184 7312.9664,702.8594 C7302.6805,704.0163 1358.4024,703.6592 1350.9664,710.8594 C1229.3945,828.5751 1271.3724,1049.3116 1305.9498,1167.4534 " fill="none" id="urt_node_t&lt;-urt_nodestage_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="7508.0319,671.3641,7501.3657,668.6142,7496.2634,673.71,7502.9297,676.4599,7508.0319,671.3641" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7471.7006" y="691.2176">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1295.1874" y="1156.7666">1</text><!--MD5=[ecbb69d8dc7b8a34ff21337736794c2a]
+reverse link urt_node_t to urt_osEventListener_t--><path d="M8331.0403,673.8696 C8393.6978,685.8659 8457.7574,696.1714 8518.9664,702.8594 C8529.3093,703.9895 14504.6142,703.4974 14511.9664,710.8594 C14636.6481,835.7077 14636.1827,982.548 14511.9664,1107.8594 C14480.7742,1139.3266 11365.3663,1126.9388 11321.9664,1135.8594 C11257.1068,1149.1909 11188.2554,1178.544 11136.9929,1203.7177 " fill="none" id="urt_node_t&lt;-urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="8318.1116,671.3667,8323.242,676.4342,8329.8929,673.6475,8324.7625,668.58,8318.1116,671.3667" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8404.2639" y="690.5747">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="11141.1096" y="1192.6911">1</text><!--MD5=[a052f483eba01ccbd89eefaa281cffa6]
+reverse link urt_node_t to urt_osThreadFunction_t--><path d="M8331.0401,673.8712 C8393.6977,685.8673 8457.7573,696.1723 8518.9664,702.8594 C8529.5406,704.0146 14638.4497,703.3329 14645.9664,710.8594 C14770.65,835.7059 14769.6956,982.067 14645.9664,1107.8594 C14612.9843,1141.3915 12997.0815,1119.5475 12952.9664,1135.8594 C12909.0487,1152.0982 12869.1892,1189.3646 12844.5736,1216.2425 " fill="none" id="urt_node_t&lt;-urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="8318.1114,671.3684,8323.2418,676.4358,8329.8927,673.649,8324.7623,668.5816,8318.1114,671.3684" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="8347.8286" y="691.2222">0..*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="12841.0301" y="1205.4816">1</text><!--MD5=[0cba389305cd35ebcbacaedacb3fbe88]
+link urt_node_t to urt_status_t--><path d="M7507.6294,671.4383 C7442.9576,684.4673 7376.4038,695.7201 7312.9664,702.8594 C7303.538,703.9205 1854.9337,704.4192 1847.9664,710.8594 C1708.5843,839.6966 1763.4763,1101.9784 1791.9716,1204.4724 " fill="none" id="urt_node_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1793.3911,1209.5252,1794.8077,1199.7787,1792.0387,1204.7115,1787.1059,1201.9426,1793.3911,1209.5252" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b00c0c61b5ae38465e12763fb588229]
+link urt_nodeSetupCallback_t to urt_osEventMask_t--><path d="M7654.7324,969.4392 C7698.7416,1009.5977 7782.6443,1078.4469 7868.9664,1107.8594 C8094.6533,1184.7576 9751.5097,1231.0464 10255.7591,1243.4645 " fill="none" id="urt_nodeSetupCallback_t-&gt;urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="10260.9066,1243.5911,10252.0077,1239.3709,10255.9081,1243.4681,10251.8109,1247.3685,10260.9066,1243.5911" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[aa0b59559007c8ad9b783f6dc5ed8ad9]
+link urt_nodeLoopCallback_t to urt_osEventMask_t--><path d="M8237.4661,969.4383 C8298.0545,1009.2596 8411.3188,1077.3713 8518.9664,1107.8594 C8845.0676,1200.2182 9873.3578,1234.0813 10255.813,1243.6735 " fill="none" id="urt_nodeLoopCallback_t-&gt;urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="10260.8396,1243.7991,10251.9424,1239.5753,10255.8412,1243.6741,10251.7424,1247.5728,10260.8396,1243.7991" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b3fa89608aace108b23bbfcd22712ec]
+link urt_publisher_t to urt_config--><path d="M1979.1786,579.4262 C1362.542,599.2671 205.6726,645.0558 143.9664,710.8594 C-45.4344,912.8366 -34.0697,1121.7966 143.9664,1333.8594 C244.3053,1453.3754 702.0673,1487.3836 943.6433,1497.0416 " fill="none" id="urt_publisher_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="948.955,1497.2515,940.1201,1492.899,943.9589,1497.0539,939.804,1500.8927,948.955,1497.2515" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[48a81098d0aa451a4923659bb2bbea3c]
+link urt_publisher_t to urt_status_t--><path d="M1979.0737,580.2208 C1578.2403,596.7455 994.7372,633.8116 924.9664,710.8594 C865.7485,776.2536 863.7233,1044.3578 924.9664,1107.8594 C984.6287,1169.722 1619.4899,1100.8162 1697.9664,1135.8594 C1730.7739,1150.5094 1758.5952,1180.3149 1777.6391,1205.3542 " fill="none" id="urt_publisher_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1780.8554,1209.6482,1778.6613,1200.0468,1777.8578,1205.6463,1772.2583,1204.8429,1780.8554,1209.6482" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[c16173558393ca1d9128284d70afa235]
+link urt_publisher_t to urt_delay_t--><path d="M1979.2001,608.053 C1761.9439,634.6923 1526.0152,671.9279 1492.9664,710.8594 C1378.7785,845.3725 1372.4223,979.0115 1492.9664,1107.8594 C1524.9191,1142.0132 1870.5092,1116.2419 1912.9664,1135.8594 C1940.4247,1148.5466 1964.6063,1171.5186 1983.0885,1193.2861 " fill="none" id="urt_publisher_t-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1986.4727,1197.3338,1983.7687,1187.8634,1983.2656,1193.4978,1977.6312,1192.9947,1986.4727,1197.3338" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[3f75a4ca5db56e37c381a718c71f2950]
+reverse link urt_topic_t to urt_topicid_t--><path d="M2773.0326,697.2184 C2767.3617,699.2871 2761.6678,701.1765 2755.9664,702.8594 C2743.8777,706.4277 949.8593,701.9272 940.9664,710.8594 C816.4766,835.8991 859.4825,951.3569 940.9664,1107.8594 C950.9879,1127.1073 964.2797,1121.9861 980.9664,1135.8594 C992.9138,1145.7925 1005.0918,1156.7479 1016.8166,1167.7905 " fill="none" id="urt_topic_t&lt;-urt_topicid_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2785.4042,692.4134,2778.3631,690.857,2774.2183,696.7579,2781.2594,698.3143,2785.4042,692.4134" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2766.1574" y="712.4987">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1001.3356" y="1156.8628">1</text><!--MD5=[2ea2859f8de074b5c128ff5997404a58]
+reverse link urt_topic_t to urt_osMutex_t--><path d="M3170.5716,694.8337 C3179.0126,697.8593 3187.4935,700.5584 3195.9664,702.8594 C3218.5277,708.9863 9908.1218,700.2736 9928.9664,710.8594 C10002.2435,748.0727 10051.1241,834.1967 10076.163,889.296 " fill="none" id="urt_topic_t&lt;-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3158.2386,690.1756,3162.4382,696.0376,3169.4645,694.4157,3165.2649,688.5536,3158.2386,690.1756" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3165.9055" y="691.7092">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="10064.8156" y="878.3323">1</text><!--MD5=[ee40dc1875ed5325eec4e6c8c8102744]
+reverse link urt_topic_t to urt_osEventSource_t--><path d="M3170.5702,694.839 C3179.0116,697.8631 3187.4929,700.5605 3195.9664,702.8594 C3214.9268,708.0035 14498.0796,696.9628 14511.9664,710.8594 C14636.6873,835.6686 14636.0594,982.4259 14511.9664,1107.8594 C14486.5094,1133.5913 11941.5356,1129.15 11905.9664,1135.8594 C11829.2608,1150.3283 11746.485,1183.4538 11688.5462,1209.7738 " fill="none" id="urt_topic_t&lt;-urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3158.2366,690.1828,3162.4371,696.0442,3169.4632,694.4211,3165.2627,688.5598,3158.2366,690.1828" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3165.2394" y="712.5576">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="11703.2187" y="1198.6685">1</text><!--MD5=[f5e2f818dfb7c47ef0a661b061d2efd0]
+link urt_topic_t to urt_config--><path d="M2785.4087,692.4287 C2775.6711,696.4311 2765.8301,699.9546 2755.9664,702.8594 C2739.0392,707.8444 227.4243,698.3622 214.9664,710.8594 C117.2256,808.9084 126.6789,1227.219 214.9664,1333.8594 C305.7564,1443.5226 717.2045,1481.7625 943.5522,1494.6371 " fill="none" id="urt_topic_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="948.8643,1494.9366,940.1038,1490.4361,943.8722,1494.655,939.6533,1498.4234,948.8643,1494.9366" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a01366c261f16bb61c03de8616a1256c]
+reverse link urt_topic_t to urt_osTimer_t--><path d="M3170.5705,694.8377 C3179.0118,697.8622 3187.493,700.56 3195.9664,702.8594 C3261.412,720.6193 12895.4327,693.4273 12960.9664,710.8594 C13085.871,744.0844 13212.4734,826.562 13288.6066,882.6519 " fill="none" id="urt_topic_t&lt;-urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3158.2371,690.1811,3162.4374,696.0426,3169.4635,694.4198,3165.2632,688.5583,3158.2371,690.1811" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3165.9039" y="707.3008">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="13254.4471" y="871.9611">0..1</text><!--MD5=[23aed2412a22c58889d68b772ca9654f]
+link urt_topic_t to urt_status_t--><path d="M2785.4037,692.4117 C2775.6674,696.4186 2765.8281,699.9477 2755.9664,702.8594 C2744.2443,706.3204 1004.5892,702.1973 995.9664,710.8594 C933.7258,773.3835 934.8396,1044.2459 995.9664,1107.8594 C1050.0534,1164.1468 1626.7464,1103.9002 1697.9664,1135.8594 C1730.7471,1150.5694 1758.5697,1180.3719 1777.6209,1205.3949 " fill="none" id="urt_topic_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1780.8385,1209.6859,1778.6393,1200.0857,1777.8388,1205.6856,1772.2389,1204.8852,1780.8385,1209.6859" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[40d97a101b79fe2b6aede42ee911a5e3]
+reverse link urt_message_t to urt_osTime_t--><path d="M3004.1252,856.9048 C3049.9084,794.2807 3123.5828,717.001 3213.4664,706.8594 C3256.5127,702.0025 9408.4201,702.0025 9451.4664,706.8594 C9558.4182,718.9269 9638.7988,831.9939 9676.0415,895.7102 " fill="none" id="urt_message_t&lt;-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2996.4617,867.6105,3003.2067,865.0599,3003.4466,857.8528,2996.7016,860.4034,2996.4617,867.6105" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3002.5319" y="857.0559">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9663.7503" y="884.6824">1</text><!--MD5=[7527c1e2a180419f2ba2182e8f11877d]
+reverse link urt_message_t to urt_osMutex_t--><path d="M3004.1252,856.9048 C3049.9084,794.2807 3123.5828,717.001 3213.4664,706.8594 C3259.687,701.6443 9865.2458,701.6443 9911.4664,706.8594 C10001.9791,717.072 10055.5286,824.0684 10079.9591,889.1327 " fill="none" id="urt_message_t&lt;-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2996.4617,867.6105,3003.2067,865.0599,3003.4466,857.8528,2996.7016,860.4034,2996.4617,867.6105" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3001.3597" y="856.5822">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="10078.2706" y="878.146">1</text><!--MD5=[107def0b4b669b7e1be29db2eeb634c8]
+reverse link urt_message_t to urt_osCondvar_t--><path d="M3004.1252,856.9048 C3049.9084,794.2807 3123.5828,717.001 3213.4664,706.8594 C3249.819,702.7577 13713.1137,702.7577 13749.4664,706.8594 C13887.445,722.4276 14020.4921,825.9649 14090.3476,889.3481 " fill="none" id="urt_message_t&lt;-urt_osCondvar_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2996.4617,867.6105,3003.2067,865.0599,3003.4466,857.8528,2996.7016,860.4034,2996.4617,867.6105" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2992.5347" y="856.5822">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="14074.6668" y="878.3917">1</text><!--MD5=[2bb9471b6fda5815e085c87a24a67f11]
+link urt_message_t to urt_config--><path d="M2832.7325,1010.04 C2675.9697,1099.6027 2390.7161,1251.6217 2127.9664,1333.8594 C1822.4923,1429.4694 1448.2342,1472.5532 1244.2123,1490.141 " fill="none" id="urt_message_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1239.1251,1490.5773,1248.4341,1493.7933,1244.1068,1490.1498,1247.7502,1485.8225,1239.1251,1490.5773" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[570f5794230ed2cf7946261591bb6cd1]
+link urt_message_t to urt_status_t--><path d="M2727.4572,965.4349 C2465.244,999.1198 2050.758,1061.8044 1912.9664,1135.8594 C1881.7346,1152.6447 1854.0213,1181.5909 1834.489,1205.7154 " fill="none" id="urt_message_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1831.1821,1209.8506,1839.9271,1205.3201,1834.3049,1205.9457,1833.6793,1200.3236,1831.1821,1209.8506" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0614ecc40a2323571c35dab79c646fe8]
+reverse link urt_basesubscriber_t to urt_osEventListener_t--><path d="M5145.4282,965.12 C5343.659,1005.1751 5741.9511,1079.8352 6083.9664,1107.8594 C6342.6596,1129.0563 10500.5832,1089.4809 10755.9664,1135.8594 C10828.8512,1149.0955 10907.2479,1178.5388 10965.7567,1203.7764 " fill="none" id="urt_basesubscriber_t&lt;-urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="5132.6631,962.5326,5137.7488,967.6449,5144.4239,964.9166,5139.3382,959.8043,5132.6631,962.5326" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5140.5037" y="960.7029">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="10942.5827" y="1192.7592">1</text><!--MD5=[60df476f9c89db6ca6af2af6f6dc5b29]
+reverse link urt_basesubscriber_t to urt_osTime_t--><path d="M5145.3363,902.9074 C5345.4236,847.5932 5750.231,744.1087 6101.4664,706.8594 C6147.7347,701.9525 9405.232,701.6427 9451.4664,706.8594 C9558.4182,718.9269 9638.7988,831.9939 9676.0415,895.7102 " fill="none" id="urt_basesubscriber_t&lt;-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="5132.7479,906.3987,5139.5987,908.6497,5144.3114,903.1916,5137.4606,900.9407,5132.7479,906.3987" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5140.5942" y="900.7975">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9673.0253" y="884.6824">1</text><!--MD5=[45abaca6e1a4b5e9e9e5f81f99145f21]
+link urt_basesubscriber_t to urt_config--><path d="M4991.3382,1005.9114 C4972.1288,1042.3454 4943.1288,1084.5954 4903.9664,1107.8594 C4584.0932,1297.8764 1911.5891,1456.0184 1244.4219,1492.791 " fill="none" id="urt_basesubscriber_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1239.076,1493.0854,1248.2824,1496.5843,1244.0684,1492.8104,1247.8424,1488.5964,1239.076,1493.0854" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[fb477f5fd8787be5b7605dfea5d27dc3]
+link urt_basesubscriber_t to urt_status_t--><path d="M4992.783,1006.007 C4973.8506,1043.2064 4944.6436,1086.1986 4903.9664,1107.8594 C4830.6291,1146.9118 1989.357,1103.1805 1912.9664,1135.8594 C1879.5287,1150.1636 1851.2749,1180.3407 1832.062,1205.6236 " fill="none" id="urt_basesubscriber_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1829.0567,1209.6362,1837.6536,1204.8306,1832.0541,1205.6342,1831.2504,1200.0347,1829.0567,1209.6362" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[c18fda7f16d94dac1a94387e8df76308]
+reverse link urt_nrtsubscriber_t to urt_delay_t--><path d="M3414.5971,649.5902 C3349.4907,671.3113 3276.6606,691.8092 3207.9664,702.8594 C3196.6945,704.6726 1572.0196,702.7669 1563.9664,710.8594 C1501.7358,773.3935 1504.1302,1043.0304 1563.9664,1107.8594 C1616.7369,1165.0333 1842.5584,1102.7491 1912.9664,1135.8594 C1941.9205,1149.4755 1967.2929,1174.4177 1986.1571,1197.2141 " fill="none" id="urt_nrtsubscriber_t&lt;-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3427.0858,645.3775,3420.122,643.5051,3415.7153,649.213,3422.6791,651.0854,3427.0858,645.3775" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3399.5085" y="665.7491">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1982.9495" y="1186.2389">0..2</text><!--MD5=[cf4e9b81c32b9b138596f59fa1fb3fd6]
+link urt_nrtsubscriber_t to urt_config--><path d="M3427.361,645.3774 C3359.1094,668.6686 3281.1936,691.1599 3207.9664,702.8594 C3197.9476,704.4601 293.1308,703.6754 285.9664,710.8594 C188.2055,808.8883 198.5381,1226.5134 285.9664,1333.8594 C367.3198,1433.7467 733.2366,1475.7119 943.6782,1491.8377 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="948.9296,1492.2372,940.2591,1487.5657,943.944,1491.8577,939.652,1495.5427,948.9296,1492.2372" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[249ee4d4a0d0f021e94ff447977fc36f]
+link urt_nrtsubscriber_t to urt_status_t--><path d="M3427.0934,645.4247 C3358.9037,668.6808 3281.0945,691.1383 3207.9664,702.8594 C3193.2856,705.2125 1077.4601,700.3264 1066.9664,710.8594 C1004.7005,773.3584 1005.9822,1044.1091 1066.9664,1107.8594 C1115.4788,1158.5722 1634.002,1106.9838 1697.9664,1135.8594 C1730.714,1150.6428 1758.5383,1180.4417 1777.5984,1205.4447 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1780.8177,1209.7321,1778.6124,1200.1333,1777.8155,1205.7337,1772.2151,1204.9368,1780.8177,1209.7321" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[af3bb42c2cc648980c9a8c0bd0e49df3]
+reverse link urt_srtsubscriber_t to urt_delay_t--><path d="M6396.3623,667.7274 C6330.2136,682.3117 6261.3772,695.0389 6195.9664,702.8594 C6181.2207,704.6224 1929.4576,700.3485 1918.9664,710.8594 C1794.318,835.7411 1864.0443,940.1805 1918.9664,1107.8594 C1929.7741,1140.8558 1951.7302,1172.489 1972.5124,1197.2195 " fill="none" id="urt_srtsubscriber_t&lt;-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="6409.1168,664.8853,6402.3904,662.2861,6397.4041,667.4954,6404.1305,670.0945,6409.1168,664.8853" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6374.3314" y="684.9274">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1940.0111" y="1186.245">0..2</text><!--MD5=[57f9c03e706aa97ce919c51d40a1f0dd]
+link urt_srtsubscriber_t to urt_config--><path d="M7102.836,664.9187 C7172.8746,680.6258 7246.3599,694.4793 7315.9664,702.8594 C7328.7285,704.3959 9157.8967,701.7504 9166.9664,710.8594 C9229.214,773.3766 9227.8134,1043.9782 9166.9664,1107.8594 C8882.8607,1406.132 2326.108,1487.8874 1244.4154,1499.3624 " fill="none" id="urt_srtsubscriber_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1239.2991,1499.4166,1248.341,1503.321,1244.2988,1499.3636,1248.2562,1495.3214,1239.2991,1499.4166" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ddfd53c980ad9ebb8f86954377552edb]
+link urt_srtsubscriber_t to urt_status_t--><path d="M6409.117,664.8871 C6339.101,680.6525 6265.593,694.536 6195.9664,702.8594 C6180.9517,704.6543 1852.0019,700.5212 1840.9664,710.8594 C1702.5807,840.5008 1761.3018,1102.3094 1791.3309,1204.5745 " fill="none" id="urt_srtsubscriber_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1792.8261,1209.616,1794.1017,1199.8501,1791.4043,1204.8224,1786.432,1202.125,1792.8261,1209.616" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b350769e483c42ea2704e388ea6a04f2]
+reverse link urt_frtsubscriber_t to urt_delay_t--><path d="M4158.5758,684.0876 C4122.0972,691.6636 4085.5015,698.1395 4049.9664,702.8594 C4033.3415,705.0676 1646.8056,698.9809 1634.9664,710.8594 C1572.6873,773.3452 1575.7921,1042.4257 1634.9664,1107.8594 C1676.6129,1153.9113 1857.0502,1108.8669 1912.9664,1135.8594 C1941.6596,1149.7105 1966.93,1174.5223 1985.7985,1197.1796 " fill="none" id="urt_frtsubscriber_t&lt;-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="4171.4719,681.3631,4164.7746,678.6897,4159.7311,683.8436,4166.4283,686.517,4171.4719,681.3631" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4136.2965" y="701.8914">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1982.5405" y="1186.1995">0..4</text><!--MD5=[7be759a40cf40f1b9231b6649fee3f4f]
+link urt_frtsubscriber_t to urt_config--><path d="M4171.4774,681.4044 C4130.7459,690.1455 4089.6939,697.6032 4049.9664,702.8594 C4037.9874,704.4443 578.5209,702.3255 569.9664,710.8594 C373.9399,906.4146 404.461,1110.3997 567.9664,1333.8594 C612.9424,1395.3273 804.9356,1444.8586 943.9873,1473.5713 " fill="none" id="urt_frtsubscriber_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="948.9111,1474.5839,940.9015,1468.8528,944.0136,1473.5766,939.2898,1476.6887,948.9111,1474.5839" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[29df74e07807e6378398cb43d45b3c27]
+link urt_frtsubscriber_t to urt_status_t--><path d="M4171.475,681.3861 C4130.7439,690.1307 4089.6927,697.5943 4049.9664,702.8594 C4039.9429,704.1879 1145.1062,703.6999 1137.9664,710.8594 C1075.6696,773.3276 1077.1614,1043.9382 1137.9664,1107.8594 C1180.9051,1152.9987 1641.2564,1110.0668 1697.9664,1135.8594 C1730.6724,1150.7346 1758.4987,1180.5291 1777.5702,1205.5071 " fill="none" id="urt_frtsubscriber_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1780.7915,1209.7899,1778.5784,1200.1929,1777.786,1205.794,1772.185,1205.0016,1780.7915,1209.7899" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[bc1cc9ca99c1274e9c895cd105ca1d4c]
+reverse link urt_hrtsubscriber_t to urt_delay_t--><path d="M5062.6284,702.4159 C5061.4066,702.5655 5060.1859,702.7133 5058.9664,702.8594 C5047.4067,704.2445 1714.189,702.6172 1705.9664,710.8594 C1643.6583,773.3163 1647.9152,1041.4273 1705.9664,1107.8594 C1736.5105,1142.8133 1871.5131,1114.9706 1912.9664,1135.8594 C1941.2994,1150.1368 1966.459,1174.8356 1985.3509,1197.3152 " fill="none" id="urt_hrtsubscriber_t&lt;-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="5075.762,700.7506,5069.3065,697.5372,5063.8573,702.2602,5070.3129,705.4736,5075.762,700.7506" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5060.081" y="699.5756">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1954.655" y="1186.3542">0..5</text><!--MD5=[47265b8b91af56102ad98d46909bef01]
+reverse link urt_hrtsubscriber_t to urt_osTimer_t--><path d="M6172.9719,700.0367 C6180.6763,701.0373 6188.3442,701.9797 6195.9664,702.8594 C6242.6358,708.2457 12915.5681,698.7745 12960.9664,710.8594 C13085.865,744.1071 13212.469,826.5787 13288.6042,882.661 " fill="none" id="urt_hrtsubscriber_t&lt;-urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="6159.973,698.2986,6165.3899,703.0586,6171.8671,699.8892,6166.4503,695.1292,6159.973,698.2986" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6167.6512" y="697.0891">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="13280.3944" y="871.9713">1</text><!--MD5=[c255c4720016d78ffa1594ef43d10003]
+link urt_hrtsubscriber_t to urt_config--><path d="M5075.7625,700.7549 C5070.1414,701.4908 5064.5415,702.1929 5058.9664,702.8594 C5043.9793,704.651 723.4984,701.1211 711.9664,710.8594 C498.9687,890.7263 479.3715,1105.2777 638.9664,1333.8594 C675.1648,1385.705 825.6808,1434.234 943.8117,1465.4715 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="948.7051,1466.7605,941.021,1460.5998,943.87,1465.4868,938.9831,1468.3359,948.7051,1466.7605" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[acfaba0e8df90d54cbfcf78ceb19e2ee]
+link urt_hrtsubscriber_t to urt_status_t--><path d="M5075.7623,700.753 C5070.1413,701.4895 5064.5414,702.1923 5058.9664,702.8594 C5045.693,704.4478 1218.4092,701.3969 1208.9664,710.8594 C1146.6487,773.3067 1148.3932,1043.7186 1208.9664,1107.8594 C1246.3326,1147.4265 1648.509,1113.149 1697.9664,1135.8594 C1730.5034,1150.8001 1758.2512,1180.432 1777.3316,1205.3237 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1780.5553,1209.5924,1778.3236,1199.9997,1777.5421,1205.6023,1771.9395,1204.8209,1780.5553,1209.5924" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[19bf7f91edc926705d1714d4ed8cf052]
+link urt_srtusefulnessfunc_t to urt_delay_t--><path d="M6119.4473,969.4415 C5897.8909,1008.3693 5496.1585,1074.5535 5149.9664,1107.8594 C3957.3417,1222.5976 2499.7153,1242.7973 2116.7702,1246.1985 " fill="none" id="urt_srtusefulnessfunc_t-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2111.7623,1246.2426,2120.7972,1250.1632,2116.7621,1246.1986,2120.7268,1242.1635,2111.7623,1246.2426" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[85137379eadac9ac066ccd1aa3005a20]
+reverse link urt_service_t to urt_serviceid_t--><path d="M8588.2246,683.5702 C8564.1899,691.3647 8539.8587,698.0275 8515.9664,702.8594 C8493.1777,707.4681 1839.4909,698.2358 1819.9664,710.8594 C1662.2043,812.861 1606.2076,1045.1337 1587.1887,1167.7187 " fill="none" id="urt_service_t&lt;-urt_serviceid_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="8600.7623,679.3947,8593.8058,677.4955,8589.3771,683.1864,8596.3336,685.0856,8600.7623,679.3947" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8575.9433" y="699.7845">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1579.6701" y="1156.7843">1</text><!--MD5=[bfc39859b663e58a9d342532110a4ed9]
+reverse link urt_service_t to urt_osMutex_t--><path d="M9150.0533,632.3899 C9294.3858,659.0884 9468.2041,687.426 9625.9664,702.8594 C9642.7256,704.4989 9914.0496,703.046 9928.9664,710.8594 C10001.5513,748.8795 10050.5028,834.3212 10075.7665,889.1346 " fill="none" id="urt_service_t&lt;-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="9137.0668,629.9774,9142.2352,635.006,9148.8649,632.1693,9143.6965,627.1406,9137.0668,629.9774" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="9145.171" y="628.4774">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="10073.4884" y="878.1482">1</text><!--MD5=[33249c42c81fffc5b10022c232aa2b33]
+link urt_service_t to urt_config--><path d="M8600.7625,679.3958 C8572.6858,688.9871 8544.0236,697.1858 8515.9664,702.8594 C8421.6939,721.9227 1684.7537,689.5368 1590.9664,710.8594 C1163.9235,807.9479 935.4934,765.3774 701.9664,1135.8594 C655.0413,1210.3043 653.444,1260.4457 701.9664,1333.8594 C755.5089,1414.8685 857.2103,1456.7093 943.604,1478.2505 " fill="none" id="urt_service_t-&gt;urt_config" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="948.4871,1479.4506,940.7019,1473.418,943.6316,1478.2572,938.7925,1481.1868,948.4871,1479.4506" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ac5bbcedbd2eba97f2e594f2b75734f9]
+reverse link urt_service_t to urt_delay_t--><path d="M8588.2245,683.5695 C8564.1898,691.3641 8539.8587,698.0272 8515.9664,702.8594 C8504.8222,705.1133 1975.0011,702.8148 1966.9664,710.8594 C1836.1024,841.8833 1939.9718,1090.8678 1993.7549,1196.9634 " fill="none" id="urt_service_t&lt;-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="8600.7621,679.3939,8593.8056,677.4947,8589.3769,683.1856,8596.3334,685.0848,8600.7621,679.3939" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8584.5055" y="699.7837">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1948.6787" y="1186.2193">0..2</text><!--MD5=[5471b15d17b5493f5e528354308bf7b4]
+link urt_service_t to urt_status_t--><path d="M8600.7622,679.3943 C8572.6855,688.9859 8544.0234,697.1851 8515.9664,702.8594 C8493.4364,707.4159 1913.5187,696.0177 1895.9664,710.8594 C1893.581,712.8764 1832.8454,1078.4948 1811.9504,1204.6474 " fill="none" id="urt_service_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1811.1047,1209.7538,1816.5215,1201.5283,1811.9217,1204.821,1808.629,1200.2211,1811.1047,1209.7538" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0826203957815bb9ddac9132e239afa7]
+link urt_servicefunc_t to urt_delay_t--><path d="M8729.0182,969.5147 C8685.6846,1010.1013 8602.4813,1079.8046 8515.9664,1107.8594 C8197.9926,1210.9709 2897.5134,1242.3185 2116.7161,1246.3846 " fill="none" id="urt_servicefunc_t-&gt;urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2111.6238,1246.411,2120.6445,1250.3641,2116.6237,1246.385,2120.6029,1242.3642,2111.6238,1246.411" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[3a1e539c88376aaf116c25a44ec54d4f]
+link urt_servicefunc_t to urt_status_t--><path d="M8729.4535,969.3834 C8686.303,1010.1661 8602.9646,1080.4704 8515.9664,1107.8594 C8341.0133,1162.9385 2081.7864,1064.1512 1912.9664,1135.8594 C1879.3747,1150.1278 1851.0423,1180.4719 1831.8358,1205.8327 " fill="none" id="urt_servicefunc_t-&gt;urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1828.8323,1209.8569,1837.4212,1205.037,1831.8231,1205.85,1831.0101,1200.2518,1828.8323,1209.8569" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8323fca301491aec9ecebdfb99fb65f5]
 @startuml
 
 title **µRtWare**\nOverview\n
@@ -406,9 +405,9 @@ title **µRtWare**\nOverview\n
   + {method} urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodestage_t) : urt_status_t
   + {method} urtCoreStopNodes (void) : urt_status_t
   .. URT_CFG_PUBSUB_ENABLED == true ..
-  + {method} urtCoreRetrieveTopic (id : urt_topicid_t) : urt_topic_t*
+  + {method} urtCoreGetTopic (id : urt_topicid_t) : urt_topic_t*
   .. URT_CFG_RPC_ENABLED == true ..
-  + {method} urtCoreRetrieveService (id : urt_serviceid_t) : urt_service_t*
+  + {method} urtCoreGetService (id : urt_serviceid_t) : urt_service_t*
 }
 
   package "node" <<Rectangle>> {
@@ -429,9 +428,11 @@ title **µRtWare**\nOverview\n
     + {field} loopparams : void*
     + {field} stage : urt_nodestage_t
     + {field} listener : urt_osEventListener_t
+    .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true ..
+    + {field} loops : uint64_t
     __
     - {method} {static} _main : urt_osThreadFunction_t
-    + {method} urtNodeInit (node : urt_node_t*, stacksize : size_t, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t
+    + {method} urtNodeInit (node : urt_node_t*, thread : urt_osThread_t*, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t
   }
 } 
 
@@ -449,93 +450,88 @@ title **µRtWare**\nOverview\n
 }
 
   package "subscriber" <<Rectangle>> {
-    package "real-time constraint data" <<Rectangle>> {
-      class urt_rtdata_t <<S,BFAFFF>> {
-      + {field} class : urt_rtconstraintclass_t
-      + {field} params : urt_rtconstraintsparams_t
-    }
-
-      class urt_rtclass_t <<E,FF7F3F>> {
-      URT_RTCLASS_HARD = 0
-      URT_RTCLASS_FIRM = 1
-      URT_RTCLASS_SOFT = 2
-      URT_RTCLASS_NONE = 3
-    }
-
-      class urt_rtclassdata_t <<U,7FCF7F>> {
-      + {field} hrt : urt_hrtparams_t
-      + {field} frt : urt_frtparams_t
-      + {field} srt : urt_srtparans_t
-      + {field} nrt : urt_nrtparams_t
-    }
-
-      class urt_hrtdata_t <<S,BFAFFF>> {
-      + {field} next : urt_subscriber_t*
-      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
-      + {field} qosDeadlineTimer : urt_osTimer_t
-      + {field} deadlineOffset : urt_delay_t
-      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
-      + {field} expectedRate : urt_delay_t
-      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
-      + {field} maxJitter : urt_delay_t
-      + {field} minLatency : urt_delay_t
-      + {field} maxLatency : urt_delay_t
-    }
-
-      class urt_frtdata_t <<S,BFAFFF>> {
-      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
-      + {field} deadlineOffset : urt_delay_t
-      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
-      + {field} expectedRate : urt_delay_t
-      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
-      + {field} maxJitter : urt_delay_t
-      + {field} minLatency : urt_delay_t
-      + {field} maxLatency : urt_delay_t
-    }
-
-      package "SRT data" <<Rectangle>> {
-        class urt_srtusefulnessfunc_t <<F,E0E0E0>> {
-        urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
-      }
-
-        class urt_srtdata_t <<S,BFAFFF>> {
-        + {field} usefullnesscb : urt_srtusefulnessfunc_t*
-        + {field} cbparams : void*
-      }
-    } 
-
-      class urt_nrtdata_t <<S,BFAFFF>> {
-    }
-  } 
-
-    class urt_subscriber_t <<S,BFAFFF>> {
+    class urt_basesubscriber_t <<S,BFAFFF>> {
     + {field} topic : urt_topic_t*
     + {field} evtListener : urt_osEventListener_t
-    + {field} rtdata : urt_rtdata_t
     + {field} lastMessage : urt_message_t*
     + {field} lastMessageTime : urt_osTime_t
     .. URT_CFG_PUBSUB_PROFILING == true ..
     + {field} sumLatencies : uint64_t
     + {field} numMessagesReceived : uint64_t
+  }
+
+    class urt_srtusefulnessfunc_t <<F,E0E0E0>> {
+    urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
+  }
+
+    class urt_nrtsubscriber_t <<S,BFAFFF>> {
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    + {field} minLatency : urt_delay_t
+    + {field} maxLatency : urt_delay_t
+    __
+    + {method} urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : urt_status_t
+    + {method} urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
+    + {method} urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t
+  }
+
+    class urt_srtsubscriber_t <<S,BFAFFF>> {
+    + {field} usefulnesscb : urt_srtusefulnessfunc_t*
+    + {field} cbparams : void*
     .. URT_CFG_PUBSUB_PROFILING == true ..
     + {field} minLatency : urt_delay_t
     + {field} maxLatency : urt_delay_t
     __
-    + {method} urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t
-    + {method} urtSubscriberSubscribeHrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
-    + {method} urtSubscriberSubscribeFrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
-    + {method} urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
-    + {method} urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
-    + {method} urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t
-    + {method} urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
-    + {method} urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
-    + {method} urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float
+    + {method} urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : urt_status_t
+    + {method} urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
+    + {method} urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float
+    + {method} urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t
+  }
+
+    class urt_frtsubscriber_t <<S,BFAFFF>> {
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+    + {field} deadlineOffset : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+    + {field} maxJitter : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ||  URT_CFG_PUBSUB_PROFILING == true ..
+    + {field} minLatency : urt_delay_t
+    + {field} maxLatency : urt_delay_t
+    __
+    + {method} urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : urt_status_t
+    + {method} urtFrtSubscriberSubscribe (subscriber : urt_frtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, jitter : urt_delay_t) : urt_status_t
+    + {method} urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool
+    + {method} urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t
+  }
+
+    class urt_hrtsubscriber_t <<S,BFAFFF>> {
+    + {field} next : urt_hrtsubscriber_t*
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+    + {field} deadlineOffset : urt_delay_t
+    + {field} qosDeadlineTimer : urt_osTimer_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+    + {field} maxJitter : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true..
+    + {field} minLatency : urt_delay_t
+    + {field} maxLatency : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
+    + {field} expectedRate : urt_delay_t
+    __
+    + {method} urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : urt_status_t
+    + {method} urtHrtSubscriberSubscribe (subscriber : urt_hrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
+    + {method} urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t
   }
 } 
 
   class urt_publisher_t <<S,BFAFFF>> {
   + {field} topic : urt_topic_t*
-  .. URT_CFG_PROFILING == true ..
+  .. URT_CFG_PUBSUB_PROFILING == true ..
   + {field} publishAttempts : uint64_t
   + {field} publishFails : uint64_t
   __
@@ -549,7 +545,7 @@ title **µRtWare**\nOverview\n
   + {field} lock : urt_osMutex_t
   + {field} evtSource : urt_osEventSource_t
   + {field} numHrtSubscribers : unsigned int
-  + {field} hrtSubscribers : urt_subscriber_t*
+  + {field} hrtSubscribers : urt_hrtsubscriber_t*
   + {field} hrtReleased : urt_osCondvar_t
   + {field} mandatoryMessage : urt_message_t
   + {field} latestMessage : urt_message_t*
@@ -575,11 +571,11 @@ title **µRtWare**\nOverview\n
   + {field} id : urt_serviceid_t
   + {field} lock : urt_osMutex_t
   + {field} callback : urt_servicefunc_t*
-  .. URT_CFG_RPC_PROFLING == true ..
+  .. URT_CFG_RPC_PROFILING == true ..
   + {field} sumDurations : uint64_t
   + {field} numCalls : uint64_t
   + {field} numTimeouts : uint64_t
-  .. URT_CFG_RPC_PROFILING == true || URT_CFG_RPC_QOS_JITTERCHECKS == true ..
+  .. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true  ..
   + {field} minDuration : urt_delay_t
   + {field} maxDuration : urt_delay_t
   __
@@ -636,30 +632,27 @@ urt_node_t "1" o- - "1" urt_nodeLoopCallback_t
 urt_node_t <.. urt_nodeLoopCallback_t
 
 
-urt_srtdata_t "1" o- - "0..1" urt_srtusefulnessfunc_t
-
-urt_rtclassdata_t "1" *- - "0..1" urt_hrtdata_t
-urt_rtclassdata_t "1" *- - "0..1" urt_frtdata_t
-urt_rtclassdata_t "1" *- - "0..1" urt_srtdata_t
-urt_rtclassdata_t "1" *- - "0..1" urt_nrtdata_t
+urt_message_t "1" o- - "0..1" urt_message_t
 
-urt_rtdata_t "1" *- - "1" urt_rtclass_t
-urt_rtdata_t "1" *- - "1" urt_rtclassdata_t
+urt_nrtsubscriber_t - -|> urt_basesubscriber_t
+urt_nrtsubscriber_t ..> urt_message_t
 
-urt_hrtdata_t "1" o-up- "0..1" urt_subscriber_t
+urt_srtsubscriber_t - -|> urt_basesubscriber_t
+urt_srtsubscriber_t "1" o- - "0..1" urt_srtusefulnessfunc_t
+urt_srtsubscriber_t ..> urt_message_t
 
-urt_message_t "1" o- - "0..1" urt_message_t
+urt_frtsubscriber_t - -|> urt_basesubscriber_t
+urt_frtsubscriber_t ..> urt_message_t
 
-urt_subscriber_t "1" *- - "1" urt_rtdata_t
-urt_subscriber_t "1" o- "0..1" urt_topic_t
-urt_subscriber_t "1" o- - "0..1" urt_message_t
+urt_hrtsubscriber_t - -|> urt_basesubscriber_t
+urt_hrtsubscriber_t "1" o- - "0..1" urt_hrtsubscriber_t
+urt_hrtsubscriber_t ..> urt_message_t
 
 urt_publisher_t "1" o- "1" urt_topic_t
 urt_publisher_t ..> urt_message_t
 
 urt_topic_t "1" o- - "0..1" urt_topic_t
-urt_topic_t "1" o- "0..1" urt_subscriber_t
-urt_topic_t "1" o- - "1..1" urt_message_t
+urt_topic_t "1" o- "0..1" urt_hrtsubscriber_t
 urt_topic_t "1" *- - "1" urt_message_t
 
 
@@ -678,7 +671,7 @@ urt_core_t ..> urt_status_t
 urt_core_t ..> urt_nodestage_t
 urt_core_t ..> urt_topicid_t
 urt_core_t ..> urt_serviceid_t
-urt_node_t "1" o- - "0..1" urt_osThread_t
+urt_node_t "1" o- - "1" urt_osThread_t
 urt_node_t "1" *- - "1" urt_nodestage_t
 urt_node_t "1" *- - "1" urt_osEventListener_t
 urt_node_t "0..*" o- - "1" urt_osThreadFunction_t
@@ -699,17 +692,23 @@ urt_message_t "1" *- - "1" urt_osMutex_t
 urt_message_t "1" *- - "1" urt_osCondvar_t
 urt_message_t ..> urt_config
 urt_message_t ..> urt_status_t
-urt_subscriber_t "1" *- - "1" urt_osEventListener_t
-urt_subscriber_t "1" *- - "1" urt_osTime_t
-urt_subscriber_t ..> urt_config
-urt_subscriber_t "1" *- - "0..2" urt_delay_t
-urt_subscriber_t ..> urt_status_t
-urt_hrtdata_t ..> urt_config
-urt_hrtdata_t "1" *- - "0..1" urt_osTimer_t
-urt_hrtdata_t "1" *- - "0..5" urt_delay_t
-urt_frtdata_t ..> urt_config
-urt_frtdata_t "1" *- - "0..1" urt_osTimer_t
-urt_frtdata_t "1" *- - "0..5" urt_delay_t
+urt_basesubscriber_t "1" *- - "1" urt_osEventListener_t
+urt_basesubscriber_t "1" *- - "1" urt_osTime_t
+urt_basesubscriber_t ..> urt_config
+urt_basesubscriber_t ..> urt_status_t
+urt_nrtsubscriber_t "1" *- - "0..2" urt_delay_t
+urt_nrtsubscriber_t ..> urt_config
+urt_nrtsubscriber_t ..> urt_status_t
+urt_srtsubscriber_t "1" *- - "0..2" urt_delay_t
+urt_srtsubscriber_t ..> urt_config
+urt_srtsubscriber_t ..> urt_status_t
+urt_frtsubscriber_t "1" *- - "0..4" urt_delay_t
+urt_frtsubscriber_t ..> urt_config
+urt_frtsubscriber_t ..> urt_status_t
+urt_hrtsubscriber_t "1" *- - "0..5" urt_delay_t
+urt_hrtsubscriber_t "1" *- - "1" urt_osTimer_t
+urt_hrtsubscriber_t ..> urt_config
+urt_hrtsubscriber_t ..> urt_status_t
 urt_srtusefulnessfunc_t ..> urt_delay_t
 urt_service_t "1" *- - "1" urt_serviceid_t
 urt_service_t "1" *- - "1" urt_osMutex_t
diff --git a/doc/classdiagrams/overview.uml b/doc/classdiagrams/overview.uml
index 7b83fb2..db74f01 100644
--- a/doc/classdiagrams/overview.uml
+++ b/doc/classdiagrams/overview.uml
@@ -77,7 +77,7 @@ urt_core_t ..> urt_status_t
 urt_core_t ..> urt_nodestage_t
 urt_core_t ..> urt_topicid_t
 urt_core_t ..> urt_serviceid_t
-urt_node_t "1" o-- "0..1" urt_osThread_t
+urt_node_t "1" o-- "1" urt_osThread_t
 urt_node_t "1" *-- "1" urt_nodestage_t
 urt_node_t "1" *-- "1" urt_osEventListener_t
 urt_node_t "0..*" o-- "1" urt_osThreadFunction_t
@@ -98,17 +98,23 @@ urt_message_t "1" *-- "1" urt_osMutex_t
 urt_message_t "1" *-- "1" urt_osCondvar_t
 urt_message_t ..> urt_config
 urt_message_t ..> urt_status_t
-urt_subscriber_t "1" *-- "1" urt_osEventListener_t
-urt_subscriber_t "1" *-- "1" urt_osTime_t
-urt_subscriber_t ..> urt_config
-urt_subscriber_t "1" *-- "0..2" urt_delay_t
-urt_subscriber_t ..> urt_status_t
-urt_hrtdata_t ..> urt_config
-urt_hrtdata_t "1" *-- "0..1" urt_osTimer_t
-urt_hrtdata_t "1" *-- "0..5" urt_delay_t
-urt_frtdata_t ..> urt_config
-urt_frtdata_t "1" *-- "0..1" urt_osTimer_t
-urt_frtdata_t "1" *-- "0..5" urt_delay_t
+urt_basesubscriber_t "1" *-- "1" urt_osEventListener_t
+urt_basesubscriber_t "1" *-- "1" urt_osTime_t
+urt_basesubscriber_t ..> urt_config
+urt_basesubscriber_t ..> urt_status_t
+urt_nrtsubscriber_t "1" *-- "0..2" urt_delay_t
+urt_nrtsubscriber_t ..> urt_config
+urt_nrtsubscriber_t ..> urt_status_t
+urt_srtsubscriber_t "1" *-- "0..2" urt_delay_t
+urt_srtsubscriber_t ..> urt_config
+urt_srtsubscriber_t ..> urt_status_t
+urt_frtsubscriber_t "1" *-- "0..4" urt_delay_t
+urt_frtsubscriber_t ..> urt_config
+urt_frtsubscriber_t ..> urt_status_t
+urt_hrtsubscriber_t "1" *-- "0..5" urt_delay_t
+urt_hrtsubscriber_t "1" *-- "1" urt_osTimer_t
+urt_hrtsubscriber_t ..> urt_config
+urt_hrtsubscriber_t ..> urt_status_t
 urt_srtusefulnessfunc_t ..> urt_delay_t
 urt_service_t "1" *-- "1" urt_serviceid_t
 urt_service_t "1" *-- "1" urt_osMutex_t
diff --git a/doc/classdiagrams/pubsub.svg b/doc/classdiagrams/pubsub.svg
index 5bff6a3..6238811 100644
--- a/doc/classdiagrams/pubsub.svg
+++ b/doc/classdiagrams/pubsub.svg
@@ -1,37 +1,30 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1193px" preserveAspectRatio="none" style="width:2868px;height:1193px;" version="1.1" viewBox="0 0 2868 1193" width="2868px" zoomAndPan="magnify"><defs><filter height="300%" id="f1mo1dxjcuibt3" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="1392.5" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="225" x="1324.5" y="37.6611">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
-cluster subscriber--><rect fill="#FFFFFF" filter="url(#f1mo1dxjcuibt3)" height="1085" style="stroke: #000000; stroke-width: 1.5;" width="1611" x="14" y="97.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="777" y="112.9014">subscriber</text><!--MD5=[94ad99421f5a0f525bc1c13a3777c25e]
-cluster real-time constraint data--><rect fill="#FFFFFF" filter="url(#f1mo1dxjcuibt3)" height="671" style="stroke: #000000; stroke-width: 1.5;" width="1595" x="22" y="503.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="194" x="722.5" y="518.9014">real-time constraint data</text><!--MD5=[57c3116dbac3d3a2ea35fece1cdc00f4]
-cluster SRT data--><rect fill="#FFFFFF" filter="url(#f1mo1dxjcuibt3)" height="283" style="stroke: #000000; stroke-width: 1.5;" width="390" x="699" y="883.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="859.5" y="898.9014">SRT data</text><!--MD5=[ab7cf431813e3be5d474948fd959cdbf]
-class urt_subscriber_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="312.0938" id="urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1068" x="539" y="124.9063"/><ellipse cx="1018.25" cy="140.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1017.7344,141.4688 Q1015.875,140.7656 1015.2188,140 Q1014.5781,139.2188 1014.5781,137.9063 Q1014.5781,136.2188 1015.6563,135.25 Q1016.7344,134.2813 1018.6094,134.2813 Q1019.4688,134.2813 1020.3125,134.4844 Q1021.1719,134.6719 1022.0156,135.0625 L1022.0156,137.4531 Q1021.2344,136.8906 1020.4063,136.6094 Q1019.5938,136.3125 1018.7969,136.3125 Q1017.9219,136.3125 1017.4375,136.6719 Q1016.9688,137.0313 1016.9688,137.6875 Q1016.9688,138.2031 1017.3125,138.5469 Q1017.6563,138.875 1018.75,139.2813 L1019.8125,139.6875 Q1021.2969,140.2344 1022,141.1406 Q1022.7188,142.0469 1022.7188,143.4219 Q1022.7188,145.2969 1021.6094,146.2188 Q1020.5,147.1406 1018.25,147.1406 Q1017.3281,147.1406 1016.4063,146.9219 Q1015.4844,146.7031 1014.625,146.2813 L1014.625,143.75 Q1015.5938,144.4375 1016.5156,144.7813 Q1017.4375,145.125 1018.3281,145.125 Q1019.2344,145.125 1019.7344,144.7188 Q1020.2344,144.2969 1020.2344,143.5625 Q1020.2344,143 1019.8906,142.5938 Q1019.5625,142.1719 1018.9375,141.9219 L1017.7344,141.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="1038.75" y="145.0605">urt_subscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="540" x2="1606" y1="156.9063" y2="156.9063"/><ellipse cx="550" cy="167.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="559" y="171.1167">topic : urt_topic_t*</text><ellipse cx="550" cy="180.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="559" y="183.9214">evtListener : urt_osEventListener_t</text><ellipse cx="550" cy="193.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="559" y="196.7261">rtdata : urt_rtdata_t</text><ellipse cx="550" cy="206.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="559" y="209.5308">lastMessage : urt_message_t*</text><ellipse cx="550" cy="219.125" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="559" y="222.3354">lastMessageTime : urt_osTime_t</text><ellipse cx="550" cy="248.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="559" y="251.9448">sumLatencies : uint64_t</text><ellipse cx="550" cy="261.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="559" y="264.7495">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="540" x2="964.5" y1="235.332" y2="235.332"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="964.5" y="238.6401">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1181.5" x2="1606" y1="235.332" y2="235.332"/><ellipse cx="550" cy="291.1484" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="559" y="294.3589">minLatency : urt_delay_t</text><ellipse cx="550" cy="303.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="559" y="307.1636">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="540" x2="964.5" y1="277.7461" y2="277.7461"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="964.5" y="281.0542">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1181.5" x2="1606" y1="277.7461" y2="277.7461"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="540" x2="1606" y1="313.7578" y2="313.7578"/><ellipse cx="550" cy="324.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="359" x="559" y="327.9683">urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="550" cy="337.5625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1042" x="559" y="340.7729">urtSubscriberSubscribeHrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="550" cy="350.3672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1040" x="559" y="353.5776">urtSubscriberSubscribeFrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="550" cy="363.1719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1042" x="559" y="366.3823">urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t</text><ellipse cx="550" cy="375.9766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="699" x="559" y="379.187">urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="550" cy="388.7813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="413" x="559" y="391.9917">urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="550" cy="401.5859" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="752" x="559" y="404.7964">urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="550" cy="414.3906" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="762" x="559" y="417.6011">urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="550" cy="427.1953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="537" x="559" y="430.4058">urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float</text><!--MD5=[82a1b6b26b12edcbd86fa16935c3353e]
-class urt_rtdata_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="73.6094" id="urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="778.5" y="530.9063"/><ellipse cx="852.75" cy="546.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M852.2344,547.4688 Q850.375,546.7656 849.7188,546 Q849.0781,545.2188 849.0781,543.9063 Q849.0781,542.2188 850.1563,541.25 Q851.2344,540.2813 853.1094,540.2813 Q853.9688,540.2813 854.8125,540.4844 Q855.6719,540.6719 856.5156,541.0625 L856.5156,543.4531 Q855.7344,542.8906 854.9063,542.6094 Q854.0938,542.3125 853.2969,542.3125 Q852.4219,542.3125 851.9375,542.6719 Q851.4688,543.0313 851.4688,543.6875 Q851.4688,544.2031 851.8125,544.5469 Q852.1563,544.875 853.25,545.2813 L854.3125,545.6875 Q855.7969,546.2344 856.5,547.1406 Q857.2188,548.0469 857.2188,549.4219 Q857.2188,551.2969 856.1094,552.2188 Q855,553.1406 852.75,553.1406 Q851.8281,553.1406 850.9063,552.9219 Q849.9844,552.7031 849.125,552.2813 L849.125,549.75 Q850.0938,550.4375 851.0156,550.7813 Q851.9375,551.125 852.8281,551.125 Q853.7344,551.125 854.2344,550.7188 Q854.7344,550.2969 854.7344,549.5625 Q854.7344,549 854.3906,548.5938 Q854.0625,548.1719 853.4375,547.9219 L852.2344,547.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="873.25" y="551.0605">urt_rtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="779.5" x2="1008.5" y1="562.9063" y2="562.9063"/><ellipse cx="789.5" cy="573.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="798.5" y="577.1167">class : urt_rtconstraintclass_t</text><ellipse cx="789.5" cy="586.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="205" x="798.5" y="589.9214">params : urt_rtconstraintsparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="779.5" x2="1008.5" y1="596.5156" y2="596.5156"/><!--MD5=[4bd59d3bc50b317c5523bafe6b73a042]
-class urt_rtclass_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="99.2188" id="urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="632.5" y="698.9063"/><ellipse cx="667.3" cy="714.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M671.4094,720.9063 L663.6906,720.9063 L663.6906,708.5156 L671.4094,708.5156 L671.4094,710.6719 L666.1438,710.6719 L666.1438,713.3438 L670.9094,713.3438 L670.9094,715.5 L666.1438,715.5 L666.1438,718.75 L671.4094,718.75 L671.4094,720.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="685.7" y="719.0605">urt_rtclass_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="633.5" x2="784.5" y1="730.9063" y2="730.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="638.5" y="745.1167">URT_RTCLASS_HARD = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="638.5" y="757.9214">URT_RTCLASS_FIRM = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="638.5" y="770.7261">URT_RTCLASS_SOFT = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="638.5" y="783.5308">URT_RTCLASS_NONE = 3</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="633.5" x2="784.5" y1="790.125" y2="790.125"/><!--MD5=[7b207cc31d63d27c526f257c1fda2512]
-class urt_rtclassdata_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="99.2188" id="urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="821" y="698.9063"/><ellipse cx="839.6" cy="714.9063" fill="#7FCF7F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M835.475,716.8281 L835.475,709.0156 L837.9281,709.0156 L837.9281,717.4531 Q837.9281,718.375 838.3969,718.9063 Q838.8813,719.4375 839.7094,719.4375 Q840.5531,719.4375 841.0219,718.9063 Q841.4906,718.375 841.4906,717.4531 L841.4906,709.0156 L843.9438,709.0156 L843.9438,716.8281 Q843.9438,719.3594 842.9438,720.5 Q841.9438,721.6406 839.7094,721.6406 Q837.4906,721.6406 836.475,720.5 Q835.475,719.3594 835.475,716.8281 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="854.4" y="719.0605">urt_rtclassdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="822" x2="966" y1="730.9063" y2="730.9063"/><ellipse cx="832" cy="741.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="841" y="745.1167">hrt : urt_hrtparams_t</text><ellipse cx="832" cy="754.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="841" y="757.9214">frt : urt_frtparams_t</text><ellipse cx="832" cy="767.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="841" y="770.7261">srt : urt_srtparans_t</text><ellipse cx="832" cy="780.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="841" y="783.5308">nrt : urt_nrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="822" x2="966" y1="790.125" y2="790.125"/><!--MD5=[c57ade65ef97beb73587233399d5250a]
-class urt_hrtdata_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="180.0469" id="urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="512" x="1097" y="857.9063"/><ellipse cx="1307.75" cy="873.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1307.2344,874.4688 Q1305.375,873.7656 1304.7188,873 Q1304.0781,872.2188 1304.0781,870.9063 Q1304.0781,869.2188 1305.1563,868.25 Q1306.2344,867.2813 1308.1094,867.2813 Q1308.9688,867.2813 1309.8125,867.4844 Q1310.6719,867.6719 1311.5156,868.0625 L1311.5156,870.4531 Q1310.7344,869.8906 1309.9063,869.6094 Q1309.0938,869.3125 1308.2969,869.3125 Q1307.4219,869.3125 1306.9375,869.6719 Q1306.4688,870.0313 1306.4688,870.6875 Q1306.4688,871.2031 1306.8125,871.5469 Q1307.1563,871.875 1308.25,872.2813 L1309.3125,872.6875 Q1310.7969,873.2344 1311.5,874.1406 Q1312.2188,875.0469 1312.2188,876.4219 Q1312.2188,878.2969 1311.1094,879.2188 Q1310,880.1406 1307.75,880.1406 Q1306.8281,880.1406 1305.9063,879.9219 Q1304.9844,879.7031 1304.125,879.2813 L1304.125,876.75 Q1305.0938,877.4375 1306.0156,877.7813 Q1306.9375,878.125 1307.8281,878.125 Q1308.7344,878.125 1309.2344,877.7188 Q1309.7344,877.2969 1309.7344,876.5625 Q1309.7344,876 1309.3906,875.5938 Q1309.0625,875.1719 1308.4375,874.9219 L1307.2344,874.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="1328.25" y="878.0605">urt_hrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1098" x2="1608" y1="889.9063" y2="889.9063"/><ellipse cx="1108" cy="900.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1117" y="904.1167">next : urt_subscriber_t*</text><ellipse cx="1108" cy="930.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="1117" y="933.7261">qosDeadlineTimer : urt_osTimer_t</text><ellipse cx="1108" cy="943.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="1117" y="946.5308">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1098" x2="1207.5" y1="917.1133" y2="917.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="1207.5" y="920.4214">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1498.5" x2="1608" y1="917.1133" y2="917.1133"/><ellipse cx="1108" cy="972.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="1117" y="976.1401">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1098" x2="1220.5" y1="959.5273" y2="959.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="1220.5" y="962.8354">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1485.5" x2="1608" y1="959.5273" y2="959.5273"/><ellipse cx="1108" cy="1002.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="1117" y="1005.7495">maxJitter : urt_delay_t</text><ellipse cx="1108" cy="1015.3438" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="1117" y="1018.5542">minLatency : urt_delay_t</text><ellipse cx="1108" cy="1028.1484" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1117" y="1031.3589">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1098" x2="1101" y1="989.1367" y2="989.1367"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="1101" y="992.4448">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1605" x2="1608" y1="989.1367" y2="989.1367"/><!--MD5=[72774668522d2286013bfbc0db723956]
-class urt_frtdata_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="154.4375" id="urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="512" x="30" y="870.9063"/><ellipse cx="242.75" cy="886.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M242.2344,887.4688 Q240.375,886.7656 239.7188,886 Q239.0781,885.2188 239.0781,883.9063 Q239.0781,882.2188 240.1563,881.25 Q241.2344,880.2813 243.1094,880.2813 Q243.9688,880.2813 244.8125,880.4844 Q245.6719,880.6719 246.5156,881.0625 L246.5156,883.4531 Q245.7344,882.8906 244.9063,882.6094 Q244.0938,882.3125 243.2969,882.3125 Q242.4219,882.3125 241.9375,882.6719 Q241.4688,883.0313 241.4688,883.6875 Q241.4688,884.2031 241.8125,884.5469 Q242.1563,884.875 243.25,885.2813 L244.3125,885.6875 Q245.7969,886.2344 246.5,887.1406 Q247.2188,888.0469 247.2188,889.4219 Q247.2188,891.2969 246.1094,892.2188 Q245,893.1406 242.75,893.1406 Q241.8281,893.1406 240.9063,892.9219 Q239.9844,892.7031 239.125,892.2813 L239.125,889.75 Q240.0938,890.4375 241.0156,890.7813 Q241.9375,891.125 242.8281,891.125 Q243.7344,891.125 244.2344,890.7188 Q244.7344,890.2969 244.7344,889.5625 Q244.7344,889 244.3906,888.5938 Q244.0625,888.1719 243.4375,887.9219 L242.2344,887.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="78" x="263.25" y="891.0605">urt_frtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="31" x2="541" y1="902.9063" y2="902.9063"/><ellipse cx="41" cy="930.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="50" y="933.9214">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="31" x2="140.5" y1="917.3086" y2="917.3086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="140.5" y="920.6167">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="431.5" x2="541" y1="917.3086" y2="917.3086"/><ellipse cx="41" cy="960.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="50" y="963.5308">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="31" x2="153.5" y1="946.918" y2="946.918"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="153.5" y="950.2261">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="418.5" x2="541" y1="946.918" y2="946.918"/><ellipse cx="41" cy="989.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="50" y="993.1401">maxJitter : urt_delay_t</text><ellipse cx="41" cy="1002.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="50" y="1005.9448">minLatency : urt_delay_t</text><ellipse cx="41" cy="1015.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="50" y="1018.7495">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="31" x2="34" y1="976.5273" y2="976.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="34" y="979.8354">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="538" x2="541" y1="976.5273" y2="976.5273"/><!--MD5=[ca63c4d42025d7ce195746a6a8d32f3e]
-class urt_nrtdata_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="48" id="urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="577" y="923.9063"/><ellipse cx="592" cy="939.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M591.4844,940.4688 Q589.625,939.7656 588.9688,939 Q588.3281,938.2188 588.3281,936.9063 Q588.3281,935.2188 589.4063,934.25 Q590.4844,933.2813 592.3594,933.2813 Q593.2188,933.2813 594.0625,933.4844 Q594.9219,933.6719 595.7656,934.0625 L595.7656,936.4531 Q594.9844,935.8906 594.1563,935.6094 Q593.3438,935.3125 592.5469,935.3125 Q591.6719,935.3125 591.1875,935.6719 Q590.7188,936.0313 590.7188,936.6875 Q590.7188,937.2031 591.0625,937.5469 Q591.4063,937.875 592.5,938.2813 L593.5625,938.6875 Q595.0469,939.2344 595.75,940.1406 Q596.4688,941.0469 596.4688,942.4219 Q596.4688,944.2969 595.3594,945.2188 Q594.25,946.1406 592,946.1406 Q591.0781,946.1406 590.1563,945.9219 Q589.2344,945.7031 588.375,945.2813 L588.375,942.75 Q589.3438,943.4375 590.2656,943.7813 Q591.1875,944.125 592.0781,944.125 Q592.9844,944.125 593.4844,943.7188 Q593.9844,943.2969 593.9844,942.5625 Q593.9844,942 593.6406,941.5938 Q593.3125,941.1719 592.6875,940.9219 L591.4844,940.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="606" y="944.0605">urt_nrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="690" y1="955.9063" y2="955.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="690" y1="963.9063" y2="963.9063"/><!--MD5=[fc7708c915a0148c667d62e1370980fd]
-class urt_srtusefulnessfunc_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="60.8047" id="urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="707" y="1097.9063"/><ellipse cx="816.25" cy="1113.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M820.4844,1109.6719 L815.2031,1109.6719 L815.2031,1112.3438 L820,1112.3438 L820,1114.5 L815.2031,1114.5 L815.2031,1119.9063 L812.7656,1119.9063 L812.7656,1107.5156 L820.4844,1107.5156 L820.4844,1109.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="836.75" y="1118.0605">urt_srtusefulnessfunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="708" x2="1080" y1="1129.9063" y2="1129.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="708" x2="1080" y1="1137.9063" y2="1137.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="362" x="713" y="1152.1167">urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float</text><!--MD5=[4a2daf41193a31389d6311337c2a120f]
-class urt_srtdata_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="73.6094" id="urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="765" y="910.9063"/><ellipse cx="849.25" cy="926.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M848.7344,927.4688 Q846.875,926.7656 846.2188,926 Q845.5781,925.2188 845.5781,923.9063 Q845.5781,922.2188 846.6563,921.25 Q847.7344,920.2813 849.6094,920.2813 Q850.4688,920.2813 851.3125,920.4844 Q852.1719,920.6719 853.0156,921.0625 L853.0156,923.4531 Q852.2344,922.8906 851.4063,922.6094 Q850.5938,922.3125 849.7969,922.3125 Q848.9219,922.3125 848.4375,922.6719 Q847.9688,923.0313 847.9688,923.6875 Q847.9688,924.2031 848.3125,924.5469 Q848.6563,924.875 849.75,925.2813 L850.8125,925.6875 Q852.2969,926.2344 853,927.1406 Q853.7188,928.0469 853.7188,929.4219 Q853.7188,931.2969 852.6094,932.2188 Q851.5,933.1406 849.25,933.1406 Q848.3281,933.1406 847.4063,932.9219 Q846.4844,932.7031 845.625,932.2813 L845.625,929.75 Q846.5938,930.4375 847.5156,930.7813 Q848.4375,931.125 849.3281,931.125 Q850.2344,931.125 850.7344,930.7188 Q851.2344,930.2969 851.2344,929.5625 Q851.2344,929 850.8906,928.5938 Q850.5625,928.1719 849.9375,927.9219 L848.7344,927.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="869.75" y="931.0605">urt_srtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="1022" y1="942.9063" y2="942.9063"/><ellipse cx="776" cy="953.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="232" x="785" y="957.1167">usefullnesscb : urt_srtusefulnessfunc_t*</text><ellipse cx="776" cy="966.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="785" y="969.9214">cbparams : void*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="1022" y1="976.5156" y2="976.5156"/><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
-class urt_message_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="141.6328" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="2099.5" y="496.9063"/><ellipse cx="2274.75" cy="512.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2274.2344,513.4688 Q2272.375,512.7656 2271.7188,512 Q2271.0781,511.2188 2271.0781,509.9063 Q2271.0781,508.2188 2272.1563,507.25 Q2273.2344,506.2813 2275.1094,506.2813 Q2275.9688,506.2813 2276.8125,506.4844 Q2277.6719,506.6719 2278.5156,507.0625 L2278.5156,509.4531 Q2277.7344,508.8906 2276.9063,508.6094 Q2276.0938,508.3125 2275.2969,508.3125 Q2274.4219,508.3125 2273.9375,508.6719 Q2273.4688,509.0313 2273.4688,509.6875 Q2273.4688,510.2031 2273.8125,510.5469 Q2274.1563,510.875 2275.25,511.2813 L2276.3125,511.6875 Q2277.7969,512.2344 2278.5,513.1406 Q2279.2188,514.0469 2279.2188,515.4219 Q2279.2188,517.2969 2278.1094,518.2188 Q2277,519.1406 2274.75,519.1406 Q2273.8281,519.1406 2272.9063,518.9219 Q2271.9844,518.7031 2271.125,518.2813 L2271.125,515.75 Q2272.0938,516.4375 2273.0156,516.7813 Q2273.9375,517.125 2274.8281,517.125 Q2275.7344,517.125 2276.2344,516.7188 Q2276.7344,516.2969 2276.7344,515.5625 Q2276.7344,515 2276.3906,514.5938 Q2276.0625,514.1719 2275.4375,513.9219 L2274.2344,513.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="2295.25" y="517.0605">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2100.5" x2="2549.5" y1="528.9063" y2="528.9063"/><ellipse cx="2110.5" cy="539.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="2119.5" y="543.1167">next : urt_message_t*</text><ellipse cx="2110.5" cy="552.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="2119.5" y="555.9214">payload : void*</text><ellipse cx="2110.5" cy="565.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="2119.5" y="568.7261">originTime : urt_osTime_t</text><ellipse cx="2110.5" cy="578.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="2119.5" y="581.5308">numHrtConsumersLeft : unsigned int</text><ellipse cx="2110.5" cy="607.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="2119.5" y="611.1401">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2100.5" x2="2216.5" y1="594.5273" y2="594.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2216.5" y="597.8354">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2433.5" x2="2549.5" y1="594.5273" y2="594.5273"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2100.5" x2="2549.5" y1="617.7344" y2="617.7344"/><ellipse cx="2110.5" cy="628.7344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="425" x="2119.5" y="631.9448">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
-class urt_publisher_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="1642.5" y="216.4063"/><ellipse cx="1971.25" cy="232.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1970.7344,232.9688 Q1968.875,232.2656 1968.2188,231.5 Q1967.5781,230.7188 1967.5781,229.4063 Q1967.5781,227.7188 1968.6563,226.75 Q1969.7344,225.7813 1971.6094,225.7813 Q1972.4688,225.7813 1973.3125,225.9844 Q1974.1719,226.1719 1975.0156,226.5625 L1975.0156,228.9531 Q1974.2344,228.3906 1973.4063,228.1094 Q1972.5938,227.8125 1971.7969,227.8125 Q1970.9219,227.8125 1970.4375,228.1719 Q1969.9688,228.5313 1969.9688,229.1875 Q1969.9688,229.7031 1970.3125,230.0469 Q1970.6563,230.375 1971.75,230.7813 L1972.8125,231.1875 Q1974.2969,231.7344 1975,232.6406 Q1975.7188,233.5469 1975.7188,234.9219 Q1975.7188,236.7969 1974.6094,237.7188 Q1973.5,238.6406 1971.25,238.6406 Q1970.3281,238.6406 1969.4063,238.4219 Q1968.4844,238.2031 1967.625,237.7813 L1967.625,235.25 Q1968.5938,235.9375 1969.5156,236.2813 Q1970.4375,236.625 1971.3281,236.625 Q1972.2344,236.625 1972.7344,236.2188 Q1973.2344,235.7969 1973.2344,235.0625 Q1973.2344,234.5 1972.8906,234.0938 Q1972.5625,233.6719 1971.9375,233.4219 L1970.7344,232.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="1991.75" y="236.5605">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643.5" x2="2400.5" y1="248.4063" y2="248.4063"/><ellipse cx="1653.5" cy="259.4063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="1662.5" y="262.6167">topic : urt_topic_t*</text><ellipse cx="1653.5" cy="289.0156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="1662.5" y="292.2261">publishAttempts : uint64_t</text><ellipse cx="1653.5" cy="301.8203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="1662.5" y="305.0308">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1643.5" x2="1940" y1="275.6133" y2="275.6133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="164" x="1940" y="278.9214">URT_CFG_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2104" x2="2400.5" y1="275.6133" y2="275.6133"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643.5" x2="2400.5" y1="311.625" y2="311.625"/><ellipse cx="1653.5" cy="322.625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="617" x="1662.5" y="325.8354">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="1653.5" cy="335.4297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="733" x="1662.5" y="338.6401">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
-class urt_topic_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="248.0703" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="2437" y="156.9063"/><ellipse cx="2591.75" cy="172.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2591.2344,173.4688 Q2589.375,172.7656 2588.7188,172 Q2588.0781,171.2188 2588.0781,169.9063 Q2588.0781,168.2188 2589.1563,167.25 Q2590.2344,166.2813 2592.1094,166.2813 Q2592.9688,166.2813 2593.8125,166.4844 Q2594.6719,166.6719 2595.5156,167.0625 L2595.5156,169.4531 Q2594.7344,168.8906 2593.9063,168.6094 Q2593.0938,168.3125 2592.2969,168.3125 Q2591.4219,168.3125 2590.9375,168.6719 Q2590.4688,169.0313 2590.4688,169.6875 Q2590.4688,170.2031 2590.8125,170.5469 Q2591.1563,170.875 2592.25,171.2813 L2593.3125,171.6875 Q2594.7969,172.2344 2595.5,173.1406 Q2596.2188,174.0469 2596.2188,175.4219 Q2596.2188,177.2969 2595.1094,178.2188 Q2594,179.1406 2591.75,179.1406 Q2590.8281,179.1406 2589.9063,178.9219 Q2588.9844,178.7031 2588.125,178.2813 L2588.125,175.75 Q2589.0938,176.4375 2590.0156,176.7813 Q2590.9375,177.125 2591.8281,177.125 Q2592.7344,177.125 2593.2344,176.7188 Q2593.7344,176.2969 2593.7344,175.5625 Q2593.7344,175 2593.3906,174.5938 Q2593.0625,174.1719 2592.4375,173.9219 L2591.2344,173.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="2612.25" y="177.0605">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2438" x2="2820" y1="188.9063" y2="188.9063"/><ellipse cx="2448" cy="199.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="2457" y="203.1167">next : urt_topic_t*</text><ellipse cx="2448" cy="212.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="2457" y="215.9214">id : urt_topicid_t</text><ellipse cx="2448" cy="225.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="2457" y="228.7261">lock : urt_osMutex_t</text><ellipse cx="2448" cy="238.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="2457" y="241.5308">evtSource : urt_osEventSource_t</text><ellipse cx="2448" cy="251.125" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="2457" y="254.3354">numHrtSubscribers : unsigned int</text><ellipse cx="2448" cy="263.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="2457" y="267.1401">hrtSubscribers : urt_subscriber_t*</text><ellipse cx="2448" cy="276.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="2457" y="279.9448">hrtReleased : urt_osCondvar_t</text><ellipse cx="2448" cy="289.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="2457" y="292.7495">mandatoryMessage : urt_message_t</text><ellipse cx="2448" cy="302.3438" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="2457" y="305.5542">latestMessage : urt_message_t*</text><ellipse cx="2448" cy="331.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="2457" y="335.1636">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2438" x2="2496.5" y1="318.5508" y2="318.5508"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="2496.5" y="321.8589">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2761.5" x2="2820" y1="318.5508" y2="318.5508"/><ellipse cx="2448" cy="361.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="2457" y="364.7729">numDiscardedMessages : uint64_t</text><ellipse cx="2448" cy="374.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="2457" y="377.5776">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2438" x2="2520.5" y1="348.1602" y2="348.1602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2520.5" y="351.4683">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2737.5" x2="2820" y1="348.1602" y2="348.1602"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2438" x2="2820" y1="384.1719" y2="384.1719"/><ellipse cx="2448" cy="395.1719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="358" x="2457" y="398.3823">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--MD5=[0c465c1a61dfd99ff8b5568ca35c92d1]
-reverse link urt_srtdata_t to urt_srtusefulnessfunc_t--><path d="M894,998.4055 C894,1030.2978 894,1070.4665 894,1097.6495 " fill="none" id="urt_srtdata_t&lt;-urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="894,985.3059,890,991.3059,894,997.3059,898,991.3059,894,985.3059" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="885.3625" y="1004.5704">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="867.525" y="1086.8597">0..1</text><!--MD5=[3f22cd2af9b1d30da63b75b4db75ae6e]
-reverse link urt_rtclassdata_t to urt_hrtdata_t--><path d="M978.9046,801.8557 C1020.5186,822.7068 1062.0203,841.0824 1102.757,857.8507 " fill="none" id="urt_rtclassdata_t&lt;-urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="967.1648,795.9082,970.7094,802.188,977.8694,801.3313,974.3248,795.0515,967.1648,795.9082" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="975.1224" y="797.0958">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1065.2351" y="849.8895">0..1</text><!--MD5=[a94a8c9c209e194384613684e912df80]
-reverse link urt_rtclassdata_t to urt_frtdata_t--><path d="M808.804,795.574 C806.8622,796.3811 804.9259,797.1601 803,797.9063 C698.8684,838.2537 666.3325,827.0675 559,857.9063 C544.7306,862.0061 530.0908,866.3686 515.3595,870.8772 " fill="none" id="urt_rtclassdata_t&lt;-urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="820.7605,790.2989,813.6564,789.0612,809.7816,795.1427,816.8857,796.3804,820.7605,790.2989" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="804.7952" y="790.9081">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="512.0766" y="859.8728">0..1</text><!--MD5=[e6a6d7a2212fadf5661857a71d4f05c3]
-reverse link urt_rtclassdata_t to urt_srtdata_t--><path d="M894,811.1239 C894,843.8959 894,882.8833 894,910.8335 " fill="none" id="urt_rtclassdata_t&lt;-urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="894,797.9771,890,803.9771,894,809.9771,898,803.9771,894,797.9771" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="885.4375" y="818.0636">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="867.7875" y="899.7305">0..1</text><!--MD5=[206fe31eaf8244c7272230bb0ec7137c]
-reverse link urt_rtclassdata_t to urt_nrtdata_t--><path d="M809.2125,794.7769 C755.6531,824.1145 696.2749,856.7443 695,857.9063 C674.2134,876.8516 656.9593,904.2319 646.1673,923.8103 " fill="none" id="urt_rtclassdata_t&lt;-urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="820.8831,788.386,813.6993,787.7595,810.358,794.1497,817.5418,794.7762,820.8831,788.386" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="804.9304" y="805.3448">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="622.2102" y="912.7977">0..1</text><!--MD5=[1ba55993ff077c77667f6c7be6552d53]
-reverse link urt_rtdata_t to urt_rtclass_t--><path d="M846.2324,614.512 C819.7696,640.3311 786.8734,672.4271 759.9231,698.7219 " fill="none" id="urt_rtdata_t&lt;-urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="855.6679,605.306,848.58,606.633,847.0788,613.6861,854.1668,612.3591,855.6679,605.306" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="840.9212" y="624.5704">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="758.5217" y="687.7411">1</text><!--MD5=[8318054091d2ecf2336b9e490f482e2a]
-reverse link urt_rtdata_t to urt_rtclassdata_t--><path d="M894,618.6391 C894,643.6936 894,673.8111 894,698.7219 " fill="none" id="urt_rtdata_t&lt;-urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="894,605.306,890,611.306,894,617.306,898,611.306,894,605.306" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="885.3625" y="624.5704">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="885.4375" y="687.7411">1</text><!--MD5=[b6ee30948a218449c72edbee7363b5d7]
-link urt_subscriber_t to urt_hrtdata_t--><path d="M1138.6476,437.2882 C1191.4878,563.1612 1264.2353,736.456 1309.9286,845.3041 " fill="none" id="urt_subscriber_t-&gt;urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1315.0884,857.5954,1316.4541,850.5148,1310.4435,846.5308,1309.0778,853.6114,1315.0884,857.5954" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1117.2462" y="457.294">0..1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1303.7486" y="846.8714">1</text><!--MD5=[536025241394544a90bc53fb552f3a08]
-reverse link urt_message_t to urt_message_t--><path d="M2562.9841,544.7114 C2577.0653,550.2574 2585.5,557.9891 2585.5,567.9063 C2585.5,580.4747 2571.9528,589.5327 2550.534,595.0805 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2550.534,540.7321,2555.0314,546.3689,2561.9643,544.3855,2557.467,538.7486,2550.534,540.7321" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2558.7829" y="536.5618">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2558.3281" y="592.8011">0..1</text><!--MD5=[f7eb638a1c2d853c6fb0ae6f53692e50]
-reverse link urt_subscriber_t to urt_rtdata_t--><path d="M968.7428,448.0672 C949.3302,479.1925 930.8701,508.7904 917.1525,530.7847 " fill="none" id="urt_subscriber_t&lt;-urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="975.6428,437.0042,969.0736,439.9783,969.2924,447.1861,975.8616,444.2119,975.6428,437.0042" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="962.7333" y="456.9963">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="921.989" y="519.9499">1</text><!--MD5=[bf7bf5810813e0e9b75d3053dc098443]
-reverse link urt_subscriber_t to urt_topic_t--><path d="M1443.869,120.6256 C1508.9537,98.7617 1576.8737,79.7773 1642.5,67.9063 C1725.4866,52.8951 2323.0658,36.9195 2401.5,67.9063 C2449.4308,86.8421 2493.1887,121.174 2529.2434,156.8237 " fill="none" id="urt_subscriber_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1431.3218,124.8878,1438.2895,126.7454,1442.6841,121.0281,1435.7164,119.1705,1431.3218,124.8878" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1440.4843" y="114.0352">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2498.4332" y="145.8741">0..1</text><!--MD5=[d3b08a81de663c21a5ec062e6c430f2b]
-reverse link urt_topic_t to urt_subscriber_t--><path d="M2519.7796,147.6708 C2485.637,115.387 2445.3118,85.2149 2401.5,67.9063 C2323.0658,36.9195 1725.4866,52.8951 1642.5,67.9063 C1572.6442,80.5422 1500.1894,101.2384 1431.3218,124.8878 " fill="none" id="urt_topic_t&lt;-urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2529.2434,156.8237,2527.7113,149.7772,2520.6176,148.4812,2522.1497,155.5277,2529.2434,156.8237" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2523.4082" y="145.8741">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1449.2593" y="114.0352">0..1</text><!--MD5=[67fd999c5486ad1c37ee9b77e12afd1b]
-reverse link urt_subscriber_t to urt_message_t--><path d="M1619.9817,435.7266 C1621.6569,436.1215 1623.3297,436.5148 1625,436.9063 C1782.3912,473.794 1961.6101,507.1739 2099.3033,531.0066 " fill="none" id="urt_subscriber_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1607.0932,432.6645,1612.0061,437.943,1618.7682,435.4383,1613.8553,430.1597,1607.0932,432.6645" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1614.6601" y="431.7603">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2067.5039" y="526.6248">0..1</text><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
-reverse link urt_publisher_t to urt_topic_t--><path d="M2414.8249,280.9063 C2422.1324,280.9063 2429.44,280.9063 2436.7475,280.9063 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2401.6714,280.9063,2407.6714,284.9063,2413.6714,280.9063,2407.6714,276.9063,2401.6714,280.9063" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2409.4647" y="277.8239">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2421.0814" y="277.6814">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
-link urt_publisher_t to urt_message_t--><path d="M2090.3769,345.6726 C2136.6475,389.4997 2197.9009,447.5187 2246.2179,493.2843 " fill="none" id="urt_publisher_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2249.9674,496.8357,2246.1839,487.7426,2246.3373,493.3974,2240.6825,493.5507,2249.9674,496.8357" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
-reverse link urt_topic_t to urt_topic_t--><path d="M2833.0439,241.8166 C2847.3061,250.7388 2856,263.7687 2856,280.9063 C2856,302.4122 2842.309,317.4494 2821.1039,326.0182 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2821.1039,235.7944,2824.6597,242.0678,2831.8182,241.1984,2828.2624,234.925,2821.1039,235.7944" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2828.7642" y="230.8073">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2829.0767" y="324.5555">0..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
-reverse link urt_topic_t to urt_message_t--><path d="M2474.9438,414.3369 C2444.6349,442.8015 2414.4354,471.7971 2389.122,496.8142 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2484.7822,405.1195,2477.6688,406.3026,2476.0251,413.3239,2483.1385,412.1407,2484.7822,405.1195" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2467.7502" y="425.2145">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2370.4971" y="485.802">1..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
-reverse link urt_topic_t to urt_message_t--><path d="M2501.1363,414.3369 C2471.1531,442.8015 2439.8962,471.7971 2412.1421,496.8142 " fill="none" id="urt_topic_t&lt;-urt_message_t-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2510.8203,405.1195,2503.7165,406.3587,2502.1282,413.3927,2509.232,412.1535,2510.8203,405.1195" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2495.375" y="425.2145">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2412.7161" y="485.802">1</text><!--MD5=[f1e3b17acb082cd570a8de34c89668c3]
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="611px" preserveAspectRatio="none" style="width:5343px;height:611px;" version="1.1" viewBox="0 0 5343 611" width="5343px" zoomAndPan="magnify"><defs><filter height="300%" id="fijp6wls75jyj" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="2635" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="225" x="2567" y="37.6611">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
+cluster subscriber--><rect fill="#FFFFFF" filter="url(#fijp6wls75jyj)" height="502" style="stroke: #000000; stroke-width: 1.5;" width="4103" x="1229.5" y="98.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="3238.5" y="113.9014">subscriber</text><!--MD5=[50a042e24f957794dab9ba3ea8701c50]
+class urt_basesubscriber_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="133.6328" id="urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="3039" y="458.9063"/><ellipse cx="3081.45" cy="474.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3080.9344,475.4688 Q3079.075,474.7656 3078.4188,474 Q3077.7781,473.2188 3077.7781,471.9063 Q3077.7781,470.2188 3078.8563,469.25 Q3079.9344,468.2813 3081.8094,468.2813 Q3082.6688,468.2813 3083.5125,468.4844 Q3084.3719,468.6719 3085.2156,469.0625 L3085.2156,471.4531 Q3084.4344,470.8906 3083.6063,470.6094 Q3082.7938,470.3125 3081.9969,470.3125 Q3081.1219,470.3125 3080.6375,470.6719 Q3080.1688,471.0313 3080.1688,471.6875 Q3080.1688,472.2031 3080.5125,472.5469 Q3080.8563,472.875 3081.95,473.2813 L3083.0125,473.6875 Q3084.4969,474.2344 3085.2,475.1406 Q3085.9188,476.0469 3085.9188,477.4219 Q3085.9188,479.2969 3084.8094,480.2188 Q3083.7,481.1406 3081.45,481.1406 Q3080.5281,481.1406 3079.6063,480.9219 Q3078.6844,480.7031 3077.825,480.2813 L3077.825,477.75 Q3078.7938,478.4375 3079.7156,478.7813 Q3080.6375,479.125 3081.5281,479.125 Q3082.4344,479.125 3082.9344,478.7188 Q3083.4344,478.2969 3083.4344,477.5625 Q3083.4344,477 3083.0906,476.5938 Q3082.7625,476.1719 3082.1375,475.9219 L3080.9344,475.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="132" x="3101.55" y="479.0605">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3040" x2="3263" y1="490.9063" y2="490.9063"/><ellipse cx="3050" cy="501.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="3059" y="505.1167">topic : urt_topic_t*</text><ellipse cx="3050" cy="514.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="3059" y="517.9214">evtListener : urt_osEventListener_t</text><ellipse cx="3050" cy="527.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="3059" y="530.7261">lastMessage : urt_message_t*</text><ellipse cx="3050" cy="540.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="3059" y="543.5308">lastMessageTime : urt_osTime_t</text><ellipse cx="3050" cy="569.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="3059" y="573.1401">sumLatencies : uint64_t</text><ellipse cx="3050" cy="582.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="3059" y="585.9448">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3040" x2="3043" y1="556.5273" y2="556.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="3043" y="559.8354">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3260" x2="3263" y1="556.5273" y2="556.5273"/><!--MD5=[fc7708c915a0148c667d62e1370980fd]
+class urt_srtusefulnessfunc_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="60.8047" id="urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="4595.5" y="495.4063"/><ellipse cx="4704.75" cy="511.4063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4708.9844,507.1719 L4703.7031,507.1719 L4703.7031,509.8438 L4708.5,509.8438 L4708.5,512 L4703.7031,512 L4703.7031,517.4063 L4701.2656,517.4063 L4701.2656,505.0156 L4708.9844,505.0156 L4708.9844,507.1719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="4725.25" y="515.5605">urt_srtusefulnessfunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4596.5" x2="4968.5" y1="527.4063" y2="527.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4596.5" x2="4968.5" y1="535.4063" y2="535.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="362" x="4601.5" y="549.6167">urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float</text><!--MD5=[9ff46073dd541e50679ef35e851c67d6]
+class urt_nrtsubscriber_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="154.4375" id="urt_nrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="821" x="2247" y="183.4063"/><ellipse cx="2593.75" cy="199.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2593.2344,199.9688 Q2591.375,199.2656 2590.7188,198.5 Q2590.0781,197.7188 2590.0781,196.4063 Q2590.0781,194.7188 2591.1563,193.75 Q2592.2344,192.7813 2594.1094,192.7813 Q2594.9688,192.7813 2595.8125,192.9844 Q2596.6719,193.1719 2597.5156,193.5625 L2597.5156,195.9531 Q2596.7344,195.3906 2595.9063,195.1094 Q2595.0938,194.8125 2594.2969,194.8125 Q2593.4219,194.8125 2592.9375,195.1719 Q2592.4688,195.5313 2592.4688,196.1875 Q2592.4688,196.7031 2592.8125,197.0469 Q2593.1563,197.375 2594.25,197.7813 L2595.3125,198.1875 Q2596.7969,198.7344 2597.5,199.6406 Q2598.2188,200.5469 2598.2188,201.9219 Q2598.2188,203.7969 2597.1094,204.7188 Q2596,205.6406 2593.75,205.6406 Q2592.8281,205.6406 2591.9063,205.4219 Q2590.9844,205.2031 2590.125,204.7813 L2590.125,202.25 Q2591.0938,202.9375 2592.0156,203.2813 Q2592.9375,203.625 2593.8281,203.625 Q2594.7344,203.625 2595.2344,203.2188 Q2595.7344,202.7969 2595.7344,202.0625 Q2595.7344,201.5 2595.3906,201.0938 Q2595.0625,200.6719 2594.4375,200.4219 L2593.2344,199.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="2614.25" y="203.5605">urt_nrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2248" x2="3067" y1="215.4063" y2="215.4063"/><ellipse cx="2258" cy="243.2109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="2267" y="246.4214">minLatency : urt_delay_t</text><ellipse cx="2258" cy="256.0156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="2267" y="259.2261">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2248" x2="2549" y1="229.8086" y2="229.8086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2549" y="233.1167">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2766" x2="3067" y1="229.8086" y2="229.8086"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2248" x2="3067" y1="265.8203" y2="265.8203"/><ellipse cx="2258" cy="276.8203" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="392" x="2267" y="280.0308">urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : urt_status_t</text><ellipse cx="2258" cy="289.625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="715" x="2267" y="292.8354">urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="2258" cy="302.4297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="2267" y="305.6401">urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2258" cy="315.2344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="2267" y="318.4448">urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2258" cy="328.0391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="2267" y="331.2495">urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t</text><!--MD5=[5c7929572d87ccc448d875bea5da0fb1]
+class urt_srtsubscriber_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="192.8516" id="urt_srtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1084" x="4240.5" y="163.9063"/><ellipse cx="4719.25" cy="179.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4718.7344,180.4688 Q4716.875,179.7656 4716.2188,179 Q4715.5781,178.2188 4715.5781,176.9063 Q4715.5781,175.2188 4716.6563,174.25 Q4717.7344,173.2813 4719.6094,173.2813 Q4720.4688,173.2813 4721.3125,173.4844 Q4722.1719,173.6719 4723.0156,174.0625 L4723.0156,176.4531 Q4722.2344,175.8906 4721.4063,175.6094 Q4720.5938,175.3125 4719.7969,175.3125 Q4718.9219,175.3125 4718.4375,175.6719 Q4717.9688,176.0313 4717.9688,176.6875 Q4717.9688,177.2031 4718.3125,177.5469 Q4718.6563,177.875 4719.75,178.2813 L4720.8125,178.6875 Q4722.2969,179.2344 4723,180.1406 Q4723.7188,181.0469 4723.7188,182.4219 Q4723.7188,184.2969 4722.6094,185.2188 Q4721.5,186.1406 4719.25,186.1406 Q4718.3281,186.1406 4717.4063,185.9219 Q4716.4844,185.7031 4715.625,185.2813 L4715.625,182.75 Q4716.5938,183.4375 4717.5156,183.7813 Q4718.4375,184.125 4719.3281,184.125 Q4720.2344,184.125 4720.7344,183.7188 Q4721.2344,183.2969 4721.2344,182.5625 Q4721.2344,182 4720.8906,181.5938 Q4720.5625,181.1719 4719.9375,180.9219 L4718.7344,180.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="4739.75" y="184.0605">urt_srtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4241.5" x2="5323.5" y1="195.9063" y2="195.9063"/><ellipse cx="4251.5" cy="206.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="229" x="4260.5" y="210.1167">usefulnesscb : urt_srtusefulnessfunc_t*</text><ellipse cx="4251.5" cy="219.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="4260.5" y="222.9214">cbparams : void*</text><ellipse cx="4251.5" cy="249.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="4260.5" y="252.5308">minLatency : urt_delay_t</text><ellipse cx="4251.5" cy="262.125" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="4260.5" y="265.3354">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4241.5" x2="4674" y1="235.918" y2="235.918"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="4674" y="239.2261">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4891" x2="5323.5" y1="235.918" y2="235.918"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4241.5" x2="5323.5" y1="271.9297" y2="271.9297"/><ellipse cx="4251.5" cy="282.9297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="392" x="4260.5" y="286.1401">urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : urt_status_t</text><ellipse cx="4251.5" cy="295.7344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1058" x="4260.5" y="298.9448">urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t</text><ellipse cx="4251.5" cy="308.5391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="4260.5" y="311.7495">urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4251.5" cy="321.3438" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="4260.5" y="324.5542">urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4251.5" cy="334.1484" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="570" x="4260.5" y="337.3589">urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float</text><ellipse cx="4251.5" cy="346.9531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="4260.5" y="350.1636">urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t</text><!--MD5=[17838fb05fe219fd399839979ec8a4a4]
+class urt_frtsubscriber_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="226.4609" id="urt_frtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="974" x="1237.5" y="147.4063"/><ellipse cx="1662.75" cy="163.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1662.2344,163.9688 Q1660.375,163.2656 1659.7188,162.5 Q1659.0781,161.7188 1659.0781,160.4063 Q1659.0781,158.7188 1660.1563,157.75 Q1661.2344,156.7813 1663.1094,156.7813 Q1663.9688,156.7813 1664.8125,156.9844 Q1665.6719,157.1719 1666.5156,157.5625 L1666.5156,159.9531 Q1665.7344,159.3906 1664.9063,159.1094 Q1664.0938,158.8125 1663.2969,158.8125 Q1662.4219,158.8125 1661.9375,159.1719 Q1661.4688,159.5313 1661.4688,160.1875 Q1661.4688,160.7031 1661.8125,161.0469 Q1662.1563,161.375 1663.25,161.7813 L1664.3125,162.1875 Q1665.7969,162.7344 1666.5,163.6406 Q1667.2188,164.5469 1667.2188,165.9219 Q1667.2188,167.7969 1666.1094,168.7188 Q1665,169.6406 1662.75,169.6406 Q1661.8281,169.6406 1660.9063,169.4219 Q1659.9844,169.2031 1659.125,168.7813 L1659.125,166.25 Q1660.0938,166.9375 1661.0156,167.2813 Q1661.9375,167.625 1662.8281,167.625 Q1663.7344,167.625 1664.2344,167.2188 Q1664.7344,166.7969 1664.7344,166.0625 Q1664.7344,165.5 1664.3906,165.0938 Q1664.0625,164.6719 1663.4375,164.4219 L1662.2344,163.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="1683.25" y="167.5605">urt_frtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1238.5" x2="2210.5" y1="179.4063" y2="179.4063"/><ellipse cx="1248.5" cy="207.2109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="1257.5" y="210.4214">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1238.5" x2="1579" y1="193.8086" y2="193.8086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="1579" y="197.1167">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1870" x2="2210.5" y1="193.8086" y2="193.8086"/><ellipse cx="1248.5" cy="236.8203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="1257.5" y="240.0308">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1238.5" x2="1589" y1="223.418" y2="223.418"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="1589" y="226.7261">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1860" x2="2210.5" y1="223.418" y2="223.418"/><ellipse cx="1248.5" cy="266.4297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="1257.5" y="269.6401">minLatency : urt_delay_t</text><ellipse cx="1248.5" cy="279.2344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1257.5" y="282.4448">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1238.5" x2="1470.5" y1="253.0273" y2="253.0273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="508" x="1470.5" y="256.3354">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ||  URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1978.5" x2="2210.5" y1="253.0273" y2="253.0273"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1238.5" x2="2210.5" y1="289.0391" y2="289.0391"/><ellipse cx="1248.5" cy="300.0391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="387" x="1257.5" y="303.2495">urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : urt_status_t</text><ellipse cx="1248.5" cy="312.8438" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="948" x="1257.5" y="316.0542">urtFrtSubscriberSubscribe (subscriber : urt_frtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="1248.5" cy="325.6484" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="780" x="1257.5" y="328.8589">urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1248.5" cy="338.4531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="790" x="1257.5" y="341.6636">urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1248.5" cy="351.2578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="540" x="1257.5" y="354.4683">urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool</text><ellipse cx="1248.5" cy="364.0625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="441" x="1257.5" y="367.2729">urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t</text><!--MD5=[104dc879e5721421b987fcc467bc3a1d]
+class urt_hrtsubscriber_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="268.875" id="urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1084" x="3103.5" y="125.9063"/><ellipse cx="3581.75" cy="141.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3581.2344,142.4688 Q3579.375,141.7656 3578.7188,141 Q3578.0781,140.2188 3578.0781,138.9063 Q3578.0781,137.2188 3579.1563,136.25 Q3580.2344,135.2813 3582.1094,135.2813 Q3582.9688,135.2813 3583.8125,135.4844 Q3584.6719,135.6719 3585.5156,136.0625 L3585.5156,138.4531 Q3584.7344,137.8906 3583.9063,137.6094 Q3583.0938,137.3125 3582.2969,137.3125 Q3581.4219,137.3125 3580.9375,137.6719 Q3580.4688,138.0313 3580.4688,138.6875 Q3580.4688,139.2031 3580.8125,139.5469 Q3581.1563,139.875 3582.25,140.2813 L3583.3125,140.6875 Q3584.7969,141.2344 3585.5,142.1406 Q3586.2188,143.0469 3586.2188,144.4219 Q3586.2188,146.2969 3585.1094,147.2188 Q3584,148.1406 3581.75,148.1406 Q3580.8281,148.1406 3579.9063,147.9219 Q3578.9844,147.7031 3578.125,147.2813 L3578.125,144.75 Q3579.0938,145.4375 3580.0156,145.7813 Q3580.9375,146.125 3581.8281,146.125 Q3582.7344,146.125 3583.2344,145.7188 Q3583.7344,145.2969 3583.7344,144.5625 Q3583.7344,144 3583.3906,143.5938 Q3583.0625,143.1719 3582.4375,142.9219 L3581.2344,142.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="3602.25" y="146.0605">urt_hrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3104.5" x2="4186.5" y1="157.9063" y2="157.9063"/><ellipse cx="3114.5" cy="168.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="151" x="3123.5" y="172.1167">next : urt_hrtsubscriber_t*</text><ellipse cx="3114.5" cy="198.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="3123.5" y="201.7261">deadlineOffset : urt_delay_t</text><ellipse cx="3114.5" cy="211.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="3123.5" y="214.5308">qosDeadlineTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3104.5" x2="3500" y1="185.1133" y2="185.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="3500" y="188.4214">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3791" x2="4186.5" y1="185.1133" y2="185.1133"/><ellipse cx="3114.5" cy="240.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="3123.5" y="244.1401">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3104.5" x2="3510" y1="227.5273" y2="227.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="3510" y="230.8354">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3781" x2="4186.5" y1="227.5273" y2="227.5273"/><ellipse cx="3114.5" cy="270.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="3123.5" y="273.7495">minLatency : urt_delay_t</text><ellipse cx="3114.5" cy="283.3438" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="3123.5" y="286.5542">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3104.5" x2="3393.5" y1="257.1367" y2="257.1367"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="3393.5" y="260.4448">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3897.5" x2="4186.5" y1="257.1367" y2="257.1367"/><ellipse cx="3114.5" cy="312.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="3123.5" y="316.1636">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3104.5" x2="3513" y1="299.5508" y2="299.5508"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="3513" y="302.8589">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3778" x2="4186.5" y1="299.5508" y2="299.5508"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3104.5" x2="4186.5" y1="322.7578" y2="322.7578"/><ellipse cx="3114.5" cy="333.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="392" x="3123.5" y="336.9683">urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : urt_status_t</text><ellipse cx="3114.5" cy="346.5625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1058" x="3123.5" y="349.7729">urtHrtSubscriberSubscribe (subscriber : urt_hrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="3114.5" cy="359.3672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="3123.5" y="362.5776">urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3114.5" cy="372.1719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="3123.5" y="375.3823">urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3114.5" cy="384.9766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="3123.5" y="388.187">urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t</text><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
+class urt_message_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="141.6328" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="753" y="454.9063"/><ellipse cx="928.25" cy="470.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M927.7344,471.4688 Q925.875,470.7656 925.2188,470 Q924.5781,469.2188 924.5781,467.9063 Q924.5781,466.2188 925.6563,465.25 Q926.7344,464.2813 928.6094,464.2813 Q929.4688,464.2813 930.3125,464.4844 Q931.1719,464.6719 932.0156,465.0625 L932.0156,467.4531 Q931.2344,466.8906 930.4063,466.6094 Q929.5938,466.3125 928.7969,466.3125 Q927.9219,466.3125 927.4375,466.6719 Q926.9688,467.0313 926.9688,467.6875 Q926.9688,468.2031 927.3125,468.5469 Q927.6563,468.875 928.75,469.2813 L929.8125,469.6875 Q931.2969,470.2344 932,471.1406 Q932.7188,472.0469 932.7188,473.4219 Q932.7188,475.2969 931.6094,476.2188 Q930.5,477.1406 928.25,477.1406 Q927.3281,477.1406 926.4063,476.9219 Q925.4844,476.7031 924.625,476.2813 L924.625,473.75 Q925.5938,474.4375 926.5156,474.7813 Q927.4375,475.125 928.3281,475.125 Q929.2344,475.125 929.7344,474.7188 Q930.2344,474.2969 930.2344,473.5625 Q930.2344,473 929.8906,472.5938 Q929.5625,472.1719 928.9375,471.9219 L927.7344,471.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="948.75" y="475.0605">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="754" x2="1203" y1="486.9063" y2="486.9063"/><ellipse cx="764" cy="497.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="773" y="501.1167">next : urt_message_t*</text><ellipse cx="764" cy="510.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="773" y="513.9214">payload : void*</text><ellipse cx="764" cy="523.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="773" y="526.7261">originTime : urt_osTime_t</text><ellipse cx="764" cy="536.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="773" y="539.5308">numHrtConsumersLeft : unsigned int</text><ellipse cx="764" cy="565.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="773" y="569.1401">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="754" x2="870" y1="552.5273" y2="552.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="870" y="555.8354">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1087" x2="1203" y1="552.5273" y2="552.5273"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="754" x2="1203" y1="575.7344" y2="575.7344"/><ellipse cx="764" cy="586.7344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="425" x="773" y="589.9448">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
+class urt_publisher_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="6" y="195.9063"/><ellipse cx="334.75" cy="211.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M334.2344,212.4688 Q332.375,211.7656 331.7188,211 Q331.0781,210.2188 331.0781,208.9063 Q331.0781,207.2188 332.1563,206.25 Q333.2344,205.2813 335.1094,205.2813 Q335.9688,205.2813 336.8125,205.4844 Q337.6719,205.6719 338.5156,206.0625 L338.5156,208.4531 Q337.7344,207.8906 336.9063,207.6094 Q336.0938,207.3125 335.2969,207.3125 Q334.4219,207.3125 333.9375,207.6719 Q333.4688,208.0313 333.4688,208.6875 Q333.4688,209.2031 333.8125,209.5469 Q334.1563,209.875 335.25,210.2813 L336.3125,210.6875 Q337.7969,211.2344 338.5,212.1406 Q339.2188,213.0469 339.2188,214.4219 Q339.2188,216.2969 338.1094,217.2188 Q337,218.1406 334.75,218.1406 Q333.8281,218.1406 332.9063,217.9219 Q331.9844,217.7031 331.125,217.2813 L331.125,214.75 Q332.0938,215.4375 333.0156,215.7813 Q333.9375,216.125 334.8281,216.125 Q335.7344,216.125 336.2344,215.7188 Q336.7344,215.2969 336.7344,214.5625 Q336.7344,214 336.3906,213.5938 Q336.0625,213.1719 335.4375,212.9219 L334.2344,212.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="355.25" y="216.0605">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="764" y1="227.9063" y2="227.9063"/><ellipse cx="17" cy="238.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="26" y="242.1167">topic : urt_topic_t*</text><ellipse cx="17" cy="268.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="26" y="271.7261">publishAttempts : uint64_t</text><ellipse cx="17" cy="281.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="26" y="284.5308">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="277" y1="255.1133" y2="255.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="277" y="258.4214">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="494" x2="764" y1="255.1133" y2="255.1133"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="764" y1="291.125" y2="291.125"/><ellipse cx="17" cy="302.125" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="617" x="26" y="305.3354">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="17" cy="314.9297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="733" x="26" y="318.1401">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
+class urt_topic_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="248.0703" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="800.5" y="136.4063"/><ellipse cx="955.25" cy="152.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M954.7344,152.9688 Q952.875,152.2656 952.2188,151.5 Q951.5781,150.7188 951.5781,149.4063 Q951.5781,147.7188 952.6563,146.75 Q953.7344,145.7813 955.6094,145.7813 Q956.4688,145.7813 957.3125,145.9844 Q958.1719,146.1719 959.0156,146.5625 L959.0156,148.9531 Q958.2344,148.3906 957.4063,148.1094 Q956.5938,147.8125 955.7969,147.8125 Q954.9219,147.8125 954.4375,148.1719 Q953.9688,148.5313 953.9688,149.1875 Q953.9688,149.7031 954.3125,150.0469 Q954.6563,150.375 955.75,150.7813 L956.8125,151.1875 Q958.2969,151.7344 959,152.6406 Q959.7188,153.5469 959.7188,154.9219 Q959.7188,156.7969 958.6094,157.7188 Q957.5,158.6406 955.25,158.6406 Q954.3281,158.6406 953.4063,158.4219 Q952.4844,158.2031 951.625,157.7813 L951.625,155.25 Q952.5938,155.9375 953.5156,156.2813 Q954.4375,156.625 955.3281,156.625 Q956.2344,156.625 956.7344,156.2188 Q957.2344,155.7969 957.2344,155.0625 Q957.2344,154.5 956.8906,154.0938 Q956.5625,153.6719 955.9375,153.4219 L954.7344,152.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="975.75" y="156.5605">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.5" x2="1183.5" y1="168.4063" y2="168.4063"/><ellipse cx="811.5" cy="179.4063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="820.5" y="182.6167">next : urt_topic_t*</text><ellipse cx="811.5" cy="192.2109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="820.5" y="195.4214">id : urt_topicid_t</text><ellipse cx="811.5" cy="205.0156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="820.5" y="208.2261">lock : urt_osMutex_t</text><ellipse cx="811.5" cy="217.8203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="820.5" y="221.0308">evtSource : urt_osEventSource_t</text><ellipse cx="811.5" cy="230.625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="820.5" y="233.8354">numHrtSubscribers : unsigned int</text><ellipse cx="811.5" cy="243.4297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="212" x="820.5" y="246.6401">hrtSubscribers : urt_hrtsubscriber_t*</text><ellipse cx="811.5" cy="256.2344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="820.5" y="259.4448">hrtReleased : urt_osCondvar_t</text><ellipse cx="811.5" cy="269.0391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="820.5" y="272.2495">mandatoryMessage : urt_message_t</text><ellipse cx="811.5" cy="281.8438" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="820.5" y="285.0542">latestMessage : urt_message_t*</text><ellipse cx="811.5" cy="311.4531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="820.5" y="314.6636">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="801.5" x2="860" y1="298.0508" y2="298.0508"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="860" y="301.3589">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1125" x2="1183.5" y1="298.0508" y2="298.0508"/><ellipse cx="811.5" cy="341.0625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="820.5" y="344.2729">numDiscardedMessages : uint64_t</text><ellipse cx="811.5" cy="353.8672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="820.5" y="357.0776">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="801.5" x2="884" y1="327.6602" y2="327.6602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="884" y="330.9683">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1101" x2="1183.5" y1="327.6602" y2="327.6602"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.5" x2="1183.5" y1="363.6719" y2="363.6719"/><ellipse cx="811.5" cy="374.6719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="358" x="820.5" y="377.8823">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--MD5=[536025241394544a90bc53fb552f3a08]
+reverse link urt_message_t to urt_message_t--><path d="M1216.0642,491.6464 C1230.3974,499.7971 1239,511.217 1239,525.9063 C1239,544.3399 1225.4528,557.625 1204.034,565.7617 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1204.034,486.0508,1207.7873,492.2082,1214.9146,491.1118,1211.1613,484.9545,1204.034,486.0508" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1212.2829" y="481.4249">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1211.8281" y="563.8984">0..1</text><!--MD5=[0585cd4928de92ce6927d9c389eadd29]
+link urt_nrtsubscriber_t to urt_basesubscriber_t--><path d="M2801.0488,337.5565 C2870.4782,374.8713 2953.218,419.3397 3020.864,455.6961 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3024.314,449.6033,3038.617,465.2374,3017.6863,461.9351,3024.314,449.6033" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[37a8b7f2877a6b7bb4e9d0352ce3d221]
+link urt_nrtsubscriber_t to urt_message_t--><path d="M2448.108,337.4631 C2379.3604,359.7152 2301.9849,381.5689 2229.5,394.9063 C1788.1168,476.1219 1663.6814,378.1555 1221.5,454.9063 C1217.376,455.6221 1213.2225,456.3828 1209.0475,457.1844 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1204.1369,458.1437,1213.7369,460.3438,1209.0441,457.1849,1212.2029,452.4922,1204.1369,458.1437" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6d81edfa5aa102b898ad487ae19b49f9]
+link urt_srtsubscriber_t to urt_basesubscriber_t--><path d="M4407.1322,356.9519 C4346.0027,370.8759 4283.1722,384.1181 4223.5,394.9063 C3887.5331,455.6462 3487.1413,496.2563 3283.954,514.6423 " fill="none" id="urt_srtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3284.5705,521.615,3264.0246,516.4315,3283.3186,507.6711,3284.5705,521.615" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[47304731969ac4130b45cc7169c5cada]
+reverse link urt_srtsubscriber_t to urt_srtusefulnessfunc_t--><path d="M4782.5,370.0144 C4782.5,415.4315 4782.5,464.5778 4782.5,495.2952 " fill="none" id="urt_srtsubscriber_t&lt;-urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="4782.5,357.0089,4778.5,363.0089,4782.5,369.0089,4786.5,363.0089,4782.5,357.0089" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4774.2063" y="376.7311">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4756.025" y="484.5355">0..1</text><!--MD5=[dffdac3aea8c81c86dd1d0b8122fcada]
+link urt_srtsubscriber_t to urt_message_t--><path d="M4432.0378,356.9495 C4363.385,372.3858 4291.5632,386.1427 4223.5,394.9063 C3561.7187,480.115 1881.0384,353.7921 1221.5,454.9063 C1217.3627,455.5406 1213.1968,456.226 1209.0104,456.9577 " fill="none" id="urt_srtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1204.0869,457.8378,1213.6503,460.1916,1209.0089,456.9579,1212.2426,452.3164,1204.0869,457.8378" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f626d284cba98e1d5d5fe914b1fa4188]
+link urt_frtsubscriber_t to urt_basesubscriber_t--><path d="M2132.1239,373.4097 C2164.9595,381.1559 2197.7152,388.4394 2229.5,394.9063 C2508.098,451.5886 2838.991,492.2111 3018.8819,512.092 " fill="none" id="urt_frtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3019.8785,505.1592,3038.9961,514.2978,3018.3522,519.0758,3019.8785,505.1592" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[cfcdebdb88febc368723fd91f781523c]
+link urt_frtsubscriber_t to urt_message_t--><path d="M1406.7766,373.4835 C1330.9943,400.4543 1252.0987,428.533 1182.9788,453.1327 " fill="none" id="urt_frtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1178.0193,454.8978,1187.8395,455.6484,1182.7298,453.2212,1185.157,448.1115,1178.0193,454.8978" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[1ea71f2b33e56ab0ac5545988c1af396]
+link urt_hrtsubscriber_t to urt_basesubscriber_t--><path d="M3395.2437,394.9064 C3356.0536,415.9691 3316.9728,436.9731 3281.9486,455.7968 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3284.9546,462.1281,3264.0238,465.4304,3278.3268,449.7963,3284.9546,462.1281" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ea2ec5c5272e65289dabade75a749f58]
+reverse link urt_hrtsubscriber_t to urt_hrtsubscriber_t--><path d="M4199.8399,235.7858 C4214.3539,242.5949 4222.5,250.8018 4222.5,260.4063 C4222.5,272.459 4209.6717,282.3107 4187.5292,289.9614 " fill="none" id="urt_hrtsubscriber_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="4187.5292,230.8512,4191.6102,236.7964,4198.6677,235.3159,4194.5867,229.3707,4187.5292,230.8512" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4195.2077" y="227.3988">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4195.3202" y="287.3402">0..1</text><!--MD5=[a8adaa0500715125c1ab51b9b0fda3ce]
+link urt_hrtsubscriber_t to urt_message_t--><path d="M3103.4186,392.3959 C3097.4199,393.2676 3091.4455,394.1051 3085.5,394.9063 C2264.051,505.5987 2040.0199,324.306 1221.5,454.9063 C1217.3666,455.5658 1213.2044,456.2745 1209.0214,457.0277 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1204.1017,457.9324,1213.6767,460.2387,1209.0192,457.0281,1212.2299,452.3706,1204.1017,457.9324" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
+reverse link urt_publisher_t to urt_topic_t--><path d="M778.3249,260.4063 C785.6324,260.4063 792.94,260.4063 800.2475,260.4063 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="765.1714,260.4063,771.1714,264.4063,777.1714,260.4063,771.1714,256.4063,765.1714,260.4063" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="772.9647" y="257.3239">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="784.5814" y="257.1814">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
+link urt_publisher_t to urt_message_t--><path d="M529.8058,325.0154 C615.9437,363.5813 725.5937,412.6742 814.9361,452.6749 " fill="none" id="urt_publisher_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="819.7121,454.8132,813.1324,447.4846,815.1486,452.77,809.8633,454.7862,819.7121,454.8132" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
+reverse link urt_topic_t to urt_topic_t--><path d="M1196.5439,224.3234 C1210.8061,232.5595 1219.5,244.587 1219.5,260.4063 C1219.5,280.2579 1205.809,294.1384 1184.6039,302.0481 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1184.6039,218.7645,1188.355,224.9232,1195.4826,223.8294,1191.7316,217.6707,1184.6039,218.7645" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1192.2642" y="213.913">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1192.5767" y="300.4498">0..1</text><!--MD5=[ed3fb6de0913094c41bd74c175d366df]
+reverse link urt_topic_t to urt_hrtsubscriber_t--><path d="M1130.406,128.2476 C1163.5796,103.9181 1200.6064,82.0674 1239,68.9063 C1335.1205,35.9568 2967.6883,52.7082 3068,68.9063 C3144.3838,81.2405 3224.3368,102.1948 3299.5629,125.8263 " fill="none" id="urt_topic_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1119.7739,136.226,1126.9738,135.8241,1129.372,129.0235,1122.1721,129.4253,1119.7739,136.226" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1119.2859" y="125.2705">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3254.8697" y="114.6867">0..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
+reverse link urt_topic_t to urt_message_t--><path d="M985.2522,397.855 C984.2167,417.4927 983.1885,436.9931 982.2582,454.6344 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="985.9509,384.6054,981.6405,390.3864,985.319,396.5887,989.6294,390.8077,985.9509,384.6054" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="977.3081" y="404.6996">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="974.2333" y="443.6037">1</text><!--MD5=[25a1c01fd1a45519879667c2d8772a97]
 @startuml
 
 title **µRtWare**\nPublish-Subscribe System
@@ -60,93 +53,88 @@ title **µRtWare**\nPublish-Subscribe System
 }
 
   package "subscriber" <<Rectangle>> {
-    package "real-time constraint data" <<Rectangle>> {
-      class urt_rtdata_t <<S,BFAFFF>> {
-      + {field} class : urt_rtconstraintclass_t
-      + {field} params : urt_rtconstraintsparams_t
-    }
-
-      class urt_rtclass_t <<E,FF7F3F>> {
-      URT_RTCLASS_HARD = 0
-      URT_RTCLASS_FIRM = 1
-      URT_RTCLASS_SOFT = 2
-      URT_RTCLASS_NONE = 3
-    }
-
-      class urt_rtclassdata_t <<U,7FCF7F>> {
-      + {field} hrt : urt_hrtparams_t
-      + {field} frt : urt_frtparams_t
-      + {field} srt : urt_srtparans_t
-      + {field} nrt : urt_nrtparams_t
-    }
-
-      class urt_hrtdata_t <<S,BFAFFF>> {
-      + {field} next : urt_subscriber_t*
-      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
-      + {field} qosDeadlineTimer : urt_osTimer_t
-      + {field} deadlineOffset : urt_delay_t
-      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
-      + {field} expectedRate : urt_delay_t
-      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
-      + {field} maxJitter : urt_delay_t
-      + {field} minLatency : urt_delay_t
-      + {field} maxLatency : urt_delay_t
-    }
-
-      class urt_frtdata_t <<S,BFAFFF>> {
-      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
-      + {field} deadlineOffset : urt_delay_t
-      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
-      + {field} expectedRate : urt_delay_t
-      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
-      + {field} maxJitter : urt_delay_t
-      + {field} minLatency : urt_delay_t
-      + {field} maxLatency : urt_delay_t
-    }
-
-      package "SRT data" <<Rectangle>> {
-        class urt_srtusefulnessfunc_t <<F,E0E0E0>> {
-        urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
-      }
-
-        class urt_srtdata_t <<S,BFAFFF>> {
-        + {field} usefullnesscb : urt_srtusefulnessfunc_t*
-        + {field} cbparams : void*
-      }
-    } 
-
-      class urt_nrtdata_t <<S,BFAFFF>> {
-    }
-  } 
-
-    class urt_subscriber_t <<S,BFAFFF>> {
+    class urt_basesubscriber_t <<S,BFAFFF>> {
     + {field} topic : urt_topic_t*
     + {field} evtListener : urt_osEventListener_t
-    + {field} rtdata : urt_rtdata_t
     + {field} lastMessage : urt_message_t*
     + {field} lastMessageTime : urt_osTime_t
     .. URT_CFG_PUBSUB_PROFILING == true ..
     + {field} sumLatencies : uint64_t
     + {field} numMessagesReceived : uint64_t
+  }
+
+    class urt_srtusefulnessfunc_t <<F,E0E0E0>> {
+    urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
+  }
+
+    class urt_nrtsubscriber_t <<S,BFAFFF>> {
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    + {field} minLatency : urt_delay_t
+    + {field} maxLatency : urt_delay_t
+    __
+    + {method} urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : urt_status_t
+    + {method} urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
+    + {method} urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t
+  }
+
+    class urt_srtsubscriber_t <<S,BFAFFF>> {
+    + {field} usefulnesscb : urt_srtusefulnessfunc_t*
+    + {field} cbparams : void*
     .. URT_CFG_PUBSUB_PROFILING == true ..
     + {field} minLatency : urt_delay_t
     + {field} maxLatency : urt_delay_t
     __
-    + {method} urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t
-    + {method} urtSubscriberSubscribeHrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
-    + {method} urtSubscriberSubscribeFrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
-    + {method} urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
-    + {method} urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
-    + {method} urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t
-    + {method} urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
-    + {method} urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
-    + {method} urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float
+    + {method} urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : urt_status_t
+    + {method} urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
+    + {method} urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float
+    + {method} urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t
+  }
+
+    class urt_frtsubscriber_t <<S,BFAFFF>> {
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+    + {field} deadlineOffset : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+    + {field} maxJitter : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ||  URT_CFG_PUBSUB_PROFILING == true ..
+    + {field} minLatency : urt_delay_t
+    + {field} maxLatency : urt_delay_t
+    __
+    + {method} urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : urt_status_t
+    + {method} urtFrtSubscriberSubscribe (subscriber : urt_frtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, jitter : urt_delay_t) : urt_status_t
+    + {method} urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool
+    + {method} urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t
+  }
+
+    class urt_hrtsubscriber_t <<S,BFAFFF>> {
+    + {field} next : urt_hrtsubscriber_t*
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+    + {field} deadlineOffset : urt_delay_t
+    + {field} qosDeadlineTimer : urt_osTimer_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+    + {field} maxJitter : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true..
+    + {field} minLatency : urt_delay_t
+    + {field} maxLatency : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
+    + {field} expectedRate : urt_delay_t
+    __
+    + {method} urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : urt_status_t
+    + {method} urtHrtSubscriberSubscribe (subscriber : urt_hrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
+    + {method} urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t
   }
 } 
 
   class urt_publisher_t <<S,BFAFFF>> {
   + {field} topic : urt_topic_t*
-  .. URT_CFG_PROFILING == true ..
+  .. URT_CFG_PUBSUB_PROFILING == true ..
   + {field} publishAttempts : uint64_t
   + {field} publishFails : uint64_t
   __
@@ -160,7 +148,7 @@ title **µRtWare**\nPublish-Subscribe System
   + {field} lock : urt_osMutex_t
   + {field} evtSource : urt_osEventSource_t
   + {field} numHrtSubscribers : unsigned int
-  + {field} hrtSubscribers : urt_subscriber_t*
+  + {field} hrtSubscribers : urt_hrtsubscriber_t*
   + {field} hrtReleased : urt_osCondvar_t
   + {field} mandatoryMessage : urt_message_t
   + {field} latestMessage : urt_message_t*
@@ -176,30 +164,27 @@ title **µRtWare**\nPublish-Subscribe System
 
 
 
-urt_srtdata_t "1" o- - "0..1" urt_srtusefulnessfunc_t
-
-urt_rtclassdata_t "1" *- - "0..1" urt_hrtdata_t
-urt_rtclassdata_t "1" *- - "0..1" urt_frtdata_t
-urt_rtclassdata_t "1" *- - "0..1" urt_srtdata_t
-urt_rtclassdata_t "1" *- - "0..1" urt_nrtdata_t
+urt_message_t "1" o- - "0..1" urt_message_t
 
-urt_rtdata_t "1" *- - "1" urt_rtclass_t
-urt_rtdata_t "1" *- - "1" urt_rtclassdata_t
+urt_nrtsubscriber_t - -|> urt_basesubscriber_t
+urt_nrtsubscriber_t ..> urt_message_t
 
-urt_hrtdata_t "1" o-up- "0..1" urt_subscriber_t
+urt_srtsubscriber_t - -|> urt_basesubscriber_t
+urt_srtsubscriber_t "1" o- - "0..1" urt_srtusefulnessfunc_t
+urt_srtsubscriber_t ..> urt_message_t
 
-urt_message_t "1" o- - "0..1" urt_message_t
+urt_frtsubscriber_t - -|> urt_basesubscriber_t
+urt_frtsubscriber_t ..> urt_message_t
 
-urt_subscriber_t "1" *- - "1" urt_rtdata_t
-urt_subscriber_t "1" o- "0..1" urt_topic_t
-urt_subscriber_t "1" o- - "0..1" urt_message_t
+urt_hrtsubscriber_t - -|> urt_basesubscriber_t
+urt_hrtsubscriber_t "1" o- - "0..1" urt_hrtsubscriber_t
+urt_hrtsubscriber_t ..> urt_message_t
 
 urt_publisher_t "1" o- "1" urt_topic_t
 urt_publisher_t ..> urt_message_t
 
 urt_topic_t "1" o- - "0..1" urt_topic_t
-urt_topic_t "1" o- "0..1" urt_subscriber_t
-urt_topic_t "1" o- - "1..1" urt_message_t
+urt_topic_t "1" o- "0..1" urt_hrtsubscriber_t
 urt_topic_t "1" *- - "1" urt_message_t
 
 
diff --git a/doc/classdiagrams/pubsub.uml b/doc/classdiagrams/pubsub.uml
index 91447df..ee75846 100644
--- a/doc/classdiagrams/pubsub.uml
+++ b/doc/classdiagrams/pubsub.uml
@@ -50,107 +50,12 @@ $structure("urt_message_t") {
 }
 
 $group("subscriber") {
-  $group("real-time constraint data") {
-    /' The top level RT constraints structure. '/
-    $structure("urt_rtdata_t") {
-        'The actual RT constraint class.
-      + {field} class : urt_rtconstraintclass_t
-        'Parameters of the RT constraints.
-      + {field} params : urt_rtconstraintsparams_t
-    }
-
-    /' Descriptor to distinguish the four RT classes. '/
-    $enumeration("urt_rtclass_t") {
-        'Hard real-time.
-      URT_RTCLASS_HARD = 0
-        'Firm real-time.
-      URT_RTCLASS_FIRM = 1
-        'Soft real-time.
-      URT_RTCLASS_SOFT = 2
-        'No real-time at all.
-      URT_RTCLASS_NONE = 3
-    }
-
-    /' Union structure, holding RT constraints parameters. '/
-    $union("urt_rtclassdata_t") {
-        'Parameters for hard real-time.
-      + {field} hrt : urt_hrtparams_t
-        'Parameters for firm real-time.
-      + {field} frt : urt_frtparams_t
-        'Parameters for soft real-time.
-      + {field} srt : urt_srtparans_t
-        'Parameters for non-real-time.
-      + {field} nrt : urt_nrtparams_t
-    }
-
-    /' Parameters for hard real-time. '/
-    $structure("urt_hrtdata_t") {
-        'Pointer to the next HRT subscriber in a list.
-      + {field} next : urt_subscriber_t*
-      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
-        'QoS Timer to detect missed deadlines.
-      + {field} qosDeadlineTimer : urt_osTimer_t
-        'Maximum temporal offset between creation and consumption of messages.
-      + {field} deadlineOffset : urt_delay_t
-      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
-        'Expected rate at which data is published.
-      + {field} expectedRate : urt_delay_t
-      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
-        'Maximum expected jitter.
-      + {field} maxJitter : urt_delay_t
-        'Minimum latency ever detected (to calculate jitter).
-      + {field} minLatency : urt_delay_t
-        'Maximum latency ever detected (to calculate jitter).
-      + {field} maxLatency : urt_delay_t
-    }
-
-    /' Parameters for firm real-time. '/
-    $structure("urt_frtdata_t") {
-      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
-        'Maximum temporal offset between creation and consumption of messages.
-      + {field} deadlineOffset : urt_delay_t
-      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
-        'Expected rate at which data is published.
-      + {field} expectedRate : urt_delay_t
-      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
-        'Maximum expected jitter.
-      + {field} maxJitter : urt_delay_t
-        'Minimum latency ever detected (to calculate jitter).
-      + {field} minLatency : urt_delay_t
-        'Maximum latency ever detected (to calculate jitter).
-      + {field} maxLatency : urt_delay_t
-    }
-
-    $group("SRT data") {
-      /' Function type to be called when calculating the usefulness of a message. '/
-      $function("urt_srtusefulnessfunc_t") {
-          'Takes a delay and optionally parameters as arguments and returns a float in [0, 1].
-        urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
-      }
-
-      /' Parameters for soft real-time. '/
-      $structure("urt_srtdata_t") {
-          'Callback to calculate usefulness of a message
-        + {field} usefullnesscb : urt_srtusefulnessfunc_t*
-          'Optional parameters for the callback function.
-        + {field} cbparams : void*
-      }
-    } /'SRT data'/
-
-    /' Parameters for non-real-time. '/
-    $structure("urt_nrtdata_t") {
-      'There are nor parameters in this case.
-    }
-  } /'real-time constraint data'/
-
-  /' Subscriber type. '/
-  $structure("urt_subscriber_t") {
+  /' Base subscriber type. '/
+  $structure("urt_basesubscriber_t") {
       'Pointer to the topic, this subscriber subscribed to.
     + {field} topic : urt_topic_t*
       'Event listener to notify the node about new messages.
     + {field} evtListener : urt_osEventListener_t
-      'Real-time class descriptor.
-    + {field} rtdata : urt_rtdata_t
       'Pointer to the message consumed most recently.
     + {field} lastMessage : urt_message_t*
       'Copy of the origin time of the message consumed most recently.
@@ -160,30 +65,119 @@ $group("subscriber") {
     + {field} sumLatencies : uint64_t
       'Number of messages received.
     + {field} numMessagesReceived : uint64_t
+  }
+
+  /' Function type to be called when calculating the usefulness of a message. '/
+  $function("urt_srtusefulnessfunc_t") {
+    'Takes a delay and optionally parameters as arguments and returns a float in [0, 1].
+    urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
+  }
+
+  /' NRT subscriber type. '/
+  $structure("urt_nrtsubscriber_t") {
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+      'Minimum latency ever detected.
+    + {field} minLatency : urt_delay_t
+      'Maximum latency ever detected.
+    + {field} maxLatency : urt_delay_t
+    __
+      'Initializes a urt_nrtsubscriber_t object.
+    + {method} urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : urt_status_t
+      'Tries to subscribe to a topic and optionally contributes a list of messages to the topic.
+    + {method} urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
+      'Fetches the next message in the buffer, optionally copies the payload and optionally returns the latency.
+    + {method} urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+      'Fetches the latest message, optionally copies the payload and optionally returns the latency.
+    + {method} urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+      'Unsubscribes from a topic.
+    + {method} urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t
+  }
+
+  /' SRT subscriber type. '/
+  $structure("urt_srtsubscriber_t") {
+      'Callback to calculate usefulness of a message
+    + {field} usefulnesscb : urt_srtusefulnessfunc_t*
+      'Optional parameters for the usefulness callback function.
+    + {field} cbparams : void*
     .. URT_CFG_PUBSUB_PROFILING == true ..
+      'Minimum latency ever detected.
+    + {field} minLatency : urt_delay_t
+      'Maximum latency ever detected.
+    + {field} maxLatency : urt_delay_t
+    __
+      'Initializes a urt_srtsubscriber_t object.
+    + {method} urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : urt_status_t
+      'Tries to subscribe to a topic, sets all parameters and optionally contributes a list of messages to the topic.
+    + {method} urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
+      'Fetches the next message in the buffer, optionally copies the payload and optionally returns the latency.
+    + {method} urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+      'Fetches the latest message, optionally copies the payload and optionally returns the latency.
+    + {method} urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+      'Calculates the usefulness of a message after the specified delay.
+    + {method} urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float
+      'Unsubscribes from a topic.
+    + {method} urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t
+  }
+
+  /' FRT subscriber type. '/
+  $structure("urt_frtsubscriber_t") {
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+      'Maximum temporal offset between creation and consumption of messages.
+    + {field} deadlineOffset : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+      'Maximum expected jitter.
+    + {field} maxJitter : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ||  URT_CFG_PUBSUB_PROFILING == true ..
       'Minimum latency ever detected (to calculate jitter).
     + {field} minLatency : urt_delay_t
       'Maximum latency ever detected (to calculate jitter).
     + {field} maxLatency : urt_delay_t
     __
-      'Initializes a urt_subscriber_t object.
-    + {method} urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t
-      'Tries to subscribe to a topic as HRT subscriber, sets all according parameters and optionally contributes a list of messages to the topic.
-    + {method} urtSubscriberSubscribeHrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
-      'Tries to subscribe to a topic as FRT subscriber, sets all according parameters and optionally contributes a list of messages to the topic.
-    + {method} urtSubscriberSubscribeFrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
-      'Tries to subscribe to a topic as SRT subscriber, sets all according parameters and optionally contributes a list of messages to the topic.
-    + {method} urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
-      'Tries to subscribe to a topic as NRT subscriber and optionally contributes a list of messages to the topic.
-    + {method} urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
+      'Initializes a urt_frtsubscriber_t object.
+    + {method} urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : urt_status_t
+      'Tries to subscribe to a topic, sets all parameters and optionally contributes a list of messages to the topic.
+    + {method} urtFrtSubscriberSubscribe (subscriber : urt_frtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, jitter : urt_delay_t) : urt_status_t
+      'Fetches the next message in the buffer, optionally copies the payload and optionally returns the latency.
+    + {method} urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+      'Fetches the latest message, optionally copies the payload and optionally returns the latency.
+    + {method} urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+      'Checks whether a message is valid after the specified delay.
+    + {method} urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool
       'Unsubscribes from a topic.
-    + {method} urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t
+    + {method} urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t
+  }
+
+  /' HRT subscriber type. '/
+  $structure("urt_hrtsubscriber_t") {
+      'Pointer to the next HRT subscriber in a list.
+    + {field} next : urt_hrtsubscriber_t*
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+      'Maximum temporal offset between creation and consumption of messages.
+    + {field} deadlineOffset : urt_delay_t
+      'QoS Timer to detect missed deadlines.
+    + {field} qosDeadlineTimer : urt_osTimer_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+      'Maximum expected jitter.
+    + {field} maxJitter : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true..
+      'Minimum latency ever detected (to calculate jitter).
+    + {field} minLatency : urt_delay_t
+      'Maximum latency ever detected (to calculate jitter).
+    + {field} maxLatency : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
+      'Expected rate at which data is published.
+    + {field} expectedRate : urt_delay_t
+    __
+      'Initializes a urt_hrtsubscriber_t object.
+    + {method} urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : urt_status_t
+      'Tries to subscribe to a topic, sets all parameters and optionally contributes a list of messages to the topic.
+    + {method} urtHrtSubscriberSubscribe (subscriber : urt_hrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
       'Fetches the next message in the buffer, optionally copies the payload and optionally returns the latency.
-    + {method} urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
       'Fetches the latest message, optionally copies the payload and optionally returns the latency.
-    + {method} urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
-      'Calculates the usefulness of a message after the specified delay depending on the SRT or FRT (or HRT) parameters.
-    + {method} urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float
+    + {method} urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+      'Unsubscribes from a topic.
+    + {method} urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t
   }
 } /'subscriber'/
 
@@ -191,7 +185,7 @@ $group("subscriber") {
 $structure("urt_publisher_t") {
     'Pointer to the topic for publishing.
   + {field} topic : urt_topic_t*
-  .. URT_CFG_PROFILING == true ..
+  .. URT_CFG_PUBSUB_PROFILING == true ..
     'Counter of attempts to publish a message.
   + {field} publishAttempts : uint64_t
     'Counter of failed attempts to publish a message.
@@ -216,7 +210,7 @@ $structure("urt_topic_t") {
     'Number of HRT subscribers.
   + {field} numHrtSubscribers : unsigned int
     'List of HRT subscribers, orderd by their expected rate (most critical first).
-  + {field} hrtSubscribers : urt_subscriber_t*
+  + {field} hrtSubscribers : urt_hrtsubscriber_t*
     'Condition variable to inform waiting publishers when a blocked message becomes available.
   + {field} hrtReleased : urt_osCondvar_t
     'Mandatory message, each Topic holds.
@@ -242,30 +236,27 @@ $structure("urt_topic_t") {
 
 !startsub DEPENDENCIES
 
-urt_srtdata_t "1" o-- "0..1" urt_srtusefulnessfunc_t
-
-urt_rtclassdata_t "1" *-- "0..1" urt_hrtdata_t
-urt_rtclassdata_t "1" *-- "0..1" urt_frtdata_t
-urt_rtclassdata_t "1" *-- "0..1" urt_srtdata_t
-urt_rtclassdata_t "1" *-- "0..1" urt_nrtdata_t
+urt_message_t "1" o-- "0..1" urt_message_t
 
-urt_rtdata_t "1" *-- "1" urt_rtclass_t
-urt_rtdata_t "1" *-- "1" urt_rtclassdata_t
+urt_nrtsubscriber_t --|> urt_basesubscriber_t
+urt_nrtsubscriber_t ..> urt_message_t
 
-urt_hrtdata_t "1" o-up- "0..1" urt_subscriber_t
+urt_srtsubscriber_t --|> urt_basesubscriber_t
+urt_srtsubscriber_t "1" o-- "0..1" urt_srtusefulnessfunc_t
+urt_srtsubscriber_t ..> urt_message_t
 
-urt_message_t "1" o-- "0..1" urt_message_t
+urt_frtsubscriber_t --|> urt_basesubscriber_t
+urt_frtsubscriber_t ..> urt_message_t
 
-urt_subscriber_t "1" *-- "1" urt_rtdata_t
-urt_subscriber_t "1" o- "0..1" urt_topic_t
-urt_subscriber_t "1" o-- "0..1" urt_message_t
+urt_hrtsubscriber_t --|> urt_basesubscriber_t
+urt_hrtsubscriber_t "1" o-- "0..1" urt_hrtsubscriber_t
+urt_hrtsubscriber_t ..> urt_message_t
 
 urt_publisher_t "1" o- "1" urt_topic_t
 urt_publisher_t ..> urt_message_t
 
 urt_topic_t "1" o-- "0..1" urt_topic_t
-urt_topic_t "1" o- "0..1" urt_subscriber_t
-urt_topic_t "1" o-- "1..1" urt_message_t
+urt_topic_t "1" o- "0..1" urt_hrtsubscriber_t
 urt_topic_t "1" *-- "1" urt_message_t
 
 !endsub
diff --git a/doc/classdiagrams/rpc.svg b/doc/classdiagrams/rpc.svg
index fdc891b..16e9a96 100644
--- a/doc/classdiagrams/rpc.svg
+++ b/doc/classdiagrams/rpc.svg
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="403px" preserveAspectRatio="none" style="width:655px;height:403px;" version="1.1" viewBox="0 0 655 403" width="655px" zoomAndPan="magnify"><defs><filter height="300%" id="f1647pblyzesul" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="286" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="277" x="192" y="37.6611">Remote Procedure Call System</text><!--MD5=[3226071078d8aeaa18fbafa5359ddee6]
-class urt_servicefunc_t--><rect fill="#FEFECE" filter="url(#f1647pblyzesul)" height="60.8047" id="urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="81.5" y="331.9063"/><ellipse cx="249.75" cy="347.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M253.9844,343.6719 L248.7031,343.6719 L248.7031,346.3438 L253.5,346.3438 L253.5,348.5 L248.7031,348.5 L248.7031,353.9063 L246.2656,353.9063 L246.2656,341.5156 L253.9844,341.5156 L253.9844,343.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="270.25" y="352.0605">urt_servicefunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="82.5" x2="531.5" y1="363.9063" y2="363.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="82.5" x2="531.5" y1="371.9063" y2="371.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="439" x="87.5" y="386.1167">urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
-class urt_service_t--><rect fill="#FEFECE" filter="url(#f1647pblyzesul)" height="222.4609" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="602" x="6" y="49.9063"/><ellipse cx="263.25" cy="65.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M262.7344,66.4688 Q260.875,65.7656 260.2188,65 Q259.5781,64.2188 259.5781,62.9063 Q259.5781,61.2188 260.6563,60.25 Q261.7344,59.2813 263.6094,59.2813 Q264.4688,59.2813 265.3125,59.4844 Q266.1719,59.6719 267.0156,60.0625 L267.0156,62.4531 Q266.2344,61.8906 265.4063,61.6094 Q264.5938,61.3125 263.7969,61.3125 Q262.9219,61.3125 262.4375,61.6719 Q261.9688,62.0313 261.9688,62.6875 Q261.9688,63.2031 262.3125,63.5469 Q262.6563,63.875 263.75,64.2813 L264.8125,64.6875 Q266.2969,65.2344 267,66.1406 Q267.7188,67.0469 267.7188,68.4219 Q267.7188,70.2969 266.6094,71.2188 Q265.5,72.1406 263.25,72.1406 Q262.3281,72.1406 261.4063,71.9219 Q260.4844,71.7031 259.625,71.2813 L259.625,68.75 Q260.5938,69.4375 261.5156,69.7813 Q262.4375,70.125 263.3281,70.125 Q264.2344,70.125 264.7344,69.7188 Q265.2344,69.2969 265.2344,68.5625 Q265.2344,68 264.8906,67.5938 Q264.5625,67.1719 263.9375,66.9219 L262.7344,66.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="283.75" y="70.0605">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="607" y1="81.9063" y2="81.9063"/><ellipse cx="17" cy="92.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="26" y="96.1167">next : urt_service_t*</text><ellipse cx="17" cy="105.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="26" y="108.9214">id : urt_serviceid_t</text><ellipse cx="17" cy="118.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="26" y="121.7261">lock : urt_osMutex_t</text><ellipse cx="17" cy="131.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="26" y="134.5308">callback : urt_servicefunc_t*</text><ellipse cx="17" cy="160.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="26" y="164.1401">sumDurations : uint64_t</text><ellipse cx="17" cy="173.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="26" y="176.9448">numCalls : uint64_t</text><ellipse cx="17" cy="186.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="26" y="189.7495">numTimeouts : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="212.5" y1="147.5273" y2="147.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="212.5" y="150.8354">URT_CFG_RPC_PROFLING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="401.5" x2="607" y1="147.5273" y2="147.5273"/><ellipse cx="17" cy="216.1484" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="26" y="219.3589">minDuration : urt_delay_t</text><ellipse cx="17" cy="228.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="26" y="232.1636">maxDuration : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="80" y1="202.7461" y2="202.7461"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="80" y="206.0542">URT_CFG_RPC_PROFILING == true || URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="534" x2="607" y1="202.7461" y2="202.7461"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="607" y1="238.7578" y2="238.7578"/><ellipse cx="17" cy="249.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="576" x="26" y="252.9683">urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t</text><ellipse cx="17" cy="262.5625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="557" x="26" y="265.7729">urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[05f2c35569573d3273c65d3342945557]
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="403px" preserveAspectRatio="none" style="width:655px;height:403px;" version="1.1" viewBox="0 0 655 403" width="655px" zoomAndPan="magnify"><defs><filter height="300%" id="ftbizwlh4v2ya" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="286" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="277" x="192" y="37.6611">Remote Procedure Call System</text><!--MD5=[3226071078d8aeaa18fbafa5359ddee6]
+class urt_servicefunc_t--><rect fill="#FEFECE" filter="url(#ftbizwlh4v2ya)" height="60.8047" id="urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="81.5" y="331.9063"/><ellipse cx="249.75" cy="347.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M253.9844,343.6719 L248.7031,343.6719 L248.7031,346.3438 L253.5,346.3438 L253.5,348.5 L248.7031,348.5 L248.7031,353.9063 L246.2656,353.9063 L246.2656,341.5156 L253.9844,341.5156 L253.9844,343.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="270.25" y="352.0605">urt_servicefunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="82.5" x2="531.5" y1="363.9063" y2="363.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="82.5" x2="531.5" y1="371.9063" y2="371.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="439" x="87.5" y="386.1167">urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
+class urt_service_t--><rect fill="#FEFECE" filter="url(#ftbizwlh4v2ya)" height="222.4609" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="602" x="6" y="49.9063"/><ellipse cx="263.25" cy="65.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M262.7344,66.4688 Q260.875,65.7656 260.2188,65 Q259.5781,64.2188 259.5781,62.9063 Q259.5781,61.2188 260.6563,60.25 Q261.7344,59.2813 263.6094,59.2813 Q264.4688,59.2813 265.3125,59.4844 Q266.1719,59.6719 267.0156,60.0625 L267.0156,62.4531 Q266.2344,61.8906 265.4063,61.6094 Q264.5938,61.3125 263.7969,61.3125 Q262.9219,61.3125 262.4375,61.6719 Q261.9688,62.0313 261.9688,62.6875 Q261.9688,63.2031 262.3125,63.5469 Q262.6563,63.875 263.75,64.2813 L264.8125,64.6875 Q266.2969,65.2344 267,66.1406 Q267.7188,67.0469 267.7188,68.4219 Q267.7188,70.2969 266.6094,71.2188 Q265.5,72.1406 263.25,72.1406 Q262.3281,72.1406 261.4063,71.9219 Q260.4844,71.7031 259.625,71.2813 L259.625,68.75 Q260.5938,69.4375 261.5156,69.7813 Q262.4375,70.125 263.3281,70.125 Q264.2344,70.125 264.7344,69.7188 Q265.2344,69.2969 265.2344,68.5625 Q265.2344,68 264.8906,67.5938 Q264.5625,67.1719 263.9375,66.9219 L262.7344,66.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="283.75" y="70.0605">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="607" y1="81.9063" y2="81.9063"/><ellipse cx="17" cy="92.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="26" y="96.1167">next : urt_service_t*</text><ellipse cx="17" cy="105.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="26" y="108.9214">id : urt_serviceid_t</text><ellipse cx="17" cy="118.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="26" y="121.7261">lock : urt_osMutex_t</text><ellipse cx="17" cy="131.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="26" y="134.5308">callback : urt_servicefunc_t*</text><ellipse cx="17" cy="160.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="26" y="164.1401">sumDurations : uint64_t</text><ellipse cx="17" cy="173.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="26" y="176.9448">numCalls : uint64_t</text><ellipse cx="17" cy="186.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="26" y="189.7495">numTimeouts : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="211" y1="147.5273" y2="147.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="211" y="150.8354">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="403" x2="607" y1="147.5273" y2="147.5273"/><ellipse cx="17" cy="216.1484" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="26" y="219.3589">minDuration : urt_delay_t</text><ellipse cx="17" cy="228.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="26" y="232.1636">maxDuration : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="80" y1="202.7461" y2="202.7461"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="80" y="206.0542">URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="534" x2="607" y1="202.7461" y2="202.7461"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="607" y1="238.7578" y2="238.7578"/><ellipse cx="17" cy="249.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="576" x="26" y="252.9683">urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t</text><ellipse cx="17" cy="262.5625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="557" x="26" y="265.7729">urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[05f2c35569573d3273c65d3342945557]
 reverse link urt_service_t to urt_service_t--><path d="M620.6339,137.6478 C634.7535,143.5599 643,151.3127 643,160.9063 C643,173.0645 629.7552,182.2663 608.0965,188.5116 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="608.0965,133.301,612.4551,139.0457,619.4344,137.2319,615.0758,131.4872,608.0965,133.301" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="616.2006" y="129.431">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="616.4131" y="186.1081">0..1</text><!--MD5=[586e61fedafd54ae7ea71cebd9f9032a]
-reverse link urt_service_t to urt_servicefunc_t--><path d="M307,285.053 C307,302.3835 307,318.7364 307,331.9027 " fill="none" id="urt_service_t&lt;-urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="307,271.971,303,277.971,307,283.971,311,277.971,307,271.971" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="298.7188" y="292.3629">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="280.375" y="320.6923">0..1</text><!--MD5=[59be54564a027488cb1cee1676c8d625]
+reverse link urt_service_t to urt_servicefunc_t--><path d="M307,285.053 C307,302.3835 307,318.7364 307,331.9027 " fill="none" id="urt_service_t&lt;-urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="307,271.971,303,277.971,307,283.971,311,277.971,307,271.971" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="298.7188" y="292.3629">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="280.375" y="320.6923">0..1</text><!--MD5=[bd05aa4eefabf500ab2962eb33a24378]
 @startuml
 
 title **µRtWare**\nRemote Procedure Call System
@@ -28,11 +28,11 @@ title **µRtWare**\nRemote Procedure Call System
   + {field} id : urt_serviceid_t
   + {field} lock : urt_osMutex_t
   + {field} callback : urt_servicefunc_t*
-  .. URT_CFG_RPC_PROFLING == true ..
+  .. URT_CFG_RPC_PROFILING == true ..
   + {field} sumDurations : uint64_t
   + {field} numCalls : uint64_t
   + {field} numTimeouts : uint64_t
-  .. URT_CFG_RPC_PROFILING == true || URT_CFG_RPC_QOS_JITTERCHECKS == true ..
+  .. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true  ..
   + {field} minDuration : urt_delay_t
   + {field} maxDuration : urt_delay_t
   __
diff --git a/doc/classdiagrams/rpc.uml b/doc/classdiagrams/rpc.uml
index 6493c5b..5888e43 100644
--- a/doc/classdiagrams/rpc.uml
+++ b/doc/classdiagrams/rpc.uml
@@ -46,14 +46,14 @@ $structure("urt_service_t") {
   + {field} lock : urt_osMutex_t
     'Callback function to be executed by the service.
   + {field} callback : urt_servicefunc_t*
-  .. URT_CFG_RPC_PROFLING == true ..
+  .. URT_CFG_RPC_PROFILING == true ..
     'Sum of all durations.
   + {field} sumDurations : uint64_t
     'Number of executed calls.
   + {field} numCalls : uint64_t
     'Number of failed calls due to timeout.
   + {field} numTimeouts : uint64_t
-  .. URT_CFG_RPC_PROFILING == true || URT_CFG_RPC_QOS_JITTERCHECKS == true ..
+  .. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true  ..
     'Minimum duration ever detected (to calculate jitter).
   + {field} minDuration : urt_delay_t
     'Maximum duration ever detected (to calculate jitter).
diff --git a/doc/classdiagrams/urtware.svg b/doc/classdiagrams/urtware.svg
index 97e17be..b53539b 100644
--- a/doc/classdiagrams/urtware.svg
+++ b/doc/classdiagrams/urtware.svg
@@ -1,56 +1,49 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1429px" preserveAspectRatio="none" style="width:4669px;height:1429px;" version="1.1" viewBox="0 0 4669 1429" width="4669px" zoomAndPan="magnify"><defs><filter height="300%" id="f1b93bo83bsyl7" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="2292.5" y="16.708">µRtWare</text><!--MD5=[b9de0669a29c7bc934fd916b09c39491]
-cluster node--><rect fill="#FFFFFF" filter="url(#f1b93bo83bsyl7)" height="440.5" style="stroke: #000000; stroke-width: 1.5;" width="1138" x="2854" y="392.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="3403" y="407.9482">node</text><!--MD5=[d74e2ef346f73688f9378f6d3d42598c]
-cluster Publish-Subscribe System--><polygon fill="#FFFFFF" filter="url(#f1b93bo83bsyl7)" points="14,302.9531,24,292.9531,2846,292.9531,2846,1407.9531,2836,1417.9531,14,1417.9531,14,302.9531" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="2836" x2="2845" y1="302.9531" y2="293.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="14" x2="2836" y1="302.9531" y2="302.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="2836" x2="2836" y1="302.9531" y2="1417.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="205" x="1323.5" y="318.9482">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
-cluster subscriber--><rect fill="#FFFFFF" filter="url(#f1b93bo83bsyl7)" height="1085" style="stroke: #000000; stroke-width: 1.5;" width="1611" x="1227" y="324.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="1990" y="339.9482">subscriber</text><!--MD5=[94ad99421f5a0f525bc1c13a3777c25e]
-cluster real-time constraint data--><rect fill="#FFFFFF" filter="url(#f1b93bo83bsyl7)" height="671" style="stroke: #000000; stroke-width: 1.5;" width="1595" x="1235" y="730.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="194" x="1935.5" y="745.9482">real-time constraint data</text><!--MD5=[57c3116dbac3d3a2ea35fece1cdc00f4]
-cluster SRT data--><rect fill="#FFFFFF" filter="url(#f1b93bo83bsyl7)" height="283" style="stroke: #000000; stroke-width: 1.5;" width="390" x="1912" y="1110.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="2072.5" y="1125.9482">SRT data</text><!--MD5=[810d0f07e53ef611b6d803ef30301147]
-cluster Remote Procedure Call System--><polygon fill="#FFFFFF" filter="url(#f1b93bo83bsyl7)" points="4011,374.9531,4021,364.9531,4647,364.9531,4647,823.4531,4637,833.4531,4011,833.4531,4011,374.9531" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="4637" x2="4646" y1="374.9531" y2="365.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="4011" x2="4637" y1="374.9531" y2="374.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="4637" x2="4637" y1="374.9531" y2="833.4531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="244" x="4203" y="390.9482">Remote Procedure Call System</text><!--MD5=[a7dea26996a1231aa68629b332780450]
-class urt_nodeSetupCallback_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="60.8047" id="urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="456" x="2870" y="764.4531"/><ellipse cx="3015.75" cy="780.4531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3016.5938,787.2031 L3014.1406,787.2031 L3014.1406,776.9531 L3011,776.9531 L3011,774.8125 L3019.7344,774.8125 L3019.7344,776.9531 L3016.5938,776.9531 L3016.5938,787.2031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="3036.25" y="784.6074">urt_nodeSetupCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2871" x2="3325" y1="796.4531" y2="796.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2871" x2="3325" y1="804.4531" y2="804.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="444" x="2876" y="818.6636">urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t</text><!--MD5=[7f869e17e281b89d59a4c09e0f22c3af]
-class urt_nodeLoopCallback_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="60.8047" id="urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="614" x="3361" y="764.4531"/><ellipse cx="3589.25" cy="780.4531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3590.0938,787.2031 L3587.6406,787.2031 L3587.6406,776.9531 L3584.5,776.9531 L3584.5,774.8125 L3593.2344,774.8125 L3593.2344,776.9531 L3590.0938,776.9531 L3590.0938,787.2031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="3609.75" y="784.6074">urt_nodeLoopCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3362" x2="3974" y1="796.4531" y2="796.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3362" x2="3974" y1="804.4531" y2="804.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="602" x="3367" y="818.6636">urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t</text><!--MD5=[d2563153d77472384a15c07b815d639f]
-class urt_node_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="176.0469" id="urt_node_t" style="stroke: #A80036; stroke-width: 1.5;" width="1104" x="2862" y="419.9531"/><ellipse cx="3376.25" cy="435.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3375.7344,436.5156 Q3373.875,435.8125 3373.2188,435.0469 Q3372.5781,434.2656 3372.5781,432.9531 Q3372.5781,431.2656 3373.6563,430.2969 Q3374.7344,429.3281 3376.6094,429.3281 Q3377.4688,429.3281 3378.3125,429.5313 Q3379.1719,429.7188 3380.0156,430.1094 L3380.0156,432.5 Q3379.2344,431.9375 3378.4063,431.6563 Q3377.5938,431.3594 3376.7969,431.3594 Q3375.9219,431.3594 3375.4375,431.7188 Q3374.9688,432.0781 3374.9688,432.7344 Q3374.9688,433.25 3375.3125,433.5938 Q3375.6563,433.9219 3376.75,434.3281 L3377.8125,434.7344 Q3379.2969,435.2813 3380,436.1875 Q3380.7188,437.0938 3380.7188,438.4688 Q3380.7188,440.3438 3379.6094,441.2656 Q3378.5,442.1875 3376.25,442.1875 Q3375.3281,442.1875 3374.4063,441.9688 Q3373.4844,441.75 3372.625,441.3281 L3372.625,438.7969 Q3373.5938,439.4844 3374.5156,439.8281 Q3375.4375,440.1719 3376.3281,440.1719 Q3377.2344,440.1719 3377.7344,439.7656 Q3378.2344,439.3438 3378.2344,438.6094 Q3378.2344,438.0469 3377.8906,437.6406 Q3377.5625,437.2188 3376.9375,436.9688 L3375.7344,436.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="67" x="3396.75" y="440.1074">urt_node_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2863" x2="3965" y1="451.9531" y2="451.9531"/><ellipse cx="2873" cy="462.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="2882" y="466.1636">next : urt_node_t*</text><ellipse cx="2873" cy="475.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="2882" y="478.9683">thread : urt_osThread_t*</text><ellipse cx="2873" cy="488.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="2882" y="491.7729">setupcallback : urt_nodeSetupCallback_t*</text><ellipse cx="2873" cy="501.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="117" x="2882" y="504.5776">setupparams : void*</text><ellipse cx="2873" cy="514.1719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="221" x="2882" y="517.3823">loopcallback : urt_nodeLoopCallback_t*</text><ellipse cx="2873" cy="526.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="2882" y="530.187">loopparams : void*</text><ellipse cx="2873" cy="539.7813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="2882" y="542.9917">stage : urt_nodestage_t</text><ellipse cx="2873" cy="552.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="178" x="2882" y="555.7964">listener : urt_osEventListener_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2863" x2="3965" y1="562.3906" y2="562.3906"/><rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="2870" y="570.3906"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="179" x="2882" y="576.6011">_main : urt_osThreadFunction_t</text><ellipse cx="2873" cy="586.1953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1078" x="2882" y="589.4058">urtNodeInit (node : urt_node_t*, stacksize : size_t, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t</text><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
-class urt_message_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="141.6328" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="750.5" y="723.9531"/><ellipse cx="925.75" cy="739.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M925.2344,740.5156 Q923.375,739.8125 922.7188,739.0469 Q922.0781,738.2656 922.0781,736.9531 Q922.0781,735.2656 923.1563,734.2969 Q924.2344,733.3281 926.1094,733.3281 Q926.9688,733.3281 927.8125,733.5313 Q928.6719,733.7188 929.5156,734.1094 L929.5156,736.5 Q928.7344,735.9375 927.9063,735.6563 Q927.0938,735.3594 926.2969,735.3594 Q925.4219,735.3594 924.9375,735.7188 Q924.4688,736.0781 924.4688,736.7344 Q924.4688,737.25 924.8125,737.5938 Q925.1563,737.9219 926.25,738.3281 L927.3125,738.7344 Q928.7969,739.2813 929.5,740.1875 Q930.2188,741.0938 930.2188,742.4688 Q930.2188,744.3438 929.1094,745.2656 Q928,746.1875 925.75,746.1875 Q924.8281,746.1875 923.9063,745.9688 Q922.9844,745.75 922.125,745.3281 L922.125,742.7969 Q923.0938,743.4844 924.0156,743.8281 Q924.9375,744.1719 925.8281,744.1719 Q926.7344,744.1719 927.2344,743.7656 Q927.7344,743.3438 927.7344,742.6094 Q927.7344,742.0469 927.3906,741.6406 Q927.0625,741.2188 926.4375,740.9688 L925.2344,740.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="946.25" y="744.1074">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="751.5" x2="1200.5" y1="755.9531" y2="755.9531"/><ellipse cx="761.5" cy="766.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="770.5" y="770.1636">next : urt_message_t*</text><ellipse cx="761.5" cy="779.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="770.5" y="782.9683">payload : void*</text><ellipse cx="761.5" cy="792.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="770.5" y="795.7729">originTime : urt_osTime_t</text><ellipse cx="761.5" cy="805.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="770.5" y="808.5776">numHrtConsumersLeft : unsigned int</text><ellipse cx="761.5" cy="834.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="770.5" y="838.187">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="751.5" x2="867.5" y1="821.5742" y2="821.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="867.5" y="824.8823">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1084.5" x2="1200.5" y1="821.5742" y2="821.5742"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="751.5" x2="1200.5" y1="844.7813" y2="844.7813"/><ellipse cx="761.5" cy="855.7813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="425" x="770.5" y="858.9917">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
-class urt_publisher_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="22.5" y="443.4531"/><ellipse cx="351.25" cy="459.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M350.7344,460.0156 Q348.875,459.3125 348.2188,458.5469 Q347.5781,457.7656 347.5781,456.4531 Q347.5781,454.7656 348.6563,453.7969 Q349.7344,452.8281 351.6094,452.8281 Q352.4688,452.8281 353.3125,453.0313 Q354.1719,453.2188 355.0156,453.6094 L355.0156,456 Q354.2344,455.4375 353.4063,455.1563 Q352.5938,454.8594 351.7969,454.8594 Q350.9219,454.8594 350.4375,455.2188 Q349.9688,455.5781 349.9688,456.2344 Q349.9688,456.75 350.3125,457.0938 Q350.6563,457.4219 351.75,457.8281 L352.8125,458.2344 Q354.2969,458.7813 355,459.6875 Q355.7188,460.5938 355.7188,461.9688 Q355.7188,463.8438 354.6094,464.7656 Q353.5,465.6875 351.25,465.6875 Q350.3281,465.6875 349.4063,465.4688 Q348.4844,465.25 347.625,464.8281 L347.625,462.2969 Q348.5938,462.9844 349.5156,463.3281 Q350.4375,463.6719 351.3281,463.6719 Q352.2344,463.6719 352.7344,463.2656 Q353.2344,462.8438 353.2344,462.1094 Q353.2344,461.5469 352.8906,461.1406 Q352.5625,460.7188 351.9375,460.4688 L350.7344,460.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="371.75" y="463.6074">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="23.5" x2="780.5" y1="475.4531" y2="475.4531"/><ellipse cx="33.5" cy="486.4531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="42.5" y="489.6636">topic : urt_topic_t*</text><ellipse cx="33.5" cy="516.0625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="42.5" y="519.2729">publishAttempts : uint64_t</text><ellipse cx="33.5" cy="528.8672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="42.5" y="532.0776">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="23.5" x2="320" y1="502.6602" y2="502.6602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="164" x="320" y="505.9683">URT_CFG_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="484" x2="780.5" y1="502.6602" y2="502.6602"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="23.5" x2="780.5" y1="538.6719" y2="538.6719"/><ellipse cx="33.5" cy="549.6719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="617" x="42.5" y="552.8823">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="33.5" cy="562.4766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="733" x="42.5" y="565.687">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
-class urt_topic_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="248.0703" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="817" y="383.9531"/><ellipse cx="971.75" cy="399.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M971.2344,400.5156 Q969.375,399.8125 968.7188,399.0469 Q968.0781,398.2656 968.0781,396.9531 Q968.0781,395.2656 969.1563,394.2969 Q970.2344,393.3281 972.1094,393.3281 Q972.9688,393.3281 973.8125,393.5313 Q974.6719,393.7188 975.5156,394.1094 L975.5156,396.5 Q974.7344,395.9375 973.9063,395.6563 Q973.0938,395.3594 972.2969,395.3594 Q971.4219,395.3594 970.9375,395.7188 Q970.4688,396.0781 970.4688,396.7344 Q970.4688,397.25 970.8125,397.5938 Q971.1563,397.9219 972.25,398.3281 L973.3125,398.7344 Q974.7969,399.2813 975.5,400.1875 Q976.2188,401.0938 976.2188,402.4688 Q976.2188,404.3438 975.1094,405.2656 Q974,406.1875 971.75,406.1875 Q970.8281,406.1875 969.9063,405.9688 Q968.9844,405.75 968.125,405.3281 L968.125,402.7969 Q969.0938,403.4844 970.0156,403.8281 Q970.9375,404.1719 971.8281,404.1719 Q972.7344,404.1719 973.2344,403.7656 Q973.7344,403.3438 973.7344,402.6094 Q973.7344,402.0469 973.3906,401.6406 Q973.0625,401.2188 972.4375,400.9688 L971.2344,400.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="992.25" y="404.1074">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="818" x2="1200" y1="415.9531" y2="415.9531"/><ellipse cx="828" cy="426.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="837" y="430.1636">next : urt_topic_t*</text><ellipse cx="828" cy="439.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="837" y="442.9683">id : urt_topicid_t</text><ellipse cx="828" cy="452.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="837" y="455.7729">lock : urt_osMutex_t</text><ellipse cx="828" cy="465.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="837" y="468.5776">evtSource : urt_osEventSource_t</text><ellipse cx="828" cy="478.1719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="837" y="481.3823">numHrtSubscribers : unsigned int</text><ellipse cx="828" cy="490.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="837" y="494.187">hrtSubscribers : urt_subscriber_t*</text><ellipse cx="828" cy="503.7813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="837" y="506.9917">hrtReleased : urt_osCondvar_t</text><ellipse cx="828" cy="516.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="837" y="519.7964">mandatoryMessage : urt_message_t</text><ellipse cx="828" cy="529.3906" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="837" y="532.6011">latestMessage : urt_message_t*</text><ellipse cx="828" cy="559" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="837" y="562.2104">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="818" x2="876.5" y1="545.5977" y2="545.5977"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="876.5" y="548.9058">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1141.5" x2="1200" y1="545.5977" y2="545.5977"/><ellipse cx="828" cy="588.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="837" y="591.8198">numDiscardedMessages : uint64_t</text><ellipse cx="828" cy="601.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="837" y="604.6245">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="818" x2="900.5" y1="575.207" y2="575.207"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="900.5" y="578.5151">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1117.5" x2="1200" y1="575.207" y2="575.207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="818" x2="1200" y1="611.2188" y2="611.2188"/><ellipse cx="828" cy="622.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="358" x="837" y="625.4292">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--MD5=[ab7cf431813e3be5d474948fd959cdbf]
-class urt_subscriber_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="312.0938" id="urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1068" x="1254" y="351.9531"/><ellipse cx="1733.25" cy="367.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1732.7344,368.5156 Q1730.875,367.8125 1730.2188,367.0469 Q1729.5781,366.2656 1729.5781,364.9531 Q1729.5781,363.2656 1730.6563,362.2969 Q1731.7344,361.3281 1733.6094,361.3281 Q1734.4688,361.3281 1735.3125,361.5313 Q1736.1719,361.7188 1737.0156,362.1094 L1737.0156,364.5 Q1736.2344,363.9375 1735.4063,363.6563 Q1734.5938,363.3594 1733.7969,363.3594 Q1732.9219,363.3594 1732.4375,363.7188 Q1731.9688,364.0781 1731.9688,364.7344 Q1731.9688,365.25 1732.3125,365.5938 Q1732.6563,365.9219 1733.75,366.3281 L1734.8125,366.7344 Q1736.2969,367.2813 1737,368.1875 Q1737.7188,369.0938 1737.7188,370.4688 Q1737.7188,372.3438 1736.6094,373.2656 Q1735.5,374.1875 1733.25,374.1875 Q1732.3281,374.1875 1731.4063,373.9688 Q1730.4844,373.75 1729.625,373.3281 L1729.625,370.7969 Q1730.5938,371.4844 1731.5156,371.8281 Q1732.4375,372.1719 1733.3281,372.1719 Q1734.2344,372.1719 1734.7344,371.7656 Q1735.2344,371.3438 1735.2344,370.6094 Q1735.2344,370.0469 1734.8906,369.6406 Q1734.5625,369.2188 1733.9375,368.9688 L1732.7344,368.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="1753.75" y="372.1074">urt_subscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255" x2="2321" y1="383.9531" y2="383.9531"/><ellipse cx="1265" cy="394.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="1274" y="398.1636">topic : urt_topic_t*</text><ellipse cx="1265" cy="407.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="1274" y="410.9683">evtListener : urt_osEventListener_t</text><ellipse cx="1265" cy="420.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="1274" y="423.7729">rtdata : urt_rtdata_t</text><ellipse cx="1265" cy="433.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="1274" y="436.5776">lastMessage : urt_message_t*</text><ellipse cx="1265" cy="446.1719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="1274" y="449.3823">lastMessageTime : urt_osTime_t</text><ellipse cx="1265" cy="475.7813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="1274" y="478.9917">sumLatencies : uint64_t</text><ellipse cx="1265" cy="488.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="1274" y="491.7964">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1255" x2="1679.5" y1="462.3789" y2="462.3789"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1679.5" y="465.687">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1896.5" x2="2321" y1="462.3789" y2="462.3789"/><ellipse cx="1265" cy="518.1953" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="1274" y="521.4058">minLatency : urt_delay_t</text><ellipse cx="1265" cy="531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1274" y="534.2104">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1255" x2="1679.5" y1="504.793" y2="504.793"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1679.5" y="508.1011">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1896.5" x2="2321" y1="504.793" y2="504.793"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255" x2="2321" y1="540.8047" y2="540.8047"/><ellipse cx="1265" cy="551.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="359" x="1274" y="555.0151">urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="1265" cy="564.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1042" x="1274" y="567.8198">urtSubscriberSubscribeHrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="1265" cy="577.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1040" x="1274" y="580.6245">urtSubscriberSubscribeFrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="1265" cy="590.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1042" x="1274" y="593.4292">urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t</text><ellipse cx="1265" cy="603.0234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="699" x="1274" y="606.2339">urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="1265" cy="615.8281" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="413" x="1274" y="619.0386">urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="1265" cy="628.6328" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="752" x="1274" y="631.8433">urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1265" cy="641.4375" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="762" x="1274" y="644.6479">urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1265" cy="654.2422" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="537" x="1274" y="657.4526">urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float</text><!--MD5=[82a1b6b26b12edcbd86fa16935c3353e]
-class urt_rtdata_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="73.6094" id="urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="1672.5" y="757.9531"/><ellipse cx="1746.75" cy="773.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1746.2344,774.5156 Q1744.375,773.8125 1743.7188,773.0469 Q1743.0781,772.2656 1743.0781,770.9531 Q1743.0781,769.2656 1744.1563,768.2969 Q1745.2344,767.3281 1747.1094,767.3281 Q1747.9688,767.3281 1748.8125,767.5313 Q1749.6719,767.7188 1750.5156,768.1094 L1750.5156,770.5 Q1749.7344,769.9375 1748.9063,769.6563 Q1748.0938,769.3594 1747.2969,769.3594 Q1746.4219,769.3594 1745.9375,769.7188 Q1745.4688,770.0781 1745.4688,770.7344 Q1745.4688,771.25 1745.8125,771.5938 Q1746.1563,771.9219 1747.25,772.3281 L1748.3125,772.7344 Q1749.7969,773.2813 1750.5,774.1875 Q1751.2188,775.0938 1751.2188,776.4688 Q1751.2188,778.3438 1750.1094,779.2656 Q1749,780.1875 1746.75,780.1875 Q1745.8281,780.1875 1744.9063,779.9688 Q1743.9844,779.75 1743.125,779.3281 L1743.125,776.7969 Q1744.0938,777.4844 1745.0156,777.8281 Q1745.9375,778.1719 1746.8281,778.1719 Q1747.7344,778.1719 1748.2344,777.7656 Q1748.7344,777.3438 1748.7344,776.6094 Q1748.7344,776.0469 1748.3906,775.6406 Q1748.0625,775.2188 1747.4375,774.9688 L1746.2344,774.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="1767.25" y="778.1074">urt_rtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1673.5" x2="1902.5" y1="789.9531" y2="789.9531"/><ellipse cx="1683.5" cy="800.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="1692.5" y="804.1636">class : urt_rtconstraintclass_t</text><ellipse cx="1683.5" cy="813.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="205" x="1692.5" y="816.9683">params : urt_rtconstraintsparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1673.5" x2="1902.5" y1="823.5625" y2="823.5625"/><!--MD5=[4bd59d3bc50b317c5523bafe6b73a042]
-class urt_rtclass_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="99.2188" id="urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="1648.5" y="925.9531"/><ellipse cx="1683.3" cy="941.9531" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1687.4094,947.9531 L1679.6906,947.9531 L1679.6906,935.5625 L1687.4094,935.5625 L1687.4094,937.7188 L1682.1438,937.7188 L1682.1438,940.3906 L1686.9094,940.3906 L1686.9094,942.5469 L1682.1438,942.5469 L1682.1438,945.7969 L1687.4094,945.7969 L1687.4094,947.9531 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="1701.7" y="946.1074">urt_rtclass_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1649.5" x2="1800.5" y1="957.9531" y2="957.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="1654.5" y="972.1636">URT_RTCLASS_HARD = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="1654.5" y="984.9683">URT_RTCLASS_FIRM = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="1654.5" y="997.7729">URT_RTCLASS_SOFT = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1654.5" y="1010.5776">URT_RTCLASS_NONE = 3</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1649.5" x2="1800.5" y1="1017.1719" y2="1017.1719"/><!--MD5=[7b207cc31d63d27c526f257c1fda2512]
-class urt_rtclassdata_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="99.2188" id="urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="1837" y="925.9531"/><ellipse cx="1855.6" cy="941.9531" fill="#7FCF7F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1851.475,943.875 L1851.475,936.0625 L1853.9281,936.0625 L1853.9281,944.5 Q1853.9281,945.4219 1854.3969,945.9531 Q1854.8813,946.4844 1855.7094,946.4844 Q1856.5531,946.4844 1857.0219,945.9531 Q1857.4906,945.4219 1857.4906,944.5 L1857.4906,936.0625 L1859.9438,936.0625 L1859.9438,943.875 Q1859.9438,946.4063 1858.9438,947.5469 Q1857.9438,948.6875 1855.7094,948.6875 Q1853.4906,948.6875 1852.475,947.5469 Q1851.475,946.4063 1851.475,943.875 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="1870.4" y="946.1074">urt_rtclassdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1838" x2="1982" y1="957.9531" y2="957.9531"/><ellipse cx="1848" cy="968.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="1857" y="972.1636">hrt : urt_hrtparams_t</text><ellipse cx="1848" cy="981.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="1857" y="984.9683">frt : urt_frtparams_t</text><ellipse cx="1848" cy="994.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="1857" y="997.7729">srt : urt_srtparans_t</text><ellipse cx="1848" cy="1007.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="1857" y="1010.5776">nrt : urt_nrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1838" x2="1982" y1="1017.1719" y2="1017.1719"/><!--MD5=[c57ade65ef97beb73587233399d5250a]
-class urt_hrtdata_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="180.0469" id="urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="512" x="2310" y="1084.9531"/><ellipse cx="2520.75" cy="1100.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2520.2344,1101.5156 Q2518.375,1100.8125 2517.7188,1100.0469 Q2517.0781,1099.2656 2517.0781,1097.9531 Q2517.0781,1096.2656 2518.1563,1095.2969 Q2519.2344,1094.3281 2521.1094,1094.3281 Q2521.9688,1094.3281 2522.8125,1094.5313 Q2523.6719,1094.7188 2524.5156,1095.1094 L2524.5156,1097.5 Q2523.7344,1096.9375 2522.9063,1096.6563 Q2522.0938,1096.3594 2521.2969,1096.3594 Q2520.4219,1096.3594 2519.9375,1096.7188 Q2519.4688,1097.0781 2519.4688,1097.7344 Q2519.4688,1098.25 2519.8125,1098.5938 Q2520.1563,1098.9219 2521.25,1099.3281 L2522.3125,1099.7344 Q2523.7969,1100.2813 2524.5,1101.1875 Q2525.2188,1102.0938 2525.2188,1103.4688 Q2525.2188,1105.3438 2524.1094,1106.2656 Q2523,1107.1875 2520.75,1107.1875 Q2519.8281,1107.1875 2518.9063,1106.9688 Q2517.9844,1106.75 2517.125,1106.3281 L2517.125,1103.7969 Q2518.0938,1104.4844 2519.0156,1104.8281 Q2519.9375,1105.1719 2520.8281,1105.1719 Q2521.7344,1105.1719 2522.2344,1104.7656 Q2522.7344,1104.3438 2522.7344,1103.6094 Q2522.7344,1103.0469 2522.3906,1102.6406 Q2522.0625,1102.2188 2521.4375,1101.9688 L2520.2344,1101.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="2541.25" y="1105.1074">urt_hrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2311" x2="2821" y1="1116.9531" y2="1116.9531"/><ellipse cx="2321" cy="1127.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="2330" y="1131.1636">next : urt_subscriber_t*</text><ellipse cx="2321" cy="1157.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="2330" y="1160.7729">qosDeadlineTimer : urt_osTimer_t</text><ellipse cx="2321" cy="1170.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="2330" y="1173.5776">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2311" x2="2420.5" y1="1144.1602" y2="1144.1602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="2420.5" y="1147.4683">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2711.5" x2="2821" y1="1144.1602" y2="1144.1602"/><ellipse cx="2321" cy="1199.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="2330" y="1203.187">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2311" x2="2433.5" y1="1186.5742" y2="1186.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="2433.5" y="1189.8823">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2698.5" x2="2821" y1="1186.5742" y2="1186.5742"/><ellipse cx="2321" cy="1229.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="2330" y="1232.7964">maxJitter : urt_delay_t</text><ellipse cx="2321" cy="1242.3906" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="2330" y="1245.6011">minLatency : urt_delay_t</text><ellipse cx="2321" cy="1255.1953" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="2330" y="1258.4058">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2311" x2="2314" y1="1216.1836" y2="1216.1836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="2314" y="1219.4917">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2818" x2="2821" y1="1216.1836" y2="1216.1836"/><!--MD5=[72774668522d2286013bfbc0db723956]
-class urt_frtdata_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="154.4375" id="urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="512" x="1243" y="1097.9531"/><ellipse cx="1455.75" cy="1113.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1455.2344,1114.5156 Q1453.375,1113.8125 1452.7188,1113.0469 Q1452.0781,1112.2656 1452.0781,1110.9531 Q1452.0781,1109.2656 1453.1563,1108.2969 Q1454.2344,1107.3281 1456.1094,1107.3281 Q1456.9688,1107.3281 1457.8125,1107.5313 Q1458.6719,1107.7188 1459.5156,1108.1094 L1459.5156,1110.5 Q1458.7344,1109.9375 1457.9063,1109.6563 Q1457.0938,1109.3594 1456.2969,1109.3594 Q1455.4219,1109.3594 1454.9375,1109.7188 Q1454.4688,1110.0781 1454.4688,1110.7344 Q1454.4688,1111.25 1454.8125,1111.5938 Q1455.1563,1111.9219 1456.25,1112.3281 L1457.3125,1112.7344 Q1458.7969,1113.2813 1459.5,1114.1875 Q1460.2188,1115.0938 1460.2188,1116.4688 Q1460.2188,1118.3438 1459.1094,1119.2656 Q1458,1120.1875 1455.75,1120.1875 Q1454.8281,1120.1875 1453.9063,1119.9688 Q1452.9844,1119.75 1452.125,1119.3281 L1452.125,1116.7969 Q1453.0938,1117.4844 1454.0156,1117.8281 Q1454.9375,1118.1719 1455.8281,1118.1719 Q1456.7344,1118.1719 1457.2344,1117.7656 Q1457.7344,1117.3438 1457.7344,1116.6094 Q1457.7344,1116.0469 1457.3906,1115.6406 Q1457.0625,1115.2188 1456.4375,1114.9688 L1455.2344,1114.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="78" x="1476.25" y="1118.1074">urt_frtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1244" x2="1754" y1="1129.9531" y2="1129.9531"/><ellipse cx="1254" cy="1157.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="1263" y="1160.9683">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1244" x2="1353.5" y1="1144.3555" y2="1144.3555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="1353.5" y="1147.6636">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1644.5" x2="1754" y1="1144.3555" y2="1144.3555"/><ellipse cx="1254" cy="1187.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="1263" y="1190.5776">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1244" x2="1366.5" y1="1173.9648" y2="1173.9648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="1366.5" y="1177.2729">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1631.5" x2="1754" y1="1173.9648" y2="1173.9648"/><ellipse cx="1254" cy="1216.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="1263" y="1220.187">maxJitter : urt_delay_t</text><ellipse cx="1254" cy="1229.7813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="1263" y="1232.9917">minLatency : urt_delay_t</text><ellipse cx="1254" cy="1242.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1263" y="1245.7964">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1244" x2="1247" y1="1203.5742" y2="1203.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="1247" y="1206.8823">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1751" x2="1754" y1="1203.5742" y2="1203.5742"/><!--MD5=[ca63c4d42025d7ce195746a6a8d32f3e]
-class urt_nrtdata_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="48" id="urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="1790" y="1150.9531"/><ellipse cx="1805" cy="1166.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1804.4844,1167.5156 Q1802.625,1166.8125 1801.9688,1166.0469 Q1801.3281,1165.2656 1801.3281,1163.9531 Q1801.3281,1162.2656 1802.4063,1161.2969 Q1803.4844,1160.3281 1805.3594,1160.3281 Q1806.2188,1160.3281 1807.0625,1160.5313 Q1807.9219,1160.7188 1808.7656,1161.1094 L1808.7656,1163.5 Q1807.9844,1162.9375 1807.1563,1162.6563 Q1806.3438,1162.3594 1805.5469,1162.3594 Q1804.6719,1162.3594 1804.1875,1162.7188 Q1803.7188,1163.0781 1803.7188,1163.7344 Q1803.7188,1164.25 1804.0625,1164.5938 Q1804.4063,1164.9219 1805.5,1165.3281 L1806.5625,1165.7344 Q1808.0469,1166.2813 1808.75,1167.1875 Q1809.4688,1168.0938 1809.4688,1169.4688 Q1809.4688,1171.3438 1808.3594,1172.2656 Q1807.25,1173.1875 1805,1173.1875 Q1804.0781,1173.1875 1803.1563,1172.9688 Q1802.2344,1172.75 1801.375,1172.3281 L1801.375,1169.7969 Q1802.3438,1170.4844 1803.2656,1170.8281 Q1804.1875,1171.1719 1805.0781,1171.1719 Q1805.9844,1171.1719 1806.4844,1170.7656 Q1806.9844,1170.3438 1806.9844,1169.6094 Q1806.9844,1169.0469 1806.6406,1168.6406 Q1806.3125,1168.2188 1805.6875,1167.9688 L1804.4844,1167.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="1819" y="1171.1074">urt_nrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1791" x2="1903" y1="1182.9531" y2="1182.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1791" x2="1903" y1="1190.9531" y2="1190.9531"/><!--MD5=[fc7708c915a0148c667d62e1370980fd]
-class urt_srtusefulnessfunc_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="60.8047" id="urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="1920" y="1324.9531"/><ellipse cx="2029.25" cy="1340.9531" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2033.4844,1336.7188 L2028.2031,1336.7188 L2028.2031,1339.3906 L2033,1339.3906 L2033,1341.5469 L2028.2031,1341.5469 L2028.2031,1346.9531 L2025.7656,1346.9531 L2025.7656,1334.5625 L2033.4844,1334.5625 L2033.4844,1336.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="2049.75" y="1345.1074">urt_srtusefulnessfunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1921" x2="2293" y1="1356.9531" y2="1356.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1921" x2="2293" y1="1364.9531" y2="1364.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="362" x="1926" y="1379.1636">urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float</text><!--MD5=[4a2daf41193a31389d6311337c2a120f]
-class urt_srtdata_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="73.6094" id="urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="1958" y="1137.9531"/><ellipse cx="2042.25" cy="1153.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2041.7344,1154.5156 Q2039.875,1153.8125 2039.2188,1153.0469 Q2038.5781,1152.2656 2038.5781,1150.9531 Q2038.5781,1149.2656 2039.6563,1148.2969 Q2040.7344,1147.3281 2042.6094,1147.3281 Q2043.4688,1147.3281 2044.3125,1147.5313 Q2045.1719,1147.7188 2046.0156,1148.1094 L2046.0156,1150.5 Q2045.2344,1149.9375 2044.4063,1149.6563 Q2043.5938,1149.3594 2042.7969,1149.3594 Q2041.9219,1149.3594 2041.4375,1149.7188 Q2040.9688,1150.0781 2040.9688,1150.7344 Q2040.9688,1151.25 2041.3125,1151.5938 Q2041.6563,1151.9219 2042.75,1152.3281 L2043.8125,1152.7344 Q2045.2969,1153.2813 2046,1154.1875 Q2046.7188,1155.0938 2046.7188,1156.4688 Q2046.7188,1158.3438 2045.6094,1159.2656 Q2044.5,1160.1875 2042.25,1160.1875 Q2041.3281,1160.1875 2040.4063,1159.9688 Q2039.4844,1159.75 2038.625,1159.3281 L2038.625,1156.7969 Q2039.5938,1157.4844 2040.5156,1157.8281 Q2041.4375,1158.1719 2042.3281,1158.1719 Q2043.2344,1158.1719 2043.7344,1157.7656 Q2044.2344,1157.3438 2044.2344,1156.6094 Q2044.2344,1156.0469 2043.8906,1155.6406 Q2043.5625,1155.2188 2042.9375,1154.9688 L2041.7344,1154.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="2062.75" y="1158.1074">urt_srtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1959" x2="2215" y1="1169.9531" y2="1169.9531"/><ellipse cx="1969" cy="1180.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="232" x="1978" y="1184.1636">usefullnesscb : urt_srtusefulnessfunc_t*</text><ellipse cx="1969" cy="1193.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="1978" y="1196.9683">cbparams : void*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1959" x2="2215" y1="1203.5625" y2="1203.5625"/><!--MD5=[3226071078d8aeaa18fbafa5359ddee6]
-class urt_servicefunc_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="60.8047" id="urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="4094.5" y="764.4531"/><ellipse cx="4262.75" cy="780.4531" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4266.9844,776.2188 L4261.7031,776.2188 L4261.7031,778.8906 L4266.5,778.8906 L4266.5,781.0469 L4261.7031,781.0469 L4261.7031,786.4531 L4259.2656,786.4531 L4259.2656,774.0625 L4266.9844,774.0625 L4266.9844,776.2188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="4283.25" y="784.6074">urt_servicefunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4095.5" x2="4544.5" y1="796.4531" y2="796.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4095.5" x2="4544.5" y1="804.4531" y2="804.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="439" x="4100.5" y="818.6636">urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
-class urt_service_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="222.4609" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="602" x="4019" y="396.9531"/><ellipse cx="4276.25" cy="412.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4275.7344,413.5156 Q4273.875,412.8125 4273.2188,412.0469 Q4272.5781,411.2656 4272.5781,409.9531 Q4272.5781,408.2656 4273.6563,407.2969 Q4274.7344,406.3281 4276.6094,406.3281 Q4277.4688,406.3281 4278.3125,406.5313 Q4279.1719,406.7188 4280.0156,407.1094 L4280.0156,409.5 Q4279.2344,408.9375 4278.4063,408.6563 Q4277.5938,408.3594 4276.7969,408.3594 Q4275.9219,408.3594 4275.4375,408.7188 Q4274.9688,409.0781 4274.9688,409.7344 Q4274.9688,410.25 4275.3125,410.5938 Q4275.6563,410.9219 4276.75,411.3281 L4277.8125,411.7344 Q4279.2969,412.2813 4280,413.1875 Q4280.7188,414.0938 4280.7188,415.4688 Q4280.7188,417.3438 4279.6094,418.2656 Q4278.5,419.1875 4276.25,419.1875 Q4275.3281,419.1875 4274.4063,418.9688 Q4273.4844,418.75 4272.625,418.3281 L4272.625,415.7969 Q4273.5938,416.4844 4274.5156,416.8281 Q4275.4375,417.1719 4276.3281,417.1719 Q4277.2344,417.1719 4277.7344,416.7656 Q4278.2344,416.3438 4278.2344,415.6094 Q4278.2344,415.0469 4277.8906,414.6406 Q4277.5625,414.2188 4276.9375,413.9688 L4275.7344,413.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="4296.75" y="417.1074">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4020" x2="4620" y1="428.9531" y2="428.9531"/><ellipse cx="4030" cy="439.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="4039" y="443.1636">next : urt_service_t*</text><ellipse cx="4030" cy="452.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="4039" y="455.9683">id : urt_serviceid_t</text><ellipse cx="4030" cy="465.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="4039" y="468.7729">lock : urt_osMutex_t</text><ellipse cx="4030" cy="478.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="4039" y="481.5776">callback : urt_servicefunc_t*</text><ellipse cx="4030" cy="507.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="4039" y="511.187">sumDurations : uint64_t</text><ellipse cx="4030" cy="520.7813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="4039" y="523.9917">numCalls : uint64_t</text><ellipse cx="4030" cy="533.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="4039" y="536.7964">numTimeouts : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4020" x2="4225.5" y1="494.5742" y2="494.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="4225.5" y="497.8823">URT_CFG_RPC_PROFLING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4414.5" x2="4620" y1="494.5742" y2="494.5742"/><ellipse cx="4030" cy="563.1953" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="4039" y="566.4058">minDuration : urt_delay_t</text><ellipse cx="4030" cy="576" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="4039" y="579.2104">maxDuration : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4020" x2="4093" y1="549.793" y2="549.793"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="4093" y="553.1011">URT_CFG_RPC_PROFILING == true || URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4547" x2="4620" y1="549.793" y2="549.793"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4020" x2="4620" y1="585.8047" y2="585.8047"/><ellipse cx="4030" cy="596.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="576" x="4039" y="600.0151">urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t</text><ellipse cx="4030" cy="609.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="557" x="4039" y="612.8198">urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[89d25e87afdd75480e1ec2bd05524873]
-class urt_core_t--><rect fill="#FEFECE" filter="url(#f1b93bo83bsyl7)" height="256.0703" id="urt_core_t" style="stroke: #A80036; stroke-width: 1.5;" width="515" x="3156.5" y="28.9531"/><ellipse cx="3378.25" cy="44.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3377.7344,45.5156 Q3375.875,44.8125 3375.2188,44.0469 Q3374.5781,43.2656 3374.5781,41.9531 Q3374.5781,40.2656 3375.6563,39.2969 Q3376.7344,38.3281 3378.6094,38.3281 Q3379.4688,38.3281 3380.3125,38.5313 Q3381.1719,38.7188 3382.0156,39.1094 L3382.0156,41.5 Q3381.2344,40.9375 3380.4063,40.6563 Q3379.5938,40.3594 3378.7969,40.3594 Q3377.9219,40.3594 3377.4375,40.7188 Q3376.9688,41.0781 3376.9688,41.7344 Q3376.9688,42.25 3377.3125,42.5938 Q3377.6563,42.9219 3378.75,43.3281 L3379.8125,43.7344 Q3381.2969,44.2813 3382,45.1875 Q3382.7188,46.0938 3382.7188,47.4688 Q3382.7188,49.3438 3381.6094,50.2656 Q3380.5,51.1875 3378.25,51.1875 Q3377.3281,51.1875 3376.4063,50.9688 Q3375.4844,50.75 3374.625,50.3281 L3374.625,47.7969 Q3375.5938,48.4844 3376.5156,48.8281 Q3377.4375,49.1719 3378.3281,49.1719 Q3379.2344,49.1719 3379.7344,48.7656 Q3380.2344,48.3438 3380.2344,47.6094 Q3380.2344,47.0469 3379.8906,46.6406 Q3379.5625,46.2188 3378.9375,45.9688 L3377.7344,45.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="3398.75" y="49.1074">urt_core_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3157.5" x2="3670.5" y1="60.9531" y2="60.9531"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="3164.5" y="68.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="3176.5" y="75.1636">_nodes : urt_node_t*</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="3164.5" y="81.7578"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="192" x="3176.5" y="87.9683">_evtSource : urt_osEventSource_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="3164.5" y="94.5625"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="3176.5" y="100.7729">_lock : urt_osMutex_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="3164.5" y="124.1719"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="117" x="3176.5" y="130.3823">_topics : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3157.5" x2="3309" y1="113.7695" y2="113.7695"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="3309" y="117.0776">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3519" x2="3670.5" y1="113.7695" y2="113.7695"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="3164.5" y="153.7813"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="145" x="3176.5" y="159.9917">_services : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3157.5" x2="3321.5" y1="143.3789" y2="143.3789"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="3321.5" y="146.687">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3506.5" x2="3670.5" y1="143.3789" y2="143.3789"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3157.5" x2="3670.5" y1="166.5859" y2="166.5859"/><ellipse cx="3167.5" cy="177.5859" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="3176.5" y="180.7964">urtCoreInit (void) : urt_status_t</text><ellipse cx="3167.5" cy="190.3906" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="222" x="3176.5" y="193.6011">urtCoreStartNodes (void) : urt_status_t</text><ellipse cx="3167.5" cy="203.1953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="489" x="3176.5" y="206.4058">urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodestage_t) : urt_status_t</text><ellipse cx="3167.5" cy="216" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="3176.5" y="219.2104">urtCoreStopNodes (void) : urt_status_t</text><ellipse cx="3167.5" cy="245.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="299" x="3176.5" y="248.8198">urtCoreRetrieveTopic (id : urt_topicid_t) : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3157.5" x2="3309" y1="232.207" y2="232.207"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="3309" y="235.5151">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3519" x2="3670.5" y1="232.207" y2="232.207"/><ellipse cx="3167.5" cy="275.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="339" x="3176.5" y="278.4292">urtCoreRetrieveService (id : urt_serviceid_t) : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3157.5" x2="3321.5" y1="261.8164" y2="261.8164"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="3321.5" y="265.1245">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3506.5" x2="3670.5" y1="261.8164" y2="261.8164"/><!--MD5=[182342162f0b9b45ddce11acc6582c59]
-reverse link urt_node_t to urt_node_t--><path d="M3978.4188,481.5181 C3992.8891,488.8478 4001,497.6595 4001,507.9531 C4001,520.8706 3988.2271,531.4543 3966.1426,539.7044 " fill="none" id="urt_node_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3966.1426,476.2018,3970.0589,482.2568,3977.1544,480.9706,3973.2381,474.9156,3966.1426,476.2018" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3973.9634" y="472.7174">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3974.0759" y="537.113">0..1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
-reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M3295.1788,604.8507 C3232.3651,660.5148 3160.8212,726.6736 3123.358,764.4451 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3305.1785,596.013,3298.0338,596.9892,3296.1869,603.9598,3303.3316,602.9836,3305.1785,596.013" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3287.8355" y="615.997">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3120.0301" y="753.2337">1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
-reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M3325.6402,599.7277 C3265.0921,656.4038 3187.6817,725.5079 3140.3077,764.4451 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t-1" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3329.6035,596.013,3320.3016,599.2496,3325.9555,599.4324,3325.7727,605.0863,3329.6035,596.013" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b913f036db99e36b937989146817bd94]
-reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M3488.8046,606.2272 C3536.3459,661.6019 3595.523,726.9845 3632.7672,764.4451 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3480.071,596.013,3480.9301,603.1728,3487.8695,605.1335,3487.0104,597.9738,3480.071,596.013" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3477.2113" y="615.997">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3616.185" y="753.2337">1</text><!--MD5=[b913f036db99e36b937989146817bd94]
-reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M3507.9104,599.7277 C3559.9245,656.4038 3619.7591,725.5079 3649.7168,764.4451 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t-1" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3504.496,596.013,3507.6416,605.3461,3507.8796,599.6942,3513.5315,599.9323,3504.496,596.013" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0c465c1a61dfd99ff8b5568ca35c92d1]
-reverse link urt_srtdata_t to urt_srtusefulnessfunc_t--><path d="M2092.5955,1225.4523 C2096.1293,1257.3446 2100.5801,1297.5133 2103.592,1324.6963 " fill="none" id="urt_srtdata_t&lt;-urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2091.144,1212.3528,2087.8292,1218.7569,2092.4657,1224.2798,2095.7805,1217.8757,2091.144,1212.3528" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2083.167" y="1231.6173">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2076.4141" y="1313.9066">0..1</text><!--MD5=[3f22cd2af9b1d30da63b75b4db75ae6e]
-reverse link urt_rtclassdata_t to urt_hrtdata_t--><path d="M1995.297,1028.0604 C2123.8884,1076.5033 2170.7904,1049.0452 2306,1084.9531 C2307.2696,1085.2903 2308.5419,1085.6306 2309.8167,1085.9739 " fill="none" id="urt_rtclassdata_t&lt;-urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1983.0096,1023.2973,1987.1582,1029.1956,1994.1983,1027.6347,1990.0497,1021.7365,1983.0096,1023.2973" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1990.9512" y="1024.5203">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2277.855" y="1080.1779">0..1</text><!--MD5=[a94a8c9c209e194384613684e912df80]
-reverse link urt_rtclassdata_t to urt_frtdata_t--><path d="M1825.0133,1021.8881 C1822.9927,1022.9255 1820.986,1023.9486 1819,1024.9531 C1770.545,1049.4609 1717.3487,1074.9504 1668.4801,1097.814 " fill="none" id="urt_rtclassdata_t&lt;-urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1836.6931,1015.8175,1829.5245,1015.0354,1826.0455,1021.3517,1833.214,1022.1339,1836.6931,1015.8175" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1821.0832" y="1016.1153">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1659.4899" y="1086.7992">0..1</text><!--MD5=[e6a6d7a2212fadf5661857a71d4f05c3]
-reverse link urt_rtclassdata_t to urt_srtdata_t--><path d="M1962.9469,1035.1306 C1992.5584,1068.5062 2028.5389,1109.0605 2054.1083,1137.8803 " fill="none" id="urt_rtclassdata_t&lt;-urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1953.9802,1025.024,1954.97,1032.1669,1961.9441,1034.0004,1960.9543,1026.8576,1953.9802,1025.024" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1951.6024" y="1045.1105">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2021.8314" y="1126.7774">0..1</text><!--MD5=[206fe31eaf8244c7272230bb0ec7137c]
-reverse link urt_rtclassdata_t to urt_nrtdata_t--><path d="M1890.3632,1037.6363 C1878.2731,1075.9215 1863.4526,1122.8532 1854.6423,1150.7525 " fill="none" id="urt_rtclassdata_t&lt;-urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1894.346,1025.024,1888.7248,1029.5409,1890.7323,1036.467,1896.3535,1031.9501,1894.346,1025.024" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1883.5822" y="1045.1105">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1829.5256" y="1139.7132">0..1</text><!--MD5=[1ba55993ff077c77667f6c7be6552d53]
-reverse link urt_rtdata_t to urt_rtclass_t--><path d="M1770.6561,844.6449 C1761.8403,869.9028 1751.1568,900.5119 1742.3414,925.7687 " fill="none" id="urt_rtdata_t&lt;-urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1774.9464,832.3528,1769.1926,836.6995,1770.9919,843.6825,1776.7457,839.3358,1774.9464,832.3528" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1764.2285" y="851.6173">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1736.2175" y="914.788">1</text><!--MD5=[8318054091d2ecf2336b9e490f482e2a]
-reverse link urt_rtdata_t to urt_rtclassdata_t--><path d="M1820.6549,843.2663 C1837.9015,868.7828 1859.0354,900.0506 1876.4183,925.7687 " fill="none" id="urt_rtdata_t&lt;-urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1813.2785,832.3528,1813.3244,839.5638,1819.9983,842.2948,1819.9524,835.0839,1813.2785,832.3528" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1808.6698" y="851.6173">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1863.1334" y="914.788">1</text><!--MD5=[b6ee30948a218449c72edbee7363b5d7]
-link urt_subscriber_t to urt_hrtdata_t--><path d="M1970.4064,664.335 C2118.9742,791.706 2324.1798,967.6342 2450.8238,1076.2095 " fill="none" id="urt_subscriber_t-&gt;urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2460.9373,1084.88,2458.9857,1077.938,2451.827,1077.0696,2453.7787,1084.0116,2460.9373,1084.88" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1954.6605" y="684.3409">0..1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2443.9055" y="1073.8702">1</text><!--MD5=[536025241394544a90bc53fb552f3a08]
-reverse link urt_message_t to urt_message_t--><path d="M1213.9841,771.7582 C1228.0653,777.3042 1236.5,785.0359 1236.5,794.9531 C1236.5,807.5215 1222.9528,816.5795 1201.534,822.1273 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1201.534,767.7789,1206.0314,773.4157,1212.9643,771.4323,1208.467,765.7955,1201.534,767.7789" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1209.7829" y="763.6087">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1209.3281" y="819.848">0..1</text><!--MD5=[f7eb638a1c2d853c6fb0ae6f53692e50]
-reverse link urt_subscriber_t to urt_rtdata_t--><path d="M1788,677.1506 C1788,707.5282 1788,736.3175 1788,757.8315 " fill="none" id="urt_subscriber_t&lt;-urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1788,664.051,1784,670.051,1788,676.051,1792,670.051,1788,664.051" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1779.8063" y="684.0431">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1779.2875" y="746.9968">1</text><!--MD5=[bf7bf5810813e0e9b75d3053dc098443]
-reverse link urt_subscriber_t to urt_topic_t--><path d="M1240.6352,507.9531 C1227.4526,507.9531 1214.27,507.9531 1201.0874,507.9531 " fill="none" id="urt_subscriber_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1253.8178,507.9531,1247.8178,503.9531,1241.8178,507.9531,1247.8178,511.9531,1253.8178,507.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1238.2496" y="504.9148">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1209.0596" y="504.7283">0..1</text><!--MD5=[d3b08a81de663c21a5ec062e6c430f2b]
-reverse link urt_topic_t to urt_subscriber_t--><path d="M1214.27,507.9531 C1227.4526,507.9531 1240.6352,507.9531 1253.8178,507.9531 " fill="none" id="urt_topic_t&lt;-urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1201.0874,507.9531,1207.0874,511.9531,1213.0874,507.9531,1207.0874,503.9531,1201.0874,507.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1208.7471" y="520.3142">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1222.1371" y="520.1258">0..1</text><!--MD5=[67fd999c5486ad1c37ee9b77e12afd1b]
-reverse link urt_subscriber_t to urt_message_t--><path d="M1333.8985,668.4545 C1279.0698,687.8336 1225.428,706.7932 1177.0491,723.8927 " fill="none" id="urt_subscriber_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1346.3572,664.051,1339.3672,662.2792,1335.0432,668.0501,1342.0332,669.8219,1346.3572,664.051" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1316.7714" y="684.0431">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1172.5448" y="712.8839">0..1</text><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
-reverse link urt_publisher_t to urt_topic_t--><path d="M794.8249,507.9531 C802.1324,507.9531 809.44,507.9531 816.7475,507.9531 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="781.6714,507.9531,787.6714,511.9531,793.6714,507.9531,787.6714,503.9531,781.6714,507.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="789.4647" y="504.8708">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="801.0814" y="504.7283">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
-link urt_publisher_t to urt_message_t--><path d="M531.1745,572.5403 C619.685,616.7956 737.2604,675.5833 829.3022,721.6042 " fill="none" id="urt_publisher_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="833.9416,723.9239,827.6807,716.3212,829.4695,721.6878,824.1029,723.4766,833.9416,723.9239" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
-reverse link urt_topic_t to urt_topic_t--><path d="M1213.0439,468.8634 C1227.3061,477.7857 1236,490.8156 1236,507.9531 C1236,529.459 1222.309,544.4963 1201.1039,553.065 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1201.1039,462.8412,1204.6597,469.1147,1211.8182,468.2453,1208.2624,461.9718,1201.1039,462.8412" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1208.7642" y="457.8542">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1209.0767" y="551.6024">0..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
-reverse link urt_topic_t to urt_message_t--><path d="M980.4936,645.083 C977.2625,672.3513 974.611,699.9269 972.9932,723.861 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="982.0706,632.1663,977.3729,637.6373,980.6162,644.0779,985.3139,638.6069,982.0706,632.1663" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="972.1858" y="652.2614">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="947.4456" y="712.8489">1..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
-reverse link urt_topic_t to urt_message_t--><path d="M1006.6794,645.4532 C1003.6529,672.6008 999.9482,700.0352 996.0133,723.861 " fill="none" id="urt_topic_t&lt;-urt_message_t-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1008.1087,632.1663,1003.4898,637.704,1006.8251,644.0975,1011.4439,638.5598,1008.1087,632.1663" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="999.8106" y="652.2614">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="989.6647" y="712.8489">1</text><!--MD5=[05f2c35569573d3273c65d3342945557]
-reverse link urt_service_t to urt_service_t--><path d="M4632.7882,474.1943 C4647.4237,482.7097 4656,493.9626 4656,507.9531 C4656,525.3393 4642.7552,538.4979 4621.0965,547.4287 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="4621.0965,468.4775,4624.7296,474.7065,4631.8768,473.7487,4628.2437,467.5197,4621.0965,468.4775" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4629.2006" y="464.2923">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4629.4131" y="545.3406">0..1</text><!--MD5=[586e61fedafd54ae7ea71cebd9f9032a]
-reverse link urt_service_t to urt_servicefunc_t--><path d="M4320,632.5748 C4320,681.0765 4320,732.5063 4320,764.179 " fill="none" id="urt_service_t&lt;-urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="4320,619.3256,4316,625.3256,4320,631.3256,4324,625.3256,4320,619.3256" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4311.7313" y="639.3682">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4293.525" y="753.3857">0..1</text><!--MD5=[694e7400eb99f74d44ea388aed89d199]
-reverse link urt_core_t to urt_node_t--><path d="M3414,298.3868 C3414,339.4358 3414,383.0706 3414,419.8362 " fill="none" id="urt_core_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3414,285.1621,3410,291.1621,3414,297.1621,3418,291.1621,3414,285.1621" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3405.7688" y="305.0765">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3389.0063" y="408.9884">0..1</text><!--MD5=[250695c91040478b50550bc37a8775c7]
-reverse link urt_core_t to urt_topic_t--><path d="M3143.0912,162.8691 C2594.5177,176.4214 1389.7388,214.7476 1219,292.9531 C1174.1713,313.4865 1133.8232,348.1574 1100.7563,383.7304 " fill="none" id="urt_core_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3156.3271,162.5438,3150.2306,158.6925,3144.3307,162.8388,3150.4272,166.6901,3156.3271,162.5438" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3140.5587" y="159.555">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1081.6164" y="372.7724">0..1</text><!--MD5=[8d0a227ec56585cdbc167f8316b34b64]
-reverse link urt_core_t to urt_service_t--><path d="M3684.694,198.4163 C3786.2037,219.4381 3900.9032,249.9035 4000,292.9531 C4062.1554,319.9546 4125.2013,359.2292 4178.7107,396.8449 " fill="none" id="urt_core_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3671.744,195.7706,3676.8219,200.8907,3683.5011,198.1727,3678.4233,193.0526,3671.744,195.7706" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3679.5145" y="193.7682">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4144.4116" y="385.9318">0..1</text><!--MD5=[828ff7637e287d291ac9bfc598412fa9]
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="846px" preserveAspectRatio="none" style="width:7229px;height:846px;" version="1.1" viewBox="0 0 7229 846" width="7229px" zoomAndPan="magnify"><defs><filter height="300%" id="f6i8e5hg9h7lm" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="3572.5" y="16.708">µRtWare</text><!--MD5=[b9de0669a29c7bc934fd916b09c39491]
+cluster node--><rect fill="#FFFFFF" filter="url(#f6i8e5hg9h7lm)" height="434" style="stroke: #000000; stroke-width: 1.5;" width="1184" x="5368" y="356.4531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="5940" y="371.4482">node</text><!--MD5=[d74e2ef346f73688f9378f6d3d42598c]
+cluster Publish-Subscribe System--><polygon fill="#FFFFFF" filter="url(#f6i8e5hg9h7lm)" points="14,302.9531,24,292.9531,5357,292.9531,5357,824.9531,5347,834.9531,14,834.9531,14,302.9531" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="5347" x2="5356" y1="302.9531" y2="293.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="14" x2="5347" y1="302.9531" y2="302.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="5347" x2="5347" y1="302.9531" y2="834.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="205" x="2579" y="318.9482">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
+cluster subscriber--><rect fill="#FFFFFF" filter="url(#f6i8e5hg9h7lm)" height="502" style="stroke: #000000; stroke-width: 1.5;" width="4102" x="1247" y="324.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="3255.5" y="339.9482">subscriber</text><!--MD5=[810d0f07e53ef611b6d803ef30301147]
+cluster Remote Procedure Call System--><polygon fill="#FFFFFF" filter="url(#f6i8e5hg9h7lm)" points="6571,353.4531,6581,343.4531,7207,343.4531,7207,780.4531,7197,790.4531,6571,790.4531,6571,353.4531" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="7197" x2="7206" y1="353.4531" y2="344.4531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="6571" x2="7197" y1="353.4531" y2="353.4531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="7197" x2="7197" y1="353.4531" y2="790.4531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="244" x="6763" y="369.4482">Remote Procedure Call System</text><!--MD5=[a7dea26996a1231aa68629b332780450]
+class urt_nodeSetupCallback_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="60.8047" id="urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="456" x="5407" y="721.4531"/><ellipse cx="5552.75" cy="737.4531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5553.5938,744.2031 L5551.1406,744.2031 L5551.1406,733.9531 L5548,733.9531 L5548,731.8125 L5556.7344,731.8125 L5556.7344,733.9531 L5553.5938,733.9531 L5553.5938,744.2031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="5573.25" y="741.6074">urt_nodeSetupCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5408" x2="5862" y1="753.4531" y2="753.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5408" x2="5862" y1="761.4531" y2="761.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="444" x="5413" y="775.6636">urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t</text><!--MD5=[7f869e17e281b89d59a4c09e0f22c3af]
+class urt_nodeLoopCallback_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="60.8047" id="urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="614" x="5898" y="721.4531"/><ellipse cx="6126.25" cy="737.4531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6127.0938,744.2031 L6124.6406,744.2031 L6124.6406,733.9531 L6121.5,733.9531 L6121.5,731.8125 L6130.2344,731.8125 L6130.2344,733.9531 L6127.0938,733.9531 L6127.0938,744.2031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="6146.75" y="741.6074">urt_nodeLoopCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5899" x2="6511" y1="753.4531" y2="753.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5899" x2="6511" y1="761.4531" y2="761.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="602" x="5904" y="775.6636">urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t</text><!--MD5=[d2563153d77472384a15c07b815d639f]
+class urt_node_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="205.6563" id="urt_node_t" style="stroke: #A80036; stroke-width: 1.5;" width="1149" x="5376.5" y="383.4531"/><ellipse cx="5913.25" cy="399.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5912.7344,400.0156 Q5910.875,399.3125 5910.2188,398.5469 Q5909.5781,397.7656 5909.5781,396.4531 Q5909.5781,394.7656 5910.6563,393.7969 Q5911.7344,392.8281 5913.6094,392.8281 Q5914.4688,392.8281 5915.3125,393.0313 Q5916.1719,393.2188 5917.0156,393.6094 L5917.0156,396 Q5916.2344,395.4375 5915.4063,395.1563 Q5914.5938,394.8594 5913.7969,394.8594 Q5912.9219,394.8594 5912.4375,395.2188 Q5911.9688,395.5781 5911.9688,396.2344 Q5911.9688,396.75 5912.3125,397.0938 Q5912.6563,397.4219 5913.75,397.8281 L5914.8125,398.2344 Q5916.2969,398.7813 5917,399.6875 Q5917.7188,400.5938 5917.7188,401.9688 Q5917.7188,403.8438 5916.6094,404.7656 Q5915.5,405.6875 5913.25,405.6875 Q5912.3281,405.6875 5911.4063,405.4688 Q5910.4844,405.25 5909.625,404.8281 L5909.625,402.2969 Q5910.5938,402.9844 5911.5156,403.3281 Q5912.4375,403.6719 5913.3281,403.6719 Q5914.2344,403.6719 5914.7344,403.2656 Q5915.2344,402.8438 5915.2344,402.1094 Q5915.2344,401.5469 5914.8906,401.1406 Q5914.5625,400.7188 5913.9375,400.4688 L5912.7344,400.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="67" x="5933.75" y="403.6074">urt_node_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5377.5" x2="6524.5" y1="415.4531" y2="415.4531"/><ellipse cx="5387.5" cy="426.4531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="5396.5" y="429.6636">next : urt_node_t*</text><ellipse cx="5387.5" cy="439.2578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="5396.5" y="442.4683">thread : urt_osThread_t*</text><ellipse cx="5387.5" cy="452.0625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="5396.5" y="455.2729">setupcallback : urt_nodeSetupCallback_t*</text><ellipse cx="5387.5" cy="464.8672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="117" x="5396.5" y="468.0776">setupparams : void*</text><ellipse cx="5387.5" cy="477.6719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="221" x="5396.5" y="480.8823">loopcallback : urt_nodeLoopCallback_t*</text><ellipse cx="5387.5" cy="490.4766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="5396.5" y="493.687">loopparams : void*</text><ellipse cx="5387.5" cy="503.2813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="5396.5" y="506.4917">stage : urt_nodestage_t</text><ellipse cx="5387.5" cy="516.0859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="178" x="5396.5" y="519.2964">listener : urt_osEventListener_t</text><ellipse cx="5387.5" cy="545.6953" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="88" x="5396.5" y="548.9058">loops : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5377.5" x2="5743" y1="532.293" y2="532.293"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="416" x="5743" y="535.6011">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6159" x2="6524.5" y1="532.293" y2="532.293"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5377.5" x2="6524.5" y1="555.5" y2="555.5"/><rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5384.5" y="563.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="179" x="5396.5" y="569.7104">_main : urt_osThreadFunction_t</text><ellipse cx="5387.5" cy="579.3047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1123" x="5396.5" y="582.5151">urtNodeInit (node : urt_node_t*, thread : urt_osThread_t*, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t</text><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
+class urt_message_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="141.6328" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="770.5" y="680.9531"/><ellipse cx="945.75" cy="696.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M945.2344,697.5156 Q943.375,696.8125 942.7188,696.0469 Q942.0781,695.2656 942.0781,693.9531 Q942.0781,692.2656 943.1563,691.2969 Q944.2344,690.3281 946.1094,690.3281 Q946.9688,690.3281 947.8125,690.5313 Q948.6719,690.7188 949.5156,691.1094 L949.5156,693.5 Q948.7344,692.9375 947.9063,692.6563 Q947.0938,692.3594 946.2969,692.3594 Q945.4219,692.3594 944.9375,692.7188 Q944.4688,693.0781 944.4688,693.7344 Q944.4688,694.25 944.8125,694.5938 Q945.1563,694.9219 946.25,695.3281 L947.3125,695.7344 Q948.7969,696.2813 949.5,697.1875 Q950.2188,698.0938 950.2188,699.4688 Q950.2188,701.3438 949.1094,702.2656 Q948,703.1875 945.75,703.1875 Q944.8281,703.1875 943.9063,702.9688 Q942.9844,702.75 942.125,702.3281 L942.125,699.7969 Q943.0938,700.4844 944.0156,700.8281 Q944.9375,701.1719 945.8281,701.1719 Q946.7344,701.1719 947.2344,700.7656 Q947.7344,700.3438 947.7344,699.6094 Q947.7344,699.0469 947.3906,698.6406 Q947.0625,698.2188 946.4375,697.9688 L945.2344,697.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="966.25" y="701.1074">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="771.5" x2="1220.5" y1="712.9531" y2="712.9531"/><ellipse cx="781.5" cy="723.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="790.5" y="727.1636">next : urt_message_t*</text><ellipse cx="781.5" cy="736.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="790.5" y="739.9683">payload : void*</text><ellipse cx="781.5" cy="749.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="790.5" y="752.7729">originTime : urt_osTime_t</text><ellipse cx="781.5" cy="762.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="790.5" y="765.5776">numHrtConsumersLeft : unsigned int</text><ellipse cx="781.5" cy="791.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="790.5" y="795.187">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="771.5" x2="887.5" y1="778.5742" y2="778.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="887.5" y="781.8823">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1104.5" x2="1220.5" y1="778.5742" y2="778.5742"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="771.5" x2="1220.5" y1="801.7813" y2="801.7813"/><ellipse cx="781.5" cy="812.7813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="425" x="790.5" y="815.9917">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
+class urt_publisher_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="22.5" y="421.9531"/><ellipse cx="351.25" cy="437.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M350.7344,438.5156 Q348.875,437.8125 348.2188,437.0469 Q347.5781,436.2656 347.5781,434.9531 Q347.5781,433.2656 348.6563,432.2969 Q349.7344,431.3281 351.6094,431.3281 Q352.4688,431.3281 353.3125,431.5313 Q354.1719,431.7188 355.0156,432.1094 L355.0156,434.5 Q354.2344,433.9375 353.4063,433.6563 Q352.5938,433.3594 351.7969,433.3594 Q350.9219,433.3594 350.4375,433.7188 Q349.9688,434.0781 349.9688,434.7344 Q349.9688,435.25 350.3125,435.5938 Q350.6563,435.9219 351.75,436.3281 L352.8125,436.7344 Q354.2969,437.2813 355,438.1875 Q355.7188,439.0938 355.7188,440.4688 Q355.7188,442.3438 354.6094,443.2656 Q353.5,444.1875 351.25,444.1875 Q350.3281,444.1875 349.4063,443.9688 Q348.4844,443.75 347.625,443.3281 L347.625,440.7969 Q348.5938,441.4844 349.5156,441.8281 Q350.4375,442.1719 351.3281,442.1719 Q352.2344,442.1719 352.7344,441.7656 Q353.2344,441.3438 353.2344,440.6094 Q353.2344,440.0469 352.8906,439.6406 Q352.5625,439.2188 351.9375,438.9688 L350.7344,438.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="371.75" y="442.1074">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="23.5" x2="780.5" y1="453.9531" y2="453.9531"/><ellipse cx="33.5" cy="464.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="42.5" y="468.1636">topic : urt_topic_t*</text><ellipse cx="33.5" cy="494.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="42.5" y="497.7729">publishAttempts : uint64_t</text><ellipse cx="33.5" cy="507.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="42.5" y="510.5776">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="23.5" x2="293.5" y1="481.1602" y2="481.1602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="293.5" y="484.4683">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="510.5" x2="780.5" y1="481.1602" y2="481.1602"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="23.5" x2="780.5" y1="517.1719" y2="517.1719"/><ellipse cx="33.5" cy="528.1719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="617" x="42.5" y="531.3823">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="33.5" cy="540.9766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="733" x="42.5" y="544.187">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
+class urt_topic_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="248.0703" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="817" y="362.4531"/><ellipse cx="971.75" cy="378.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M971.2344,379.0156 Q969.375,378.3125 968.7188,377.5469 Q968.0781,376.7656 968.0781,375.4531 Q968.0781,373.7656 969.1563,372.7969 Q970.2344,371.8281 972.1094,371.8281 Q972.9688,371.8281 973.8125,372.0313 Q974.6719,372.2188 975.5156,372.6094 L975.5156,375 Q974.7344,374.4375 973.9063,374.1563 Q973.0938,373.8594 972.2969,373.8594 Q971.4219,373.8594 970.9375,374.2188 Q970.4688,374.5781 970.4688,375.2344 Q970.4688,375.75 970.8125,376.0938 Q971.1563,376.4219 972.25,376.8281 L973.3125,377.2344 Q974.7969,377.7813 975.5,378.6875 Q976.2188,379.5938 976.2188,380.9688 Q976.2188,382.8438 975.1094,383.7656 Q974,384.6875 971.75,384.6875 Q970.8281,384.6875 969.9063,384.4688 Q968.9844,384.25 968.125,383.8281 L968.125,381.2969 Q969.0938,381.9844 970.0156,382.3281 Q970.9375,382.6719 971.8281,382.6719 Q972.7344,382.6719 973.2344,382.2656 Q973.7344,381.8438 973.7344,381.1094 Q973.7344,380.5469 973.3906,380.1406 Q973.0625,379.7188 972.4375,379.4688 L971.2344,379.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="992.25" y="382.6074">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="818" x2="1200" y1="394.4531" y2="394.4531"/><ellipse cx="828" cy="405.4531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="837" y="408.6636">next : urt_topic_t*</text><ellipse cx="828" cy="418.2578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="837" y="421.4683">id : urt_topicid_t</text><ellipse cx="828" cy="431.0625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="837" y="434.2729">lock : urt_osMutex_t</text><ellipse cx="828" cy="443.8672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="837" y="447.0776">evtSource : urt_osEventSource_t</text><ellipse cx="828" cy="456.6719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="837" y="459.8823">numHrtSubscribers : unsigned int</text><ellipse cx="828" cy="469.4766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="212" x="837" y="472.687">hrtSubscribers : urt_hrtsubscriber_t*</text><ellipse cx="828" cy="482.2813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="837" y="485.4917">hrtReleased : urt_osCondvar_t</text><ellipse cx="828" cy="495.0859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="837" y="498.2964">mandatoryMessage : urt_message_t</text><ellipse cx="828" cy="507.8906" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="837" y="511.1011">latestMessage : urt_message_t*</text><ellipse cx="828" cy="537.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="837" y="540.7104">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="818" x2="876.5" y1="524.0977" y2="524.0977"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="876.5" y="527.4058">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1141.5" x2="1200" y1="524.0977" y2="524.0977"/><ellipse cx="828" cy="567.1094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="837" y="570.3198">numDiscardedMessages : uint64_t</text><ellipse cx="828" cy="579.9141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="837" y="583.1245">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="818" x2="900.5" y1="553.707" y2="553.707"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="900.5" y="557.0151">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1117.5" x2="1200" y1="553.707" y2="553.707"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="818" x2="1200" y1="589.7188" y2="589.7188"/><ellipse cx="828" cy="600.7188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="358" x="837" y="603.9292">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--MD5=[50a042e24f957794dab9ba3ea8701c50]
+class urt_basesubscriber_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="133.6328" id="urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="3081.5" y="684.9531"/><ellipse cx="3123.95" cy="700.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3123.4344,701.5156 Q3121.575,700.8125 3120.9188,700.0469 Q3120.2781,699.2656 3120.2781,697.9531 Q3120.2781,696.2656 3121.3563,695.2969 Q3122.4344,694.3281 3124.3094,694.3281 Q3125.1688,694.3281 3126.0125,694.5313 Q3126.8719,694.7188 3127.7156,695.1094 L3127.7156,697.5 Q3126.9344,696.9375 3126.1063,696.6563 Q3125.2938,696.3594 3124.4969,696.3594 Q3123.6219,696.3594 3123.1375,696.7188 Q3122.6688,697.0781 3122.6688,697.7344 Q3122.6688,698.25 3123.0125,698.5938 Q3123.3563,698.9219 3124.45,699.3281 L3125.5125,699.7344 Q3126.9969,700.2813 3127.7,701.1875 Q3128.4188,702.0938 3128.4188,703.4688 Q3128.4188,705.3438 3127.3094,706.2656 Q3126.2,707.1875 3123.95,707.1875 Q3123.0281,707.1875 3122.1063,706.9688 Q3121.1844,706.75 3120.325,706.3281 L3120.325,703.7969 Q3121.2938,704.4844 3122.2156,704.8281 Q3123.1375,705.1719 3124.0281,705.1719 Q3124.9344,705.1719 3125.4344,704.7656 Q3125.9344,704.3438 3125.9344,703.6094 Q3125.9344,703.0469 3125.5906,702.6406 Q3125.2625,702.2188 3124.6375,701.9688 L3123.4344,701.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="132" x="3144.05" y="705.1074">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3082.5" x2="3305.5" y1="716.9531" y2="716.9531"/><ellipse cx="3092.5" cy="727.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="3101.5" y="731.1636">topic : urt_topic_t*</text><ellipse cx="3092.5" cy="740.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="3101.5" y="743.9683">evtListener : urt_osEventListener_t</text><ellipse cx="3092.5" cy="753.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="3101.5" y="756.7729">lastMessage : urt_message_t*</text><ellipse cx="3092.5" cy="766.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="3101.5" y="769.5776">lastMessageTime : urt_osTime_t</text><ellipse cx="3092.5" cy="795.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="3101.5" y="799.187">sumLatencies : uint64_t</text><ellipse cx="3092.5" cy="808.7813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="3101.5" y="811.9917">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3082.5" x2="3085.5" y1="782.5742" y2="782.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="3085.5" y="785.8823">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3302.5" x2="3305.5" y1="782.5742" y2="782.5742"/><!--MD5=[fc7708c915a0148c667d62e1370980fd]
+class urt_srtusefulnessfunc_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="60.8047" id="urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="4612" y="721.4531"/><ellipse cx="4721.25" cy="737.4531" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4725.4844,733.2188 L4720.2031,733.2188 L4720.2031,735.8906 L4725,735.8906 L4725,738.0469 L4720.2031,738.0469 L4720.2031,743.4531 L4717.7656,743.4531 L4717.7656,731.0625 L4725.4844,731.0625 L4725.4844,733.2188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="4741.75" y="741.6074">urt_srtusefulnessfunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4613" x2="4985" y1="753.4531" y2="753.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4613" x2="4985" y1="761.4531" y2="761.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="362" x="4618" y="775.6636">urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float</text><!--MD5=[9ff46073dd541e50679ef35e851c67d6]
+class urt_nrtsubscriber_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="154.4375" id="urt_nrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="821" x="1254.5" y="409.4531"/><ellipse cx="1601.25" cy="425.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1600.7344,426.0156 Q1598.875,425.3125 1598.2188,424.5469 Q1597.5781,423.7656 1597.5781,422.4531 Q1597.5781,420.7656 1598.6563,419.7969 Q1599.7344,418.8281 1601.6094,418.8281 Q1602.4688,418.8281 1603.3125,419.0313 Q1604.1719,419.2188 1605.0156,419.6094 L1605.0156,422 Q1604.2344,421.4375 1603.4063,421.1563 Q1602.5938,420.8594 1601.7969,420.8594 Q1600.9219,420.8594 1600.4375,421.2188 Q1599.9688,421.5781 1599.9688,422.2344 Q1599.9688,422.75 1600.3125,423.0938 Q1600.6563,423.4219 1601.75,423.8281 L1602.8125,424.2344 Q1604.2969,424.7813 1605,425.6875 Q1605.7188,426.5938 1605.7188,427.9688 Q1605.7188,429.8438 1604.6094,430.7656 Q1603.5,431.6875 1601.25,431.6875 Q1600.3281,431.6875 1599.4063,431.4688 Q1598.4844,431.25 1597.625,430.8281 L1597.625,428.2969 Q1598.5938,428.9844 1599.5156,429.3281 Q1600.4375,429.6719 1601.3281,429.6719 Q1602.2344,429.6719 1602.7344,429.2656 Q1603.2344,428.8438 1603.2344,428.1094 Q1603.2344,427.5469 1602.8906,427.1406 Q1602.5625,426.7188 1601.9375,426.4688 L1600.7344,426.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="1621.75" y="429.6074">urt_nrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255.5" x2="2074.5" y1="441.4531" y2="441.4531"/><ellipse cx="1265.5" cy="469.2578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="1274.5" y="472.4683">minLatency : urt_delay_t</text><ellipse cx="1265.5" cy="482.0625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1274.5" y="485.2729">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1255.5" x2="1556.5" y1="455.8555" y2="455.8555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1556.5" y="459.1636">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1773.5" x2="2074.5" y1="455.8555" y2="455.8555"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255.5" x2="2074.5" y1="491.8672" y2="491.8672"/><ellipse cx="1265.5" cy="502.8672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="392" x="1274.5" y="506.0776">urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : urt_status_t</text><ellipse cx="1265.5" cy="515.6719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="715" x="1274.5" y="518.8823">urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="1265.5" cy="528.4766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="1274.5" y="531.687">urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1265.5" cy="541.2813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="1274.5" y="544.4917">urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1265.5" cy="554.0859" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="1274.5" y="557.2964">urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t</text><!--MD5=[5c7929572d87ccc448d875bea5da0fb1]
+class urt_srtsubscriber_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="192.8516" id="urt_srtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1084" x="4257" y="389.9531"/><ellipse cx="4735.75" cy="405.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4735.2344,406.5156 Q4733.375,405.8125 4732.7188,405.0469 Q4732.0781,404.2656 4732.0781,402.9531 Q4732.0781,401.2656 4733.1563,400.2969 Q4734.2344,399.3281 4736.1094,399.3281 Q4736.9688,399.3281 4737.8125,399.5313 Q4738.6719,399.7188 4739.5156,400.1094 L4739.5156,402.5 Q4738.7344,401.9375 4737.9063,401.6563 Q4737.0938,401.3594 4736.2969,401.3594 Q4735.4219,401.3594 4734.9375,401.7188 Q4734.4688,402.0781 4734.4688,402.7344 Q4734.4688,403.25 4734.8125,403.5938 Q4735.1563,403.9219 4736.25,404.3281 L4737.3125,404.7344 Q4738.7969,405.2813 4739.5,406.1875 Q4740.2188,407.0938 4740.2188,408.4688 Q4740.2188,410.3438 4739.1094,411.2656 Q4738,412.1875 4735.75,412.1875 Q4734.8281,412.1875 4733.9063,411.9688 Q4732.9844,411.75 4732.125,411.3281 L4732.125,408.7969 Q4733.0938,409.4844 4734.0156,409.8281 Q4734.9375,410.1719 4735.8281,410.1719 Q4736.7344,410.1719 4737.2344,409.7656 Q4737.7344,409.3438 4737.7344,408.6094 Q4737.7344,408.0469 4737.3906,407.6406 Q4737.0625,407.2188 4736.4375,406.9688 L4735.2344,406.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="4756.25" y="410.1074">urt_srtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4258" x2="5340" y1="421.9531" y2="421.9531"/><ellipse cx="4268" cy="432.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="229" x="4277" y="436.1636">usefulnesscb : urt_srtusefulnessfunc_t*</text><ellipse cx="4268" cy="445.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="4277" y="448.9683">cbparams : void*</text><ellipse cx="4268" cy="475.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="4277" y="478.5776">minLatency : urt_delay_t</text><ellipse cx="4268" cy="488.1719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="4277" y="491.3823">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4258" x2="4690.5" y1="461.9648" y2="461.9648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="4690.5" y="465.2729">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4907.5" x2="5340" y1="461.9648" y2="461.9648"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4258" x2="5340" y1="497.9766" y2="497.9766"/><ellipse cx="4268" cy="508.9766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="392" x="4277" y="512.187">urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : urt_status_t</text><ellipse cx="4268" cy="521.7813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1058" x="4277" y="524.9917">urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t</text><ellipse cx="4268" cy="534.5859" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="4277" y="537.7964">urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4268" cy="547.3906" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="4277" y="550.6011">urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4268" cy="560.1953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="570" x="4277" y="563.4058">urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float</text><ellipse cx="4268" cy="573" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="4277" y="576.2104">urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t</text><!--MD5=[17838fb05fe219fd399839979ec8a4a4]
+class urt_frtsubscriber_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="226.4609" id="urt_frtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="974" x="3248" y="373.4531"/><ellipse cx="3673.25" cy="389.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3672.7344,390.0156 Q3670.875,389.3125 3670.2188,388.5469 Q3669.5781,387.7656 3669.5781,386.4531 Q3669.5781,384.7656 3670.6563,383.7969 Q3671.7344,382.8281 3673.6094,382.8281 Q3674.4688,382.8281 3675.3125,383.0313 Q3676.1719,383.2188 3677.0156,383.6094 L3677.0156,386 Q3676.2344,385.4375 3675.4063,385.1563 Q3674.5938,384.8594 3673.7969,384.8594 Q3672.9219,384.8594 3672.4375,385.2188 Q3671.9688,385.5781 3671.9688,386.2344 Q3671.9688,386.75 3672.3125,387.0938 Q3672.6563,387.4219 3673.75,387.8281 L3674.8125,388.2344 Q3676.2969,388.7813 3677,389.6875 Q3677.7188,390.5938 3677.7188,391.9688 Q3677.7188,393.8438 3676.6094,394.7656 Q3675.5,395.6875 3673.25,395.6875 Q3672.3281,395.6875 3671.4063,395.4688 Q3670.4844,395.25 3669.625,394.8281 L3669.625,392.2969 Q3670.5938,392.9844 3671.5156,393.3281 Q3672.4375,393.6719 3673.3281,393.6719 Q3674.2344,393.6719 3674.7344,393.2656 Q3675.2344,392.8438 3675.2344,392.1094 Q3675.2344,391.5469 3674.8906,391.1406 Q3674.5625,390.7188 3673.9375,390.4688 L3672.7344,390.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="3693.75" y="393.6074">urt_frtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3249" x2="4221" y1="405.4531" y2="405.4531"/><ellipse cx="3259" cy="433.2578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="3268" y="436.4683">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3249" x2="3589.5" y1="419.8555" y2="419.8555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="3589.5" y="423.1636">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3880.5" x2="4221" y1="419.8555" y2="419.8555"/><ellipse cx="3259" cy="462.8672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="3268" y="466.0776">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3249" x2="3599.5" y1="449.4648" y2="449.4648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="3599.5" y="452.7729">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3870.5" x2="4221" y1="449.4648" y2="449.4648"/><ellipse cx="3259" cy="492.4766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="3268" y="495.687">minLatency : urt_delay_t</text><ellipse cx="3259" cy="505.2813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="3268" y="508.4917">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3249" x2="3481" y1="479.0742" y2="479.0742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="508" x="3481" y="482.3823">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ||  URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3989" x2="4221" y1="479.0742" y2="479.0742"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3249" x2="4221" y1="515.0859" y2="515.0859"/><ellipse cx="3259" cy="526.0859" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="387" x="3268" y="529.2964">urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : urt_status_t</text><ellipse cx="3259" cy="538.8906" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="948" x="3268" y="542.1011">urtFrtSubscriberSubscribe (subscriber : urt_frtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="3259" cy="551.6953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="780" x="3268" y="554.9058">urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3259" cy="564.5" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="790" x="3268" y="567.7104">urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3259" cy="577.3047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="540" x="3268" y="580.5151">urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool</text><ellipse cx="3259" cy="590.1094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="441" x="3268" y="593.3198">urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t</text><!--MD5=[104dc879e5721421b987fcc467bc3a1d]
+class urt_hrtsubscriber_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="268.875" id="urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1084" x="2111" y="351.9531"/><ellipse cx="2589.25" cy="367.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2588.7344,368.5156 Q2586.875,367.8125 2586.2188,367.0469 Q2585.5781,366.2656 2585.5781,364.9531 Q2585.5781,363.2656 2586.6563,362.2969 Q2587.7344,361.3281 2589.6094,361.3281 Q2590.4688,361.3281 2591.3125,361.5313 Q2592.1719,361.7188 2593.0156,362.1094 L2593.0156,364.5 Q2592.2344,363.9375 2591.4063,363.6563 Q2590.5938,363.3594 2589.7969,363.3594 Q2588.9219,363.3594 2588.4375,363.7188 Q2587.9688,364.0781 2587.9688,364.7344 Q2587.9688,365.25 2588.3125,365.5938 Q2588.6563,365.9219 2589.75,366.3281 L2590.8125,366.7344 Q2592.2969,367.2813 2593,368.1875 Q2593.7188,369.0938 2593.7188,370.4688 Q2593.7188,372.3438 2592.6094,373.2656 Q2591.5,374.1875 2589.25,374.1875 Q2588.3281,374.1875 2587.4063,373.9688 Q2586.4844,373.75 2585.625,373.3281 L2585.625,370.7969 Q2586.5938,371.4844 2587.5156,371.8281 Q2588.4375,372.1719 2589.3281,372.1719 Q2590.2344,372.1719 2590.7344,371.7656 Q2591.2344,371.3438 2591.2344,370.6094 Q2591.2344,370.0469 2590.8906,369.6406 Q2590.5625,369.2188 2589.9375,368.9688 L2588.7344,368.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="2609.75" y="372.1074">urt_hrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2112" x2="3194" y1="383.9531" y2="383.9531"/><ellipse cx="2122" cy="394.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="151" x="2131" y="398.1636">next : urt_hrtsubscriber_t*</text><ellipse cx="2122" cy="424.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="2131" y="427.7729">deadlineOffset : urt_delay_t</text><ellipse cx="2122" cy="437.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="2131" y="440.5776">qosDeadlineTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2112" x2="2507.5" y1="411.1602" y2="411.1602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="2507.5" y="414.4683">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2798.5" x2="3194" y1="411.1602" y2="411.1602"/><ellipse cx="2122" cy="466.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="2131" y="470.187">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2112" x2="2517.5" y1="453.5742" y2="453.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="2517.5" y="456.8823">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2788.5" x2="3194" y1="453.5742" y2="453.5742"/><ellipse cx="2122" cy="496.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="2131" y="499.7964">minLatency : urt_delay_t</text><ellipse cx="2122" cy="509.3906" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="2131" y="512.6011">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2112" x2="2401" y1="483.1836" y2="483.1836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="2401" y="486.4917">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2905" x2="3194" y1="483.1836" y2="483.1836"/><ellipse cx="2122" cy="539" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="2131" y="542.2104">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2112" x2="2520.5" y1="525.5977" y2="525.5977"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="2520.5" y="528.9058">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2785.5" x2="3194" y1="525.5977" y2="525.5977"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2112" x2="3194" y1="548.8047" y2="548.8047"/><ellipse cx="2122" cy="559.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="392" x="2131" y="563.0151">urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : urt_status_t</text><ellipse cx="2122" cy="572.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1058" x="2131" y="575.8198">urtHrtSubscriberSubscribe (subscriber : urt_hrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="2122" cy="585.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="2131" y="588.6245">urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2122" cy="598.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="2131" y="601.4292">urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2122" cy="611.0234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="2131" y="614.2339">urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t</text><!--MD5=[3226071078d8aeaa18fbafa5359ddee6]
+class urt_servicefunc_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="60.8047" id="urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="6654.5" y="721.4531"/><ellipse cx="6822.75" cy="737.4531" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6826.9844,733.2188 L6821.7031,733.2188 L6821.7031,735.8906 L6826.5,735.8906 L6826.5,738.0469 L6821.7031,738.0469 L6821.7031,743.4531 L6819.2656,743.4531 L6819.2656,731.0625 L6826.9844,731.0625 L6826.9844,733.2188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="6843.25" y="741.6074">urt_servicefunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6655.5" x2="7104.5" y1="753.4531" y2="753.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6655.5" x2="7104.5" y1="761.4531" y2="761.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="439" x="6660.5" y="775.6636">urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
+class urt_service_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="222.4609" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="602" x="6579" y="375.4531"/><ellipse cx="6836.25" cy="391.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6835.7344,392.0156 Q6833.875,391.3125 6833.2188,390.5469 Q6832.5781,389.7656 6832.5781,388.4531 Q6832.5781,386.7656 6833.6563,385.7969 Q6834.7344,384.8281 6836.6094,384.8281 Q6837.4688,384.8281 6838.3125,385.0313 Q6839.1719,385.2188 6840.0156,385.6094 L6840.0156,388 Q6839.2344,387.4375 6838.4063,387.1563 Q6837.5938,386.8594 6836.7969,386.8594 Q6835.9219,386.8594 6835.4375,387.2188 Q6834.9688,387.5781 6834.9688,388.2344 Q6834.9688,388.75 6835.3125,389.0938 Q6835.6563,389.4219 6836.75,389.8281 L6837.8125,390.2344 Q6839.2969,390.7813 6840,391.6875 Q6840.7188,392.5938 6840.7188,393.9688 Q6840.7188,395.8438 6839.6094,396.7656 Q6838.5,397.6875 6836.25,397.6875 Q6835.3281,397.6875 6834.4063,397.4688 Q6833.4844,397.25 6832.625,396.8281 L6832.625,394.2969 Q6833.5938,394.9844 6834.5156,395.3281 Q6835.4375,395.6719 6836.3281,395.6719 Q6837.2344,395.6719 6837.7344,395.2656 Q6838.2344,394.8438 6838.2344,394.1094 Q6838.2344,393.5469 6837.8906,393.1406 Q6837.5625,392.7188 6836.9375,392.4688 L6835.7344,392.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="6856.75" y="395.6074">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6580" x2="7180" y1="407.4531" y2="407.4531"/><ellipse cx="6590" cy="418.4531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="6599" y="421.6636">next : urt_service_t*</text><ellipse cx="6590" cy="431.2578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="6599" y="434.4683">id : urt_serviceid_t</text><ellipse cx="6590" cy="444.0625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="6599" y="447.2729">lock : urt_osMutex_t</text><ellipse cx="6590" cy="456.8672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="6599" y="460.0776">callback : urt_servicefunc_t*</text><ellipse cx="6590" cy="486.4766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="6599" y="489.687">sumDurations : uint64_t</text><ellipse cx="6590" cy="499.2813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="6599" y="502.4917">numCalls : uint64_t</text><ellipse cx="6590" cy="512.0859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="6599" y="515.2964">numTimeouts : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6580" x2="6784" y1="473.0742" y2="473.0742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="6784" y="476.3823">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6976" x2="7180" y1="473.0742" y2="473.0742"/><ellipse cx="6590" cy="541.6953" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="6599" y="544.9058">minDuration : urt_delay_t</text><ellipse cx="6590" cy="554.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="6599" y="557.7104">maxDuration : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6580" x2="6653" y1="528.293" y2="528.293"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="6653" y="531.6011">URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7107" x2="7180" y1="528.293" y2="528.293"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6580" x2="7180" y1="564.3047" y2="564.3047"/><ellipse cx="6590" cy="575.3047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="576" x="6599" y="578.5151">urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t</text><ellipse cx="6590" cy="588.1094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="557" x="6599" y="591.3198">urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[89d25e87afdd75480e1ec2bd05524873]
+class urt_core_t--><rect fill="#FEFECE" filter="url(#f6i8e5hg9h7lm)" height="256.0703" id="urt_core_t" style="stroke: #A80036; stroke-width: 1.5;" width="515" x="5693.5" y="28.9531"/><ellipse cx="5915.25" cy="44.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5914.7344,45.5156 Q5912.875,44.8125 5912.2188,44.0469 Q5911.5781,43.2656 5911.5781,41.9531 Q5911.5781,40.2656 5912.6563,39.2969 Q5913.7344,38.3281 5915.6094,38.3281 Q5916.4688,38.3281 5917.3125,38.5313 Q5918.1719,38.7188 5919.0156,39.1094 L5919.0156,41.5 Q5918.2344,40.9375 5917.4063,40.6563 Q5916.5938,40.3594 5915.7969,40.3594 Q5914.9219,40.3594 5914.4375,40.7188 Q5913.9688,41.0781 5913.9688,41.7344 Q5913.9688,42.25 5914.3125,42.5938 Q5914.6563,42.9219 5915.75,43.3281 L5916.8125,43.7344 Q5918.2969,44.2813 5919,45.1875 Q5919.7188,46.0938 5919.7188,47.4688 Q5919.7188,49.3438 5918.6094,50.2656 Q5917.5,51.1875 5915.25,51.1875 Q5914.3281,51.1875 5913.4063,50.9688 Q5912.4844,50.75 5911.625,50.3281 L5911.625,47.7969 Q5912.5938,48.4844 5913.5156,48.8281 Q5914.4375,49.1719 5915.3281,49.1719 Q5916.2344,49.1719 5916.7344,48.7656 Q5917.2344,48.3438 5917.2344,47.6094 Q5917.2344,47.0469 5916.8906,46.6406 Q5916.5625,46.2188 5915.9375,45.9688 L5914.7344,45.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="5935.75" y="49.1074">urt_core_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5694.5" x2="6207.5" y1="60.9531" y2="60.9531"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5701.5" y="68.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="5713.5" y="75.1636">_nodes : urt_node_t*</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5701.5" y="81.7578"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="192" x="5713.5" y="87.9683">_evtSource : urt_osEventSource_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5701.5" y="94.5625"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="5713.5" y="100.7729">_lock : urt_osMutex_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5701.5" y="124.1719"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="117" x="5713.5" y="130.3823">_topics : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5694.5" x2="5846" y1="113.7695" y2="113.7695"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="5846" y="117.0776">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6056" x2="6207.5" y1="113.7695" y2="113.7695"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5701.5" y="153.7813"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="145" x="5713.5" y="159.9917">_services : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5694.5" x2="5858.5" y1="143.3789" y2="143.3789"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="5858.5" y="146.687">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6043.5" x2="6207.5" y1="143.3789" y2="143.3789"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5694.5" x2="6207.5" y1="166.5859" y2="166.5859"/><ellipse cx="5704.5" cy="177.5859" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="5713.5" y="180.7964">urtCoreInit (void) : urt_status_t</text><ellipse cx="5704.5" cy="190.3906" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="222" x="5713.5" y="193.6011">urtCoreStartNodes (void) : urt_status_t</text><ellipse cx="5704.5" cy="203.1953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="489" x="5713.5" y="206.4058">urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodestage_t) : urt_status_t</text><ellipse cx="5704.5" cy="216" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="5713.5" y="219.2104">urtCoreStopNodes (void) : urt_status_t</text><ellipse cx="5704.5" cy="245.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="273" x="5713.5" y="248.8198">urtCoreGetTopic (id : urt_topicid_t) : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5694.5" x2="5846" y1="232.207" y2="232.207"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="5846" y="235.5151">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6056" x2="6207.5" y1="232.207" y2="232.207"/><ellipse cx="5704.5" cy="275.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="313" x="5713.5" y="278.4292">urtCoreGetService (id : urt_serviceid_t) : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5694.5" x2="5858.5" y1="261.8164" y2="261.8164"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="5858.5" y="265.1245">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6043.5" x2="6207.5" y1="261.8164" y2="261.8164"/><!--MD5=[182342162f0b9b45ddce11acc6582c59]
+reverse link urt_node_t to urt_node_t--><path d="M6538.0185,462.4923 C6552.4384,469.1698 6560.5,477.1567 6560.5,486.4531 C6560.5,498.1191 6547.8048,507.7231 6525.7804,515.265 " fill="none" id="urt_node_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6525.7804,457.6412,6529.8842,463.5707,6536.936,462.0631,6532.8322,456.1337,6525.7804,457.6412" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6533.9195" y="454.2008">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="6534.032" y="512.635">0..1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
+reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M5805.8325,597.8333 C5751.6925,642.7938 5695.5513,691.113 5662.8371,721.426 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="5815.9122,589.4823,5808.74,590.23,5806.6715,597.1381,5813.8438,596.3904,5815.9122,589.4823" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5798.1326" y="609.3376">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5660.0515" y="710.2104">1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
+reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M5837.6716,592.8114 C5783.3605,639.1598 5721.4515,689.981 5680.3298,721.426 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t-1" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="5841.5685,589.4823,5832.1274,592.287,5837.7669,592.7301,5837.3238,598.3695,5841.5685,589.4823" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b913f036db99e36b937989146817bd94]
+reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M6046.0101,598.9533 C6088.1282,643.5946 6135.2027,691.3646 6167.2987,721.426 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6037.1049,589.4823,6038.3009,596.5936,6045.3251,598.2247,6044.1291,591.1135,6037.1049,589.4823" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6034.8779" y="609.3376">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6150.1765" y="710.2104">1</text><!--MD5=[b913f036db99e36b937989146817bd94]
+reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M6066.2826,593.0895 C6111.3941,639.363 6158.4568,690.0439 6184.7915,721.426 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t-1" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6062.7612,589.4823,6066.186,598.7165,6066.254,593.0601,6071.9104,593.1281,6062.7612,589.4823" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[536025241394544a90bc53fb552f3a08]
+reverse link urt_message_t to urt_message_t--><path d="M1233.5642,717.6932 C1247.8974,725.8439 1256.5,737.2638 1256.5,751.9531 C1256.5,770.3867 1242.9528,783.6718 1221.534,791.8085 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1221.534,712.0977,1225.2873,718.2551,1232.4146,717.1587,1228.6613,711.0014,1221.534,712.0977" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1229.7829" y="707.4718">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1229.3281" y="789.9453">0..1</text><!--MD5=[0585cd4928de92ce6927d9c389eadd29]
+link urt_nrtsubscriber_t to urt_basesubscriber_t--><path d="M1875.1787,563.5304 C1944.02,585.7483 2021.4622,607.5767 2094,620.9531 C2518.3586,699.2072 2655.925,553.8706 3069.8574,678.9137 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3072.0992,672.2797,3089.1409,684.8726,3067.9658,685.6557,3072.0992,672.2797" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[37a8b7f2877a6b7bb4e9d0352ce3d221]
+link urt_nrtsubscriber_t to urt_message_t--><path d="M1470.5988,563.6033 C1378.9737,599.9658 1270.2314,643.1214 1179.9674,678.9436 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1175.1402,680.8594,1184.981,681.2574,1179.7876,679.015,1182.03,673.8216,1175.1402,680.8594" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6d81edfa5aa102b898ad487ae19b49f9]
+link urt_srtsubscriber_t to urt_basesubscriber_t--><path d="M4422.8492,583.0151 C4361.961,596.8959 4299.4105,610.1204 4240,620.9531 C3914.22,680.3547 3526.4148,721.2295 3327.013,740.0919 " fill="none" id="urt_srtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3327.4203,747.0843,3306.8536,741.9844,3326.1117,733.1456,3327.4203,747.0843" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[47304731969ac4130b45cc7169c5cada]
+reverse link urt_srtsubscriber_t to urt_srtusefulnessfunc_t--><path d="M4799,596.0612 C4799,641.4783 4799,690.6246 4799,721.342 " fill="none" id="urt_srtsubscriber_t&lt;-urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="4799,583.0557,4795,589.0557,4799,595.0557,4803,589.0557,4799,583.0557" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4790.7063" y="602.778">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4772.525" y="710.5823">0..1</text><!--MD5=[dffdac3aea8c81c86dd1d0b8122fcada]
+link urt_srtsubscriber_t to urt_message_t--><path d="M4448.5378,582.9959 C4379.885,598.4322 4308.0632,612.1893 4240,620.9531 C3578.4393,706.1356 1898.3185,579.8704 1239,680.9531 C1234.8627,681.5874 1230.6969,682.2728 1226.5104,683.0046 " fill="none" id="urt_srtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1221.5869,683.8846,1231.1503,686.2385,1226.5089,683.0048,1229.7426,678.3633,1221.5869,683.8846" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f626d284cba98e1d5d5fe914b1fa4188]
+link urt_frtsubscriber_t to urt_basesubscriber_t--><path d="M3504.3905,599.6265 C3443.0717,629.7192 3378.9567,661.1842 3325.0246,687.6518 " fill="none" id="urt_frtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3327.8079,694.0833,3306.7695,696.6106,3321.64,681.5152,3327.8079,694.0833" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[cfcdebdb88febc368723fd91f781523c]
+link urt_frtsubscriber_t to urt_message_t--><path d="M3347.1778,599.4981 C3308.1799,607.9851 3268.9705,615.391 3231,620.9531 C2354.6178,749.329 2113.8147,542.2973 1239,680.9531 C1234.8659,681.6083 1230.7031,682.3131 1226.5195,683.0628 " fill="none" id="urt_frtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1221.5992,683.9631,1231.1722,686.2778,1226.5175,683.0631,1229.7322,678.4085,1221.5992,683.9631" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[1ea71f2b33e56ab0ac5545988c1af396]
+link urt_hrtsubscriber_t to urt_basesubscriber_t--><path d="M2958.7123,620.9972 C2993.82,637.8002 3029.0613,655.278 3067.3977,675.4154 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3070.8401,669.3173,3085.2402,684.862,3064.2893,681.6902,3070.8401,669.3173" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ea2ec5c5272e65289dabade75a749f58]
+reverse link urt_hrtsubscriber_t to urt_hrtsubscriber_t--><path d="M3207.3399,461.8326 C3221.8539,468.6417 3230,476.8486 3230,486.4531 C3230,498.5058 3217.1717,508.3575 3195.0292,516.0082 " fill="none" id="urt_hrtsubscriber_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3195.0292,456.898,3199.1102,462.8432,3206.1677,461.3628,3202.0867,455.4176,3195.0292,456.898" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3202.7077" y="453.4456">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3202.8202" y="513.3871">0..1</text><!--MD5=[a8adaa0500715125c1ab51b9b0fda3ce]
+link urt_hrtsubscriber_t to urt_message_t--><path d="M2110.872,618.1203 C2104.8881,619.0943 2098.9292,620.0392 2093,620.9531 C1716.9494,678.9143 1613.5328,613.8804 1239,680.9531 C1234.8799,681.6909 1230.73,682.4722 1226.5583,683.2925 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1221.6515,684.2732,1231.2609,686.4316,1226.5545,683.2932,1229.6929,678.5868,1221.6515,684.2732" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
+reverse link urt_publisher_t to urt_topic_t--><path d="M794.8249,486.4531 C802.1324,486.4531 809.44,486.4531 816.7475,486.4531 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="781.6714,486.4531,787.6714,490.4531,793.6714,486.4531,787.6714,482.4531,781.6714,486.4531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="789.4647" y="483.3708">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="801.0814" y="483.2283">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
+link urt_publisher_t to urt_message_t--><path d="M546.5492,551.0622 C632.8323,589.6281 742.6672,638.721 832.1603,678.7217 " fill="none" id="urt_publisher_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="836.9443,680.86,830.3602,673.5355,832.3796,678.8196,827.0955,680.839,836.9443,680.86" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
+reverse link urt_topic_t to urt_topic_t--><path d="M1213.0439,450.3703 C1227.3061,458.6063 1236,470.6339 1236,486.4531 C1236,506.3047 1222.309,520.1852 1201.1039,528.0949 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1201.1039,444.8113,1204.855,450.97,1211.9826,449.8762,1208.2316,443.7175,1201.1039,444.8113" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1208.7642" y="439.9598">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1209.0767" y="526.4967">0..1</text><!--MD5=[ed3fb6de0913094c41bd74c175d366df]
+reverse link urt_topic_t to urt_hrtsubscriber_t--><path d="M1145.317,354.0079 C1174.4977,330.942 1206.4088,309.1844 1239,292.9531 C1246.1417,289.3963 1248.5719,289.8476 1256.5,288.9531 C1301.7131,283.8517 2030.2869,283.8517 2075.5,288.9531 C2163.5516,298.888 2255.7005,323.4069 2339.8741,351.9215 " fill="none" id="urt_topic_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1135.1127,362.2142,1142.2951,361.5712,1144.4639,354.694,1137.2816,355.337,1135.1127,362.2142" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1134.5539" y="351.2552">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2297.0778" y="340.7847">0..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
+reverse link urt_topic_t to urt_message_t--><path d="M1002.2699,623.9018 C1001.3084,643.5395 1000.3536,663.0399 999.4898,680.6812 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1002.9187,610.6522,998.63,616.4494,1002.3318,622.6379,1006.6204,616.8407,1002.9187,610.6522" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="994.3044" y="630.7464">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="991.4372" y="669.6505">1</text><!--MD5=[05f2c35569573d3273c65d3342945557]
+reverse link urt_service_t to urt_service_t--><path d="M7193.2128,455.5207 C7207.5894,463.3534 7216,473.6642 7216,486.4531 C7216,502.5019 7202.7552,514.6483 7181.0965,522.8921 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7181.0965,450.0141,7184.9038,456.1382,7192.0211,454.9792,7188.2139,448.8551,7181.0965,450.0141" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7189.2006" y="445.9095">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="7189.4131" y="520.7234">0..1</text><!--MD5=[586e61fedafd54ae7ea71cebd9f9032a]
+reverse link urt_service_t to urt_servicefunc_t--><path d="M6880,610.5187 C6880,651.6673 6880,693.9335 6880,721.4119 " fill="none" id="urt_service_t&lt;-urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6880,597.5107,6876,603.5107,6880,609.5107,6884,603.5107,6880,597.5107" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6871.7188" y="617.9022">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="6853.375" y="710.1932">0..1</text><!--MD5=[694e7400eb99f74d44ea388aed89d199]
+reverse link urt_core_t to urt_node_t--><path d="M5951,298.3422 C5951,326.9245 5951,356.4642 5951,383.4257 " fill="none" id="urt_core_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="5951,285.2899,5947,291.2899,5951,297.2899,5955,291.2899,5951,285.2899" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5942.7688" y="305.2117">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="5926.1188" y="372.3933">0..1</text><!--MD5=[250695c91040478b50550bc37a8775c7]
+reverse link urt_core_t to urt_topic_t--><path d="M5680.1235,159.8486 C4708.8115,170.8701 1447.1032,213.6375 1239,292.9531 C1198.2848,308.4711 1159.6607,334.4522 1126.0951,362.4198 " fill="none" id="urt_core_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="5693.2023,159.7005,5687.1574,155.7688,5681.2031,159.8365,5687.248,163.7682,5693.2023,159.7005" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5677.4302" y="156.6273">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1108.4993" y="351.4733">0..1</text><!--MD5=[8d0a227ec56585cdbc167f8316b34b64]
+reverse link urt_core_t to urt_service_t--><path d="M6221.8221,197.9187 C6329.4468,219.1837 6452.8876,249.9491 6560,292.9531 C6614.2235,314.723 6669.8719,345.1018 6719.2415,375.3457 " fill="none" id="urt_core_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="6208.7777,195.3723,6213.9002,200.4478,6220.5554,197.6715,6215.4329,192.596,6208.7777,195.3723" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6216.5492" y="193.3581">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="6683.6343" y="364.4327">0..1</text><!--MD5=[3935ae215845a45a68762d1af2ae6721]
 @startuml
 
 title **µRtWare**
@@ -81,9 +74,9 @@ title **µRtWare**
   + {method} urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodestage_t) : urt_status_t
   + {method} urtCoreStopNodes (void) : urt_status_t
   .. URT_CFG_PUBSUB_ENABLED == true ..
-  + {method} urtCoreRetrieveTopic (id : urt_topicid_t) : urt_topic_t*
+  + {method} urtCoreGetTopic (id : urt_topicid_t) : urt_topic_t*
   .. URT_CFG_RPC_ENABLED == true ..
-  + {method} urtCoreRetrieveService (id : urt_serviceid_t) : urt_service_t*
+  + {method} urtCoreGetService (id : urt_serviceid_t) : urt_service_t*
 }
 
   package "node" <<Rectangle>> {
@@ -104,9 +97,11 @@ title **µRtWare**
     + {field} loopparams : void*
     + {field} stage : urt_nodestage_t
     + {field} listener : urt_osEventListener_t
+    .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true ..
+    + {field} loops : uint64_t
     __
     - {method} {static} _main : urt_osThreadFunction_t
-    + {method} urtNodeInit (node : urt_node_t*, stacksize : size_t, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t
+    + {method} urtNodeInit (node : urt_node_t*, thread : urt_osThread_t*, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t
   }
 } 
 
@@ -124,93 +119,88 @@ title **µRtWare**
 }
 
   package "subscriber" <<Rectangle>> {
-    package "real-time constraint data" <<Rectangle>> {
-      class urt_rtdata_t <<S,BFAFFF>> {
-      + {field} class : urt_rtconstraintclass_t
-      + {field} params : urt_rtconstraintsparams_t
-    }
-
-      class urt_rtclass_t <<E,FF7F3F>> {
-      URT_RTCLASS_HARD = 0
-      URT_RTCLASS_FIRM = 1
-      URT_RTCLASS_SOFT = 2
-      URT_RTCLASS_NONE = 3
-    }
-
-      class urt_rtclassdata_t <<U,7FCF7F>> {
-      + {field} hrt : urt_hrtparams_t
-      + {field} frt : urt_frtparams_t
-      + {field} srt : urt_srtparans_t
-      + {field} nrt : urt_nrtparams_t
-    }
-
-      class urt_hrtdata_t <<S,BFAFFF>> {
-      + {field} next : urt_subscriber_t*
-      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
-      + {field} qosDeadlineTimer : urt_osTimer_t
-      + {field} deadlineOffset : urt_delay_t
-      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
-      + {field} expectedRate : urt_delay_t
-      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
-      + {field} maxJitter : urt_delay_t
-      + {field} minLatency : urt_delay_t
-      + {field} maxLatency : urt_delay_t
-    }
-
-      class urt_frtdata_t <<S,BFAFFF>> {
-      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
-      + {field} deadlineOffset : urt_delay_t
-      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
-      + {field} expectedRate : urt_delay_t
-      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
-      + {field} maxJitter : urt_delay_t
-      + {field} minLatency : urt_delay_t
-      + {field} maxLatency : urt_delay_t
-    }
-
-      package "SRT data" <<Rectangle>> {
-        class urt_srtusefulnessfunc_t <<F,E0E0E0>> {
-        urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
-      }
-
-        class urt_srtdata_t <<S,BFAFFF>> {
-        + {field} usefullnesscb : urt_srtusefulnessfunc_t*
-        + {field} cbparams : void*
-      }
-    } 
-
-      class urt_nrtdata_t <<S,BFAFFF>> {
-    }
-  } 
-
-    class urt_subscriber_t <<S,BFAFFF>> {
+    class urt_basesubscriber_t <<S,BFAFFF>> {
     + {field} topic : urt_topic_t*
     + {field} evtListener : urt_osEventListener_t
-    + {field} rtdata : urt_rtdata_t
     + {field} lastMessage : urt_message_t*
     + {field} lastMessageTime : urt_osTime_t
     .. URT_CFG_PUBSUB_PROFILING == true ..
     + {field} sumLatencies : uint64_t
     + {field} numMessagesReceived : uint64_t
+  }
+
+    class urt_srtusefulnessfunc_t <<F,E0E0E0>> {
+    urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
+  }
+
+    class urt_nrtsubscriber_t <<S,BFAFFF>> {
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    + {field} minLatency : urt_delay_t
+    + {field} maxLatency : urt_delay_t
+    __
+    + {method} urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : urt_status_t
+    + {method} urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
+    + {method} urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t
+  }
+
+    class urt_srtsubscriber_t <<S,BFAFFF>> {
+    + {field} usefulnesscb : urt_srtusefulnessfunc_t*
+    + {field} cbparams : void*
     .. URT_CFG_PUBSUB_PROFILING == true ..
     + {field} minLatency : urt_delay_t
     + {field} maxLatency : urt_delay_t
     __
-    + {method} urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t
-    + {method} urtSubscriberSubscribeHrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
-    + {method} urtSubscriberSubscribeFrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
-    + {method} urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
-    + {method} urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
-    + {method} urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t
-    + {method} urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
-    + {method} urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
-    + {method} urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float
+    + {method} urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : urt_status_t
+    + {method} urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
+    + {method} urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float
+    + {method} urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t
+  }
+
+    class urt_frtsubscriber_t <<S,BFAFFF>> {
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+    + {field} deadlineOffset : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+    + {field} maxJitter : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ||  URT_CFG_PUBSUB_PROFILING == true ..
+    + {field} minLatency : urt_delay_t
+    + {field} maxLatency : urt_delay_t
+    __
+    + {method} urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : urt_status_t
+    + {method} urtFrtSubscriberSubscribe (subscriber : urt_frtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, jitter : urt_delay_t) : urt_status_t
+    + {method} urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool
+    + {method} urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t
+  }
+
+    class urt_hrtsubscriber_t <<S,BFAFFF>> {
+    + {field} next : urt_hrtsubscriber_t*
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+    + {field} deadlineOffset : urt_delay_t
+    + {field} qosDeadlineTimer : urt_osTimer_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+    + {field} maxJitter : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true..
+    + {field} minLatency : urt_delay_t
+    + {field} maxLatency : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
+    + {field} expectedRate : urt_delay_t
+    __
+    + {method} urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : urt_status_t
+    + {method} urtHrtSubscriberSubscribe (subscriber : urt_hrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
+    + {method} urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t
   }
 } 
 
   class urt_publisher_t <<S,BFAFFF>> {
   + {field} topic : urt_topic_t*
-  .. URT_CFG_PROFILING == true ..
+  .. URT_CFG_PUBSUB_PROFILING == true ..
   + {field} publishAttempts : uint64_t
   + {field} publishFails : uint64_t
   __
@@ -224,7 +214,7 @@ title **µRtWare**
   + {field} lock : urt_osMutex_t
   + {field} evtSource : urt_osEventSource_t
   + {field} numHrtSubscribers : unsigned int
-  + {field} hrtSubscribers : urt_subscriber_t*
+  + {field} hrtSubscribers : urt_hrtsubscriber_t*
   + {field} hrtReleased : urt_osCondvar_t
   + {field} mandatoryMessage : urt_message_t
   + {field} latestMessage : urt_message_t*
@@ -250,11 +240,11 @@ title **µRtWare**
   + {field} id : urt_serviceid_t
   + {field} lock : urt_osMutex_t
   + {field} callback : urt_servicefunc_t*
-  .. URT_CFG_RPC_PROFLING == true ..
+  .. URT_CFG_RPC_PROFILING == true ..
   + {field} sumDurations : uint64_t
   + {field} numCalls : uint64_t
   + {field} numTimeouts : uint64_t
-  .. URT_CFG_RPC_PROFILING == true || URT_CFG_RPC_QOS_JITTERCHECKS == true ..
+  .. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true  ..
   + {field} minDuration : urt_delay_t
   + {field} maxDuration : urt_delay_t
   __
@@ -274,30 +264,27 @@ urt_node_t "1" o- - "1" urt_nodeLoopCallback_t
 urt_node_t <.. urt_nodeLoopCallback_t
 
 
-urt_srtdata_t "1" o- - "0..1" urt_srtusefulnessfunc_t
-
-urt_rtclassdata_t "1" *- - "0..1" urt_hrtdata_t
-urt_rtclassdata_t "1" *- - "0..1" urt_frtdata_t
-urt_rtclassdata_t "1" *- - "0..1" urt_srtdata_t
-urt_rtclassdata_t "1" *- - "0..1" urt_nrtdata_t
+urt_message_t "1" o- - "0..1" urt_message_t
 
-urt_rtdata_t "1" *- - "1" urt_rtclass_t
-urt_rtdata_t "1" *- - "1" urt_rtclassdata_t
+urt_nrtsubscriber_t - -|> urt_basesubscriber_t
+urt_nrtsubscriber_t ..> urt_message_t
 
-urt_hrtdata_t "1" o-up- "0..1" urt_subscriber_t
+urt_srtsubscriber_t - -|> urt_basesubscriber_t
+urt_srtsubscriber_t "1" o- - "0..1" urt_srtusefulnessfunc_t
+urt_srtsubscriber_t ..> urt_message_t
 
-urt_message_t "1" o- - "0..1" urt_message_t
+urt_frtsubscriber_t - -|> urt_basesubscriber_t
+urt_frtsubscriber_t ..> urt_message_t
 
-urt_subscriber_t "1" *- - "1" urt_rtdata_t
-urt_subscriber_t "1" o- "0..1" urt_topic_t
-urt_subscriber_t "1" o- - "0..1" urt_message_t
+urt_hrtsubscriber_t - -|> urt_basesubscriber_t
+urt_hrtsubscriber_t "1" o- - "0..1" urt_hrtsubscriber_t
+urt_hrtsubscriber_t ..> urt_message_t
 
 urt_publisher_t "1" o- "1" urt_topic_t
 urt_publisher_t ..> urt_message_t
 
 urt_topic_t "1" o- - "0..1" urt_topic_t
-urt_topic_t "1" o- "0..1" urt_subscriber_t
-urt_topic_t "1" o- - "1..1" urt_message_t
+urt_topic_t "1" o- "0..1" urt_hrtsubscriber_t
 urt_topic_t "1" *- - "1" urt_message_t
 
 
diff --git a/doc/classdiagrams/urtware.uml b/doc/classdiagrams/urtware.uml
index 667d2b4..db1434b 100644
--- a/doc/classdiagrams/urtware.uml
+++ b/doc/classdiagrams/urtware.uml
@@ -56,10 +56,10 @@ $structure("urt_core_t") {
   + {method} urtCoreStopNodes (void) : urt_status_t
   .. URT_CFG_PUBSUB_ENABLED == true ..
     'Retrieves a topic given an identifier.
-  + {method} urtCoreRetrieveTopic (id : urt_topicid_t) : urt_topic_t*
+  + {method} urtCoreGetTopic (id : urt_topicid_t) : urt_topic_t*
   .. URT_CFG_RPC_ENABLED == true ..
     'Retrieves a service given an identifier.
-  + {method} urtCoreRetrieveService (id : urt_serviceid_t) : urt_service_t*
+  + {method} urtCoreGetService (id : urt_serviceid_t) : urt_service_t*
 }
 
 $group("node") {
@@ -79,7 +79,7 @@ $group("node") {
   $structure("urt_node_t") {
       'Pointer to the next node in a list.
     + {field} next : urt_node_t*
-      'Pointer to the nore thread.
+      'Pointer to the node thread.
     + {field} thread : urt_osThread_t*
       'Callback function to be called during the setup phase.
     + {field} setupcallback : urt_nodeSetupCallback_t*
@@ -93,11 +93,14 @@ $group("node") {
     + {field} stage : urt_nodestage_t
       'Event listener for middleware-wide control events.
     + {field} listener : urt_osEventListener_t
+    .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true ..
+      'Counter of executed loops.
+    + {field} loops : uint64_t
     __
     'The main() function of the node thread.
     - {method} {static} _main : urt_osThreadFunction_t
       'Initializes an urt_node_t object.
-    + {method} urtNodeInit (node : urt_node_t*, stacksize : size_t, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t
+    + {method} urtNodeInit (node : urt_node_t*, thread : urt_osThread_t*, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t
   }
 } /'node'/
 
