commit 77bd2c61a9e414f8dcda4d44bcfbfe18cfdb37fc
Author: skenneweg <skenneweg@techfak.uni-bielefeld.de>
Date:   Thu Jul 16 23:57:30 2020 +0200

    Added functions to the documentation

diff --git a/doc/classdiagrams/pubsub.svg b/doc/classdiagrams/pubsub.svg
index ad3a82c..cff8f31 100644
--- a/doc/classdiagrams/pubsub.svg
+++ b/doc/classdiagrams/pubsub.svg
@@ -1,29 +1,272 @@
-<?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="797px" preserveAspectRatio="none" style="width:5337px;height:797px;" version="1.1" viewBox="0 0 5337 797" width="5337px" zoomAndPan="magnify"><defs><filter height="300%" id="fvsjqt0klpekf" 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="2627.5" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="225" x="2559.5" y="37.6611">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
-cluster subscriber--><rect fill="#FFFFFF" filter="url(#fvsjqt0klpekf)" height="498" style="stroke: #000000; stroke-width: 1.5;" width="4063" x="1253.5" y="94.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="3242.5" y="109.9014">subscriber</text><!--MD5=[50a042e24f957794dab9ba3ea8701c50]
-class urt_basesubscriber_t--><rect fill="#FEFECE" filter="url(#fvsjqt0klpekf)" height="133.6328" id="urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="2680" y="450.9063"/><ellipse cx="2722.45" cy="466.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2721.9344,467.4688 Q2720.075,466.7656 2719.4188,466 Q2718.7781,465.2188 2718.7781,463.9063 Q2718.7781,462.2188 2719.8563,461.25 Q2720.9344,460.2813 2722.8094,460.2813 Q2723.6688,460.2813 2724.5125,460.4844 Q2725.3719,460.6719 2726.2156,461.0625 L2726.2156,463.4531 Q2725.4344,462.8906 2724.6063,462.6094 Q2723.7938,462.3125 2722.9969,462.3125 Q2722.1219,462.3125 2721.6375,462.6719 Q2721.1688,463.0313 2721.1688,463.6875 Q2721.1688,464.2031 2721.5125,464.5469 Q2721.8563,464.875 2722.95,465.2813 L2724.0125,465.6875 Q2725.4969,466.2344 2726.2,467.1406 Q2726.9188,468.0469 2726.9188,469.4219 Q2726.9188,471.2969 2725.8094,472.2188 Q2724.7,473.1406 2722.45,473.1406 Q2721.5281,473.1406 2720.6063,472.9219 Q2719.6844,472.7031 2718.825,472.2813 L2718.825,469.75 Q2719.7938,470.4375 2720.7156,470.7813 Q2721.6375,471.125 2722.5281,471.125 Q2723.4344,471.125 2723.9344,470.7188 Q2724.4344,470.2969 2724.4344,469.5625 Q2724.4344,469 2724.0906,468.5938 Q2723.7625,468.1719 2723.1375,467.9219 L2721.9344,467.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="132" x="2742.55" y="471.0605">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2681" x2="2904" y1="482.9063" y2="482.9063"/><ellipse cx="2691" cy="493.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="2700" y="497.1167">topic : urt_topic_t*</text><ellipse cx="2691" cy="506.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="2700" y="509.9214">evtListener : urt_osEventListener_t</text><ellipse cx="2691" cy="519.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="2700" y="522.7261">lastMessage : urt_message_t*</text><ellipse cx="2691" cy="532.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="2700" y="535.5308">lastMessageTime : urt_osTime_t</text><ellipse cx="2691" cy="561.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="2700" y="565.1401">sumLatencies : uint64_t</text><ellipse cx="2691" cy="574.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="2700" y="577.9448">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2681" x2="2684" y1="548.5273" y2="548.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2684" y="551.8354">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2901" x2="2904" y1="548.5273" y2="548.5273"/><!--MD5=[9ff46073dd541e50679ef35e851c67d6]
-class urt_nrtsubscriber_t--><rect fill="#FEFECE" filter="url(#fvsjqt0klpekf)" height="154.4375" id="urt_nrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="821" x="3350" y="179.4063"/><ellipse cx="3696.75" cy="195.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3696.2344,195.9688 Q3694.375,195.2656 3693.7188,194.5 Q3693.0781,193.7188 3693.0781,192.4063 Q3693.0781,190.7188 3694.1563,189.75 Q3695.2344,188.7813 3697.1094,188.7813 Q3697.9688,188.7813 3698.8125,188.9844 Q3699.6719,189.1719 3700.5156,189.5625 L3700.5156,191.9531 Q3699.7344,191.3906 3698.9063,191.1094 Q3698.0938,190.8125 3697.2969,190.8125 Q3696.4219,190.8125 3695.9375,191.1719 Q3695.4688,191.5313 3695.4688,192.1875 Q3695.4688,192.7031 3695.8125,193.0469 Q3696.1563,193.375 3697.25,193.7813 L3698.3125,194.1875 Q3699.7969,194.7344 3700.5,195.6406 Q3701.2188,196.5469 3701.2188,197.9219 Q3701.2188,199.7969 3700.1094,200.7188 Q3699,201.6406 3696.75,201.6406 Q3695.8281,201.6406 3694.9063,201.4219 Q3693.9844,201.2031 3693.125,200.7813 L3693.125,198.25 Q3694.0938,198.9375 3695.0156,199.2813 Q3695.9375,199.625 3696.8281,199.625 Q3697.7344,199.625 3698.2344,199.2188 Q3698.7344,198.7969 3698.7344,198.0625 Q3698.7344,197.5 3698.3906,197.0938 Q3698.0625,196.6719 3697.4375,196.4219 L3696.2344,195.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="3717.25" y="199.5605">urt_nrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3351" x2="4170" y1="211.4063" y2="211.4063"/><ellipse cx="3361" cy="239.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="3370" y="242.4214">minLatency : urt_delay_t</text><ellipse cx="3361" cy="252.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="3370" y="255.2261">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3351" x2="3652" y1="225.8086" y2="225.8086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="3652" y="229.1167">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3869" x2="4170" y1="225.8086" y2="225.8086"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3351" x2="4170" y1="261.8203" y2="261.8203"/><ellipse cx="3361" cy="272.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="347" x="3370" y="276.0308">urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : void</text><ellipse cx="3361" cy="285.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="3370" y="288.8354">urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="3361" cy="298.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="3370" y="301.6401">urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3361" cy="311.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="3370" y="314.4448">urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3361" cy="324.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="3370" y="327.2495">urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t</text><!--MD5=[5c7929572d87ccc448d875bea5da0fb1]
-class urt_srtsubscriber_t--><rect fill="#FEFECE" filter="url(#fvsjqt0klpekf)" height="192.8516" id="urt_srtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1044" x="2270.5" y="159.9063"/><ellipse cx="2729.25" cy="175.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2728.7344,176.4688 Q2726.875,175.7656 2726.2188,175 Q2725.5781,174.2188 2725.5781,172.9063 Q2725.5781,171.2188 2726.6563,170.25 Q2727.7344,169.2813 2729.6094,169.2813 Q2730.4688,169.2813 2731.3125,169.4844 Q2732.1719,169.6719 2733.0156,170.0625 L2733.0156,172.4531 Q2732.2344,171.8906 2731.4063,171.6094 Q2730.5938,171.3125 2729.7969,171.3125 Q2728.9219,171.3125 2728.4375,171.6719 Q2727.9688,172.0313 2727.9688,172.6875 Q2727.9688,173.2031 2728.3125,173.5469 Q2728.6563,173.875 2729.75,174.2813 L2730.8125,174.6875 Q2732.2969,175.2344 2733,176.1406 Q2733.7188,177.0469 2733.7188,178.4219 Q2733.7188,180.2969 2732.6094,181.2188 Q2731.5,182.1406 2729.25,182.1406 Q2728.3281,182.1406 2727.4063,181.9219 Q2726.4844,181.7031 2725.625,181.2813 L2725.625,178.75 Q2726.5938,179.4375 2727.5156,179.7813 Q2728.4375,180.125 2729.3281,180.125 Q2730.2344,180.125 2730.7344,179.7188 Q2731.2344,179.2969 2731.2344,178.5625 Q2731.2344,178 2730.8906,177.5938 Q2730.5625,177.1719 2729.9375,176.9219 L2728.7344,176.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="2749.75" y="180.0605">urt_srtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2271.5" x2="3313.5" y1="191.9063" y2="191.9063"/><ellipse cx="2281.5" cy="202.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="189" x="2290.5" y="206.1167">usefulnesscb : urt_usefulness_f*</text><ellipse cx="2281.5" cy="215.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="2290.5" y="218.9214">cbparams : void*</text><ellipse cx="2281.5" cy="245.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="2290.5" y="248.5308">minLatency : urt_delay_t</text><ellipse cx="2281.5" cy="258.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="2290.5" y="261.3354">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2271.5" x2="2684" y1="231.918" y2="231.918"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2684" y="235.2261">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2901" x2="3313.5" y1="231.918" y2="231.918"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2271.5" x2="3313.5" y1="267.9297" y2="267.9297"/><ellipse cx="2281.5" cy="278.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="347" x="2290.5" y="282.1401">urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : void</text><ellipse cx="2281.5" cy="291.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="1018" x="2290.5" y="294.9448">urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_usefulness_f*, cbparams : void*) : urt_status_t</text><ellipse cx="2281.5" cy="304.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="2290.5" y="307.7495">urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2281.5" cy="317.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="2290.5" y="320.5542">urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2281.5" cy="330.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="2290.5" y="333.3589">urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float</text><ellipse cx="2281.5" cy="342.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="2290.5" y="346.1636">urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t</text><!--MD5=[17838fb05fe219fd399839979ec8a4a4]
-class urt_frtsubscriber_t--><rect fill="#FEFECE" filter="url(#fvsjqt0klpekf)" height="226.4609" id="urt_frtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="974" x="1261.5" y="143.4063"/><ellipse cx="1686.75" cy="159.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1686.2344,159.9688 Q1684.375,159.2656 1683.7188,158.5 Q1683.0781,157.7188 1683.0781,156.4063 Q1683.0781,154.7188 1684.1563,153.75 Q1685.2344,152.7813 1687.1094,152.7813 Q1687.9688,152.7813 1688.8125,152.9844 Q1689.6719,153.1719 1690.5156,153.5625 L1690.5156,155.9531 Q1689.7344,155.3906 1688.9063,155.1094 Q1688.0938,154.8125 1687.2969,154.8125 Q1686.4219,154.8125 1685.9375,155.1719 Q1685.4688,155.5313 1685.4688,156.1875 Q1685.4688,156.7031 1685.8125,157.0469 Q1686.1563,157.375 1687.25,157.7813 L1688.3125,158.1875 Q1689.7969,158.7344 1690.5,159.6406 Q1691.2188,160.5469 1691.2188,161.9219 Q1691.2188,163.7969 1690.1094,164.7188 Q1689,165.6406 1686.75,165.6406 Q1685.8281,165.6406 1684.9063,165.4219 Q1683.9844,165.2031 1683.125,164.7813 L1683.125,162.25 Q1684.0938,162.9375 1685.0156,163.2813 Q1685.9375,163.625 1686.8281,163.625 Q1687.7344,163.625 1688.2344,163.2188 Q1688.7344,162.7969 1688.7344,162.0625 Q1688.7344,161.5 1688.3906,161.0938 Q1688.0625,160.6719 1687.4375,160.4219 L1686.2344,159.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="1707.25" y="163.5605">urt_frtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1262.5" x2="2234.5" y1="175.4063" y2="175.4063"/><ellipse cx="1272.5" cy="203.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="1281.5" y="206.4214">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1262.5" x2="1603" y1="189.8086" y2="189.8086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="1603" y="193.1167">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1894" x2="2234.5" y1="189.8086" y2="189.8086"/><ellipse cx="1272.5" cy="232.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="1281.5" y="236.0308">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1262.5" x2="1613" y1="219.418" y2="219.418"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="1613" y="222.7261">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1884" x2="2234.5" y1="219.418" y2="219.418"/><ellipse cx="1272.5" cy="262.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="1281.5" y="265.6401">minLatency : urt_delay_t</text><ellipse cx="1272.5" cy="275.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="1281.5" y="278.4448">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1262.5" x2="1494.5" y1="249.0273" y2="249.0273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="508" x="1494.5" y="252.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="2002.5" x2="2234.5" y1="249.0273" y2="249.0273"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1262.5" x2="2234.5" y1="285.0391" y2="285.0391"/><ellipse cx="1272.5" cy="296.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="342" x="1281.5" y="299.2495">urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : void</text><ellipse cx="1272.5" cy="308.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="1281.5" y="312.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="1272.5" cy="321.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="1281.5" y="324.8589">urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1272.5" cy="334.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="1281.5" y="337.6636">urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1272.5" cy="347.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="1281.5" y="350.4683">urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool</text><ellipse cx="1272.5" cy="360.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="1281.5" y="363.2729">urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t</text><!--MD5=[104dc879e5721421b987fcc467bc3a1d]
-class urt_hrtsubscriber_t--><rect fill="#FEFECE" filter="url(#fvsjqt0klpekf)" height="268.875" id="urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1084" x="4206.5" y="121.9063"/><ellipse cx="4684.75" cy="137.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4684.2344,138.4688 Q4682.375,137.7656 4681.7188,137 Q4681.0781,136.2188 4681.0781,134.9063 Q4681.0781,133.2188 4682.1563,132.25 Q4683.2344,131.2813 4685.1094,131.2813 Q4685.9688,131.2813 4686.8125,131.4844 Q4687.6719,131.6719 4688.5156,132.0625 L4688.5156,134.4531 Q4687.7344,133.8906 4686.9063,133.6094 Q4686.0938,133.3125 4685.2969,133.3125 Q4684.4219,133.3125 4683.9375,133.6719 Q4683.4688,134.0313 4683.4688,134.6875 Q4683.4688,135.2031 4683.8125,135.5469 Q4684.1563,135.875 4685.25,136.2813 L4686.3125,136.6875 Q4687.7969,137.2344 4688.5,138.1406 Q4689.2188,139.0469 4689.2188,140.4219 Q4689.2188,142.2969 4688.1094,143.2188 Q4687,144.1406 4684.75,144.1406 Q4683.8281,144.1406 4682.9063,143.9219 Q4681.9844,143.7031 4681.125,143.2813 L4681.125,140.75 Q4682.0938,141.4375 4683.0156,141.7813 Q4683.9375,142.125 4684.8281,142.125 Q4685.7344,142.125 4686.2344,141.7188 Q4686.7344,141.2969 4686.7344,140.5625 Q4686.7344,140 4686.3906,139.5938 Q4686.0625,139.1719 4685.4375,138.9219 L4684.2344,138.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="4705.25" y="142.0605">urt_hrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4207.5" x2="5289.5" y1="153.9063" y2="153.9063"/><ellipse cx="4217.5" cy="164.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="4226.5" y="168.1167">next : urt_hrtsubscriber_t*</text><ellipse cx="4217.5" cy="194.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="4226.5" y="197.7261">deadlineOffset : urt_delay_t</text><ellipse cx="4217.5" cy="207.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="4226.5" y="210.5308">qosDeadlineTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4207.5" x2="4603" y1="181.1133" y2="181.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="4603" y="184.4214">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4894" x2="5289.5" y1="181.1133" y2="181.1133"/><ellipse cx="4217.5" cy="236.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="4226.5" y="240.1401">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4207.5" x2="4613" y1="223.5273" y2="223.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="4613" y="226.8354">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4884" x2="5289.5" y1="223.5273" y2="223.5273"/><ellipse cx="4217.5" cy="266.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="4226.5" y="269.7495">minLatency : urt_delay_t</text><ellipse cx="4217.5" cy="279.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="4226.5" y="282.5542">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4207.5" x2="4496.5" y1="253.1367" y2="253.1367"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="4496.5" y="256.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="5000.5" x2="5289.5" y1="253.1367" y2="253.1367"/><ellipse cx="4217.5" cy="308.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="4226.5" y="312.1636">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4207.5" x2="4616" y1="295.5508" y2="295.5508"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="4616" y="298.8589">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4881" x2="5289.5" y1="295.5508" y2="295.5508"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4207.5" x2="5289.5" y1="318.7578" y2="318.7578"/><ellipse cx="4217.5" cy="329.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="347" x="4226.5" y="332.9683">urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : void</text><ellipse cx="4217.5" cy="342.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="4226.5" y="345.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="4217.5" cy="355.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="4226.5" y="358.5776">urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4217.5" cy="368.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="4226.5" y="371.3823">urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4217.5" cy="380.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="4226.5" y="384.187">urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t</text><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
-class urt_message_t--><rect fill="#FEFECE" filter="url(#fvsjqt0klpekf)" height="141.6328" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="406" x="813.5" y="644.9063"/><ellipse cx="966.25" cy="660.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M965.7344,661.4688 Q963.875,660.7656 963.2188,660 Q962.5781,659.2188 962.5781,657.9063 Q962.5781,656.2188 963.6563,655.25 Q964.7344,654.2813 966.6094,654.2813 Q967.4688,654.2813 968.3125,654.4844 Q969.1719,654.6719 970.0156,655.0625 L970.0156,657.4531 Q969.2344,656.8906 968.4063,656.6094 Q967.5938,656.3125 966.7969,656.3125 Q965.9219,656.3125 965.4375,656.6719 Q964.9688,657.0313 964.9688,657.6875 Q964.9688,658.2031 965.3125,658.5469 Q965.6563,658.875 966.75,659.2813 L967.8125,659.6875 Q969.2969,660.2344 970,661.1406 Q970.7188,662.0469 970.7188,663.4219 Q970.7188,665.2969 969.6094,666.2188 Q968.5,667.1406 966.25,667.1406 Q965.3281,667.1406 964.4063,666.9219 Q963.4844,666.7031 962.625,666.2813 L962.625,663.75 Q963.5938,664.4375 964.5156,664.7813 Q965.4375,665.125 966.3281,665.125 Q967.2344,665.125 967.7344,664.7188 Q968.2344,664.2969 968.2344,663.5625 Q968.2344,663 967.8906,662.5938 Q967.5625,662.1719 966.9375,661.9219 L965.7344,661.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="986.75" y="665.0605">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="814.5" x2="1218.5" y1="676.9063" y2="676.9063"/><ellipse cx="824.5" cy="687.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="833.5" y="691.1167">next : urt_message_t*</text><ellipse cx="824.5" cy="700.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="833.5" y="703.9214">payload : void*</text><ellipse cx="824.5" cy="713.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="833.5" y="716.7261">originTime : urt_osTime_t</text><ellipse cx="824.5" cy="726.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="833.5" y="729.5308">numHrtConsumersLeft : unsigned int</text><ellipse cx="824.5" cy="755.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="833.5" y="759.1401">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="814.5" x2="908" y1="742.5273" y2="742.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="908" y="745.8354">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1125" x2="1218.5" y1="742.5273" y2="742.5273"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="814.5" x2="1218.5" y1="765.7344" y2="765.7344"/><ellipse cx="824.5" cy="776.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="380" x="833.5" y="779.9448">urtMessageInit (message : urt_message_t*, payload : void*) : void</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
-class urt_publisher_t--><rect fill="#FEFECE" filter="url(#fvsjqt0klpekf)" height="196.0469" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="783" x="6" y="158.4063"/><ellipse cx="346.75" cy="174.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M346.2344,174.9688 Q344.375,174.2656 343.7188,173.5 Q343.0781,172.7188 343.0781,171.4063 Q343.0781,169.7188 344.1563,168.75 Q345.2344,167.7813 347.1094,167.7813 Q347.9688,167.7813 348.8125,167.9844 Q349.6719,168.1719 350.5156,168.5625 L350.5156,170.9531 Q349.7344,170.3906 348.9063,170.1094 Q348.0938,169.8125 347.2969,169.8125 Q346.4219,169.8125 345.9375,170.1719 Q345.4688,170.5313 345.4688,171.1875 Q345.4688,171.7031 345.8125,172.0469 Q346.1563,172.375 347.25,172.7813 L348.3125,173.1875 Q349.7969,173.7344 350.5,174.6406 Q351.2188,175.5469 351.2188,176.9219 Q351.2188,178.7969 350.1094,179.7188 Q349,180.6406 346.75,180.6406 Q345.8281,180.6406 344.9063,180.4219 Q343.9844,180.2031 343.125,179.7813 L343.125,177.25 Q344.0938,177.9375 345.0156,178.2813 Q345.9375,178.625 346.8281,178.625 Q347.7344,178.625 348.2344,178.2188 Q348.7344,177.7969 348.7344,177.0625 Q348.7344,176.5 348.3906,176.0938 Q348.0625,175.6719 347.4375,175.4219 L346.2344,174.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="367.25" y="178.5605">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="788" y1="190.4063" y2="190.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="289" x="12" y="204.6167">URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT : bool</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="788" y1="211.2109" y2="211.2109"/><ellipse cx="17" cy="222.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="104" x="26" y="225.4214">topic : urt_topic_t*</text><ellipse cx="17" cy="251.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="149" x="26" y="255.0308">publishAttempts : uint64_t</text><ellipse cx="17" cy="264.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="124" x="26" y="267.8354">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="289" y1="238.418" y2="238.418"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="289" y="241.7261">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="506" x2="788" y1="238.418" y2="238.418"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="788" y1="274.4297" y2="274.4297"/><ellipse cx="17" cy="285.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="572" x="26" y="288.6401">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : void</text><ellipse cx="17" cy="315.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="632" x="26" y="318.2495">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, bytes : size_t, t : urt_osTime_t) : urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="244" y1="301.6367" y2="301.6367"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="307" x="244" y="304.9448">URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == false</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="551" x2="788" y1="301.6367" y2="301.6367"/><ellipse cx="17" cy="344.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="757" x="26" y="347.8589">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, bytes : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="246.5" y1="331.2461" y2="331.2461"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="302" x="246.5" y="334.5542">URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="548.5" x2="788" y1="331.2461" y2="331.2461"/><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
-class urt_topic_t--><rect fill="#FEFECE" filter="url(#fvsjqt0klpekf)" height="260.875" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="824.5" y="125.9063"/><ellipse cx="979.25" cy="141.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M978.7344,142.4688 Q976.875,141.7656 976.2188,141 Q975.5781,140.2188 975.5781,138.9063 Q975.5781,137.2188 976.6563,136.25 Q977.7344,135.2813 979.6094,135.2813 Q980.4688,135.2813 981.3125,135.4844 Q982.1719,135.6719 983.0156,136.0625 L983.0156,138.4531 Q982.2344,137.8906 981.4063,137.6094 Q980.5938,137.3125 979.7969,137.3125 Q978.9219,137.3125 978.4375,137.6719 Q977.9688,138.0313 977.9688,138.6875 Q977.9688,139.2031 978.3125,139.5469 Q978.6563,139.875 979.75,140.2813 L980.8125,140.6875 Q982.2969,141.2344 983,142.1406 Q983.7188,143.0469 983.7188,144.4219 Q983.7188,146.2969 982.6094,147.2188 Q981.5,148.1406 979.25,148.1406 Q978.3281,148.1406 977.4063,147.9219 Q976.4844,147.7031 975.625,147.2813 L975.625,144.75 Q976.5938,145.4375 977.5156,145.7813 Q978.4375,146.125 979.3281,146.125 Q980.2344,146.125 980.7344,145.7188 Q981.2344,145.2969 981.2344,144.5625 Q981.2344,144 980.8906,143.5938 Q980.5625,143.1719 979.9375,142.9219 L978.7344,142.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="999.75" y="146.0605">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="825.5" x2="1207.5" y1="157.9063" y2="157.9063"/><ellipse cx="835.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="101" x="844.5" y="172.1167">next : urt_topic_t*</text><ellipse cx="835.5" cy="181.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="844.5" y="184.9214">id : urt_topicid_t</text><ellipse cx="835.5" cy="194.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="844.5" y="197.7261">lock : urt_osMutex_t</text><ellipse cx="835.5" cy="207.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="844.5" y="210.5308">evtSource : urt_osEventSource_t</text><ellipse cx="835.5" cy="220.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="844.5" y="223.3354">numHrtSubscribers : unsigned int</text><ellipse cx="835.5" cy="232.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="173" x="844.5" y="236.1401">hrtReleased : urt_osCondvar_t</text><ellipse cx="835.5" cy="245.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="209" x="844.5" y="248.9448">mandatoryMessage : urt_message_t</text><ellipse cx="835.5" cy="258.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="186" x="844.5" y="261.7495">latestMessage : urt_message_t*</text><ellipse cx="835.5" cy="288.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="212" x="844.5" y="291.3589">hrtSubscribers : urt_hrtsubscriber_t*</text><ellipse cx="835.5" cy="300.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="844.5" y="304.1636">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="825.5" x2="884" y1="274.7461" y2="274.7461"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="884" y="278.0542">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1149" x2="1207.5" y1="274.7461" y2="274.7461"/><ellipse cx="835.5" cy="330.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="195" x="844.5" y="333.7729">numMessagesPublished : uint64_t</text><ellipse cx="835.5" cy="343.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="197" x="844.5" y="346.5776">numMessagesDiscarded : uint64_t</text><ellipse cx="835.5" cy="356.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="176" x="844.5" y="359.3823">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="825.5" x2="908" y1="317.1602" y2="317.1602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="908" y="320.4683">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1125" x2="1207.5" y1="317.1602" y2="317.1602"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="825.5" x2="1207.5" y1="365.9766" y2="365.9766"/><ellipse cx="835.5" cy="376.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="358" x="844.5" y="380.187">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="M1232.0028,689.5133 C1246.0209,695.6657 1254.5,704.4634 1254.5,715.9063 C1254.5,730.4083 1240.8815,740.6616 1219.6293,746.6663 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1219.6293,685.1463,1223.956,690.9151,1230.9452,689.14,1226.6185,683.3712,1219.6293,685.1463" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1227.7203" y="680.7284">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1227.2886" y="744.578">0,1</text><!--MD5=[aa8990705afdbad14c7f998fe04b6f05]
-reverse link urt_basesubscriber_t to urt_message_t--><path d="M2666.4993,531.9537 C2363.0553,565.7836 1589.5394,652.0201 1219.5884,693.2647 " fill="none" id="urt_basesubscriber_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2679.718,530.4799,2673.3117,527.1695,2667.7919,531.8097,2674.1982,535.1202,2679.718,530.4799" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2663.8717" y="527.9045">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1227.2463" y="704.7964">0,1</text><!--MD5=[0585cd4928de92ce6927d9c389eadd29]
-link urt_nrtsubscriber_t to urt_basesubscriber_t--><path d="M3526.2283,333.4389 C3463.5669,353.1064 3395.689,373.5723 3332.5,390.9063 C3194.3193,428.812 3034.3631,465.5535 2924.6129,489.6812 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2926.0966,496.5221,2905.0621,493.9626,2923.1016,482.8462,2926.0966,496.5221" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6d81edfa5aa102b898ad487ae19b49f9]
-link urt_srtsubscriber_t to urt_basesubscriber_t--><path d="M2792.5,353.0363 C2792.5,378.3836 2792.5,405.5704 2792.5,430.41 " fill="none" id="urt_srtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2799.5001,430.6313,2792.5,450.6312,2785.5001,430.6312,2799.5001,430.6313" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f626d284cba98e1d5d5fe914b1fa4188]
-link urt_frtsubscriber_t to urt_basesubscriber_t--><path d="M2169.1729,369.427 C2197.6878,376.7857 2225.9994,384.0058 2253.5,390.9063 C2391.7604,425.5991 2550.6746,462.7076 2659.9377,487.7957 " fill="none" id="urt_frtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2661.8156,481.0446,2679.7455,492.337,2658.687,494.6905,2661.8156,481.0446" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[1ea71f2b33e56ab0ac5545988c1af396]
-link urt_hrtsubscriber_t to urt_basesubscriber_t--><path d="M4206.3442,387.8991 C4200.3691,388.9284 4194.4195,389.9315 4188.5,390.9063 C3728.3838,466.6802 3174.9618,500.1722 2925.6847,512.2261 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2925.7015,519.2331,2905.3912,513.1923,2925.0356,505.249,2925.7015,519.2331" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ea2ec5c5272e65289dabade75a749f58]
-reverse link urt_hrtsubscriber_t to urt_hrtsubscriber_t--><path d="M5302.8399,232.1588 C5317.3539,238.8647 5325.5,246.9473 5325.5,256.4063 C5325.5,268.2764 5312.6717,277.9788 5290.5292,285.5136 " fill="none" id="urt_hrtsubscriber_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="5290.5292,227.299,5294.6414,233.2226,5301.691,231.7052,5297.5788,225.7815,5290.5292,227.299" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5298.2077" y="223.8529">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="5298.2921" y="282.8861">0,1</text><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
-reverse link urt_publisher_t to urt_topic_t--><path d="M802.3622,256.4063 C809.6684,256.4063 816.9747,256.4063 824.2809,256.4063 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="789.2109,256.4063,795.2109,260.4063,801.2109,256.4063,795.2109,252.4063,789.2109,256.4063" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="797.2488" y="253.3217">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="808.6161" y="253.1852">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
-link urt_publisher_t to urt_message_t--><path d="M529.5318,354.417 C645.3911,440.4224 811.3639,563.6284 916.516,641.6855 " 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="920.5419,644.6741,915.6996,636.0978,916.5272,641.6938,910.9312,642.5213,920.5419,644.6741" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
-reverse link urt_topic_t to urt_topic_t--><path d="M1220.5439,220.8703 C1234.8061,228.9814 1243.5,240.8267 1243.5,256.4063 C1243.5,275.9571 1229.809,289.6274 1208.6039,297.4171 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1208.6039,215.3954,1212.3907,221.5322,1219.5119,220.3971,1215.7251,214.2603,1208.6039,215.3954" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1216.2642" y="210.5724">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1216.4986" y="295.798">0,1</text><!--MD5=[ed3fb6de0913094c41bd74c175d366df]
-reverse link urt_topic_t to urt_hrtsubscriber_t--><path d="M1163.0785,118.0086 C1193.9801,96.2116 1227.9195,76.9316 1263,64.9063 C1339.4129,38.7124 4091.2552,52.0293 4171,64.9063 C4247.3838,77.2405 4327.3368,98.1948 4402.5629,121.8264 " fill="none" id="urt_topic_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1152.278,125.8156,1159.4839,125.5424,1162.0033,118.7857,1154.7973,119.0589,1152.278,125.8156" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1151.8964" y="114.9065">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="4361.9853" y="110.6867">0,1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
-reverse link urt_topic_t to urt_message_t--><path d="M1016.5,400.3211 C1016.5,481.6692 1016.5,579.7848 1016.5,644.7927 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1016.5,387.1584,1012.5,393.1584,1016.5,399.1584,1020.5,393.1584,1016.5,387.1584" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1008.2813" y="406.793">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1008.0875" y="633.7783">1</text><!--MD5=[3963fa39dea3a9aae9fd717b2dc4370c]
+<?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="827px" preserveAspectRatio="none" style="width:5557px;height:827px;" version="1.1" viewBox="0 0 5557 827" width="5557px" zoomAndPan="magnify"><defs><filter height="300%" id="f11mdjur5d2uci" 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="2725.25" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="225" x="2657.25" y="37.6611">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
+cluster subscriber--><rect fill="#FFFFFF" filter="url(#f11mdjur5d2uci)" height="498" style="stroke: #000000; stroke-width: 1.5;" width="4063" x="1473.5" y="117.3228"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="3462.5" y="132.3179">subscriber</text><!--MD5=[50a042e24f957794dab9ba3ea8701c50]
+class urt_basesubscriber_t--><rect fill="#FEFECE" filter="url(#f11mdjur5d2uci)" height="133.6328" id="urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="2900" y="473.3228"/><ellipse cx="2942.45" cy="489.3228" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2941.9344,489.8853 Q2940.075,489.1821 2939.4188,488.4165 Q2938.7781,487.6353 2938.7781,486.3228 Q2938.7781,484.6353 2939.8563,483.6665 Q2940.9344,482.6978 2942.8094,482.6978 Q2943.6688,482.6978 2944.5125,482.9009 Q2945.3719,483.0884 2946.2156,483.479 L2946.2156,485.8696 Q2945.4344,485.3071 2944.6063,485.0259 Q2943.7938,484.729 2942.9969,484.729 Q2942.1219,484.729 2941.6375,485.0884 Q2941.1688,485.4478 2941.1688,486.104 Q2941.1688,486.6196 2941.5125,486.9634 Q2941.8563,487.2915 2942.95,487.6978 L2944.0125,488.104 Q2945.4969,488.6509 2946.2,489.5571 Q2946.9188,490.4634 2946.9188,491.8384 Q2946.9188,493.7134 2945.8094,494.6353 Q2944.7,495.5571 2942.45,495.5571 Q2941.5281,495.5571 2940.6063,495.3384 Q2939.6844,495.1196 2938.825,494.6978 L2938.825,492.1665 Q2939.7938,492.854 2940.7156,493.1978 Q2941.6375,493.5415 2942.5281,493.5415 Q2943.4344,493.5415 2943.9344,493.1353 Q2944.4344,492.7134 2944.4344,491.979 Q2944.4344,491.4165 2944.0906,491.0103 Q2943.7625,490.5884 2943.1375,490.3384 L2941.9344,489.8853 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="132" x="2962.55" y="493.477">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2901" x2="3124" y1="505.3228" y2="505.3228"/><ellipse cx="2911" cy="516.3228" fill="none" 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="2920" y="519.5332">topic : urt_topic_t*</text><ellipse cx="2911" cy="529.1274" fill="none" 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="2920" y="532.3379">evtListener : urt_osEventListener_t</text><ellipse cx="2911" cy="541.9321" fill="none" 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="2920" y="545.1426">lastMessage : urt_message_t*</text><ellipse cx="2911" cy="554.7368" fill="none" 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="2920" y="557.9473">lastMessageTime : urt_osTime_t</text><ellipse cx="2911" cy="584.3462" fill="none" 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="2920" y="587.5566">sumLatencies : uint64_t</text><ellipse cx="2911" cy="597.1509" fill="none" 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="2920" y="600.3613">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2901" x2="2904" y1="570.9438" y2="570.9438"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2904" y="574.2519">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3121" x2="3124" y1="570.9438" y2="570.9438"/><!--MD5=[9ff46073dd541e50679ef35e851c67d6]
+class urt_nrtsubscriber_t--><rect fill="#FEFECE" filter="url(#f11mdjur5d2uci)" height="154.4375" id="urt_nrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="821" x="3570" y="201.8228"/><ellipse cx="3916.75" cy="217.8228" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3916.2344,218.3853 Q3914.375,217.6821 3913.7188,216.9165 Q3913.0781,216.1353 3913.0781,214.8228 Q3913.0781,213.1353 3914.1563,212.1665 Q3915.2344,211.1978 3917.1094,211.1978 Q3917.9688,211.1978 3918.8125,211.4009 Q3919.6719,211.5884 3920.5156,211.979 L3920.5156,214.3696 Q3919.7344,213.8071 3918.9063,213.5259 Q3918.0938,213.229 3917.2969,213.229 Q3916.4219,213.229 3915.9375,213.5884 Q3915.4688,213.9478 3915.4688,214.604 Q3915.4688,215.1196 3915.8125,215.4634 Q3916.1563,215.7915 3917.25,216.1978 L3918.3125,216.604 Q3919.7969,217.1509 3920.5,218.0571 Q3921.2188,218.9634 3921.2188,220.3384 Q3921.2188,222.2134 3920.1094,223.1353 Q3919,224.0571 3916.75,224.0571 Q3915.8281,224.0571 3914.9063,223.8384 Q3913.9844,223.6196 3913.125,223.1978 L3913.125,220.6665 Q3914.0938,221.354 3915.0156,221.6978 Q3915.9375,222.0415 3916.8281,222.0415 Q3917.7344,222.0415 3918.2344,221.6353 Q3918.7344,221.2134 3918.7344,220.479 Q3918.7344,219.9165 3918.3906,219.5103 Q3918.0625,219.0884 3917.4375,218.8384 L3916.2344,218.3853 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="3937.25" y="221.977">urt_nrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3571" x2="4390" y1="233.8228" y2="233.8228"/><ellipse cx="3581" cy="261.6274" fill="none" 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="3590" y="264.8379">minLatency : urt_delay_t</text><ellipse cx="3581" cy="274.4321" fill="none" 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="3590" y="277.6426">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3571" x2="3872" y1="248.2251" y2="248.2251"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="3872" y="251.5332">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4089" x2="4390" y1="248.2251" y2="248.2251"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3571" x2="4390" y1="284.2368" y2="284.2368"/><ellipse cx="3581" cy="295.2368" 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="347" x="3590" y="298.4473">urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : void</text><ellipse cx="3581" cy="308.0415" 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="3590" y="311.2519">urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="3581" cy="320.8462" 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="3590" y="324.0566">urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3581" cy="333.6509" 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="3590" y="336.8613">urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3581" cy="346.4556" 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="3590" y="349.666">urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t</text><!--MD5=[5c7929572d87ccc448d875bea5da0fb1]
+class urt_srtsubscriber_t--><rect fill="#FEFECE" filter="url(#f11mdjur5d2uci)" height="192.8516" id="urt_srtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1044" x="2490.5" y="182.3228"/><ellipse cx="2949.25" cy="198.3228" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2948.7344,198.8853 Q2946.875,198.1821 2946.2188,197.4165 Q2945.5781,196.6353 2945.5781,195.3228 Q2945.5781,193.6353 2946.6563,192.6665 Q2947.7344,191.6978 2949.6094,191.6978 Q2950.4688,191.6978 2951.3125,191.9009 Q2952.1719,192.0884 2953.0156,192.479 L2953.0156,194.8696 Q2952.2344,194.3071 2951.4063,194.0259 Q2950.5938,193.729 2949.7969,193.729 Q2948.9219,193.729 2948.4375,194.0884 Q2947.9688,194.4478 2947.9688,195.104 Q2947.9688,195.6196 2948.3125,195.9634 Q2948.6563,196.2915 2949.75,196.6978 L2950.8125,197.104 Q2952.2969,197.6509 2953,198.5571 Q2953.7188,199.4634 2953.7188,200.8384 Q2953.7188,202.7134 2952.6094,203.6353 Q2951.5,204.5571 2949.25,204.5571 Q2948.3281,204.5571 2947.4063,204.3384 Q2946.4844,204.1196 2945.625,203.6978 L2945.625,201.1665 Q2946.5938,201.854 2947.5156,202.1978 Q2948.4375,202.5415 2949.3281,202.5415 Q2950.2344,202.5415 2950.7344,202.1353 Q2951.2344,201.7134 2951.2344,200.979 Q2951.2344,200.4165 2950.8906,200.0103 Q2950.5625,199.5884 2949.9375,199.3384 L2948.7344,198.8853 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="2969.75" y="202.477">urt_srtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2491.5" x2="3533.5" y1="214.3228" y2="214.3228"/><ellipse cx="2501.5" cy="225.3228" fill="none" 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="2510.5" y="228.5332">usefulnesscb : urt_usefulness_f*</text><ellipse cx="2501.5" cy="238.1274" fill="none" 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="2510.5" y="241.3379">cbparams : void*</text><ellipse cx="2501.5" cy="267.7368" fill="none" 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="2510.5" y="270.9473">minLatency : urt_delay_t</text><ellipse cx="2501.5" cy="280.5415" fill="none" 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="2510.5" y="283.7519">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2491.5" x2="2904" y1="254.3345" y2="254.3345"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2904" y="257.6426">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3121" x2="3533.5" y1="254.3345" y2="254.3345"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2491.5" x2="3533.5" y1="290.3462" y2="290.3462"/><ellipse cx="2501.5" cy="301.3462" 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="347" x="2510.5" y="304.5566">urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : void</text><ellipse cx="2501.5" cy="314.1509" 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="1018" x="2510.5" y="317.3613">urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_usefulness_f*, cbparams : void*) : urt_status_t</text><ellipse cx="2501.5" cy="326.9556" 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="2510.5" y="330.166">urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2501.5" cy="339.7603" 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="2510.5" y="342.9707">urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2501.5" cy="352.5649" 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="2510.5" y="355.7754">urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float</text><ellipse cx="2501.5" cy="365.3696" 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="2510.5" y="368.5801">urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t</text><!--MD5=[17838fb05fe219fd399839979ec8a4a4]
+class urt_frtsubscriber_t--><rect fill="#FEFECE" filter="url(#f11mdjur5d2uci)" height="226.4609" id="urt_frtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="974" x="1481.5" y="165.8228"/><ellipse cx="1906.75" cy="181.8228" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1906.2344,182.3853 Q1904.375,181.6821 1903.7188,180.9165 Q1903.0781,180.1353 1903.0781,178.8228 Q1903.0781,177.1353 1904.1563,176.1665 Q1905.2344,175.1978 1907.1094,175.1978 Q1907.9688,175.1978 1908.8125,175.4009 Q1909.6719,175.5884 1910.5156,175.979 L1910.5156,178.3696 Q1909.7344,177.8071 1908.9063,177.5259 Q1908.0938,177.229 1907.2969,177.229 Q1906.4219,177.229 1905.9375,177.5884 Q1905.4688,177.9478 1905.4688,178.604 Q1905.4688,179.1196 1905.8125,179.4634 Q1906.1563,179.7915 1907.25,180.1978 L1908.3125,180.604 Q1909.7969,181.1509 1910.5,182.0571 Q1911.2188,182.9634 1911.2188,184.3384 Q1911.2188,186.2134 1910.1094,187.1353 Q1909,188.0571 1906.75,188.0571 Q1905.8281,188.0571 1904.9063,187.8384 Q1903.9844,187.6196 1903.125,187.1978 L1903.125,184.6665 Q1904.0938,185.354 1905.0156,185.6978 Q1905.9375,186.0415 1906.8281,186.0415 Q1907.7344,186.0415 1908.2344,185.6353 Q1908.7344,185.2134 1908.7344,184.479 Q1908.7344,183.9165 1908.3906,183.5103 Q1908.0625,183.0884 1907.4375,182.8384 L1906.2344,182.3853 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="1927.25" y="185.977">urt_frtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1482.5" x2="2454.5" y1="197.8228" y2="197.8228"/><ellipse cx="1492.5" cy="225.6274" fill="none" 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="1501.5" y="228.8379">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1482.5" x2="1823" y1="212.2251" y2="212.2251"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="1823" y="215.5332">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2114" x2="2454.5" y1="212.2251" y2="212.2251"/><ellipse cx="1492.5" cy="255.2368" fill="none" 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="1501.5" y="258.4473">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1482.5" x2="1833" y1="241.8345" y2="241.8345"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="1833" y="245.1426">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2104" x2="2454.5" y1="241.8345" y2="241.8345"/><ellipse cx="1492.5" cy="284.8462" fill="none" 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="1501.5" y="288.0566">minLatency : urt_delay_t</text><ellipse cx="1492.5" cy="297.6509" fill="none" 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="1501.5" y="300.8613">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1482.5" x2="1714.5" y1="271.4438" y2="271.4438"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="508" x="1714.5" y="274.7519">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="2222.5" x2="2454.5" y1="271.4438" y2="271.4438"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1482.5" x2="2454.5" y1="307.4556" y2="307.4556"/><ellipse cx="1492.5" cy="318.4556" 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="342" x="1501.5" y="321.666">urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : void</text><ellipse cx="1492.5" cy="331.2603" 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="1501.5" y="334.4707">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="1492.5" cy="344.0649" 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="1501.5" y="347.2754">urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1492.5" cy="356.8696" 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="1501.5" y="360.0801">urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1492.5" cy="369.6743" 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="1501.5" y="372.8848">urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool</text><ellipse cx="1492.5" cy="382.479" 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="1501.5" y="385.6894">urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t</text><!--MD5=[104dc879e5721421b987fcc467bc3a1d]
+class urt_hrtsubscriber_t--><rect fill="#FEFECE" filter="url(#f11mdjur5d2uci)" height="268.875" id="urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1084" x="4426.5" y="144.3228"/><ellipse cx="4904.75" cy="160.3228" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4904.2344,160.8853 Q4902.375,160.1821 4901.7188,159.4165 Q4901.0781,158.6353 4901.0781,157.3228 Q4901.0781,155.6353 4902.1563,154.6665 Q4903.2344,153.6978 4905.1094,153.6978 Q4905.9688,153.6978 4906.8125,153.9009 Q4907.6719,154.0884 4908.5156,154.479 L4908.5156,156.8696 Q4907.7344,156.3071 4906.9063,156.0259 Q4906.0938,155.729 4905.2969,155.729 Q4904.4219,155.729 4903.9375,156.0884 Q4903.4688,156.4478 4903.4688,157.104 Q4903.4688,157.6196 4903.8125,157.9634 Q4904.1563,158.2915 4905.25,158.6978 L4906.3125,159.104 Q4907.7969,159.6509 4908.5,160.5571 Q4909.2188,161.4634 4909.2188,162.8384 Q4909.2188,164.7134 4908.1094,165.6353 Q4907,166.5571 4904.75,166.5571 Q4903.8281,166.5571 4902.9063,166.3384 Q4901.9844,166.1196 4901.125,165.6978 L4901.125,163.1665 Q4902.0938,163.854 4903.0156,164.1978 Q4903.9375,164.5415 4904.8281,164.5415 Q4905.7344,164.5415 4906.2344,164.1353 Q4906.7344,163.7134 4906.7344,162.979 Q4906.7344,162.4165 4906.3906,162.0103 Q4906.0625,161.5884 4905.4375,161.3384 L4904.2344,160.8853 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="4925.25" y="164.477">urt_hrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4427.5" x2="5509.5" y1="176.3228" y2="176.3228"/><ellipse cx="4437.5" cy="187.3228" fill="none" 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="4446.5" y="190.5332">next : urt_hrtsubscriber_t*</text><ellipse cx="4437.5" cy="216.9321" fill="none" 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="4446.5" y="220.1426">deadlineOffset : urt_delay_t</text><ellipse cx="4437.5" cy="229.7368" fill="none" 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="4446.5" y="232.9473">qosDeadlineTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4427.5" x2="4823" y1="203.5298" y2="203.5298"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="4823" y="206.8379">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5114" x2="5509.5" y1="203.5298" y2="203.5298"/><ellipse cx="4437.5" cy="259.3462" fill="none" 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="4446.5" y="262.5566">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4427.5" x2="4833" y1="245.9438" y2="245.9438"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="4833" y="249.2519">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5104" x2="5509.5" y1="245.9438" y2="245.9438"/><ellipse cx="4437.5" cy="288.9556" fill="none" 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="4446.5" y="292.166">minLatency : urt_delay_t</text><ellipse cx="4437.5" cy="301.7603" fill="none" 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="4446.5" y="304.9707">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4427.5" x2="4716.5" y1="275.5532" y2="275.5532"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="4716.5" y="278.8613">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="5220.5" x2="5509.5" y1="275.5532" y2="275.5532"/><ellipse cx="4437.5" cy="331.3696" fill="none" 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="4446.5" y="334.5801">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4427.5" x2="4836" y1="317.9673" y2="317.9673"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="4836" y="321.2754">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5101" x2="5509.5" y1="317.9673" y2="317.9673"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4427.5" x2="5509.5" y1="341.1743" y2="341.1743"/><ellipse cx="4437.5" cy="352.1743" 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="347" x="4446.5" y="355.3848">urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : void</text><ellipse cx="4437.5" cy="364.979" 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="4446.5" y="368.1894">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="4437.5" cy="377.7837" 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="4446.5" y="380.9941">urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4437.5" cy="390.5884" 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="4446.5" y="393.7988">urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4437.5" cy="403.3931" 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="4446.5" y="406.6035">urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t</text><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
+class urt_message_t--><rect fill="#FEFECE" filter="url(#f11mdjur5d2uci)" height="141.6328" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="406" x="923.5" y="667.3228"/><ellipse cx="1076.25" cy="683.3228" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1075.7344,683.8853 Q1073.875,683.1821 1073.2188,682.4165 Q1072.5781,681.6353 1072.5781,680.3228 Q1072.5781,678.6353 1073.6563,677.6665 Q1074.7344,676.6978 1076.6094,676.6978 Q1077.4688,676.6978 1078.3125,676.9009 Q1079.1719,677.0884 1080.0156,677.479 L1080.0156,679.8696 Q1079.2344,679.3071 1078.4063,679.0259 Q1077.5938,678.729 1076.7969,678.729 Q1075.9219,678.729 1075.4375,679.0884 Q1074.9688,679.4478 1074.9688,680.104 Q1074.9688,680.6196 1075.3125,680.9634 Q1075.6563,681.2915 1076.75,681.6978 L1077.8125,682.104 Q1079.2969,682.6509 1080,683.5571 Q1080.7188,684.4634 1080.7188,685.8384 Q1080.7188,687.7134 1079.6094,688.6353 Q1078.5,689.5571 1076.25,689.5571 Q1075.3281,689.5571 1074.4063,689.3384 Q1073.4844,689.1196 1072.625,688.6978 L1072.625,686.1665 Q1073.5938,686.854 1074.5156,687.1978 Q1075.4375,687.5415 1076.3281,687.5415 Q1077.2344,687.5415 1077.7344,687.1353 Q1078.2344,686.7134 1078.2344,685.979 Q1078.2344,685.4165 1077.8906,685.0103 Q1077.5625,684.5884 1076.9375,684.3384 L1075.7344,683.8853 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="1096.75" y="687.477">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="924.5" x2="1328.5" y1="699.3228" y2="699.3228"/><ellipse cx="934.5" cy="710.3228" fill="none" 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="943.5" y="713.5332">next : urt_message_t*</text><ellipse cx="934.5" cy="723.1274" fill="none" 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="943.5" y="726.3379">payload : void*</text><ellipse cx="934.5" cy="735.9321" fill="none" 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="943.5" y="739.1426">originTime : urt_osTime_t</text><ellipse cx="934.5" cy="748.7368" fill="none" 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="943.5" y="751.9473">numHrtConsumersLeft : unsigned int</text><ellipse cx="934.5" cy="778.3462" fill="none" 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="943.5" y="781.5566">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="924.5" x2="1018" y1="764.9438" y2="764.9438"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1018" y="768.2519">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1235" x2="1328.5" y1="764.9438" y2="764.9438"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="924.5" x2="1328.5" y1="788.1509" y2="788.1509"/><ellipse cx="934.5" cy="799.1509" 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="380" x="943.5" y="802.3613">urtMessageInit (message : urt_message_t*, payload : void*) : void</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
+class urt_publisher_t--><rect fill="#FEFECE" filter="url(#f11mdjur5d2uci)" height="196.0469" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="783" x="7" y="180.8228"/><ellipse cx="347.75" cy="196.8228" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M347.2344,197.3853 Q345.375,196.6821 344.7188,195.9165 Q344.0781,195.1353 344.0781,193.8228 Q344.0781,192.1353 345.1563,191.1665 Q346.2344,190.1978 348.1094,190.1978 Q348.9688,190.1978 349.8125,190.4009 Q350.6719,190.5884 351.5156,190.979 L351.5156,193.3696 Q350.7344,192.8071 349.9063,192.5259 Q349.0938,192.229 348.2969,192.229 Q347.4219,192.229 346.9375,192.5884 Q346.4688,192.9478 346.4688,193.604 Q346.4688,194.1196 346.8125,194.4634 Q347.1563,194.7915 348.25,195.1978 L349.3125,195.604 Q350.7969,196.1509 351.5,197.0571 Q352.2188,197.9634 352.2188,199.3384 Q352.2188,201.2134 351.1094,202.1353 Q350,203.0571 347.75,203.0571 Q346.8281,203.0571 345.9063,202.8384 Q344.9844,202.6196 344.125,202.1978 L344.125,199.6665 Q345.0938,200.354 346.0156,200.6978 Q346.9375,201.0415 347.8281,201.0415 Q348.7344,201.0415 349.2344,200.6353 Q349.7344,200.2134 349.7344,199.479 Q349.7344,198.9165 349.3906,198.5103 Q349.0625,198.0884 348.4375,197.8384 L347.2344,197.3853 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="368.25" y="200.977">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="789" y1="212.8228" y2="212.8228"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="289" x="13" y="227.0332">URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT : bool</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="789" y1="233.6274" y2="233.6274"/><ellipse cx="18" cy="244.6274" fill="none" 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="27" y="247.8379">topic : urt_topic_t*</text><ellipse cx="18" cy="274.2368" fill="none" 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="27" y="277.4473">publishAttempts : uint64_t</text><ellipse cx="18" cy="287.0415" fill="none" 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="27" y="290.2519">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8" x2="290" y1="260.8345" y2="260.8345"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="290" y="264.1426">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="507" x2="789" y1="260.8345" y2="260.8345"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="789" y1="296.8462" y2="296.8462"/><ellipse cx="18" cy="307.8462" 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="572" x="27" y="311.0566">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : void</text><ellipse cx="18" cy="337.4556" 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="632" x="27" y="340.666">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, bytes : size_t, t : urt_osTime_t) : urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8" x2="245" y1="324.0532" y2="324.0532"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="307" x="245" y="327.3613">URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == false</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="552" x2="789" y1="324.0532" y2="324.0532"/><ellipse cx="18" cy="367.0649" 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="757" x="27" y="370.2754">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, bytes : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8" x2="247.5" y1="353.6626" y2="353.6626"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="302" x="247.5" y="356.9707">URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="549.5" x2="789" y1="353.6626" y2="353.6626"/><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
+class urt_topic_t--><rect fill="#FEFECE" filter="url(#f11mdjur5d2uci)" height="260.875" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="603" x="825" y="148.3228"/><ellipse cx="1089.25" cy="164.3228" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1088.7344,164.8853 Q1086.875,164.1821 1086.2188,163.4165 Q1085.5781,162.6353 1085.5781,161.3228 Q1085.5781,159.6353 1086.6563,158.6665 Q1087.7344,157.6978 1089.6094,157.6978 Q1090.4688,157.6978 1091.3125,157.9009 Q1092.1719,158.0884 1093.0156,158.479 L1093.0156,160.8696 Q1092.2344,160.3071 1091.4063,160.0259 Q1090.5938,159.729 1089.7969,159.729 Q1088.9219,159.729 1088.4375,160.0884 Q1087.9688,160.4478 1087.9688,161.104 Q1087.9688,161.6196 1088.3125,161.9634 Q1088.6563,162.2915 1089.75,162.6978 L1090.8125,163.104 Q1092.2969,163.6509 1093,164.5571 Q1093.7188,165.4634 1093.7188,166.8384 Q1093.7188,168.7134 1092.6094,169.6353 Q1091.5,170.5571 1089.25,170.5571 Q1088.3281,170.5571 1087.4063,170.3384 Q1086.4844,170.1196 1085.625,169.6978 L1085.625,167.1665 Q1086.5938,167.854 1087.5156,168.1978 Q1088.4375,168.5415 1089.3281,168.5415 Q1090.2344,168.5415 1090.7344,168.1353 Q1091.2344,167.7134 1091.2344,166.979 Q1091.2344,166.4165 1090.8906,166.0103 Q1090.5625,165.5884 1089.9375,165.3384 L1088.7344,164.8853 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="1109.75" y="168.477">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="826" x2="1427" y1="180.3228" y2="180.3228"/><ellipse cx="836" cy="191.3228" fill="none" 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="845" y="194.5332">next : urt_topic_t*</text><ellipse cx="836" cy="204.1274" fill="none" 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="845" y="207.3379">id : urt_topicid_t</text><ellipse cx="836" cy="216.9321" fill="none" 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="845" y="220.1426">lock : urt_osMutex_t</text><ellipse cx="836" cy="229.7368" fill="none" 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="845" y="232.9473">evtSource : urt_osEventSource_t</text><ellipse cx="836" cy="242.5415" fill="none" 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="845" y="245.7519">numHrtSubscribers : unsigned int</text><ellipse cx="836" cy="255.3462" fill="none" 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="845" y="258.5566">hrtReleased : urt_osCondvar_t</text><ellipse cx="836" cy="268.1509" fill="none" 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="845" y="271.3613">mandatoryMessage : urt_message_t</text><ellipse cx="836" cy="280.9556" fill="none" 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="845" y="284.166">latestMessage : urt_message_t*</text><ellipse cx="836" cy="310.5649" fill="none" 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="845" y="313.7754">hrtSubscribers : urt_hrtsubscriber_t*</text><ellipse cx="836" cy="323.3696" fill="none" 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="845" y="326.5801">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="826" x2="994" y1="297.1626" y2="297.1626"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="994" y="300.4707">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1259" x2="1427" y1="297.1626" y2="297.1626"/><ellipse cx="836" cy="352.979" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="845" y="356.1894">numMessagesPublished : uint64_t</text><ellipse cx="836" cy="365.7837" fill="none" 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="845" y="368.9941">numMessagesDiscarded : uint64_t</text><ellipse cx="836" cy="378.5884" fill="none" 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="845" y="381.7988">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="826" x2="1018" y1="339.5767" y2="339.5767"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1018" y="342.8848">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1235" x2="1427" y1="339.5767" y2="339.5767"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="826" x2="1427" y1="388.3931" y2="388.3931"/><ellipse cx="836" cy="399.3931" 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="577" x="845" y="402.6035">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t, mandatoryMessage: urt_message_t*) : urt_status_t</text><!--MD5=[536025241394544a90bc53fb552f3a08]
+reverse link urt_message_t to urt_message_t--><path d="M1342.0028,711.9298 C1356.0209,718.0822 1364.5,726.8799 1364.5,738.3228 C1364.5,752.8248 1350.8815,763.0781 1329.6293,769.0828 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1329.6293,707.5628,1333.956,713.3316,1340.9452,711.5565,1336.6185,705.7877,1329.6293,707.5628" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1337.7203" y="703.1449">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1337.2886" y="766.9945">0,1</text><!--MD5=[aa8990705afdbad14c7f998fe04b6f05]
+reverse link urt_basesubscriber_t to urt_message_t--><path d="M2886.8336,553.5158 C2567.1591,587.0765 1720.724,675.9387 1329.7427,716.9856 " fill="none" id="urt_basesubscriber_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2899.8207,552.1523,2893.4358,548.8006,2887.8863,553.4053,2894.2712,556.7569,2899.8207,552.1523" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2883.9813" y="549.5268">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1337.4061" y="728.5642">0,1</text><!--MD5=[0585cd4928de92ce6927d9c389eadd29]
+link urt_nrtsubscriber_t to urt_basesubscriber_t--><path d="M3746.2283,355.8554 C3683.5669,375.5229 3615.689,395.9888 3552.5,413.3228 C3414.3193,451.2285 3254.3631,487.97 3144.6129,512.0977 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3146.0966,518.9386,3125.0621,516.3791,3143.1016,505.2627,3146.0966,518.9386" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6d81edfa5aa102b898ad487ae19b49f9]
+link urt_srtsubscriber_t to urt_basesubscriber_t--><path d="M3012.5,375.4528 C3012.5,400.8001 3012.5,427.9869 3012.5,452.8265 " fill="none" id="urt_srtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3019.5001,453.0478,3012.5,473.0477,3005.5001,453.0477,3019.5001,453.0478" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f626d284cba98e1d5d5fe914b1fa4188]
+link urt_frtsubscriber_t to urt_basesubscriber_t--><path d="M2389.1729,391.8435 C2417.6878,399.2022 2445.9994,406.4223 2473.5,413.3228 C2611.7604,448.0156 2770.6746,485.1241 2879.9377,510.2122 " fill="none" id="urt_frtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2881.8156,503.4611,2899.7455,514.7535,2878.687,517.107,2881.8156,503.4611" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[1ea71f2b33e56ab0ac5545988c1af396]
+link urt_hrtsubscriber_t to urt_basesubscriber_t--><path d="M4426.3442,410.3156 C4420.3691,411.3449 4414.4195,412.348 4408.5,413.3228 C3948.3838,489.0967 3394.9618,522.5887 3145.6847,534.6426 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3145.7015,541.6496,3125.3912,535.6088,3145.0356,527.6655,3145.7015,541.6496" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ea2ec5c5272e65289dabade75a749f58]
+reverse link urt_hrtsubscriber_t to urt_hrtsubscriber_t--><path d="M5522.8399,254.5753 C5537.3539,261.2813 5545.5,269.3638 5545.5,278.8228 C5545.5,290.6929 5532.6717,300.3953 5510.5292,307.9301 " fill="none" id="urt_hrtsubscriber_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="5510.5292,249.7155,5514.6414,255.6391,5521.691,254.1217,5517.5788,248.198,5510.5292,249.7155" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5518.2077" y="246.2694">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="5518.2921" y="305.3026">0,1</text><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
+reverse link urt_publisher_t to urt_topic_t--><path d="M803.4264,278.8228 C810.5202,278.8228 817.6139,278.8228 824.7077,278.8228 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="790.2266,278.8228,796.2266,282.8228,802.2266,278.8228,796.2266,274.8228,790.2266,278.8228" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="798.2648" y="275.7382">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="808.5851" y="275.6938">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
+link urt_publisher_t to urt_message_t--><path d="M553.7813,376.8335 C690.2804,462.9891 885.9234,586.4753 1009.557,664.5105 " 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="1013.9244,667.2672,1008.4487,659.0808,1009.6962,664.5984,1004.1786,665.8459,1013.9244,667.2672" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
+reverse link urt_topic_t to urt_topic_t--><path d="M1440.1789,248.3591 C1454.5769,256.0731 1463,266.2277 1463,278.8228 C1463,294.6285 1449.7354,306.5908 1428.0445,314.7097 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1428.0445,242.9359,1431.8902,249.0359,1439.0001,247.8322,1435.1544,241.7322,1428.0445,242.9359" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1436.1605" y="238.8537">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1436.3199" y="312.534">0,1</text><!--MD5=[ed3fb6de0913094c41bd74c175d366df]
+reverse link urt_topic_t to urt_hrtsubscriber_t--><path d="M1340.4758,142.25 C1385.8905,119.5486 1434.7383,99.4646 1483,87.3228 C1639.6734,47.9063 4231.5104,61.5688 4391,87.3228 C4467.3838,99.6571 4547.3368,120.6113 4622.5629,144.2429 " fill="none" id="urt_topic_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1328.6966,148.2344,1335.8576,149.0829,1339.3951,142.7991,1332.2341,141.9505,1328.6966,148.2344" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1332.1548" y="137.3255">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="4581.9853" y="133.1032">0,1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
+reverse link urt_topic_t to urt_message_t--><path d="M1126.5,422.7376 C1126.5,504.0857 1126.5,602.2013 1126.5,667.2092 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1126.5,409.5749,1122.5,415.5749,1126.5,421.5749,1130.5,415.5749,1126.5,409.5749" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1118.2813" y="429.2095">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1118.0875" y="656.1948">1</text><!--MD5=[ee7ff9c6693c901f37603259b2a8871e]
 @startuml
 
 title **µRtWare**\nPublish-Subscribe System
 
