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

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

diff --git a/doc/classdiagrams/pubsub.svg b/doc/classdiagrams/pubsub.svg
index 5bff6a3..6238811 100644
--- a/doc/classdiagrams/pubsub.svg
+++ b/doc/classdiagrams/pubsub.svg
@@ -1,37 +1,30 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1193px" preserveAspectRatio="none" style="width:2868px;height:1193px;" version="1.1" viewBox="0 0 2868 1193" width="2868px" zoomAndPan="magnify"><defs><filter height="300%" id="f1mo1dxjcuibt3" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="1392.5" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="225" x="1324.5" y="37.6611">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
-cluster subscriber--><rect fill="#FFFFFF" filter="url(#f1mo1dxjcuibt3)" height="1085" style="stroke: #000000; stroke-width: 1.5;" width="1611" x="14" y="97.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="777" y="112.9014">subscriber</text><!--MD5=[94ad99421f5a0f525bc1c13a3777c25e]
-cluster real-time constraint data--><rect fill="#FFFFFF" filter="url(#f1mo1dxjcuibt3)" height="671" style="stroke: #000000; stroke-width: 1.5;" width="1595" x="22" y="503.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="194" x="722.5" y="518.9014">real-time constraint data</text><!--MD5=[57c3116dbac3d3a2ea35fece1cdc00f4]
-cluster SRT data--><rect fill="#FFFFFF" filter="url(#f1mo1dxjcuibt3)" height="283" style="stroke: #000000; stroke-width: 1.5;" width="390" x="699" y="883.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="859.5" y="898.9014">SRT data</text><!--MD5=[ab7cf431813e3be5d474948fd959cdbf]
-class urt_subscriber_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="312.0938" id="urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1068" x="539" y="124.9063"/><ellipse cx="1018.25" cy="140.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1017.7344,141.4688 Q1015.875,140.7656 1015.2188,140 Q1014.5781,139.2188 1014.5781,137.9063 Q1014.5781,136.2188 1015.6563,135.25 Q1016.7344,134.2813 1018.6094,134.2813 Q1019.4688,134.2813 1020.3125,134.4844 Q1021.1719,134.6719 1022.0156,135.0625 L1022.0156,137.4531 Q1021.2344,136.8906 1020.4063,136.6094 Q1019.5938,136.3125 1018.7969,136.3125 Q1017.9219,136.3125 1017.4375,136.6719 Q1016.9688,137.0313 1016.9688,137.6875 Q1016.9688,138.2031 1017.3125,138.5469 Q1017.6563,138.875 1018.75,139.2813 L1019.8125,139.6875 Q1021.2969,140.2344 1022,141.1406 Q1022.7188,142.0469 1022.7188,143.4219 Q1022.7188,145.2969 1021.6094,146.2188 Q1020.5,147.1406 1018.25,147.1406 Q1017.3281,147.1406 1016.4063,146.9219 Q1015.4844,146.7031 1014.625,146.2813 L1014.625,143.75 Q1015.5938,144.4375 1016.5156,144.7813 Q1017.4375,145.125 1018.3281,145.125 Q1019.2344,145.125 1019.7344,144.7188 Q1020.2344,144.2969 1020.2344,143.5625 Q1020.2344,143 1019.8906,142.5938 Q1019.5625,142.1719 1018.9375,141.9219 L1017.7344,141.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="1038.75" y="145.0605">urt_subscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="540" x2="1606" y1="156.9063" y2="156.9063"/><ellipse cx="550" cy="167.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="559" y="171.1167">topic : urt_topic_t*</text><ellipse cx="550" cy="180.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="559" y="183.9214">evtListener : urt_osEventListener_t</text><ellipse cx="550" cy="193.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="559" y="196.7261">rtdata : urt_rtdata_t</text><ellipse cx="550" cy="206.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="559" y="209.5308">lastMessage : urt_message_t*</text><ellipse cx="550" cy="219.125" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="559" y="222.3354">lastMessageTime : urt_osTime_t</text><ellipse cx="550" cy="248.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="559" y="251.9448">sumLatencies : uint64_t</text><ellipse cx="550" cy="261.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="559" y="264.7495">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="540" x2="964.5" y1="235.332" y2="235.332"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="964.5" y="238.6401">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1181.5" x2="1606" y1="235.332" y2="235.332"/><ellipse cx="550" cy="291.1484" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="559" y="294.3589">minLatency : urt_delay_t</text><ellipse cx="550" cy="303.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="559" y="307.1636">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="540" x2="964.5" y1="277.7461" y2="277.7461"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="964.5" y="281.0542">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1181.5" x2="1606" y1="277.7461" y2="277.7461"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="540" x2="1606" y1="313.7578" y2="313.7578"/><ellipse cx="550" cy="324.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="359" x="559" y="327.9683">urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="550" cy="337.5625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1042" x="559" y="340.7729">urtSubscriberSubscribeHrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="550" cy="350.3672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1040" x="559" y="353.5776">urtSubscriberSubscribeFrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="550" cy="363.1719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1042" x="559" y="366.3823">urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t</text><ellipse cx="550" cy="375.9766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="699" x="559" y="379.187">urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="550" cy="388.7813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="413" x="559" y="391.9917">urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="550" cy="401.5859" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="752" x="559" y="404.7964">urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="550" cy="414.3906" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="762" x="559" y="417.6011">urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="550" cy="427.1953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="537" x="559" y="430.4058">urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float</text><!--MD5=[82a1b6b26b12edcbd86fa16935c3353e]
-class urt_rtdata_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="73.6094" id="urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="778.5" y="530.9063"/><ellipse cx="852.75" cy="546.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M852.2344,547.4688 Q850.375,546.7656 849.7188,546 Q849.0781,545.2188 849.0781,543.9063 Q849.0781,542.2188 850.1563,541.25 Q851.2344,540.2813 853.1094,540.2813 Q853.9688,540.2813 854.8125,540.4844 Q855.6719,540.6719 856.5156,541.0625 L856.5156,543.4531 Q855.7344,542.8906 854.9063,542.6094 Q854.0938,542.3125 853.2969,542.3125 Q852.4219,542.3125 851.9375,542.6719 Q851.4688,543.0313 851.4688,543.6875 Q851.4688,544.2031 851.8125,544.5469 Q852.1563,544.875 853.25,545.2813 L854.3125,545.6875 Q855.7969,546.2344 856.5,547.1406 Q857.2188,548.0469 857.2188,549.4219 Q857.2188,551.2969 856.1094,552.2188 Q855,553.1406 852.75,553.1406 Q851.8281,553.1406 850.9063,552.9219 Q849.9844,552.7031 849.125,552.2813 L849.125,549.75 Q850.0938,550.4375 851.0156,550.7813 Q851.9375,551.125 852.8281,551.125 Q853.7344,551.125 854.2344,550.7188 Q854.7344,550.2969 854.7344,549.5625 Q854.7344,549 854.3906,548.5938 Q854.0625,548.1719 853.4375,547.9219 L852.2344,547.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="873.25" y="551.0605">urt_rtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="779.5" x2="1008.5" y1="562.9063" y2="562.9063"/><ellipse cx="789.5" cy="573.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="798.5" y="577.1167">class : urt_rtconstraintclass_t</text><ellipse cx="789.5" cy="586.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="205" x="798.5" y="589.9214">params : urt_rtconstraintsparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="779.5" x2="1008.5" y1="596.5156" y2="596.5156"/><!--MD5=[4bd59d3bc50b317c5523bafe6b73a042]
-class urt_rtclass_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="99.2188" id="urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="632.5" y="698.9063"/><ellipse cx="667.3" cy="714.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M671.4094,720.9063 L663.6906,720.9063 L663.6906,708.5156 L671.4094,708.5156 L671.4094,710.6719 L666.1438,710.6719 L666.1438,713.3438 L670.9094,713.3438 L670.9094,715.5 L666.1438,715.5 L666.1438,718.75 L671.4094,718.75 L671.4094,720.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="685.7" y="719.0605">urt_rtclass_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="633.5" x2="784.5" y1="730.9063" y2="730.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="638.5" y="745.1167">URT_RTCLASS_HARD = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="638.5" y="757.9214">URT_RTCLASS_FIRM = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="638.5" y="770.7261">URT_RTCLASS_SOFT = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="638.5" y="783.5308">URT_RTCLASS_NONE = 3</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="633.5" x2="784.5" y1="790.125" y2="790.125"/><!--MD5=[7b207cc31d63d27c526f257c1fda2512]
-class urt_rtclassdata_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="99.2188" id="urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="821" y="698.9063"/><ellipse cx="839.6" cy="714.9063" fill="#7FCF7F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M835.475,716.8281 L835.475,709.0156 L837.9281,709.0156 L837.9281,717.4531 Q837.9281,718.375 838.3969,718.9063 Q838.8813,719.4375 839.7094,719.4375 Q840.5531,719.4375 841.0219,718.9063 Q841.4906,718.375 841.4906,717.4531 L841.4906,709.0156 L843.9438,709.0156 L843.9438,716.8281 Q843.9438,719.3594 842.9438,720.5 Q841.9438,721.6406 839.7094,721.6406 Q837.4906,721.6406 836.475,720.5 Q835.475,719.3594 835.475,716.8281 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="854.4" y="719.0605">urt_rtclassdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="822" x2="966" y1="730.9063" y2="730.9063"/><ellipse cx="832" cy="741.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="841" y="745.1167">hrt : urt_hrtparams_t</text><ellipse cx="832" cy="754.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="841" y="757.9214">frt : urt_frtparams_t</text><ellipse cx="832" cy="767.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="841" y="770.7261">srt : urt_srtparans_t</text><ellipse cx="832" cy="780.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="841" y="783.5308">nrt : urt_nrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="822" x2="966" y1="790.125" y2="790.125"/><!--MD5=[c57ade65ef97beb73587233399d5250a]
-class urt_hrtdata_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="180.0469" id="urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="512" x="1097" y="857.9063"/><ellipse cx="1307.75" cy="873.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1307.2344,874.4688 Q1305.375,873.7656 1304.7188,873 Q1304.0781,872.2188 1304.0781,870.9063 Q1304.0781,869.2188 1305.1563,868.25 Q1306.2344,867.2813 1308.1094,867.2813 Q1308.9688,867.2813 1309.8125,867.4844 Q1310.6719,867.6719 1311.5156,868.0625 L1311.5156,870.4531 Q1310.7344,869.8906 1309.9063,869.6094 Q1309.0938,869.3125 1308.2969,869.3125 Q1307.4219,869.3125 1306.9375,869.6719 Q1306.4688,870.0313 1306.4688,870.6875 Q1306.4688,871.2031 1306.8125,871.5469 Q1307.1563,871.875 1308.25,872.2813 L1309.3125,872.6875 Q1310.7969,873.2344 1311.5,874.1406 Q1312.2188,875.0469 1312.2188,876.4219 Q1312.2188,878.2969 1311.1094,879.2188 Q1310,880.1406 1307.75,880.1406 Q1306.8281,880.1406 1305.9063,879.9219 Q1304.9844,879.7031 1304.125,879.2813 L1304.125,876.75 Q1305.0938,877.4375 1306.0156,877.7813 Q1306.9375,878.125 1307.8281,878.125 Q1308.7344,878.125 1309.2344,877.7188 Q1309.7344,877.2969 1309.7344,876.5625 Q1309.7344,876 1309.3906,875.5938 Q1309.0625,875.1719 1308.4375,874.9219 L1307.2344,874.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="1328.25" y="878.0605">urt_hrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1098" x2="1608" y1="889.9063" y2="889.9063"/><ellipse cx="1108" cy="900.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1117" y="904.1167">next : urt_subscriber_t*</text><ellipse cx="1108" cy="930.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="1117" y="933.7261">qosDeadlineTimer : urt_osTimer_t</text><ellipse cx="1108" cy="943.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="1117" y="946.5308">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1098" x2="1207.5" y1="917.1133" y2="917.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="1207.5" y="920.4214">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1498.5" x2="1608" y1="917.1133" y2="917.1133"/><ellipse cx="1108" cy="972.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="1117" y="976.1401">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1098" x2="1220.5" y1="959.5273" y2="959.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="1220.5" y="962.8354">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1485.5" x2="1608" y1="959.5273" y2="959.5273"/><ellipse cx="1108" cy="1002.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="1117" y="1005.7495">maxJitter : urt_delay_t</text><ellipse cx="1108" cy="1015.3438" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="1117" y="1018.5542">minLatency : urt_delay_t</text><ellipse cx="1108" cy="1028.1484" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1117" y="1031.3589">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1098" x2="1101" y1="989.1367" y2="989.1367"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="1101" y="992.4448">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1605" x2="1608" y1="989.1367" y2="989.1367"/><!--MD5=[72774668522d2286013bfbc0db723956]
-class urt_frtdata_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="154.4375" id="urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="512" x="30" y="870.9063"/><ellipse cx="242.75" cy="886.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M242.2344,887.4688 Q240.375,886.7656 239.7188,886 Q239.0781,885.2188 239.0781,883.9063 Q239.0781,882.2188 240.1563,881.25 Q241.2344,880.2813 243.1094,880.2813 Q243.9688,880.2813 244.8125,880.4844 Q245.6719,880.6719 246.5156,881.0625 L246.5156,883.4531 Q245.7344,882.8906 244.9063,882.6094 Q244.0938,882.3125 243.2969,882.3125 Q242.4219,882.3125 241.9375,882.6719 Q241.4688,883.0313 241.4688,883.6875 Q241.4688,884.2031 241.8125,884.5469 Q242.1563,884.875 243.25,885.2813 L244.3125,885.6875 Q245.7969,886.2344 246.5,887.1406 Q247.2188,888.0469 247.2188,889.4219 Q247.2188,891.2969 246.1094,892.2188 Q245,893.1406 242.75,893.1406 Q241.8281,893.1406 240.9063,892.9219 Q239.9844,892.7031 239.125,892.2813 L239.125,889.75 Q240.0938,890.4375 241.0156,890.7813 Q241.9375,891.125 242.8281,891.125 Q243.7344,891.125 244.2344,890.7188 Q244.7344,890.2969 244.7344,889.5625 Q244.7344,889 244.3906,888.5938 Q244.0625,888.1719 243.4375,887.9219 L242.2344,887.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="78" x="263.25" y="891.0605">urt_frtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="31" x2="541" y1="902.9063" y2="902.9063"/><ellipse cx="41" cy="930.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="50" y="933.9214">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="31" x2="140.5" y1="917.3086" y2="917.3086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="140.5" y="920.6167">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="431.5" x2="541" y1="917.3086" y2="917.3086"/><ellipse cx="41" cy="960.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="50" y="963.5308">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="31" x2="153.5" y1="946.918" y2="946.918"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="153.5" y="950.2261">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="418.5" x2="541" y1="946.918" y2="946.918"/><ellipse cx="41" cy="989.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="50" y="993.1401">maxJitter : urt_delay_t</text><ellipse cx="41" cy="1002.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="50" y="1005.9448">minLatency : urt_delay_t</text><ellipse cx="41" cy="1015.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="50" y="1018.7495">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="31" x2="34" y1="976.5273" y2="976.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="34" y="979.8354">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="538" x2="541" y1="976.5273" y2="976.5273"/><!--MD5=[ca63c4d42025d7ce195746a6a8d32f3e]
-class urt_nrtdata_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="48" id="urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="577" y="923.9063"/><ellipse cx="592" cy="939.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M591.4844,940.4688 Q589.625,939.7656 588.9688,939 Q588.3281,938.2188 588.3281,936.9063 Q588.3281,935.2188 589.4063,934.25 Q590.4844,933.2813 592.3594,933.2813 Q593.2188,933.2813 594.0625,933.4844 Q594.9219,933.6719 595.7656,934.0625 L595.7656,936.4531 Q594.9844,935.8906 594.1563,935.6094 Q593.3438,935.3125 592.5469,935.3125 Q591.6719,935.3125 591.1875,935.6719 Q590.7188,936.0313 590.7188,936.6875 Q590.7188,937.2031 591.0625,937.5469 Q591.4063,937.875 592.5,938.2813 L593.5625,938.6875 Q595.0469,939.2344 595.75,940.1406 Q596.4688,941.0469 596.4688,942.4219 Q596.4688,944.2969 595.3594,945.2188 Q594.25,946.1406 592,946.1406 Q591.0781,946.1406 590.1563,945.9219 Q589.2344,945.7031 588.375,945.2813 L588.375,942.75 Q589.3438,943.4375 590.2656,943.7813 Q591.1875,944.125 592.0781,944.125 Q592.9844,944.125 593.4844,943.7188 Q593.9844,943.2969 593.9844,942.5625 Q593.9844,942 593.6406,941.5938 Q593.3125,941.1719 592.6875,940.9219 L591.4844,940.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="606" y="944.0605">urt_nrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="690" y1="955.9063" y2="955.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="690" y1="963.9063" y2="963.9063"/><!--MD5=[fc7708c915a0148c667d62e1370980fd]
-class urt_srtusefulnessfunc_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="60.8047" id="urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="707" y="1097.9063"/><ellipse cx="816.25" cy="1113.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M820.4844,1109.6719 L815.2031,1109.6719 L815.2031,1112.3438 L820,1112.3438 L820,1114.5 L815.2031,1114.5 L815.2031,1119.9063 L812.7656,1119.9063 L812.7656,1107.5156 L820.4844,1107.5156 L820.4844,1109.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="836.75" y="1118.0605">urt_srtusefulnessfunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="708" x2="1080" y1="1129.9063" y2="1129.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="708" x2="1080" y1="1137.9063" y2="1137.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="362" x="713" y="1152.1167">urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float</text><!--MD5=[4a2daf41193a31389d6311337c2a120f]
-class urt_srtdata_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="73.6094" id="urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="765" y="910.9063"/><ellipse cx="849.25" cy="926.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M848.7344,927.4688 Q846.875,926.7656 846.2188,926 Q845.5781,925.2188 845.5781,923.9063 Q845.5781,922.2188 846.6563,921.25 Q847.7344,920.2813 849.6094,920.2813 Q850.4688,920.2813 851.3125,920.4844 Q852.1719,920.6719 853.0156,921.0625 L853.0156,923.4531 Q852.2344,922.8906 851.4063,922.6094 Q850.5938,922.3125 849.7969,922.3125 Q848.9219,922.3125 848.4375,922.6719 Q847.9688,923.0313 847.9688,923.6875 Q847.9688,924.2031 848.3125,924.5469 Q848.6563,924.875 849.75,925.2813 L850.8125,925.6875 Q852.2969,926.2344 853,927.1406 Q853.7188,928.0469 853.7188,929.4219 Q853.7188,931.2969 852.6094,932.2188 Q851.5,933.1406 849.25,933.1406 Q848.3281,933.1406 847.4063,932.9219 Q846.4844,932.7031 845.625,932.2813 L845.625,929.75 Q846.5938,930.4375 847.5156,930.7813 Q848.4375,931.125 849.3281,931.125 Q850.2344,931.125 850.7344,930.7188 Q851.2344,930.2969 851.2344,929.5625 Q851.2344,929 850.8906,928.5938 Q850.5625,928.1719 849.9375,927.9219 L848.7344,927.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="869.75" y="931.0605">urt_srtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="1022" y1="942.9063" y2="942.9063"/><ellipse cx="776" cy="953.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="232" x="785" y="957.1167">usefullnesscb : urt_srtusefulnessfunc_t*</text><ellipse cx="776" cy="966.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="785" y="969.9214">cbparams : void*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="1022" y1="976.5156" y2="976.5156"/><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
-class urt_message_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="141.6328" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="2099.5" y="496.9063"/><ellipse cx="2274.75" cy="512.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2274.2344,513.4688 Q2272.375,512.7656 2271.7188,512 Q2271.0781,511.2188 2271.0781,509.9063 Q2271.0781,508.2188 2272.1563,507.25 Q2273.2344,506.2813 2275.1094,506.2813 Q2275.9688,506.2813 2276.8125,506.4844 Q2277.6719,506.6719 2278.5156,507.0625 L2278.5156,509.4531 Q2277.7344,508.8906 2276.9063,508.6094 Q2276.0938,508.3125 2275.2969,508.3125 Q2274.4219,508.3125 2273.9375,508.6719 Q2273.4688,509.0313 2273.4688,509.6875 Q2273.4688,510.2031 2273.8125,510.5469 Q2274.1563,510.875 2275.25,511.2813 L2276.3125,511.6875 Q2277.7969,512.2344 2278.5,513.1406 Q2279.2188,514.0469 2279.2188,515.4219 Q2279.2188,517.2969 2278.1094,518.2188 Q2277,519.1406 2274.75,519.1406 Q2273.8281,519.1406 2272.9063,518.9219 Q2271.9844,518.7031 2271.125,518.2813 L2271.125,515.75 Q2272.0938,516.4375 2273.0156,516.7813 Q2273.9375,517.125 2274.8281,517.125 Q2275.7344,517.125 2276.2344,516.7188 Q2276.7344,516.2969 2276.7344,515.5625 Q2276.7344,515 2276.3906,514.5938 Q2276.0625,514.1719 2275.4375,513.9219 L2274.2344,513.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="2295.25" y="517.0605">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2100.5" x2="2549.5" y1="528.9063" y2="528.9063"/><ellipse cx="2110.5" cy="539.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="2119.5" y="543.1167">next : urt_message_t*</text><ellipse cx="2110.5" cy="552.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="2119.5" y="555.9214">payload : void*</text><ellipse cx="2110.5" cy="565.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="2119.5" y="568.7261">originTime : urt_osTime_t</text><ellipse cx="2110.5" cy="578.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="2119.5" y="581.5308">numHrtConsumersLeft : unsigned int</text><ellipse cx="2110.5" cy="607.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="2119.5" y="611.1401">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2100.5" x2="2216.5" y1="594.5273" y2="594.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2216.5" y="597.8354">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2433.5" x2="2549.5" y1="594.5273" y2="594.5273"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2100.5" x2="2549.5" y1="617.7344" y2="617.7344"/><ellipse cx="2110.5" cy="628.7344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="425" x="2119.5" y="631.9448">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
-class urt_publisher_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="1642.5" y="216.4063"/><ellipse cx="1971.25" cy="232.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1970.7344,232.9688 Q1968.875,232.2656 1968.2188,231.5 Q1967.5781,230.7188 1967.5781,229.4063 Q1967.5781,227.7188 1968.6563,226.75 Q1969.7344,225.7813 1971.6094,225.7813 Q1972.4688,225.7813 1973.3125,225.9844 Q1974.1719,226.1719 1975.0156,226.5625 L1975.0156,228.9531 Q1974.2344,228.3906 1973.4063,228.1094 Q1972.5938,227.8125 1971.7969,227.8125 Q1970.9219,227.8125 1970.4375,228.1719 Q1969.9688,228.5313 1969.9688,229.1875 Q1969.9688,229.7031 1970.3125,230.0469 Q1970.6563,230.375 1971.75,230.7813 L1972.8125,231.1875 Q1974.2969,231.7344 1975,232.6406 Q1975.7188,233.5469 1975.7188,234.9219 Q1975.7188,236.7969 1974.6094,237.7188 Q1973.5,238.6406 1971.25,238.6406 Q1970.3281,238.6406 1969.4063,238.4219 Q1968.4844,238.2031 1967.625,237.7813 L1967.625,235.25 Q1968.5938,235.9375 1969.5156,236.2813 Q1970.4375,236.625 1971.3281,236.625 Q1972.2344,236.625 1972.7344,236.2188 Q1973.2344,235.7969 1973.2344,235.0625 Q1973.2344,234.5 1972.8906,234.0938 Q1972.5625,233.6719 1971.9375,233.4219 L1970.7344,232.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="1991.75" y="236.5605">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643.5" x2="2400.5" y1="248.4063" y2="248.4063"/><ellipse cx="1653.5" cy="259.4063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="1662.5" y="262.6167">topic : urt_topic_t*</text><ellipse cx="1653.5" cy="289.0156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="1662.5" y="292.2261">publishAttempts : uint64_t</text><ellipse cx="1653.5" cy="301.8203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="1662.5" y="305.0308">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1643.5" x2="1940" y1="275.6133" y2="275.6133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="164" x="1940" y="278.9214">URT_CFG_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2104" x2="2400.5" y1="275.6133" y2="275.6133"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643.5" x2="2400.5" y1="311.625" y2="311.625"/><ellipse cx="1653.5" cy="322.625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="617" x="1662.5" y="325.8354">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="1653.5" cy="335.4297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="733" x="1662.5" y="338.6401">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
-class urt_topic_t--><rect fill="#FEFECE" filter="url(#f1mo1dxjcuibt3)" height="248.0703" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="2437" y="156.9063"/><ellipse cx="2591.75" cy="172.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2591.2344,173.4688 Q2589.375,172.7656 2588.7188,172 Q2588.0781,171.2188 2588.0781,169.9063 Q2588.0781,168.2188 2589.1563,167.25 Q2590.2344,166.2813 2592.1094,166.2813 Q2592.9688,166.2813 2593.8125,166.4844 Q2594.6719,166.6719 2595.5156,167.0625 L2595.5156,169.4531 Q2594.7344,168.8906 2593.9063,168.6094 Q2593.0938,168.3125 2592.2969,168.3125 Q2591.4219,168.3125 2590.9375,168.6719 Q2590.4688,169.0313 2590.4688,169.6875 Q2590.4688,170.2031 2590.8125,170.5469 Q2591.1563,170.875 2592.25,171.2813 L2593.3125,171.6875 Q2594.7969,172.2344 2595.5,173.1406 Q2596.2188,174.0469 2596.2188,175.4219 Q2596.2188,177.2969 2595.1094,178.2188 Q2594,179.1406 2591.75,179.1406 Q2590.8281,179.1406 2589.9063,178.9219 Q2588.9844,178.7031 2588.125,178.2813 L2588.125,175.75 Q2589.0938,176.4375 2590.0156,176.7813 Q2590.9375,177.125 2591.8281,177.125 Q2592.7344,177.125 2593.2344,176.7188 Q2593.7344,176.2969 2593.7344,175.5625 Q2593.7344,175 2593.3906,174.5938 Q2593.0625,174.1719 2592.4375,173.9219 L2591.2344,173.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="2612.25" y="177.0605">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2438" x2="2820" y1="188.9063" y2="188.9063"/><ellipse cx="2448" cy="199.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="2457" y="203.1167">next : urt_topic_t*</text><ellipse cx="2448" cy="212.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="2457" y="215.9214">id : urt_topicid_t</text><ellipse cx="2448" cy="225.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="2457" y="228.7261">lock : urt_osMutex_t</text><ellipse cx="2448" cy="238.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="2457" y="241.5308">evtSource : urt_osEventSource_t</text><ellipse cx="2448" cy="251.125" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="2457" y="254.3354">numHrtSubscribers : unsigned int</text><ellipse cx="2448" cy="263.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="2457" y="267.1401">hrtSubscribers : urt_subscriber_t*</text><ellipse cx="2448" cy="276.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="2457" y="279.9448">hrtReleased : urt_osCondvar_t</text><ellipse cx="2448" cy="289.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="2457" y="292.7495">mandatoryMessage : urt_message_t</text><ellipse cx="2448" cy="302.3438" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="2457" y="305.5542">latestMessage : urt_message_t*</text><ellipse cx="2448" cy="331.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="2457" y="335.1636">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2438" x2="2496.5" y1="318.5508" y2="318.5508"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="2496.5" y="321.8589">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2761.5" x2="2820" y1="318.5508" y2="318.5508"/><ellipse cx="2448" cy="361.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="2457" y="364.7729">numDiscardedMessages : uint64_t</text><ellipse cx="2448" cy="374.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="2457" y="377.5776">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2438" x2="2520.5" y1="348.1602" y2="348.1602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2520.5" y="351.4683">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2737.5" x2="2820" y1="348.1602" y2="348.1602"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2438" x2="2820" y1="384.1719" y2="384.1719"/><ellipse cx="2448" cy="395.1719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="358" x="2457" y="398.3823">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--MD5=[0c465c1a61dfd99ff8b5568ca35c92d1]
-reverse link urt_srtdata_t to urt_srtusefulnessfunc_t--><path d="M894,998.4055 C894,1030.2978 894,1070.4665 894,1097.6495 " fill="none" id="urt_srtdata_t&lt;-urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="894,985.3059,890,991.3059,894,997.3059,898,991.3059,894,985.3059" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="885.3625" y="1004.5704">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="867.525" y="1086.8597">0..1</text><!--MD5=[3f22cd2af9b1d30da63b75b4db75ae6e]
-reverse link urt_rtclassdata_t to urt_hrtdata_t--><path d="M978.9046,801.8557 C1020.5186,822.7068 1062.0203,841.0824 1102.757,857.8507 " fill="none" id="urt_rtclassdata_t&lt;-urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="967.1648,795.9082,970.7094,802.188,977.8694,801.3313,974.3248,795.0515,967.1648,795.9082" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="975.1224" y="797.0958">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1065.2351" y="849.8895">0..1</text><!--MD5=[a94a8c9c209e194384613684e912df80]
-reverse link urt_rtclassdata_t to urt_frtdata_t--><path d="M808.804,795.574 C806.8622,796.3811 804.9259,797.1601 803,797.9063 C698.8684,838.2537 666.3325,827.0675 559,857.9063 C544.7306,862.0061 530.0908,866.3686 515.3595,870.8772 " fill="none" id="urt_rtclassdata_t&lt;-urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="820.7605,790.2989,813.6564,789.0612,809.7816,795.1427,816.8857,796.3804,820.7605,790.2989" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="804.7952" y="790.9081">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="512.0766" y="859.8728">0..1</text><!--MD5=[e6a6d7a2212fadf5661857a71d4f05c3]
-reverse link urt_rtclassdata_t to urt_srtdata_t--><path d="M894,811.1239 C894,843.8959 894,882.8833 894,910.8335 " fill="none" id="urt_rtclassdata_t&lt;-urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="894,797.9771,890,803.9771,894,809.9771,898,803.9771,894,797.9771" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="885.4375" y="818.0636">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="867.7875" y="899.7305">0..1</text><!--MD5=[206fe31eaf8244c7272230bb0ec7137c]
-reverse link urt_rtclassdata_t to urt_nrtdata_t--><path d="M809.2125,794.7769 C755.6531,824.1145 696.2749,856.7443 695,857.9063 C674.2134,876.8516 656.9593,904.2319 646.1673,923.8103 " fill="none" id="urt_rtclassdata_t&lt;-urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="820.8831,788.386,813.6993,787.7595,810.358,794.1497,817.5418,794.7762,820.8831,788.386" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="804.9304" y="805.3448">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="622.2102" y="912.7977">0..1</text><!--MD5=[1ba55993ff077c77667f6c7be6552d53]
-reverse link urt_rtdata_t to urt_rtclass_t--><path d="M846.2324,614.512 C819.7696,640.3311 786.8734,672.4271 759.9231,698.7219 " fill="none" id="urt_rtdata_t&lt;-urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="855.6679,605.306,848.58,606.633,847.0788,613.6861,854.1668,612.3591,855.6679,605.306" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="840.9212" y="624.5704">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="758.5217" y="687.7411">1</text><!--MD5=[8318054091d2ecf2336b9e490f482e2a]
-reverse link urt_rtdata_t to urt_rtclassdata_t--><path d="M894,618.6391 C894,643.6936 894,673.8111 894,698.7219 " fill="none" id="urt_rtdata_t&lt;-urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="894,605.306,890,611.306,894,617.306,898,611.306,894,605.306" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="885.3625" y="624.5704">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="885.4375" y="687.7411">1</text><!--MD5=[b6ee30948a218449c72edbee7363b5d7]
-link urt_subscriber_t to urt_hrtdata_t--><path d="M1138.6476,437.2882 C1191.4878,563.1612 1264.2353,736.456 1309.9286,845.3041 " fill="none" id="urt_subscriber_t-&gt;urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1315.0884,857.5954,1316.4541,850.5148,1310.4435,846.5308,1309.0778,853.6114,1315.0884,857.5954" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1117.2462" y="457.294">0..1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1303.7486" y="846.8714">1</text><!--MD5=[536025241394544a90bc53fb552f3a08]
-reverse link urt_message_t to urt_message_t--><path d="M2562.9841,544.7114 C2577.0653,550.2574 2585.5,557.9891 2585.5,567.9063 C2585.5,580.4747 2571.9528,589.5327 2550.534,595.0805 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2550.534,540.7321,2555.0314,546.3689,2561.9643,544.3855,2557.467,538.7486,2550.534,540.7321" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2558.7829" y="536.5618">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2558.3281" y="592.8011">0..1</text><!--MD5=[f7eb638a1c2d853c6fb0ae6f53692e50]
-reverse link urt_subscriber_t to urt_rtdata_t--><path d="M968.7428,448.0672 C949.3302,479.1925 930.8701,508.7904 917.1525,530.7847 " fill="none" id="urt_subscriber_t&lt;-urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="975.6428,437.0042,969.0736,439.9783,969.2924,447.1861,975.8616,444.2119,975.6428,437.0042" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="962.7333" y="456.9963">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="921.989" y="519.9499">1</text><!--MD5=[bf7bf5810813e0e9b75d3053dc098443]
-reverse link urt_subscriber_t to urt_topic_t--><path d="M1443.869,120.6256 C1508.9537,98.7617 1576.8737,79.7773 1642.5,67.9063 C1725.4866,52.8951 2323.0658,36.9195 2401.5,67.9063 C2449.4308,86.8421 2493.1887,121.174 2529.2434,156.8237 " fill="none" id="urt_subscriber_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1431.3218,124.8878,1438.2895,126.7454,1442.6841,121.0281,1435.7164,119.1705,1431.3218,124.8878" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1440.4843" y="114.0352">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2498.4332" y="145.8741">0..1</text><!--MD5=[d3b08a81de663c21a5ec062e6c430f2b]
-reverse link urt_topic_t to urt_subscriber_t--><path d="M2519.7796,147.6708 C2485.637,115.387 2445.3118,85.2149 2401.5,67.9063 C2323.0658,36.9195 1725.4866,52.8951 1642.5,67.9063 C1572.6442,80.5422 1500.1894,101.2384 1431.3218,124.8878 " fill="none" id="urt_topic_t&lt;-urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2529.2434,156.8237,2527.7113,149.7772,2520.6176,148.4812,2522.1497,155.5277,2529.2434,156.8237" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2523.4082" y="145.8741">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1449.2593" y="114.0352">0..1</text><!--MD5=[67fd999c5486ad1c37ee9b77e12afd1b]
-reverse link urt_subscriber_t to urt_message_t--><path d="M1619.9817,435.7266 C1621.6569,436.1215 1623.3297,436.5148 1625,436.9063 C1782.3912,473.794 1961.6101,507.1739 2099.3033,531.0066 " fill="none" id="urt_subscriber_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1607.0932,432.6645,1612.0061,437.943,1618.7682,435.4383,1613.8553,430.1597,1607.0932,432.6645" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1614.6601" y="431.7603">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2067.5039" y="526.6248">0..1</text><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
-reverse link urt_publisher_t to urt_topic_t--><path d="M2414.8249,280.9063 C2422.1324,280.9063 2429.44,280.9063 2436.7475,280.9063 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2401.6714,280.9063,2407.6714,284.9063,2413.6714,280.9063,2407.6714,276.9063,2401.6714,280.9063" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2409.4647" y="277.8239">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2421.0814" y="277.6814">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
-link urt_publisher_t to urt_message_t--><path d="M2090.3769,345.6726 C2136.6475,389.4997 2197.9009,447.5187 2246.2179,493.2843 " fill="none" id="urt_publisher_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2249.9674,496.8357,2246.1839,487.7426,2246.3373,493.3974,2240.6825,493.5507,2249.9674,496.8357" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
-reverse link urt_topic_t to urt_topic_t--><path d="M2833.0439,241.8166 C2847.3061,250.7388 2856,263.7687 2856,280.9063 C2856,302.4122 2842.309,317.4494 2821.1039,326.0182 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2821.1039,235.7944,2824.6597,242.0678,2831.8182,241.1984,2828.2624,234.925,2821.1039,235.7944" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2828.7642" y="230.8073">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2829.0767" y="324.5555">0..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
-reverse link urt_topic_t to urt_message_t--><path d="M2474.9438,414.3369 C2444.6349,442.8015 2414.4354,471.7971 2389.122,496.8142 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2484.7822,405.1195,2477.6688,406.3026,2476.0251,413.3239,2483.1385,412.1407,2484.7822,405.1195" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2467.7502" y="425.2145">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2370.4971" y="485.802">1..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
-reverse link urt_topic_t to urt_message_t--><path d="M2501.1363,414.3369 C2471.1531,442.8015 2439.8962,471.7971 2412.1421,496.8142 " fill="none" id="urt_topic_t&lt;-urt_message_t-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2510.8203,405.1195,2503.7165,406.3587,2502.1282,413.3927,2509.232,412.1535,2510.8203,405.1195" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2495.375" y="425.2145">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2412.7161" y="485.802">1</text><!--MD5=[f1e3b17acb082cd570a8de34c89668c3]
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="611px" preserveAspectRatio="none" style="width:5343px;height:611px;" version="1.1" viewBox="0 0 5343 611" width="5343px" zoomAndPan="magnify"><defs><filter height="300%" id="fijp6wls75jyj" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="2635" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="225" x="2567" y="37.6611">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
+cluster subscriber--><rect fill="#FFFFFF" filter="url(#fijp6wls75jyj)" height="502" style="stroke: #000000; stroke-width: 1.5;" width="4103" x="1229.5" y="98.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="3238.5" y="113.9014">subscriber</text><!--MD5=[50a042e24f957794dab9ba3ea8701c50]
+class urt_basesubscriber_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="133.6328" id="urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="3039" y="458.9063"/><ellipse cx="3081.45" cy="474.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3080.9344,475.4688 Q3079.075,474.7656 3078.4188,474 Q3077.7781,473.2188 3077.7781,471.9063 Q3077.7781,470.2188 3078.8563,469.25 Q3079.9344,468.2813 3081.8094,468.2813 Q3082.6688,468.2813 3083.5125,468.4844 Q3084.3719,468.6719 3085.2156,469.0625 L3085.2156,471.4531 Q3084.4344,470.8906 3083.6063,470.6094 Q3082.7938,470.3125 3081.9969,470.3125 Q3081.1219,470.3125 3080.6375,470.6719 Q3080.1688,471.0313 3080.1688,471.6875 Q3080.1688,472.2031 3080.5125,472.5469 Q3080.8563,472.875 3081.95,473.2813 L3083.0125,473.6875 Q3084.4969,474.2344 3085.2,475.1406 Q3085.9188,476.0469 3085.9188,477.4219 Q3085.9188,479.2969 3084.8094,480.2188 Q3083.7,481.1406 3081.45,481.1406 Q3080.5281,481.1406 3079.6063,480.9219 Q3078.6844,480.7031 3077.825,480.2813 L3077.825,477.75 Q3078.7938,478.4375 3079.7156,478.7813 Q3080.6375,479.125 3081.5281,479.125 Q3082.4344,479.125 3082.9344,478.7188 Q3083.4344,478.2969 3083.4344,477.5625 Q3083.4344,477 3083.0906,476.5938 Q3082.7625,476.1719 3082.1375,475.9219 L3080.9344,475.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="132" x="3101.55" y="479.0605">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3040" x2="3263" y1="490.9063" y2="490.9063"/><ellipse cx="3050" cy="501.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="3059" y="505.1167">topic : urt_topic_t*</text><ellipse cx="3050" cy="514.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="3059" y="517.9214">evtListener : urt_osEventListener_t</text><ellipse cx="3050" cy="527.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="3059" y="530.7261">lastMessage : urt_message_t*</text><ellipse cx="3050" cy="540.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="3059" y="543.5308">lastMessageTime : urt_osTime_t</text><ellipse cx="3050" cy="569.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="3059" y="573.1401">sumLatencies : uint64_t</text><ellipse cx="3050" cy="582.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="3059" y="585.9448">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3040" x2="3043" y1="556.5273" y2="556.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="3043" y="559.8354">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3260" x2="3263" y1="556.5273" y2="556.5273"/><!--MD5=[fc7708c915a0148c667d62e1370980fd]
+class urt_srtusefulnessfunc_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="60.8047" id="urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="4595.5" y="495.4063"/><ellipse cx="4704.75" cy="511.4063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4708.9844,507.1719 L4703.7031,507.1719 L4703.7031,509.8438 L4708.5,509.8438 L4708.5,512 L4703.7031,512 L4703.7031,517.4063 L4701.2656,517.4063 L4701.2656,505.0156 L4708.9844,505.0156 L4708.9844,507.1719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="4725.25" y="515.5605">urt_srtusefulnessfunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4596.5" x2="4968.5" y1="527.4063" y2="527.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4596.5" x2="4968.5" y1="535.4063" y2="535.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="362" x="4601.5" y="549.6167">urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float</text><!--MD5=[9ff46073dd541e50679ef35e851c67d6]
+class urt_nrtsubscriber_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="154.4375" id="urt_nrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="821" x="2247" y="183.4063"/><ellipse cx="2593.75" cy="199.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2593.2344,199.9688 Q2591.375,199.2656 2590.7188,198.5 Q2590.0781,197.7188 2590.0781,196.4063 Q2590.0781,194.7188 2591.1563,193.75 Q2592.2344,192.7813 2594.1094,192.7813 Q2594.9688,192.7813 2595.8125,192.9844 Q2596.6719,193.1719 2597.5156,193.5625 L2597.5156,195.9531 Q2596.7344,195.3906 2595.9063,195.1094 Q2595.0938,194.8125 2594.2969,194.8125 Q2593.4219,194.8125 2592.9375,195.1719 Q2592.4688,195.5313 2592.4688,196.1875 Q2592.4688,196.7031 2592.8125,197.0469 Q2593.1563,197.375 2594.25,197.7813 L2595.3125,198.1875 Q2596.7969,198.7344 2597.5,199.6406 Q2598.2188,200.5469 2598.2188,201.9219 Q2598.2188,203.7969 2597.1094,204.7188 Q2596,205.6406 2593.75,205.6406 Q2592.8281,205.6406 2591.9063,205.4219 Q2590.9844,205.2031 2590.125,204.7813 L2590.125,202.25 Q2591.0938,202.9375 2592.0156,203.2813 Q2592.9375,203.625 2593.8281,203.625 Q2594.7344,203.625 2595.2344,203.2188 Q2595.7344,202.7969 2595.7344,202.0625 Q2595.7344,201.5 2595.3906,201.0938 Q2595.0625,200.6719 2594.4375,200.4219 L2593.2344,199.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="2614.25" y="203.5605">urt_nrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2248" x2="3067" y1="215.4063" y2="215.4063"/><ellipse cx="2258" cy="243.2109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="2267" y="246.4214">minLatency : urt_delay_t</text><ellipse cx="2258" cy="256.0156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="2267" y="259.2261">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2248" x2="2549" y1="229.8086" y2="229.8086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2549" y="233.1167">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2766" x2="3067" y1="229.8086" y2="229.8086"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2248" x2="3067" y1="265.8203" y2="265.8203"/><ellipse cx="2258" cy="276.8203" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="392" x="2267" y="280.0308">urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : urt_status_t</text><ellipse cx="2258" cy="289.625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="715" x="2267" y="292.8354">urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="2258" cy="302.4297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="2267" y="305.6401">urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2258" cy="315.2344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="2267" y="318.4448">urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2258" cy="328.0391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="2267" y="331.2495">urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t</text><!--MD5=[5c7929572d87ccc448d875bea5da0fb1]
+class urt_srtsubscriber_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="192.8516" id="urt_srtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1084" x="4240.5" y="163.9063"/><ellipse cx="4719.25" cy="179.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4718.7344,180.4688 Q4716.875,179.7656 4716.2188,179 Q4715.5781,178.2188 4715.5781,176.9063 Q4715.5781,175.2188 4716.6563,174.25 Q4717.7344,173.2813 4719.6094,173.2813 Q4720.4688,173.2813 4721.3125,173.4844 Q4722.1719,173.6719 4723.0156,174.0625 L4723.0156,176.4531 Q4722.2344,175.8906 4721.4063,175.6094 Q4720.5938,175.3125 4719.7969,175.3125 Q4718.9219,175.3125 4718.4375,175.6719 Q4717.9688,176.0313 4717.9688,176.6875 Q4717.9688,177.2031 4718.3125,177.5469 Q4718.6563,177.875 4719.75,178.2813 L4720.8125,178.6875 Q4722.2969,179.2344 4723,180.1406 Q4723.7188,181.0469 4723.7188,182.4219 Q4723.7188,184.2969 4722.6094,185.2188 Q4721.5,186.1406 4719.25,186.1406 Q4718.3281,186.1406 4717.4063,185.9219 Q4716.4844,185.7031 4715.625,185.2813 L4715.625,182.75 Q4716.5938,183.4375 4717.5156,183.7813 Q4718.4375,184.125 4719.3281,184.125 Q4720.2344,184.125 4720.7344,183.7188 Q4721.2344,183.2969 4721.2344,182.5625 Q4721.2344,182 4720.8906,181.5938 Q4720.5625,181.1719 4719.9375,180.9219 L4718.7344,180.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="4739.75" y="184.0605">urt_srtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4241.5" x2="5323.5" y1="195.9063" y2="195.9063"/><ellipse cx="4251.5" cy="206.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="229" x="4260.5" y="210.1167">usefulnesscb : urt_srtusefulnessfunc_t*</text><ellipse cx="4251.5" cy="219.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="4260.5" y="222.9214">cbparams : void*</text><ellipse cx="4251.5" cy="249.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="4260.5" y="252.5308">minLatency : urt_delay_t</text><ellipse cx="4251.5" cy="262.125" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="4260.5" y="265.3354">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4241.5" x2="4674" y1="235.918" y2="235.918"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="4674" y="239.2261">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4891" x2="5323.5" y1="235.918" y2="235.918"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4241.5" x2="5323.5" y1="271.9297" y2="271.9297"/><ellipse cx="4251.5" cy="282.9297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="392" x="4260.5" y="286.1401">urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : urt_status_t</text><ellipse cx="4251.5" cy="295.7344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1058" x="4260.5" y="298.9448">urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t</text><ellipse cx="4251.5" cy="308.5391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="4260.5" y="311.7495">urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4251.5" cy="321.3438" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="4260.5" y="324.5542">urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4251.5" cy="334.1484" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="570" x="4260.5" y="337.3589">urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float</text><ellipse cx="4251.5" cy="346.9531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="4260.5" y="350.1636">urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t</text><!--MD5=[17838fb05fe219fd399839979ec8a4a4]
+class urt_frtsubscriber_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="226.4609" id="urt_frtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="974" x="1237.5" y="147.4063"/><ellipse cx="1662.75" cy="163.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1662.2344,163.9688 Q1660.375,163.2656 1659.7188,162.5 Q1659.0781,161.7188 1659.0781,160.4063 Q1659.0781,158.7188 1660.1563,157.75 Q1661.2344,156.7813 1663.1094,156.7813 Q1663.9688,156.7813 1664.8125,156.9844 Q1665.6719,157.1719 1666.5156,157.5625 L1666.5156,159.9531 Q1665.7344,159.3906 1664.9063,159.1094 Q1664.0938,158.8125 1663.2969,158.8125 Q1662.4219,158.8125 1661.9375,159.1719 Q1661.4688,159.5313 1661.4688,160.1875 Q1661.4688,160.7031 1661.8125,161.0469 Q1662.1563,161.375 1663.25,161.7813 L1664.3125,162.1875 Q1665.7969,162.7344 1666.5,163.6406 Q1667.2188,164.5469 1667.2188,165.9219 Q1667.2188,167.7969 1666.1094,168.7188 Q1665,169.6406 1662.75,169.6406 Q1661.8281,169.6406 1660.9063,169.4219 Q1659.9844,169.2031 1659.125,168.7813 L1659.125,166.25 Q1660.0938,166.9375 1661.0156,167.2813 Q1661.9375,167.625 1662.8281,167.625 Q1663.7344,167.625 1664.2344,167.2188 Q1664.7344,166.7969 1664.7344,166.0625 Q1664.7344,165.5 1664.3906,165.0938 Q1664.0625,164.6719 1663.4375,164.4219 L1662.2344,163.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="1683.25" y="167.5605">urt_frtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1238.5" x2="2210.5" y1="179.4063" y2="179.4063"/><ellipse cx="1248.5" cy="207.2109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="1257.5" y="210.4214">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1238.5" x2="1579" y1="193.8086" y2="193.8086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="1579" y="197.1167">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1870" x2="2210.5" y1="193.8086" y2="193.8086"/><ellipse cx="1248.5" cy="236.8203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="1257.5" y="240.0308">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1238.5" x2="1589" y1="223.418" y2="223.418"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="1589" y="226.7261">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1860" x2="2210.5" y1="223.418" y2="223.418"/><ellipse cx="1248.5" cy="266.4297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="1257.5" y="269.6401">minLatency : urt_delay_t</text><ellipse cx="1248.5" cy="279.2344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1257.5" y="282.4448">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1238.5" x2="1470.5" y1="253.0273" y2="253.0273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="508" x="1470.5" y="256.3354">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ||  URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1978.5" x2="2210.5" y1="253.0273" y2="253.0273"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1238.5" x2="2210.5" y1="289.0391" y2="289.0391"/><ellipse cx="1248.5" cy="300.0391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="387" x="1257.5" y="303.2495">urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : urt_status_t</text><ellipse cx="1248.5" cy="312.8438" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="948" x="1257.5" y="316.0542">urtFrtSubscriberSubscribe (subscriber : urt_frtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="1248.5" cy="325.6484" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="780" x="1257.5" y="328.8589">urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1248.5" cy="338.4531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="790" x="1257.5" y="341.6636">urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1248.5" cy="351.2578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="540" x="1257.5" y="354.4683">urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool</text><ellipse cx="1248.5" cy="364.0625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="441" x="1257.5" y="367.2729">urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t</text><!--MD5=[104dc879e5721421b987fcc467bc3a1d]
+class urt_hrtsubscriber_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="268.875" id="urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1084" x="3103.5" y="125.9063"/><ellipse cx="3581.75" cy="141.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3581.2344,142.4688 Q3579.375,141.7656 3578.7188,141 Q3578.0781,140.2188 3578.0781,138.9063 Q3578.0781,137.2188 3579.1563,136.25 Q3580.2344,135.2813 3582.1094,135.2813 Q3582.9688,135.2813 3583.8125,135.4844 Q3584.6719,135.6719 3585.5156,136.0625 L3585.5156,138.4531 Q3584.7344,137.8906 3583.9063,137.6094 Q3583.0938,137.3125 3582.2969,137.3125 Q3581.4219,137.3125 3580.9375,137.6719 Q3580.4688,138.0313 3580.4688,138.6875 Q3580.4688,139.2031 3580.8125,139.5469 Q3581.1563,139.875 3582.25,140.2813 L3583.3125,140.6875 Q3584.7969,141.2344 3585.5,142.1406 Q3586.2188,143.0469 3586.2188,144.4219 Q3586.2188,146.2969 3585.1094,147.2188 Q3584,148.1406 3581.75,148.1406 Q3580.8281,148.1406 3579.9063,147.9219 Q3578.9844,147.7031 3578.125,147.2813 L3578.125,144.75 Q3579.0938,145.4375 3580.0156,145.7813 Q3580.9375,146.125 3581.8281,146.125 Q3582.7344,146.125 3583.2344,145.7188 Q3583.7344,145.2969 3583.7344,144.5625 Q3583.7344,144 3583.3906,143.5938 Q3583.0625,143.1719 3582.4375,142.9219 L3581.2344,142.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="3602.25" y="146.0605">urt_hrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3104.5" x2="4186.5" y1="157.9063" y2="157.9063"/><ellipse cx="3114.5" cy="168.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="151" x="3123.5" y="172.1167">next : urt_hrtsubscriber_t*</text><ellipse cx="3114.5" cy="198.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="3123.5" y="201.7261">deadlineOffset : urt_delay_t</text><ellipse cx="3114.5" cy="211.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="3123.5" y="214.5308">qosDeadlineTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3104.5" x2="3500" y1="185.1133" y2="185.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="3500" y="188.4214">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3791" x2="4186.5" y1="185.1133" y2="185.1133"/><ellipse cx="3114.5" cy="240.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="3123.5" y="244.1401">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3104.5" x2="3510" y1="227.5273" y2="227.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="3510" y="230.8354">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3781" x2="4186.5" y1="227.5273" y2="227.5273"/><ellipse cx="3114.5" cy="270.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="3123.5" y="273.7495">minLatency : urt_delay_t</text><ellipse cx="3114.5" cy="283.3438" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="3123.5" y="286.5542">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3104.5" x2="3393.5" y1="257.1367" y2="257.1367"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="3393.5" y="260.4448">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3897.5" x2="4186.5" y1="257.1367" y2="257.1367"/><ellipse cx="3114.5" cy="312.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="3123.5" y="316.1636">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3104.5" x2="3513" y1="299.5508" y2="299.5508"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="3513" y="302.8589">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3778" x2="4186.5" y1="299.5508" y2="299.5508"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3104.5" x2="4186.5" y1="322.7578" y2="322.7578"/><ellipse cx="3114.5" cy="333.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="392" x="3123.5" y="336.9683">urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : urt_status_t</text><ellipse cx="3114.5" cy="346.5625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1058" x="3123.5" y="349.7729">urtHrtSubscriberSubscribe (subscriber : urt_hrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="3114.5" cy="359.3672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="3123.5" y="362.5776">urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3114.5" cy="372.1719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="3123.5" y="375.3823">urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3114.5" cy="384.9766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="3123.5" y="388.187">urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t</text><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
+class urt_message_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="141.6328" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="753" y="454.9063"/><ellipse cx="928.25" cy="470.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M927.7344,471.4688 Q925.875,470.7656 925.2188,470 Q924.5781,469.2188 924.5781,467.9063 Q924.5781,466.2188 925.6563,465.25 Q926.7344,464.2813 928.6094,464.2813 Q929.4688,464.2813 930.3125,464.4844 Q931.1719,464.6719 932.0156,465.0625 L932.0156,467.4531 Q931.2344,466.8906 930.4063,466.6094 Q929.5938,466.3125 928.7969,466.3125 Q927.9219,466.3125 927.4375,466.6719 Q926.9688,467.0313 926.9688,467.6875 Q926.9688,468.2031 927.3125,468.5469 Q927.6563,468.875 928.75,469.2813 L929.8125,469.6875 Q931.2969,470.2344 932,471.1406 Q932.7188,472.0469 932.7188,473.4219 Q932.7188,475.2969 931.6094,476.2188 Q930.5,477.1406 928.25,477.1406 Q927.3281,477.1406 926.4063,476.9219 Q925.4844,476.7031 924.625,476.2813 L924.625,473.75 Q925.5938,474.4375 926.5156,474.7813 Q927.4375,475.125 928.3281,475.125 Q929.2344,475.125 929.7344,474.7188 Q930.2344,474.2969 930.2344,473.5625 Q930.2344,473 929.8906,472.5938 Q929.5625,472.1719 928.9375,471.9219 L927.7344,471.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="948.75" y="475.0605">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="754" x2="1203" y1="486.9063" y2="486.9063"/><ellipse cx="764" cy="497.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="773" y="501.1167">next : urt_message_t*</text><ellipse cx="764" cy="510.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="773" y="513.9214">payload : void*</text><ellipse cx="764" cy="523.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="773" y="526.7261">originTime : urt_osTime_t</text><ellipse cx="764" cy="536.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="773" y="539.5308">numHrtConsumersLeft : unsigned int</text><ellipse cx="764" cy="565.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="773" y="569.1401">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="754" x2="870" y1="552.5273" y2="552.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="870" y="555.8354">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1087" x2="1203" y1="552.5273" y2="552.5273"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="754" x2="1203" y1="575.7344" y2="575.7344"/><ellipse cx="764" cy="586.7344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="425" x="773" y="589.9448">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
+class urt_publisher_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="6" y="195.9063"/><ellipse cx="334.75" cy="211.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M334.2344,212.4688 Q332.375,211.7656 331.7188,211 Q331.0781,210.2188 331.0781,208.9063 Q331.0781,207.2188 332.1563,206.25 Q333.2344,205.2813 335.1094,205.2813 Q335.9688,205.2813 336.8125,205.4844 Q337.6719,205.6719 338.5156,206.0625 L338.5156,208.4531 Q337.7344,207.8906 336.9063,207.6094 Q336.0938,207.3125 335.2969,207.3125 Q334.4219,207.3125 333.9375,207.6719 Q333.4688,208.0313 333.4688,208.6875 Q333.4688,209.2031 333.8125,209.5469 Q334.1563,209.875 335.25,210.2813 L336.3125,210.6875 Q337.7969,211.2344 338.5,212.1406 Q339.2188,213.0469 339.2188,214.4219 Q339.2188,216.2969 338.1094,217.2188 Q337,218.1406 334.75,218.1406 Q333.8281,218.1406 332.9063,217.9219 Q331.9844,217.7031 331.125,217.2813 L331.125,214.75 Q332.0938,215.4375 333.0156,215.7813 Q333.9375,216.125 334.8281,216.125 Q335.7344,216.125 336.2344,215.7188 Q336.7344,215.2969 336.7344,214.5625 Q336.7344,214 336.3906,213.5938 Q336.0625,213.1719 335.4375,212.9219 L334.2344,212.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="355.25" y="216.0605">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="764" y1="227.9063" y2="227.9063"/><ellipse cx="17" cy="238.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="26" y="242.1167">topic : urt_topic_t*</text><ellipse cx="17" cy="268.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="26" y="271.7261">publishAttempts : uint64_t</text><ellipse cx="17" cy="281.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="26" y="284.5308">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="277" y1="255.1133" y2="255.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="277" y="258.4214">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="494" x2="764" y1="255.1133" y2="255.1133"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="764" y1="291.125" y2="291.125"/><ellipse cx="17" cy="302.125" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="617" x="26" y="305.3354">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="17" cy="314.9297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="733" x="26" y="318.1401">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
+class urt_topic_t--><rect fill="#FEFECE" filter="url(#fijp6wls75jyj)" height="248.0703" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="800.5" y="136.4063"/><ellipse cx="955.25" cy="152.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M954.7344,152.9688 Q952.875,152.2656 952.2188,151.5 Q951.5781,150.7188 951.5781,149.4063 Q951.5781,147.7188 952.6563,146.75 Q953.7344,145.7813 955.6094,145.7813 Q956.4688,145.7813 957.3125,145.9844 Q958.1719,146.1719 959.0156,146.5625 L959.0156,148.9531 Q958.2344,148.3906 957.4063,148.1094 Q956.5938,147.8125 955.7969,147.8125 Q954.9219,147.8125 954.4375,148.1719 Q953.9688,148.5313 953.9688,149.1875 Q953.9688,149.7031 954.3125,150.0469 Q954.6563,150.375 955.75,150.7813 L956.8125,151.1875 Q958.2969,151.7344 959,152.6406 Q959.7188,153.5469 959.7188,154.9219 Q959.7188,156.7969 958.6094,157.7188 Q957.5,158.6406 955.25,158.6406 Q954.3281,158.6406 953.4063,158.4219 Q952.4844,158.2031 951.625,157.7813 L951.625,155.25 Q952.5938,155.9375 953.5156,156.2813 Q954.4375,156.625 955.3281,156.625 Q956.2344,156.625 956.7344,156.2188 Q957.2344,155.7969 957.2344,155.0625 Q957.2344,154.5 956.8906,154.0938 Q956.5625,153.6719 955.9375,153.4219 L954.7344,152.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="975.75" y="156.5605">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.5" x2="1183.5" y1="168.4063" y2="168.4063"/><ellipse cx="811.5" cy="179.4063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="820.5" y="182.6167">next : urt_topic_t*</text><ellipse cx="811.5" cy="192.2109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="820.5" y="195.4214">id : urt_topicid_t</text><ellipse cx="811.5" cy="205.0156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="820.5" y="208.2261">lock : urt_osMutex_t</text><ellipse cx="811.5" cy="217.8203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="820.5" y="221.0308">evtSource : urt_osEventSource_t</text><ellipse cx="811.5" cy="230.625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="820.5" y="233.8354">numHrtSubscribers : unsigned int</text><ellipse cx="811.5" cy="243.4297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="212" x="820.5" y="246.6401">hrtSubscribers : urt_hrtsubscriber_t*</text><ellipse cx="811.5" cy="256.2344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="820.5" y="259.4448">hrtReleased : urt_osCondvar_t</text><ellipse cx="811.5" cy="269.0391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="820.5" y="272.2495">mandatoryMessage : urt_message_t</text><ellipse cx="811.5" cy="281.8438" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="820.5" y="285.0542">latestMessage : urt_message_t*</text><ellipse cx="811.5" cy="311.4531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="820.5" y="314.6636">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="801.5" x2="860" y1="298.0508" y2="298.0508"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="860" y="301.3589">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1125" x2="1183.5" y1="298.0508" y2="298.0508"/><ellipse cx="811.5" cy="341.0625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="820.5" y="344.2729">numDiscardedMessages : uint64_t</text><ellipse cx="811.5" cy="353.8672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="820.5" y="357.0776">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="801.5" x2="884" y1="327.6602" y2="327.6602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="884" y="330.9683">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1101" x2="1183.5" y1="327.6602" y2="327.6602"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.5" x2="1183.5" y1="363.6719" y2="363.6719"/><ellipse cx="811.5" cy="374.6719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="358" x="820.5" y="377.8823">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--MD5=[536025241394544a90bc53fb552f3a08]
+reverse link urt_message_t to urt_message_t--><path d="M1216.0642,491.6464 C1230.3974,499.7971 1239,511.217 1239,525.9063 C1239,544.3399 1225.4528,557.625 1204.034,565.7617 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1204.034,486.0508,1207.7873,492.2082,1214.9146,491.1118,1211.1613,484.9545,1204.034,486.0508" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1212.2829" y="481.4249">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1211.8281" y="563.8984">0..1</text><!--MD5=[0585cd4928de92ce6927d9c389eadd29]
+link urt_nrtsubscriber_t to urt_basesubscriber_t--><path d="M2801.0488,337.5565 C2870.4782,374.8713 2953.218,419.3397 3020.864,455.6961 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3024.314,449.6033,3038.617,465.2374,3017.6863,461.9351,3024.314,449.6033" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[37a8b7f2877a6b7bb4e9d0352ce3d221]
+link urt_nrtsubscriber_t to urt_message_t--><path d="M2448.108,337.4631 C2379.3604,359.7152 2301.9849,381.5689 2229.5,394.9063 C1788.1168,476.1219 1663.6814,378.1555 1221.5,454.9063 C1217.376,455.6221 1213.2225,456.3828 1209.0475,457.1844 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1204.1369,458.1437,1213.7369,460.3438,1209.0441,457.1849,1212.2029,452.4922,1204.1369,458.1437" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6d81edfa5aa102b898ad487ae19b49f9]
+link urt_srtsubscriber_t to urt_basesubscriber_t--><path d="M4407.1322,356.9519 C4346.0027,370.8759 4283.1722,384.1181 4223.5,394.9063 C3887.5331,455.6462 3487.1413,496.2563 3283.954,514.6423 " fill="none" id="urt_srtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3284.5705,521.615,3264.0246,516.4315,3283.3186,507.6711,3284.5705,521.615" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[47304731969ac4130b45cc7169c5cada]
+reverse link urt_srtsubscriber_t to urt_srtusefulnessfunc_t--><path d="M4782.5,370.0144 C4782.5,415.4315 4782.5,464.5778 4782.5,495.2952 " fill="none" id="urt_srtsubscriber_t&lt;-urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="4782.5,357.0089,4778.5,363.0089,4782.5,369.0089,4786.5,363.0089,4782.5,357.0089" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4774.2063" y="376.7311">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4756.025" y="484.5355">0..1</text><!--MD5=[dffdac3aea8c81c86dd1d0b8122fcada]
+link urt_srtsubscriber_t to urt_message_t--><path d="M4432.0378,356.9495 C4363.385,372.3858 4291.5632,386.1427 4223.5,394.9063 C3561.7187,480.115 1881.0384,353.7921 1221.5,454.9063 C1217.3627,455.5406 1213.1968,456.226 1209.0104,456.9577 " fill="none" id="urt_srtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1204.0869,457.8378,1213.6503,460.1916,1209.0089,456.9579,1212.2426,452.3164,1204.0869,457.8378" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f626d284cba98e1d5d5fe914b1fa4188]
+link urt_frtsubscriber_t to urt_basesubscriber_t--><path d="M2132.1239,373.4097 C2164.9595,381.1559 2197.7152,388.4394 2229.5,394.9063 C2508.098,451.5886 2838.991,492.2111 3018.8819,512.092 " fill="none" id="urt_frtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3019.8785,505.1592,3038.9961,514.2978,3018.3522,519.0758,3019.8785,505.1592" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[cfcdebdb88febc368723fd91f781523c]
+link urt_frtsubscriber_t to urt_message_t--><path d="M1406.7766,373.4835 C1330.9943,400.4543 1252.0987,428.533 1182.9788,453.1327 " fill="none" id="urt_frtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1178.0193,454.8978,1187.8395,455.6484,1182.7298,453.2212,1185.157,448.1115,1178.0193,454.8978" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[1ea71f2b33e56ab0ac5545988c1af396]
+link urt_hrtsubscriber_t to urt_basesubscriber_t--><path d="M3395.2437,394.9064 C3356.0536,415.9691 3316.9728,436.9731 3281.9486,455.7968 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3284.9546,462.1281,3264.0238,465.4304,3278.3268,449.7963,3284.9546,462.1281" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ea2ec5c5272e65289dabade75a749f58]
+reverse link urt_hrtsubscriber_t to urt_hrtsubscriber_t--><path d="M4199.8399,235.7858 C4214.3539,242.5949 4222.5,250.8018 4222.5,260.4063 C4222.5,272.459 4209.6717,282.3107 4187.5292,289.9614 " fill="none" id="urt_hrtsubscriber_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="4187.5292,230.8512,4191.6102,236.7964,4198.6677,235.3159,4194.5867,229.3707,4187.5292,230.8512" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4195.2077" y="227.3988">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4195.3202" y="287.3402">0..1</text><!--MD5=[a8adaa0500715125c1ab51b9b0fda3ce]
+link urt_hrtsubscriber_t to urt_message_t--><path d="M3103.4186,392.3959 C3097.4199,393.2676 3091.4455,394.1051 3085.5,394.9063 C2264.051,505.5987 2040.0199,324.306 1221.5,454.9063 C1217.3666,455.5658 1213.2044,456.2745 1209.0214,457.0277 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1204.1017,457.9324,1213.6767,460.2387,1209.0192,457.0281,1212.2299,452.3706,1204.1017,457.9324" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
+reverse link urt_publisher_t to urt_topic_t--><path d="M778.3249,260.4063 C785.6324,260.4063 792.94,260.4063 800.2475,260.4063 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="765.1714,260.4063,771.1714,264.4063,777.1714,260.4063,771.1714,256.4063,765.1714,260.4063" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="772.9647" y="257.3239">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="784.5814" y="257.1814">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
+link urt_publisher_t to urt_message_t--><path d="M529.8058,325.0154 C615.9437,363.5813 725.5937,412.6742 814.9361,452.6749 " fill="none" id="urt_publisher_t-&gt;urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="819.7121,454.8132,813.1324,447.4846,815.1486,452.77,809.8633,454.7862,819.7121,454.8132" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
+reverse link urt_topic_t to urt_topic_t--><path d="M1196.5439,224.3234 C1210.8061,232.5595 1219.5,244.587 1219.5,260.4063 C1219.5,280.2579 1205.809,294.1384 1184.6039,302.0481 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1184.6039,218.7645,1188.355,224.9232,1195.4826,223.8294,1191.7316,217.6707,1184.6039,218.7645" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1192.2642" y="213.913">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1192.5767" y="300.4498">0..1</text><!--MD5=[ed3fb6de0913094c41bd74c175d366df]
+reverse link urt_topic_t to urt_hrtsubscriber_t--><path d="M1130.406,128.2476 C1163.5796,103.9181 1200.6064,82.0674 1239,68.9063 C1335.1205,35.9568 2967.6883,52.7082 3068,68.9063 C3144.3838,81.2405 3224.3368,102.1948 3299.5629,125.8263 " fill="none" id="urt_topic_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1119.7739,136.226,1126.9738,135.8241,1129.372,129.0235,1122.1721,129.4253,1119.7739,136.226" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1119.2859" y="125.2705">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3254.8697" y="114.6867">0..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
+reverse link urt_topic_t to urt_message_t--><path d="M985.2522,397.855 C984.2167,417.4927 983.1885,436.9931 982.2582,454.6344 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="985.9509,384.6054,981.6405,390.3864,985.319,396.5887,989.6294,390.8077,985.9509,384.6054" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="977.3081" y="404.6996">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="974.2333" y="443.6037">1</text><!--MD5=[25a1c01fd1a45519879667c2d8772a97]
 @startuml
 
 title **µRtWare**\nPublish-Subscribe System
