Statistics
| Branch: | Revision:

urtware / doc / classdiagrams / pubsub.svg @ c22d21ad

History | View | Annotate | Download (62.71 KB)

1
<?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]
2
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]
3
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]
4
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]
5
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]
6
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]
7
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]
8
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]
9
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]
10
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]
11
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]
12
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]
13
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]
14
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]
15
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]
16
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]
17
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]
18
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]
19
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]
20
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]
21
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]
22
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]
23
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]
24
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]
25
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]
26
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]
27
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]
28
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]
29
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]
30
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]
31
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]
32
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]
33
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]
34
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]
35
@startuml
36

    
37
title **µRtWare**\nPublish-Subscribe System
38

    
39

    
40

    
41

    
42

    
43

    
44

    
45

    
46

    
47

    
48

    
49

    
50

    
51
  class urt_message_t <<S,BFAFFF>> {
52
  + {field} next : urt_message_t*
53
  + {field} payload : void*
54
  + {field} originTime : urt_osTime_t
55
  + {field} numHrtConsumersLeft : unsigned int
56
  .. URT_CFG_PUBSUB_PROFILING == true ..
57
  + {field} numConsumersLeft : unsigned int
58
  __
59
  + {method} urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t
60
}
61

    
62
  package "subscriber" <<Rectangle>> {
63
    package "real-time constraint data" <<Rectangle>> {
64
      class urt_rtdata_t <<S,BFAFFF>> {
65
      + {field} class : urt_rtconstraintclass_t
66
      + {field} params : urt_rtconstraintsparams_t
67
    }
68

    
69
      class urt_rtclass_t <<E,FF7F3F>> {
70
      URT_RTCLASS_HARD = 0
71
      URT_RTCLASS_FIRM = 1
72
      URT_RTCLASS_SOFT = 2
73
      URT_RTCLASS_NONE = 3
74
    }
75

    
76
      class urt_rtclassdata_t <<U,7FCF7F>> {
77
      + {field} hrt : urt_hrtparams_t
78
      + {field} frt : urt_frtparams_t
79
      + {field} srt : urt_srtparans_t
80
      + {field} nrt : urt_nrtparams_t
81
    }
82

    
83
      class urt_hrtdata_t <<S,BFAFFF>> {
84
      + {field} next : urt_subscriber_t*
85
      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
86
      + {field} qosDeadlineTimer : urt_osTimer_t
87
      + {field} deadlineOffset : urt_delay_t
88
      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
89
      + {field} expectedRate : urt_delay_t
90
      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
91
      + {field} maxJitter : urt_delay_t
92
      + {field} minLatency : urt_delay_t
93
      + {field} maxLatency : urt_delay_t
94
    }
95

    
96
      class urt_frtdata_t <<S,BFAFFF>> {
97
      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
98
      + {field} deadlineOffset : urt_delay_t
99
      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
100
      + {field} expectedRate : urt_delay_t
101
      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
102
      + {field} maxJitter : urt_delay_t
103
      + {field} minLatency : urt_delay_t
104
      + {field} maxLatency : urt_delay_t
105
    }
106

    
107
      package "SRT data" <<Rectangle>> {
108
        class urt_srtusefulnessfunc_t <<F,E0E0E0>> {
109
        urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
110
      }
111

    
112
        class urt_srtdata_t <<S,BFAFFF>> {
113
        + {field} usefullnesscb : urt_srtusefulnessfunc_t*
114
        + {field} cbparams : void*
115
      }
116
    } 
117

    
118
      class urt_nrtdata_t <<S,BFAFFF>> {
119
    }
120
  } 
121

    
122
    class urt_subscriber_t <<S,BFAFFF>> {
123
    + {field} topic : urt_topic_t*
124
    + {field} evtListener : urt_osEventListener_t
125
    + {field} rtdata : urt_rtdata_t
126
    + {field} lastMessage : urt_message_t*
127
    + {field} lastMessageTime : urt_osTime_t
128
    .. URT_CFG_PUBSUB_PROFILING == true ..
129
    + {field} sumLatencies : uint64_t
130
    + {field} numMessagesReceived : uint64_t
131
    .. URT_CFG_PUBSUB_PROFILING == true ..
132
    + {field} minLatency : urt_delay_t
133
    + {field} maxLatency : urt_delay_t
134
    __
135
    + {method} urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t
136
    + {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
137
    + {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
138
    + {method} urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
139
    + {method} urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
140
    + {method} urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t
141
    + {method} urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
142
    + {method} urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
143
    + {method} urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float
144
  }
145
} 
146

    
147
  class urt_publisher_t <<S,BFAFFF>> {
148
  + {field} topic : urt_topic_t*
149
  .. URT_CFG_PROFILING == true ..
150
  + {field} publishAttempts : uint64_t
151
  + {field} publishFails : uint64_t
152
  __
153
  + {method} urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
154
  + {method} urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t
155
}
156

    
157
  class urt_topic_t <<S,BFAFFF>> {
158
  + {field} next : urt_topic_t*
159
  + {field} id : urt_topicid_t
160
  + {field} lock : urt_osMutex_t
161
  + {field} evtSource : urt_osEventSource_t
162
  + {field} numHrtSubscribers : unsigned int
163
  + {field} hrtSubscribers : urt_subscriber_t*
164
  + {field} hrtReleased : urt_osCondvar_t
165
  + {field} mandatoryMessage : urt_message_t
166
  + {field} latestMessage : urt_message_t*
167
  .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
168
  + {field} qosRateTimer : urt_osTimer_t
169
  .. URT_CFG_PUBSUB_PROFILING == true ..
170
  + {field} numDiscardedMessages : uint64_t
171
  + {field} numSubscribers : unsigned int
172
  __
173
  + {method} urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t
174
}
175

    
176

    
177

    
178

    
179
urt_srtdata_t "1" o- - "0..1" urt_srtusefulnessfunc_t
180

    
181
urt_rtclassdata_t "1" *- - "0..1" urt_hrtdata_t
182
urt_rtclassdata_t "1" *- - "0..1" urt_frtdata_t
183
urt_rtclassdata_t "1" *- - "0..1" urt_srtdata_t
184
urt_rtclassdata_t "1" *- - "0..1" urt_nrtdata_t
185

    
186
urt_rtdata_t "1" *- - "1" urt_rtclass_t
187
urt_rtdata_t "1" *- - "1" urt_rtclassdata_t
188

    
189
urt_hrtdata_t "1" o-up- "0..1" urt_subscriber_t
190

    
191
urt_message_t "1" o- - "0..1" urt_message_t
192

    
193
urt_subscriber_t "1" *- - "1" urt_rtdata_t
194
urt_subscriber_t "1" o- "0..1" urt_topic_t
195
urt_subscriber_t "1" o- - "0..1" urt_message_t
196

    
197
urt_publisher_t "1" o- "1" urt_topic_t
198
urt_publisher_t ..> urt_message_t
199

    
200
urt_topic_t "1" o- - "0..1" urt_topic_t
201
urt_topic_t "1" o- "0..1" urt_subscriber_t
202
urt_topic_t "1" o- - "1..1" urt_message_t
203
urt_topic_t "1" *- - "1" urt_message_t
204

    
205

    
206

    
207
@enduml
208

    
209
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
210
(GPL source distribution)
211
Java Runtime: OpenJDK Runtime Environment
212
JVM: OpenJDK 64-Bit Server VM
213
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
214
Operating System: Linux
215
Default Encoding: UTF-8
216
Language: en
217
Country: US
218
--></g></svg>