+!include ./functions.iuml
+
+/'### ENTITIES ###############################################################'/
+
+!startsub ENTITIES
+
+/' Message type. '/
+$structure("urt_message_t") {
+    'Pointer to the next message in a list.
+  + {field} next : urt_message_t*
+    'Pointer to some arbitrary (reusable) payload object.
+  + {field} payload : void*
+    'Origin time of the message.
+  + {field} originTime : urt_osTime_t
+    'Counter of HRT subscribers that did not consume the message yet.
+  + {field} numHrtConsumersLeft : unsigned int
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+    'Counter of overall subscribers that did not consume the message yet.
+  + {field} numConsumersLeft : unsigned int
+  __
+    'Initializes a urt_message_t object.
+  + {method} urtMessageInit (message : urt_message_t*, payload : void*) : void
+}
+
+$group("subscriber") {
+  /' 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
+      'Pointer to the message consumed most recently.
+    + {field} lastMessage : urt_message_t*
+      'Copy of the origin time of the message consumed most recently.
+    + {field} lastMessageTime : urt_osTime_t
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+      'Sum of all latencies.
+    + {field} sumLatencies : uint64_t
+      'Number of messages received.
+    + {field} numMessagesReceived : uint64_t
+  }
+
+  /' 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*) : void
+      '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_usefulness_f*
+      '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*) : void
+      '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_usefulness_f*, 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_frtsubscriber_t object.
+    + {method} urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : void
+      '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} 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*) : void
+      '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} 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} 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'/
+
+/' Publisher type. '/
+$structure("urt_publisher_t") {
+  'Flag, whether the publish() method supports timeout.
+  URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT : bool
+  __
+    'Pointer to the topic for publishing.
+  + {field} topic : urt_topic_t*
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+    'Counter of attempts to publish a message.
+  + {field} publishAttempts : uint64_t
+    'Counter of failed attempts to publish a message.
+  + {field} publishFails : uint64_t
+  __
+    'Initializes a urt_publisher_t object and contributes an optional list of messages.
+  + {method} urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : void
+  .. URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == false ..
+    'Publishes a message via the associated topic.
+  + {method} urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, bytes : size_t, t : urt_osTime_t) : urt_status_t
+  .. URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == true ..
+    'Publishes a message via the associated topic with timeout.
+  + {method} urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, bytes : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t
+}
+
+/' Topic type. '/
+$structure("urt_topic_t") {
+    'Pointer to the next topic in a list.
+  + {field} next : urt_topic_t*
+    'Identifier of the topic.
+  + {field} id : urt_topicid_t
+    'Mutex lock for exclusive access.
+  + {field} lock : urt_osMutex_t
+    'Event source to inform all subscribers when a new message is published.
+  + {field} evtSource : urt_osEventSource_t
+    'Number of HRT subscribers.
+  + {field} numHrtSubscribers : unsigned int
+    'Condition variable to inform waiting publishers when a blocked message becomes available.
+  + {field} hrtReleased : urt_osCondvar_t
+    'Mandatory message, each Topic holds.
+  + {field} mandatoryMessage : urt_message_t
+    'Pointer to the latest message.
+  + {field} latestMessage : urt_message_t*
+  .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
+    'List of HRT subscribers, orderd by their expected rate (most critical first).
+  + {field} hrtSubscribers : urt_hrtsubscriber_t*
+    'Timer to check for missed rates.
+  + {field} qosRateTimer : urt_osTimer_t
+  .. URT_CFG_PUBSUB_PROFILING == true ..
+    'Number of overall published messages on this topic.
+  + {field} numMessagesPublished : uint64_t
+    'Variable to count how often (non-hrt) subscribers did not fetch a message before it was reused.
+  + {field} numMessagesDiscarded : uint64_t
+    'Number of overall subscribers.
+  + {field} numSubscribers : unsigned int
+  __
+    'Initializes an urt_topic_t object.
+  + {method} urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t, mandatoryMessage: urt_message_t*) : urt_status_t
+}
+
+!endsub
+
+/'### DEPENDENCIES & LAYOUT ##################################################'/
+
+!startsub DEPENDENCIES
+
+urt_message_t "1" o- "0,1" urt_message_t
+
+urt_basesubscriber_t "1" o- - "0,1" urt_message_t
+
+urt_nrtsubscriber_t - -|> urt_basesubscriber_t
+
+urt_srtsubscriber_t - -|> urt_basesubscriber_t
+
+urt_frtsubscriber_t - -|> urt_basesubscriber_t
+
+urt_hrtsubscriber_t - -|> urt_basesubscriber_t
+urt_hrtsubscriber_t "1" o- "0,1" urt_hrtsubscriber_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_hrtsubscriber_t
+urt_topic_t "1" *- - "1" urt_message_t
+
+!endsub
+
+/'### OUTRO ##################################################################'/
+
+@enduml
+
+@startuml
+
+title **µRtWare**\nPublish-Subscribe System
 
 
 
@@ -155,7 +398,7 @@ title **µRtWare**\nPublish-Subscribe System
   + {field} numMessagesDiscarded : uint64_t
   + {field} numSubscribers : unsigned int
   __
-  + {method} urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t
+  + {method} urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t, mandatoryMessage: urt_message_t*) : urt_status_t
 }
 
 
@@ -185,13 +428,11 @@ urt_topic_t "1" *- - "1" urt_message_t
 
 @enduml
 
-PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
+PlantUML version 1.2020.15(Sun Jun 28 13:39:45 CEST 2020)
 (GPL source distribution)
 Java Runtime: OpenJDK Runtime Environment
 JVM: OpenJDK 64-Bit Server VM
-Java Version: 11.0.7+10-post-Ubuntu-2ubuntu218.04
-Operating System: Linux
 Default Encoding: UTF-8
-Language: en
-Country: US
+Language: de
+Country: DE
 --></g></svg>
\ No newline at end of file