@@ -60,93 +53,88 @@ title **µRtWare**\nPublish-Subscribe System
 }
 
   package "subscriber" <<Rectangle>> {
-    package "real-time constraint data" <<Rectangle>> {
-      class urt_rtdata_t <<S,BFAFFF>> {
-      + {field} class : urt_rtconstraintclass_t
-      + {field} params : urt_rtconstraintsparams_t
-    }
-
-      class urt_rtclass_t <<E,FF7F3F>> {
-      URT_RTCLASS_HARD = 0
-      URT_RTCLASS_FIRM = 1
-      URT_RTCLASS_SOFT = 2
-      URT_RTCLASS_NONE = 3
-    }
-
-      class urt_rtclassdata_t <<U,7FCF7F>> {
-      + {field} hrt : urt_hrtparams_t
-      + {field} frt : urt_frtparams_t
-      + {field} srt : urt_srtparans_t
-      + {field} nrt : urt_nrtparams_t
-    }
-
-      class urt_hrtdata_t <<S,BFAFFF>> {
-      + {field} next : urt_subscriber_t*
-      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
-      + {field} qosDeadlineTimer : urt_osTimer_t
-      + {field} deadlineOffset : urt_delay_t
-      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
-      + {field} expectedRate : urt_delay_t
-      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
-      + {field} maxJitter : urt_delay_t
-      + {field} minLatency : urt_delay_t
-      + {field} maxLatency : urt_delay_t
-    }
-
-      class urt_frtdata_t <<S,BFAFFF>> {
-      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
-      + {field} deadlineOffset : urt_delay_t
-      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
-      + {field} expectedRate : urt_delay_t
-      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
-      + {field} maxJitter : urt_delay_t
-      + {field} minLatency : urt_delay_t
-      + {field} maxLatency : urt_delay_t
-    }
-
-      package "SRT data" <<Rectangle>> {
-        class urt_srtusefulnessfunc_t <<F,E0E0E0>> {
-        urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
-      }
-
-        class urt_srtdata_t <<S,BFAFFF>> {
-        + {field} usefullnesscb : urt_srtusefulnessfunc_t*
-        + {field} cbparams : void*
-      }
-    } 
-
-      class urt_nrtdata_t <<S,BFAFFF>> {
-    }
-  } 
-
-    class urt_subscriber_t <<S,BFAFFF>> {
+    class urt_basesubscriber_t <<S,BFAFFF>> {
     + {field} topic : urt_topic_t*
     + {field} evtListener : urt_osEventListener_t
-    + {field} rtdata : urt_rtdata_t
     + {field} lastMessage : urt_message_t*
     + {field} lastMessageTime : urt_osTime_t
     .. URT_CFG_PUBSUB_PROFILING == true ..
     + {field} sumLatencies : uint64_t
     + {field} numMessagesReceived : uint64_t
+  }
+
+    class urt_srtusefulnessfunc_t <<F,E0E0E0>> {
+    urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
+  }
+
+    class urt_nrtsubscriber_t <<S,BFAFFF>> {
+    .. URT_CFG_PUBSUB_PROFILING == true ..
+    + {field} minLatency : urt_delay_t
+    + {field} maxLatency : urt_delay_t
+    __
+    + {method} urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : urt_status_t
+    + {method} urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
+    + {method} urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t
+  }
+
+    class urt_srtsubscriber_t <<S,BFAFFF>> {
+    + {field} usefulnesscb : urt_srtusefulnessfunc_t*
+    + {field} cbparams : void*
     .. URT_CFG_PUBSUB_PROFILING == true ..
     + {field} minLatency : urt_delay_t
     + {field} maxLatency : urt_delay_t
     __
-    + {method} urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t
-    + {method} urtSubscriberSubscribeHrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
-    + {method} urtSubscriberSubscribeFrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
-    + {method} urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
-    + {method} urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
-    + {method} urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t
-    + {method} urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
-    + {method} urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
-    + {method} urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float
+    + {method} urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : urt_status_t
+    + {method} urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
+    + {method} urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float
+    + {method} urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t
+  }
+
+    class urt_frtsubscriber_t <<S,BFAFFF>> {
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+    + {field} deadlineOffset : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+    + {field} maxJitter : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ||  URT_CFG_PUBSUB_PROFILING == true ..
+    + {field} minLatency : urt_delay_t
+    + {field} maxLatency : urt_delay_t
+    __
+    + {method} urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : urt_status_t
+    + {method} urtFrtSubscriberSubscribe (subscriber : urt_frtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, jitter : urt_delay_t) : urt_status_t
+    + {method} urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool
+    + {method} urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t
+  }
+
+    class urt_hrtsubscriber_t <<S,BFAFFF>> {
+    + {field} next : urt_hrtsubscriber_t*
+    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
+    + {field} deadlineOffset : urt_delay_t
+    + {field} qosDeadlineTimer : urt_osTimer_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
+    + {field} maxJitter : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true..
+    + {field} minLatency : urt_delay_t
+    + {field} maxLatency : urt_delay_t
+    .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
+    + {field} expectedRate : urt_delay_t
+    __
+    + {method} urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : urt_status_t
+    + {method} urtHrtSubscriberSubscribe (subscriber : urt_hrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
+    + {method} urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
+    + {method} urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t
   }
 } 
 
   class urt_publisher_t <<S,BFAFFF>> {
   + {field} topic : urt_topic_t*
-  .. URT_CFG_PROFILING == true ..
+  .. URT_CFG_PUBSUB_PROFILING == true ..
   + {field} publishAttempts : uint64_t
   + {field} publishFails : uint64_t
   __
@@ -160,7 +148,7 @@ title **µRtWare**\nPublish-Subscribe System
   + {field} lock : urt_osMutex_t
   + {field} evtSource : urt_osEventSource_t
   + {field} numHrtSubscribers : unsigned int
-  + {field} hrtSubscribers : urt_subscriber_t*
+  + {field} hrtSubscribers : urt_hrtsubscriber_t*
   + {field} hrtReleased : urt_osCondvar_t
   + {field} mandatoryMessage : urt_message_t
   + {field} latestMessage : urt_message_t*
@@ -176,30 +164,27 @@ title **µRtWare**\nPublish-Subscribe System
 
 
 
-urt_srtdata_t "1" o- - "0..1" urt_srtusefulnessfunc_t
-
-urt_rtclassdata_t "1" *- - "0..1" urt_hrtdata_t
-urt_rtclassdata_t "1" *- - "0..1" urt_frtdata_t
-urt_rtclassdata_t "1" *- - "0..1" urt_srtdata_t
-urt_rtclassdata_t "1" *- - "0..1" urt_nrtdata_t
+urt_message_t "1" o- - "0..1" urt_message_t
 
-urt_rtdata_t "1" *- - "1" urt_rtclass_t
-urt_rtdata_t "1" *- - "1" urt_rtclassdata_t
+urt_nrtsubscriber_t - -|> urt_basesubscriber_t
+urt_nrtsubscriber_t ..> urt_message_t
 
-urt_hrtdata_t "1" o-up- "0..1" urt_subscriber_t
+urt_srtsubscriber_t - -|> urt_basesubscriber_t
+urt_srtsubscriber_t "1" o- - "0..1" urt_srtusefulnessfunc_t
+urt_srtsubscriber_t ..> urt_message_t
 
-urt_message_t "1" o- - "0..1" urt_message_t
+urt_frtsubscriber_t - -|> urt_basesubscriber_t
+urt_frtsubscriber_t ..> urt_message_t
 
-urt_subscriber_t "1" *- - "1" urt_rtdata_t
-urt_subscriber_t "1" o- "0..1" urt_topic_t
-urt_subscriber_t "1" o- - "0..1" urt_message_t
+urt_hrtsubscriber_t - -|> urt_basesubscriber_t
+urt_hrtsubscriber_t "1" o- - "0..1" urt_hrtsubscriber_t
+urt_hrtsubscriber_t ..> urt_message_t
 
 urt_publisher_t "1" o- "1" urt_topic_t
 urt_publisher_t ..> urt_message_t
 
 urt_topic_t "1" o- - "0..1" urt_topic_t
-urt_topic_t "1" o- "0..1" urt_subscriber_t
-urt_topic_t "1" o- - "1..1" urt_message_t
+urt_topic_t "1" o- "0..1" urt_hrtsubscriber_t
 urt_topic_t "1" *- - "1" urt_message_t
 
 
