Statistics
| Branch: | Revision:

urtware / doc / classdiagrams / pubsub.svg @ 4d55cea4

History | View | Annotate | Download (67.214 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="1289px" preserveAspectRatio="none" style="width:2454px;height:1289px;" version="1.1" viewBox="0 0 2454 1289" width="2454px" zoomAndPan="magnify"><defs><filter height="300%" id="freyvufthdr8m" 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="1185.5" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="225" x="1117.5" y="37.6611">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
2
cluster subscriber--><rect fill="#FFFFFF" filter="url(#freyvufthdr8m)" height="1110" style="stroke: #000000; stroke-width: 1.5;" width="1187" x="14" y="168.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="565" y="183.9014">subscriber</text><!--MD5=[94ad99421f5a0f525bc1c13a3777c25e]
3
cluster real-time constraint data--><rect fill="#FFFFFF" filter="url(#freyvufthdr8m)" height="683.5" style="stroke: #000000; stroke-width: 1.5;" width="1171" x="22" y="587.4063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="194" x="510.5" y="602.4014">real-time constraint data</text><!--MD5=[57c3116dbac3d3a2ea35fece1cdc00f4]
4
cluster SRT data--><rect fill="#FFFFFF" filter="url(#freyvufthdr8m)" height="283" style="stroke: #000000; stroke-width: 1.5;" width="390" x="487" y="979.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="647.5" y="994.9014">SRT data</text><!--MD5=[ab7cf431813e3be5d474948fd959cdbf]
5
class urt_subscriber_t--><rect fill="#FEFECE" filter="url(#freyvufthdr8m)" height="312.0938" id="urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1068" x="125" y="195.9063"/><ellipse cx="604.25" cy="211.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M603.7344,212.4688 Q601.875,211.7656 601.2188,211 Q600.5781,210.2188 600.5781,208.9063 Q600.5781,207.2188 601.6563,206.25 Q602.7344,205.2813 604.6094,205.2813 Q605.4688,205.2813 606.3125,205.4844 Q607.1719,205.6719 608.0156,206.0625 L608.0156,208.4531 Q607.2344,207.8906 606.4063,207.6094 Q605.5938,207.3125 604.7969,207.3125 Q603.9219,207.3125 603.4375,207.6719 Q602.9688,208.0313 602.9688,208.6875 Q602.9688,209.2031 603.3125,209.5469 Q603.6563,209.875 604.75,210.2813 L605.8125,210.6875 Q607.2969,211.2344 608,212.1406 Q608.7188,213.0469 608.7188,214.4219 Q608.7188,216.2969 607.6094,217.2188 Q606.5,218.1406 604.25,218.1406 Q603.3281,218.1406 602.4063,217.9219 Q601.4844,217.7031 600.625,217.2813 L600.625,214.75 Q601.5938,215.4375 602.5156,215.7813 Q603.4375,216.125 604.3281,216.125 Q605.2344,216.125 605.7344,215.7188 Q606.2344,215.2969 606.2344,214.5625 Q606.2344,214 605.8906,213.5938 Q605.5625,213.1719 604.9375,212.9219 L603.7344,212.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="624.75" y="216.0605">urt_subscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="126" x2="1192" y1="227.9063" y2="227.9063"/><ellipse cx="136" 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="145" y="242.1167">topic : urt_topic_t*</text><ellipse cx="136" cy="251.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="145" y="254.9214">evtListener : urt_osEventListener_t</text><ellipse cx="136" cy="264.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="191" x="145" y="267.7261">rtconstraints : urt_rtconstaints_t*</text><ellipse cx="136" cy="277.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="145" y="280.5308">lastMessage : urt_message_t*</text><ellipse cx="136" cy="290.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="145" y="293.3354">lastMessageTime : urt_osTime_t</text><ellipse cx="136" cy="319.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="145" y="322.9448">sumLatencies : uint64_t</text><ellipse cx="136" cy="332.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="145" y="335.7495">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="126" x2="550.5" y1="306.332" y2="306.332"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="550.5" y="309.6401">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="767.5" x2="1192" y1="306.332" y2="306.332"/><ellipse cx="136" cy="362.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="145" y="365.3589">minLatency : urt_delay_t</text><ellipse cx="136" cy="374.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="145" y="378.1636">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="126" x2="398.5" y1="348.7461" y2="348.7461"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="521" x="398.5" y="352.0542">URT_CFG_PUBSUB_PROFILING == true &amp;&amp; URT_CFG_PUBSUB_QOS_JITTERCHECKS == false</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="919.5" x2="1192" y1="348.7461" y2="348.7461"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="126" x2="1192" y1="384.7578" y2="384.7578"/><ellipse cx="136" cy="395.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="145" y="398.9683">urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="136" cy="408.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="145" y="411.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="136" cy="421.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="145" y="424.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="136" cy="434.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="145" y="437.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="136" cy="446.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="145" y="450.187">urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="136" cy="459.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="145" y="462.9917">urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="136" cy="472.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="145" y="475.7964">urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="136" cy="485.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="145" y="488.6011">urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="136" cy="498.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="145" y="501.4058">urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float</text><!--MD5=[82a1b6b26b12edcbd86fa16935c3353e]
6
class urt_rtdata_t--><rect fill="#FEFECE" filter="url(#freyvufthdr8m)" height="73.6094" id="urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="543.5" y="614.4063"/><ellipse cx="617.75" cy="630.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M617.2344,630.9688 Q615.375,630.2656 614.7188,629.5 Q614.0781,628.7188 614.0781,627.4063 Q614.0781,625.7188 615.1563,624.75 Q616.2344,623.7813 618.1094,623.7813 Q618.9688,623.7813 619.8125,623.9844 Q620.6719,624.1719 621.5156,624.5625 L621.5156,626.9531 Q620.7344,626.3906 619.9063,626.1094 Q619.0938,625.8125 618.2969,625.8125 Q617.4219,625.8125 616.9375,626.1719 Q616.4688,626.5313 616.4688,627.1875 Q616.4688,627.7031 616.8125,628.0469 Q617.1563,628.375 618.25,628.7813 L619.3125,629.1875 Q620.7969,629.7344 621.5,630.6406 Q622.2188,631.5469 622.2188,632.9219 Q622.2188,634.7969 621.1094,635.7188 Q620,636.6406 617.75,636.6406 Q616.8281,636.6406 615.9063,636.4219 Q614.9844,636.2031 614.125,635.7813 L614.125,633.25 Q615.0938,633.9375 616.0156,634.2813 Q616.9375,634.625 617.8281,634.625 Q618.7344,634.625 619.2344,634.2188 Q619.7344,633.7969 619.7344,633.0625 Q619.7344,632.5 619.3906,632.0938 Q619.0625,631.6719 618.4375,631.4219 L617.2344,630.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="638.25" y="634.5605">urt_rtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="773.5" y1="646.4063" y2="646.4063"/><ellipse cx="554.5" cy="657.4063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="563.5" y="660.6167">class : urt_rtconstraintclass_t</text><ellipse cx="554.5" cy="670.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="205" x="563.5" y="673.4214">params : urt_rtconstraintsparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="773.5" y1="680.0156" y2="680.0156"/><!--MD5=[4bd59d3bc50b317c5523bafe6b73a042]
7
class urt_rtclass_t--><rect fill="#FEFECE" filter="url(#freyvufthdr8m)" height="99.2188" id="urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="408.5" y="794.9063"/><ellipse cx="443.3" cy="810.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M447.4094,816.9063 L439.6906,816.9063 L439.6906,804.5156 L447.4094,804.5156 L447.4094,806.6719 L442.1438,806.6719 L442.1438,809.3438 L446.9094,809.3438 L446.9094,811.5 L442.1438,811.5 L442.1438,814.75 L447.4094,814.75 L447.4094,816.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="461.7" y="815.0605">urt_rtclass_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.5" x2="560.5" y1="826.9063" y2="826.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="414.5" y="841.1167">URT_RTCLASS_HARD = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="414.5" y="853.9214">URT_RTCLASS_FIRM = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="414.5" y="866.7261">URT_RTCLASS_SOFT = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="414.5" y="879.5308">URT_RTCLASS_NONE = 3</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.5" x2="560.5" y1="886.125" y2="886.125"/><!--MD5=[7b207cc31d63d27c526f257c1fda2512]
8
class urt_rtclassdata_t--><rect fill="#FEFECE" filter="url(#freyvufthdr8m)" height="99.2188" id="urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="597" y="794.9063"/><ellipse cx="615.6" cy="810.9063" fill="#7FCF7F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M611.475,812.8281 L611.475,805.0156 L613.9281,805.0156 L613.9281,813.4531 Q613.9281,814.375 614.3969,814.9063 Q614.8813,815.4375 615.7094,815.4375 Q616.5531,815.4375 617.0219,814.9063 Q617.4906,814.375 617.4906,813.4531 L617.4906,805.0156 L619.9438,805.0156 L619.9438,812.8281 Q619.9438,815.3594 618.9438,816.5 Q617.9438,817.6406 615.7094,817.6406 Q613.4906,817.6406 612.475,816.5 Q611.475,815.3594 611.475,812.8281 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="630.4" y="815.0605">urt_rtclassdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="598" x2="742" y1="826.9063" y2="826.9063"/><ellipse cx="608" cy="837.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="617" y="841.1167">hrt : urt_hrtparams_t</text><ellipse cx="608" cy="850.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="617" y="853.9214">frt : urt_frtparams_t</text><ellipse cx="608" cy="863.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="617" y="866.7261">srt : urt_srtparans_t</text><ellipse cx="608" cy="876.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="617" y="879.5308">nrt : urt_nrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="598" x2="742" y1="886.125" y2="886.125"/><!--MD5=[c57ade65ef97beb73587233399d5250a]
9
class urt_hrtdata_t--><rect fill="#FEFECE" filter="url(#freyvufthdr8m)" height="180.0469" id="urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="299" x="885.5" y="953.9063"/><ellipse cx="989.75" cy="969.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M989.2344,970.4688 Q987.375,969.7656 986.7188,969 Q986.0781,968.2188 986.0781,966.9063 Q986.0781,965.2188 987.1563,964.25 Q988.2344,963.2813 990.1094,963.2813 Q990.9688,963.2813 991.8125,963.4844 Q992.6719,963.6719 993.5156,964.0625 L993.5156,966.4531 Q992.7344,965.8906 991.9063,965.6094 Q991.0938,965.3125 990.2969,965.3125 Q989.4219,965.3125 988.9375,965.6719 Q988.4688,966.0313 988.4688,966.6875 Q988.4688,967.2031 988.8125,967.5469 Q989.1563,967.875 990.25,968.2813 L991.3125,968.6875 Q992.7969,969.2344 993.5,970.1406 Q994.2188,971.0469 994.2188,972.4219 Q994.2188,974.2969 993.1094,975.2188 Q992,976.1406 989.75,976.1406 Q988.8281,976.1406 987.9063,975.9219 Q986.9844,975.7031 986.125,975.2813 L986.125,972.75 Q987.0938,973.4375 988.0156,973.7813 Q988.9375,974.125 989.8281,974.125 Q990.7344,974.125 991.2344,973.7188 Q991.7344,973.2969 991.7344,972.5625 Q991.7344,972 991.3906,971.5938 Q991.0625,971.1719 990.4375,970.9219 L989.2344,970.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="1010.25" y="974.0605">urt_hrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="886.5" x2="1183.5" y1="985.9063" y2="985.9063"/><ellipse cx="896.5" cy="996.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="905.5" y="1000.1167">next : urt_subscriber_t*</text><ellipse cx="896.5" cy="1026.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="905.5" y="1029.7261">qosDeadlineTimer : urt_osTimer_t</text><ellipse cx="896.5" cy="1039.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="905.5" y="1042.5308">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="886.5" x2="889.5" y1="1013.1133" y2="1013.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="889.5" y="1016.4214">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1180.5" x2="1183.5" y1="1013.1133" y2="1013.1133"/><ellipse cx="896.5" cy="1068.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="905.5" y="1072.1401">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="886.5" x2="902.5" y1="1055.5273" y2="1055.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="902.5" y="1058.8354">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1167.5" x2="1183.5" y1="1055.5273" y2="1055.5273"/><ellipse cx="896.5" cy="1098.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="905.5" y="1101.7495">maxJitter : urt_delay_t</text><ellipse cx="896.5" cy="1111.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="905.5" y="1114.5542">minLatency : urt_delay_t</text><ellipse cx="896.5" cy="1124.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="905.5" y="1127.3589">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="886.5" x2="899.5" y1="1085.1367" y2="1085.1367"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="899.5" y="1088.4448">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1170.5" x2="1183.5" y1="1085.1367" y2="1085.1367"/><!--MD5=[72774668522d2286013bfbc0db723956]
10
class urt_frtdata_t--><rect fill="#FEFECE" filter="url(#freyvufthdr8m)" height="167.2422" id="urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="299" x="30.5" y="960.4063"/><ellipse cx="136.75" cy="976.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M136.2344,976.9688 Q134.375,976.2656 133.7188,975.5 Q133.0781,974.7188 133.0781,973.4063 Q133.0781,971.7188 134.1563,970.75 Q135.2344,969.7813 137.1094,969.7813 Q137.9688,969.7813 138.8125,969.9844 Q139.6719,970.1719 140.5156,970.5625 L140.5156,972.9531 Q139.7344,972.3906 138.9063,972.1094 Q138.0938,971.8125 137.2969,971.8125 Q136.4219,971.8125 135.9375,972.1719 Q135.4688,972.5313 135.4688,973.1875 Q135.4688,973.7031 135.8125,974.0469 Q136.1563,974.375 137.25,974.7813 L138.3125,975.1875 Q139.7969,975.7344 140.5,976.6406 Q141.2188,977.5469 141.2188,978.9219 Q141.2188,980.7969 140.1094,981.7188 Q139,982.6406 136.75,982.6406 Q135.8281,982.6406 134.9063,982.4219 Q133.9844,982.2031 133.125,981.7813 L133.125,979.25 Q134.0938,979.9375 135.0156,980.2813 Q135.9375,980.625 136.8281,980.625 Q137.7344,980.625 138.2344,980.2188 Q138.7344,979.7969 138.7344,979.0625 Q138.7344,978.5 138.3906,978.0938 Q138.0625,977.6719 137.4375,977.4219 L136.2344,976.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="78" x="157.25" y="980.5605">urt_frtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="31.5" x2="328.5" y1="992.4063" y2="992.4063"/><ellipse cx="41.5" cy="1020.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="194" x="50.5" y="1023.4214">qosDeadlineTimer : urt_osTimer_t</text><ellipse cx="41.5" cy="1033.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="157" x="50.5" y="1036.2261">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="31.5" x2="34.5" y1="1006.8086" y2="1006.8086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="34.5" y="1010.1167">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="325.5" x2="328.5" y1="1006.8086" y2="1006.8086"/><ellipse cx="41.5" cy="1062.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="150" x="50.5" y="1065.8354">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="31.5" x2="47.5" y1="1049.2227" y2="1049.2227"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="47.5" y="1052.5308">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="312.5" x2="328.5" y1="1049.2227" y2="1049.2227"/><ellipse cx="41.5" cy="1092.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="124" x="50.5" y="1095.4448">maxJitter : urt_delay_t</text><ellipse cx="41.5" cy="1105.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="138" x="50.5" y="1108.2495">minLatency : urt_delay_t</text><ellipse cx="41.5" cy="1117.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="141" x="50.5" y="1121.0542">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="31.5" x2="44.5" y1="1078.832" y2="1078.832"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="44.5" y="1082.1401">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="315.5" x2="328.5" y1="1078.832" y2="1078.832"/><!--MD5=[ca63c4d42025d7ce195746a6a8d32f3e]
11
class urt_nrtdata_t--><rect fill="#FEFECE" filter="url(#freyvufthdr8m)" height="48" id="urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="365" y="1019.9063"/><ellipse cx="380" cy="1035.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M379.4844,1036.4688 Q377.625,1035.7656 376.9688,1035 Q376.3281,1034.2188 376.3281,1032.9063 Q376.3281,1031.2188 377.4063,1030.25 Q378.4844,1029.2813 380.3594,1029.2813 Q381.2188,1029.2813 382.0625,1029.4844 Q382.9219,1029.6719 383.7656,1030.0625 L383.7656,1032.4531 Q382.9844,1031.8906 382.1563,1031.6094 Q381.3438,1031.3125 380.5469,1031.3125 Q379.6719,1031.3125 379.1875,1031.6719 Q378.7188,1032.0313 378.7188,1032.6875 Q378.7188,1033.2031 379.0625,1033.5469 Q379.4063,1033.875 380.5,1034.2813 L381.5625,1034.6875 Q383.0469,1035.2344 383.75,1036.1406 Q384.4688,1037.0469 384.4688,1038.4219 Q384.4688,1040.2969 383.3594,1041.2188 Q382.25,1042.1406 380,1042.1406 Q379.0781,1042.1406 378.1563,1041.9219 Q377.2344,1041.7031 376.375,1041.2813 L376.375,1038.75 Q377.3438,1039.4375 378.2656,1039.7813 Q379.1875,1040.125 380.0781,1040.125 Q380.9844,1040.125 381.4844,1039.7188 Q381.9844,1039.2969 381.9844,1038.5625 Q381.9844,1038 381.6406,1037.5938 Q381.3125,1037.1719 380.6875,1036.9219 L379.4844,1036.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="394" y="1040.0605">urt_nrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="478" y1="1051.9063" y2="1051.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="478" y1="1059.9063" y2="1059.9063"/><!--MD5=[fc7708c915a0148c667d62e1370980fd]
12
class urt_srtusefulnessfunc_t--><rect fill="#FEFECE" filter="url(#freyvufthdr8m)" height="60.8047" id="urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="495" y="1193.9063"/><ellipse cx="604.25" cy="1209.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M608.4844,1205.6719 L603.2031,1205.6719 L603.2031,1208.3438 L608,1208.3438 L608,1210.5 L603.2031,1210.5 L603.2031,1215.9063 L600.7656,1215.9063 L600.7656,1203.5156 L608.4844,1203.5156 L608.4844,1205.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="624.75" y="1214.0605">urt_srtusefulnessfunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="496" x2="868" y1="1225.9063" y2="1225.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="496" x2="868" y1="1233.9063" y2="1233.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="362" x="501" y="1248.1167">urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float</text><!--MD5=[4a2daf41193a31389d6311337c2a120f]
13
class urt_srtdata_t--><rect fill="#FEFECE" filter="url(#freyvufthdr8m)" height="73.6094" id="urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="547" y="1006.9063"/><ellipse cx="631.25" cy="1022.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M630.7344,1023.4688 Q628.875,1022.7656 628.2188,1022 Q627.5781,1021.2188 627.5781,1019.9063 Q627.5781,1018.2188 628.6563,1017.25 Q629.7344,1016.2813 631.6094,1016.2813 Q632.4688,1016.2813 633.3125,1016.4844 Q634.1719,1016.6719 635.0156,1017.0625 L635.0156,1019.4531 Q634.2344,1018.8906 633.4063,1018.6094 Q632.5938,1018.3125 631.7969,1018.3125 Q630.9219,1018.3125 630.4375,1018.6719 Q629.9688,1019.0313 629.9688,1019.6875 Q629.9688,1020.2031 630.3125,1020.5469 Q630.6563,1020.875 631.75,1021.2813 L632.8125,1021.6875 Q634.2969,1022.2344 635,1023.1406 Q635.7188,1024.0469 635.7188,1025.4219 Q635.7188,1027.2969 634.6094,1028.2188 Q633.5,1029.1406 631.25,1029.1406 Q630.3281,1029.1406 629.4063,1028.9219 Q628.4844,1028.7031 627.625,1028.2813 L627.625,1025.75 Q628.5938,1026.4375 629.5156,1026.7813 Q630.4375,1027.125 631.3281,1027.125 Q632.2344,1027.125 632.7344,1026.7188 Q633.2344,1026.2969 633.2344,1025.5625 Q633.2344,1025 632.8906,1024.5938 Q632.5625,1024.1719 631.9375,1023.9219 L630.7344,1023.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="651.75" y="1027.0605">urt_srtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="548" x2="804" y1="1038.9063" y2="1038.9063"/><ellipse cx="558" cy="1049.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="567" y="1053.1167">usefullnesscb : urt_srtusefulnessfunc_t*</text><ellipse cx="558" cy="1062.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="567" y="1065.9214">cbparams : void*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="548" x2="804" y1="1072.5156" y2="1072.5156"/><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
14
class urt_message_t--><rect fill="#FEFECE" filter="url(#freyvufthdr8m)" height="167.2422" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="1685.5" y="567.9063"/><ellipse cx="1860.75" cy="583.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1860.2344,584.4688 Q1858.375,583.7656 1857.7188,583 Q1857.0781,582.2188 1857.0781,580.9063 Q1857.0781,579.2188 1858.1563,578.25 Q1859.2344,577.2813 1861.1094,577.2813 Q1861.9688,577.2813 1862.8125,577.4844 Q1863.6719,577.6719 1864.5156,578.0625 L1864.5156,580.4531 Q1863.7344,579.8906 1862.9063,579.6094 Q1862.0938,579.3125 1861.2969,579.3125 Q1860.4219,579.3125 1859.9375,579.6719 Q1859.4688,580.0313 1859.4688,580.6875 Q1859.4688,581.2031 1859.8125,581.5469 Q1860.1563,581.875 1861.25,582.2813 L1862.3125,582.6875 Q1863.7969,583.2344 1864.5,584.1406 Q1865.2188,585.0469 1865.2188,586.4219 Q1865.2188,588.2969 1864.1094,589.2188 Q1863,590.1406 1860.75,590.1406 Q1859.8281,590.1406 1858.9063,589.9219 Q1857.9844,589.7031 1857.125,589.2813 L1857.125,586.75 Q1858.0938,587.4375 1859.0156,587.7813 Q1859.9375,588.125 1860.8281,588.125 Q1861.7344,588.125 1862.2344,587.7188 Q1862.7344,587.2969 1862.7344,586.5625 Q1862.7344,586 1862.3906,585.5938 Q1862.0625,585.1719 1861.4375,584.9219 L1860.2344,584.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="1881.25" y="588.0605">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1686.5" x2="2135.5" y1="599.9063" y2="599.9063"/><ellipse cx="1696.5" cy="610.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="1705.5" y="614.1167">next : urt_message_t*</text><ellipse cx="1696.5" cy="623.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="1705.5" y="626.9214">payload : void*</text><ellipse cx="1696.5" cy="636.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="1705.5" y="639.7261">originTime : urt_osTime_t</text><ellipse cx="1696.5" cy="649.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="113" x="1705.5" y="652.5308">lock : urt_osMutex_t</text><ellipse cx="1696.5" cy="662.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="211" x="1705.5" y="665.3354">numHrtConsumersLeft : unsigned int</text><ellipse cx="1696.5" cy="674.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="208" x="1705.5" y="678.1401">hrtConsumersLeft : urt_osCondvar_t</text><ellipse cx="1696.5" cy="704.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="194" x="1705.5" y="707.7495">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1686.5" x2="1802.5" y1="691.1367" y2="691.1367"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1802.5" y="694.4448">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2019.5" x2="2135.5" y1="691.1367" y2="691.1367"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1686.5" x2="2135.5" y1="714.3438" y2="714.3438"/><ellipse cx="1696.5" cy="725.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="425" x="1705.5" y="728.5542">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
15
class urt_publisher_t--><rect fill="#FEFECE" filter="url(#freyvufthdr8m)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="1228.5" y="287.4063"/><ellipse cx="1557.25" cy="303.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1556.7344,303.9688 Q1554.875,303.2656 1554.2188,302.5 Q1553.5781,301.7188 1553.5781,300.4063 Q1553.5781,298.7188 1554.6563,297.75 Q1555.7344,296.7813 1557.6094,296.7813 Q1558.4688,296.7813 1559.3125,296.9844 Q1560.1719,297.1719 1561.0156,297.5625 L1561.0156,299.9531 Q1560.2344,299.3906 1559.4063,299.1094 Q1558.5938,298.8125 1557.7969,298.8125 Q1556.9219,298.8125 1556.4375,299.1719 Q1555.9688,299.5313 1555.9688,300.1875 Q1555.9688,300.7031 1556.3125,301.0469 Q1556.6563,301.375 1557.75,301.7813 L1558.8125,302.1875 Q1560.2969,302.7344 1561,303.6406 Q1561.7188,304.5469 1561.7188,305.9219 Q1561.7188,307.7969 1560.6094,308.7188 Q1559.5,309.6406 1557.25,309.6406 Q1556.3281,309.6406 1555.4063,309.4219 Q1554.4844,309.2031 1553.625,308.7813 L1553.625,306.25 Q1554.5938,306.9375 1555.5156,307.2813 Q1556.4375,307.625 1557.3281,307.625 Q1558.2344,307.625 1558.7344,307.2188 Q1559.2344,306.7969 1559.2344,306.0625 Q1559.2344,305.5 1558.8906,305.0938 Q1558.5625,304.6719 1557.9375,304.4219 L1556.7344,303.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="1577.75" y="307.5605">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1229.5" x2="1986.5" y1="319.4063" y2="319.4063"/><ellipse cx="1239.5" cy="330.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="1248.5" y="333.6167">topic : urt_topic_t*</text><ellipse cx="1239.5" cy="360.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="1248.5" y="363.2261">publishAttempts : uint64_t</text><ellipse cx="1239.5" cy="372.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="1248.5" y="376.0308">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1229.5" x2="1526" y1="346.6133" y2="346.6133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="164" x="1526" y="349.9214">URT_CFG_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1690" x2="1986.5" y1="346.6133" y2="346.6133"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1229.5" x2="1986.5" y1="382.625" y2="382.625"/><ellipse cx="1239.5" cy="393.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="1248.5" y="396.8354">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="1239.5" cy="406.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="1248.5" y="409.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(#freyvufthdr8m)" height="235.2656" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="2023" y="234.4063"/><ellipse cx="2177.75" cy="250.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2177.2344,250.9688 Q2175.375,250.2656 2174.7188,249.5 Q2174.0781,248.7188 2174.0781,247.4063 Q2174.0781,245.7188 2175.1563,244.75 Q2176.2344,243.7813 2178.1094,243.7813 Q2178.9688,243.7813 2179.8125,243.9844 Q2180.6719,244.1719 2181.5156,244.5625 L2181.5156,246.9531 Q2180.7344,246.3906 2179.9063,246.1094 Q2179.0938,245.8125 2178.2969,245.8125 Q2177.4219,245.8125 2176.9375,246.1719 Q2176.4688,246.5313 2176.4688,247.1875 Q2176.4688,247.7031 2176.8125,248.0469 Q2177.1563,248.375 2178.25,248.7813 L2179.3125,249.1875 Q2180.7969,249.7344 2181.5,250.6406 Q2182.2188,251.5469 2182.2188,252.9219 Q2182.2188,254.7969 2181.1094,255.7188 Q2180,256.6406 2177.75,256.6406 Q2176.8281,256.6406 2175.9063,256.4219 Q2174.9844,256.2031 2174.125,255.7813 L2174.125,253.25 Q2175.0938,253.9375 2176.0156,254.2813 Q2176.9375,254.625 2177.8281,254.625 Q2178.7344,254.625 2179.2344,254.2188 Q2179.7344,253.7969 2179.7344,253.0625 Q2179.7344,252.5 2179.3906,252.0938 Q2179.0625,251.6719 2178.4375,251.4219 L2177.2344,250.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="2198.25" y="254.5605">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2024" x2="2406" y1="266.4063" y2="266.4063"/><ellipse cx="2034" cy="277.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="2043" y="280.6167">next : urt_topic_t*</text><ellipse cx="2034" cy="290.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="2043" y="293.4214">id : urt_topicid_t</text><ellipse cx="2034" cy="303.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="2043" y="306.2261">lock : urt_osMutex_t</text><ellipse cx="2034" cy="315.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="2043" y="319.0308">evtSource : urt_osEventSource_t</text><ellipse cx="2034" cy="328.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="2043" y="331.8354">numHrtSubscribers : unsigned int</text><ellipse cx="2034" cy="341.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="196" x="2043" y="344.6401">hrtSubscribers : urt_subscriber_t*</text><ellipse cx="2034" cy="354.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="209" x="2043" y="357.4448">mandatoryMessage : urt_message_t</text><ellipse cx="2034" cy="367.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="186" x="2043" y="370.2495">latestMessage : urt_message_t*</text><ellipse cx="2034" cy="396.6484" fill="none" 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="2043" y="399.8589">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2024" x2="2082.5" y1="383.2461" y2="383.2461"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="2082.5" y="386.5542">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2347.5" x2="2406" y1="383.2461" y2="383.2461"/><ellipse cx="2034" cy="426.2578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="2043" y="429.4683">numDiscardedMessages : uint64_t</text><ellipse cx="2034" cy="439.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="176" x="2043" y="442.2729">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2024" x2="2106.5" y1="412.8555" y2="412.8555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2106.5" y="416.1636">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2323.5" x2="2406" y1="412.8555" y2="412.8555"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2024" x2="2406" y1="448.8672" y2="448.8672"/><ellipse cx="2034" cy="459.8672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="358" x="2043" y="463.0776">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--MD5=[4a0cbcfec60c5e893e4ff6f7470d1adc]
17
class urt_pubsub_t--><rect fill="#FEFECE" filter="url(#freyvufthdr8m)" height="86.4141" id="urt_pubsub_t" style="stroke: #A80036; stroke-width: 1.5;" width="340" x="1741" y="49.9063"/><ellipse cx="1865.75" cy="65.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1865.2344,66.4688 Q1863.375,65.7656 1862.7188,65 Q1862.0781,64.2188 1862.0781,62.9063 Q1862.0781,61.2188 1863.1563,60.25 Q1864.2344,59.2813 1866.1094,59.2813 Q1866.9688,59.2813 1867.8125,59.4844 Q1868.6719,59.6719 1869.5156,60.0625 L1869.5156,62.4531 Q1868.7344,61.8906 1867.9063,61.6094 Q1867.0938,61.3125 1866.2969,61.3125 Q1865.4219,61.3125 1864.9375,61.6719 Q1864.4688,62.0313 1864.4688,62.6875 Q1864.4688,63.2031 1864.8125,63.5469 Q1865.1563,63.875 1866.25,64.2813 L1867.3125,64.6875 Q1868.7969,65.2344 1869.5,66.1406 Q1870.2188,67.0469 1870.2188,68.4219 Q1870.2188,70.2969 1869.1094,71.2188 Q1868,72.1406 1865.75,72.1406 Q1864.8281,72.1406 1863.9063,71.9219 Q1862.9844,71.7031 1862.125,71.2813 L1862.125,68.75 Q1863.0938,69.4375 1864.0156,69.7813 Q1864.9375,70.125 1865.8281,70.125 Q1866.7344,70.125 1867.2344,69.7188 Q1867.7344,69.2969 1867.7344,68.5625 Q1867.7344,68 1867.3906,67.5938 Q1867.0625,67.1719 1866.4375,66.9219 L1865.2344,66.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="1886.25" y="70.0605">urt_pubsub_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1742" x2="2080" y1="81.9063" y2="81.9063"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1749" y="89.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="117" x="1761" y="96.1167">_topics : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1742" x2="2080" y1="102.7109" y2="102.7109"/><ellipse cx="1752" cy="113.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="1761" y="116.9214">urtPubsubInit (void) : urt_status_t</text><ellipse cx="1752" cy="126.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="314" x="1761" y="129.7261">urtPubsubRetrieveTopic (id : urt_topicid_t) : urt_topic_t*</text><!--MD5=[0c465c1a61dfd99ff8b5568ca35c92d1]
18
reverse link urt_srtdata_t to urt_srtusefulnessfunc_t--><path d="M677.6786,1094.4055 C678.7388,1126.2978 680.074,1166.4665 680.9776,1193.6495 " fill="none" id="urt_srtdata_t&lt;-urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="677.2432,1081.306,673.4448,1087.4356,677.642,1093.2993,681.4404,1087.1697,677.2432,1081.306" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="668.8038" y="1100.5704">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="654.2917" y="1182.8597">0..1</text><!--MD5=[3f22cd2af9b1d30da63b75b4db75ae6e]
19
reverse link urt_rtclassdata_t to urt_hrtdata_t--><path d="M754.8564,897.9971 C807.0268,924.986 826.8226,926.0487 881,953.9063 C882.377,954.6143 883.7589,955.329 885.1451,956.0499 " fill="none" id="urt_rtclassdata_t&lt;-urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="743.2084,891.8255,746.6374,898.1691,753.8119,897.4438,750.3829,891.1001,743.2084,891.8255" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="751.1705" y="893.0046">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="853.3053" y="948.5">0..1</text><!--MD5=[a94a8c9c209e194384613684e912df80]
20
reverse link urt_rtclassdata_t to urt_frtdata_t--><path d="M584.8747,891.5076 C582.9088,892.3367 580.9489,893.1377 579,893.9063 C479.9223,932.9784 446.1535,915.027 347,953.9063 C341.3275,956.1306 335.6026,958.5034 329.8627,960.9916 " fill="none" id="urt_rtclassdata_t&lt;-urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="596.9835,886.1016,589.874,884.895,586.0259,890.9936,593.1354,892.2001,596.9835,886.1016" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="581.0412" y="903.2373">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="337.7029" y="953.6763">0..1</text><!--MD5=[e6a6d7a2212fadf5661857a71d4f05c3]
21
reverse link urt_rtclassdata_t to urt_srtdata_t--><path d="M671.8862,907.1239 C672.8719,939.8959 674.0444,978.8833 674.885,1006.8335 " fill="none" id="urt_rtclassdata_t&lt;-urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="671.4909,893.9771,667.6732,900.0947,671.8518,905.9717,675.6696,899.8541,671.4909,893.9771" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="663.1381" y="914.0636">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="648.4669" y="995.7305">0..1</text><!--MD5=[206fe31eaf8244c7272230bb0ec7137c]
22
reverse link urt_rtclassdata_t to urt_nrtdata_t--><path d="M585.4021,891.6732 C540.168,917.3505 491.9408,945.5363 483,953.9063 C462.6059,972.9984 445.4046,1000.0958 434.5206,1019.5613 " fill="none" id="urt_rtclassdata_t&lt;-urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="596.8121,885.2126,589.6201,884.6882,586.3698,891.1253,593.5619,891.6497,596.8121,885.2126" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="580.8521" y="885.7098">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="410.6475" y="1008.8821">0..1</text><!--MD5=[1ba55993ff077c77667f6c7be6552d53]
23
reverse link urt_rtdata_t to urt_rtclass_t--><path d="M616.4694,698.5811 C590.1329,727.7934 556.3603,765.2538 529.6398,794.892 " fill="none" id="urt_rtdata_t&lt;-urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="625.451,688.6186,618.4625,690.3965,617.4158,697.5312,624.4043,695.7533,625.451,688.6186" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="611.2319" y="708.1343">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="527.3548" y="783.9352">1</text><!--MD5=[8318054091d2ecf2336b9e490f482e2a]
24
reverse link urt_rtdata_t to urt_rtclassdata_t--><path d="M661.8649,701.6721 C663.5023,730.4012 665.5477,766.2892 667.1779,794.892 " fill="none" id="urt_rtdata_t&lt;-urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="661.1209,688.6186,657.4689,694.8365,661.8038,700.5991,665.4559,694.3812,661.1209,688.6186" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="652.8097" y="708.1343">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="658.2185" y="783.9352">1</text><!--MD5=[b6ee30948a218449c72edbee7363b5d7]
25
link urt_subscriber_t to urt_hrtdata_t--><path d="M757.1009,507.9369 C769.0998,527.975 780.9972,548.3262 792,567.9063 C863.2331,694.6689 938.3163,844.6106 985.8417,941.8491 " fill="none" id="urt_subscriber_t-&gt;urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="991.6423,953.7358,992.6057,946.5893,986.3796,942.9513,985.4161,950.0978,991.6423,953.7358" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="737.2714" y="527.9257">0..1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="979.7205" y="942.7179">1</text><!--MD5=[536025241394544a90bc53fb552f3a08]
26
reverse link urt_message_t to urt_message_t--><path d="M2148.9841,626.6651 C2163.0653,632.5809 2171.5,640.8279 2171.5,651.4063 C2171.5,664.8125 2157.9528,674.4745 2136.534,680.3921 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2136.534,622.4205,2140.9223,628.1426,2147.892,626.2928,2143.5038,620.5706,2136.534,622.4205" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2144.7829" y="618.1742">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2144.3281" y="678.1622">0..1</text><!--MD5=[f7eb638a1c2d853c6fb0ae6f53692e50]
27
reverse link urt_subscriber_t to urt_rtdata_t--><path d="M659,521.6915 C659,556.6546 659,590.134 659,614.3202 " fill="none" id="urt_subscriber_t&lt;-urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="659,508.2352,655,514.2352,659,520.2352,663,514.2352,659,508.2352" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="650.8063" y="528.2385">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="650.2625" y="603.2147">1</text><!--MD5=[bf7bf5810813e0e9b75d3053dc098443]
28
reverse link urt_subscriber_t to urt_topic_t--><path d="M1062.1443,192.074 C1117.2957,175.7185 1173.77,161.7151 1228.5,152.4063 C1270.0697,145.3358 1948.0357,137.5537 1987.5,152.4063 C2033.7152,169.7996 2076.6641,201.3176 2112.5145,234.2424 " fill="none" id="urt_subscriber_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1049.6549,195.8242,1056.5518,197.9297,1061.1479,192.3731,1054.251,190.2677,1049.6549,195.8242" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1060.3835" y="184.9686">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2081.1803" y="223.2868">0..1</text><!--MD5=[d3b08a81de663c21a5ec062e6c430f2b]
29
reverse link urt_topic_t to urt_subscriber_t--><path d="M2102.6826,225.4115 C2068.9204,195.7683 2029.563,168.2369 1987.5,152.4063 C1948.0357,137.5537 1270.0697,145.3358 1228.5,152.4063 C1169.6308,162.4191 1108.7434,177.8635 1049.6549,195.8242 " fill="none" id="urt_topic_t&lt;-urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2112.5145,234.2424,2110.7236,227.2573,2103.587,226.2238,2105.3778,233.2089,2112.5145,234.2424" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2106.2053" y="223.2868">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1069.1585" y="184.9686">0..1</text><!--MD5=[67fd999c5486ad1c37ee9b77e12afd1b]
30
reverse link urt_subscriber_t to urt_message_t--><path d="M1205.9919,506.684 C1207.6637,507.093 1209.3331,507.5005 1211,507.9063 C1368.5987,546.275 1547.8131,582.8837 1685.4523,609.5215 " fill="none" id="urt_subscriber_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1193.128,503.5187,1197.9984,508.8365,1204.7804,506.3861,1199.91,501.0683,1193.128,503.5187" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1200.6954" y="502.6124">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1653.6578" y="604.9661">0..1</text><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
31
reverse link urt_publisher_t to urt_topic_t--><path d="M2000.8249,351.9063 C2008.1324,351.9063 2015.44,351.9063 2022.7475,351.9063 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1987.6714,351.9063,1993.6714,355.9063,1999.6714,351.9063,1993.6714,347.9063,1987.6714,351.9063" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1995.4647" y="348.8239">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2007.0814" y="348.6776">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
32
link urt_publisher_t to urt_message_t--><path d="M1673.3734,416.5246 C1717.0338,459.6806 1774.9844,516.9619 1822.7266,564.1526 " 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="1826.4367,567.8198,1822.8477,558.6481,1822.8807,564.3048,1817.2239,564.3378,1826.4367,567.8198" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
33
reverse link urt_topic_t to urt_topic_t--><path d="M2419.0439,316.6436 C2433.3061,324.6924 2442,336.4466 2442,351.9063 C2442,371.3067 2428.309,384.8718 2407.1039,392.6016 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2407.1039,311.2109,2410.9085,317.3366,2418.0264,316.1807,2414.2218,310.0549,2407.1039,311.2109" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2414.7642" y="306.3925">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2415.0767" y="390.9626">0..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
34
reverse link urt_topic_t to urt_message_t--><path d="M2073.6989,478.6867 C2042.8769,508.7043 2011.4724,539.9832 1984.5402,567.5432 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2083.24,469.417,2076.1493,470.729,2074.6332,477.779,2081.724,476.4669,2083.24,469.417" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2066.1186" y="489.8785">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1965.8288" y="556.7538">1..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
35
reverse link urt_topic_t to urt_message_t--><path d="M2099.6725,478.6867 C2069.5781,508.7043 2037.4647,539.9832 2008.3874,567.5432 " fill="none" id="urt_topic_t&lt;-urt_message_t-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2108.9417,469.417,2101.8707,470.8314,2100.4567,477.9025,2107.5277,476.4881,2108.9417,469.417" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2093.5472" y="489.8785">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2008.4129" y="556.7538">1</text><!--MD5=[d97285d52857c028121a6b5bc3935d87]
36
reverse link urt_pubsub_t to urt_topic_t--><path d="M1975.286,144.3591 C1985.2833,152.5111 1995.4565,160.8946 2005,168.9063 C2029.9082,189.8163 2056.2217,212.369 2081.4833,234.2583 " fill="none" id="urt_pubsub_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1964.9651,135.973,1967.0992,142.861,1974.2783,143.5403,1972.1441,136.6522,1964.9651,135.973" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1965.2406" y="156.3917">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2048.1611" y="223.3036">0..1</text><!--MD5=[8d27a615fd5a1da0f7adeab7e6eca6da]
37
link urt_pubsub_t to urt_publisher_t--><!--MD5=[03e1ce0617834bbc75157765c9899346]
38
@startuml
39

    
40
title **µRtWare**\nPublish-Subscribe System
41

    
42

    
43

    
44

    
45

    
46

    
47

    
48

    
49

    
50

    
51

    
52

    
53

    
54
  class urt_message_t <<S,BFAFFF>> {
55
  + {field} next : urt_message_t*
56
  + {field} payload : void*
57
  + {field} originTime : urt_osTime_t
58
  + {field} lock : urt_osMutex_t
59
  + {field} numHrtConsumersLeft : unsigned int
60
  + {field} hrtConsumersLeft : urt_osCondvar_t
61
  .. URT_CFG_PUBSUB_PROFILING == true ..
62
  + {field} numConsumersLeft : unsigned int
63
  __
64
  + {method} urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t
65
}
66

    
67
  package "subscriber" <<Rectangle>> {
68
    package "real-time constraint data" <<Rectangle>> {
69
      class urt_rtdata_t <<S,BFAFFF>> {
70
      + {field} class : urt_rtconstraintclass_t
71
      + {field} params : urt_rtconstraintsparams_t
72
    }
73

    
74
      class urt_rtclass_t <<E,FF7F3F>> {
75
      URT_RTCLASS_HARD = 0
76
      URT_RTCLASS_FIRM = 1
77
      URT_RTCLASS_SOFT = 2
78
      URT_RTCLASS_NONE = 3
79
    }
80

    
81
      class urt_rtclassdata_t <<U,7FCF7F>> {
82
      + {field} hrt : urt_hrtparams_t
83
      + {field} frt : urt_frtparams_t
84
      + {field} srt : urt_srtparans_t
85
      + {field} nrt : urt_nrtparams_t
86
    }
87

    
88
      class urt_hrtdata_t <<S,BFAFFF>> {
89
      + {field} next : urt_subscriber_t*
90
      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
91
      + {field} qosDeadlineTimer : urt_osTimer_t
92
      + {field} deadlineOffset : urt_delay_t
93
      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
94
      + {field} expectedRate : urt_delay_t
95
      .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
96
      + {field} maxJitter : urt_delay_t
97
      + {field} minLatency : urt_delay_t
98
      + {field} maxLatency : urt_delay_t
99
    }
100

    
101
      class urt_frtdata_t <<S,BFAFFF>> {
102
      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
103
      + {field} qosDeadlineTimer : urt_osTimer_t
104
      + {field} deadlineOffset : urt_delay_t
105
      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
106
      + {field} expectedRate : urt_delay_t
107
      .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
108
      + {field} maxJitter : urt_delay_t
109
      + {field} minLatency : urt_delay_t
110
      + {field} maxLatency : urt_delay_t
111
    }
112

    
113
      package "SRT data" <<Rectangle>> {
114
        class urt_srtusefulnessfunc_t <<F,E0E0E0>> {
115
        urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
116
      }
117

    
118
        class urt_srtdata_t <<S,BFAFFF>> {
119
        + {field} usefullnesscb : urt_srtusefulnessfunc_t*
120
        + {field} cbparams : void*
121
      }
122
    } 
123

    
124
      class urt_nrtdata_t <<S,BFAFFF>> {
125
    }
126
  } 
127

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

    
153
  class urt_publisher_t <<S,BFAFFF>> {
154
  + {field} topic : urt_topic_t*
155
  .. URT_CFG_PROFILING == true ..
156
  + {field} publishAttempts : uint64_t
157
  + {field} publishFails : uint64_t
158
  __
159
  + {method} urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
160
  + {method} urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t
161
}
162

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

    
181
  class urt_pubsub_t <<S,BFAFFF>> {
182
  - {field} {static} _topics : urt_topic_t*
183
  __
184
  + {method} urtPubsubInit (void) : urt_status_t
185
  + {method} urtPubsubRetrieveTopic (id : urt_topicid_t) : urt_topic_t*
186
}
187

    
188

    
189

    
190

    
191
urt_srtdata_t "1" o- - "0..1" urt_srtusefulnessfunc_t
192

    
193
urt_rtclassdata_t "1" *- - "0..1" urt_hrtdata_t
194
urt_rtclassdata_t "1" *- - "0..1" urt_frtdata_t
195
urt_rtclassdata_t "1" *- - "0..1" urt_srtdata_t
196
urt_rtclassdata_t "1" *- - "0..1" urt_nrtdata_t
197

    
198
urt_rtdata_t "1" *- - "1" urt_rtclass_t
199
urt_rtdata_t "1" *- - "1" urt_rtclassdata_t
200

    
201
urt_hrtdata_t "1" o-up- "0..1" urt_subscriber_t
202

    
203
urt_message_t "1" o- - "0..1" urt_message_t
204

    
205
urt_subscriber_t "1" *- - "1" urt_rtdata_t
206
urt_subscriber_t "1" o- "0..1" urt_topic_t
207
urt_subscriber_t "1" o- - "0..1" urt_message_t
208

    
209
urt_publisher_t "1" o- "1" urt_topic_t
210
urt_publisher_t ..> urt_message_t
211

    
212
urt_topic_t "1" o- - "0..1" urt_topic_t
213
urt_topic_t "1" o- "0..1" urt_subscriber_t
214
urt_topic_t "1" o- - "1..1" urt_message_t
215
urt_topic_t "1" *- - "1" urt_message_t
216

    
217
urt_pubsub_t "1" o- - "0..1" urt_topic_t
218
urt_pubsub_t -[hidden]-> urt_publisher_t
219

    
220

    
221

    
222
@enduml
223

    
224
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
225
(GPL source distribution)
226
Java Runtime: OpenJDK Runtime Environment
227
JVM: OpenJDK 64-Bit Server VM
228
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
229
Operating System: Linux
230
Default Encoding: UTF-8
231
Language: en
232
Country: US
233
--></g></svg>