Statistics
| Branch: | Revision:

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

History | View | Annotate | Download (101.622 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="1624px" preserveAspectRatio="none" style="width:4250px;height:1624px;" version="1.1" viewBox="0 0 4250 1624" width="4250px" zoomAndPan="magnify"><defs><filter height="300%" id="f1caui93febe6e" 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="2082.5" y="16.708">µRtWare</text><!--MD5=[b9de0669a29c7bc934fd916b09c39491]
2
cluster node--><rect fill="#FFFFFF" filter="url(#f1caui93febe6e)" height="457.5" style="stroke: #000000; stroke-width: 1.5;" width="1138" x="14" y="258.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="563" y="273.9482">node</text><!--MD5=[d74e2ef346f73688f9378f6d3d42598c]
3
cluster Publish-Subscribe System--><polygon fill="#FFFFFF" filter="url(#f1caui93febe6e)" points="1160,308.9531,1170,298.9531,3568,298.9531,3568,1602.9531,3558,1612.9531,1160,1612.9531,1160,308.9531" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="3558" x2="3567" y1="308.9531" y2="299.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1160" x2="3558" y1="308.9531" y2="308.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="3558" x2="3558" y1="308.9531" y2="1612.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="205" x="2257.5" y="324.9482">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
4
cluster subscriber--><rect fill="#FFFFFF" filter="url(#f1caui93febe6e)" height="1110" style="stroke: #000000; stroke-width: 1.5;" width="1187" x="2373" y="494.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="2924" y="509.9482">subscriber</text><!--MD5=[94ad99421f5a0f525bc1c13a3777c25e]
5
cluster real-time constraint data--><rect fill="#FFFFFF" filter="url(#f1caui93febe6e)" height="683.5" style="stroke: #000000; stroke-width: 1.5;" width="1171" x="2381" y="913.4531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="194" x="2869.5" y="928.4482">real-time constraint data</text><!--MD5=[57c3116dbac3d3a2ea35fece1cdc00f4]
6
cluster SRT data--><rect fill="#FFFFFF" filter="url(#f1caui93febe6e)" height="283" style="stroke: #000000; stroke-width: 1.5;" width="390" x="2846" y="1305.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="3006.5" y="1320.9482">SRT data</text><!--MD5=[810d0f07e53ef611b6d803ef30301147]
7
cluster Remote Procedure Call System--><polygon fill="#FFFFFF" filter="url(#f1caui93febe6e)" points="3576,308.9531,3586,298.9531,4228,298.9531,4228,1013.9531,4218,1023.9531,3576,1023.9531,3576,308.9531" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="4218" x2="4227" y1="308.9531" y2="299.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="3576" x2="4218" y1="308.9531" y2="308.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="4218" x2="4218" y1="308.9531" y2="1023.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="244" x="3776" y="324.9482">Remote Procedure Call System</text><!--MD5=[7579d5565d2521d5936cec86ed3dadee]
8
cluster service--><rect fill="#FFFFFF" filter="url(#f1caui93febe6e)" height="476" style="stroke: #000000; stroke-width: 1.5;" width="636" x="3584" y="539.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="58" x="3873" y="554.9482">service</text><!--MD5=[a7dea26996a1231aa68629b332780450]
9
class urt_nodeSetupCallback_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="60.8047" id="urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="456" x="25" y="647.4531"/><ellipse cx="170.75" cy="663.4531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M171.5938,670.2031 L169.1406,670.2031 L169.1406,659.9531 L166,659.9531 L166,657.8125 L174.7344,657.8125 L174.7344,659.9531 L171.5938,659.9531 L171.5938,670.2031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="191.25" y="667.6074">urt_nodeSetupCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="26" x2="480" y1="679.4531" y2="679.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="26" x2="480" y1="687.4531" y2="687.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="444" x="31" y="701.6636">urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t</text><!--MD5=[7f869e17e281b89d59a4c09e0f22c3af]
10
class urt_nodeLoopCallback_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="60.8047" id="urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="614" x="516" y="647.4531"/><ellipse cx="744.25" cy="663.4531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M745.0938,670.2031 L742.6406,670.2031 L742.6406,659.9531 L739.5,659.9531 L739.5,657.8125 L748.2344,657.8125 L748.2344,659.9531 L745.0938,659.9531 L745.0938,670.2031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="764.75" y="667.6074">urt_nodeLoopCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="517" x2="1129" y1="679.4531" y2="679.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="517" x2="1129" y1="687.4531" y2="687.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="602" x="522" y="701.6636">urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t</text><!--MD5=[d2563153d77472384a15c07b815d639f]
11
class urt_node_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="176.0469" id="urt_node_t" style="stroke: #A80036; stroke-width: 1.5;" width="1104" x="22" y="285.9531"/><ellipse cx="536.25" cy="301.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M535.7344,302.5156 Q533.875,301.8125 533.2188,301.0469 Q532.5781,300.2656 532.5781,298.9531 Q532.5781,297.2656 533.6563,296.2969 Q534.7344,295.3281 536.6094,295.3281 Q537.4688,295.3281 538.3125,295.5313 Q539.1719,295.7188 540.0156,296.1094 L540.0156,298.5 Q539.2344,297.9375 538.4063,297.6563 Q537.5938,297.3594 536.7969,297.3594 Q535.9219,297.3594 535.4375,297.7188 Q534.9688,298.0781 534.9688,298.7344 Q534.9688,299.25 535.3125,299.5938 Q535.6563,299.9219 536.75,300.3281 L537.8125,300.7344 Q539.2969,301.2813 540,302.1875 Q540.7188,303.0938 540.7188,304.4688 Q540.7188,306.3438 539.6094,307.2656 Q538.5,308.1875 536.25,308.1875 Q535.3281,308.1875 534.4063,307.9688 Q533.4844,307.75 532.625,307.3281 L532.625,304.7969 Q533.5938,305.4844 534.5156,305.8281 Q535.4375,306.1719 536.3281,306.1719 Q537.2344,306.1719 537.7344,305.7656 Q538.2344,305.3438 538.2344,304.6094 Q538.2344,304.0469 537.8906,303.6406 Q537.5625,303.2188 536.9375,302.9688 L535.7344,302.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="67" x="556.75" y="306.1074">urt_node_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="23" x2="1125" y1="317.9531" y2="317.9531"/><ellipse cx="33" cy="328.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="42" y="332.1636">next : urt_node_t*</text><ellipse cx="33" cy="341.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="42" y="344.9683">thread : urt_osThread_t*</text><ellipse cx="33" cy="354.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="42" y="357.7729">setupcallback : urt_nodeSetupCallback_t*</text><ellipse cx="33" cy="367.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="117" x="42" y="370.5776">setupparams : void*</text><ellipse cx="33" cy="380.1719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="221" x="42" y="383.3823">loopcallback : urt_nodeLoopCallback_t*</text><ellipse cx="33" cy="392.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="42" y="396.187">loopparams : void*</text><ellipse cx="33" cy="405.7813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="42" y="408.9917">stage : urt_nodestage_t</text><ellipse cx="33" cy="418.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="178" x="42" y="421.7964">listener : urt_osEventListener_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="23" x2="1125" y1="428.3906" y2="428.3906"/><rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="30" y="436.3906"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="179" x="42" y="442.6011">_main : urt_osThreadFunction_t</text><ellipse cx="33" cy="452.1953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1078" x="42" y="455.4058">urtNodeInit (node : urt_node_t*, stacksize : size_t, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t</text><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
12
class urt_message_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="167.2422" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="1896.5" y="893.9531"/><ellipse cx="2071.75" cy="909.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2071.2344,910.5156 Q2069.375,909.8125 2068.7188,909.0469 Q2068.0781,908.2656 2068.0781,906.9531 Q2068.0781,905.2656 2069.1563,904.2969 Q2070.2344,903.3281 2072.1094,903.3281 Q2072.9688,903.3281 2073.8125,903.5313 Q2074.6719,903.7188 2075.5156,904.1094 L2075.5156,906.5 Q2074.7344,905.9375 2073.9063,905.6563 Q2073.0938,905.3594 2072.2969,905.3594 Q2071.4219,905.3594 2070.9375,905.7188 Q2070.4688,906.0781 2070.4688,906.7344 Q2070.4688,907.25 2070.8125,907.5938 Q2071.1563,907.9219 2072.25,908.3281 L2073.3125,908.7344 Q2074.7969,909.2813 2075.5,910.1875 Q2076.2188,911.0938 2076.2188,912.4688 Q2076.2188,914.3438 2075.1094,915.2656 Q2074,916.1875 2071.75,916.1875 Q2070.8281,916.1875 2069.9063,915.9688 Q2068.9844,915.75 2068.125,915.3281 L2068.125,912.7969 Q2069.0938,913.4844 2070.0156,913.8281 Q2070.9375,914.1719 2071.8281,914.1719 Q2072.7344,914.1719 2073.2344,913.7656 Q2073.7344,913.3438 2073.7344,912.6094 Q2073.7344,912.0469 2073.3906,911.6406 Q2073.0625,911.2188 2072.4375,910.9688 L2071.2344,910.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="2092.25" y="914.1074">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1897.5" x2="2346.5" y1="925.9531" y2="925.9531"/><ellipse cx="1907.5" cy="936.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="1916.5" y="940.1636">next : urt_message_t*</text><ellipse cx="1907.5" cy="949.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="1916.5" y="952.9683">payload : void*</text><ellipse cx="1907.5" cy="962.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="1916.5" y="965.7729">originTime : urt_osTime_t</text><ellipse cx="1907.5" cy="975.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="113" x="1916.5" y="978.5776">lock : urt_osMutex_t</text><ellipse cx="1907.5" cy="988.1719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="1916.5" y="991.3823">numHrtConsumersLeft : unsigned int</text><ellipse cx="1907.5" cy="1000.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="208" x="1916.5" y="1004.187">hrtConsumersLeft : urt_osCondvar_t</text><ellipse cx="1907.5" cy="1030.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="1916.5" y="1033.7964">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1897.5" x2="2013.5" y1="1017.1836" y2="1017.1836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2013.5" y="1020.4917">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2230.5" x2="2346.5" y1="1017.1836" y2="1017.1836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1897.5" x2="2346.5" y1="1040.3906" y2="1040.3906"/><ellipse cx="1907.5" cy="1051.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="425" x="1916.5" y="1054.6011">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
13
class urt_publisher_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="1168.5" y="613.4531"/><ellipse cx="1497.25" cy="629.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1496.7344,630.0156 Q1494.875,629.3125 1494.2188,628.5469 Q1493.5781,627.7656 1493.5781,626.4531 Q1493.5781,624.7656 1494.6563,623.7969 Q1495.7344,622.8281 1497.6094,622.8281 Q1498.4688,622.8281 1499.3125,623.0313 Q1500.1719,623.2188 1501.0156,623.6094 L1501.0156,626 Q1500.2344,625.4375 1499.4063,625.1563 Q1498.5938,624.8594 1497.7969,624.8594 Q1496.9219,624.8594 1496.4375,625.2188 Q1495.9688,625.5781 1495.9688,626.2344 Q1495.9688,626.75 1496.3125,627.0938 Q1496.6563,627.4219 1497.75,627.8281 L1498.8125,628.2344 Q1500.2969,628.7813 1501,629.6875 Q1501.7188,630.5938 1501.7188,631.9688 Q1501.7188,633.8438 1500.6094,634.7656 Q1499.5,635.6875 1497.25,635.6875 Q1496.3281,635.6875 1495.4063,635.4688 Q1494.4844,635.25 1493.625,634.8281 L1493.625,632.2969 Q1494.5938,632.9844 1495.5156,633.3281 Q1496.4375,633.6719 1497.3281,633.6719 Q1498.2344,633.6719 1498.7344,633.2656 Q1499.2344,632.8438 1499.2344,632.1094 Q1499.2344,631.5469 1498.8906,631.1406 Q1498.5625,630.7188 1497.9375,630.4688 L1496.7344,630.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="1517.75" y="633.6074">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1169.5" x2="1926.5" y1="645.4531" y2="645.4531"/><ellipse cx="1179.5" cy="656.4531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="1188.5" y="659.6636">topic : urt_topic_t*</text><ellipse cx="1179.5" cy="686.0625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="1188.5" y="689.2729">publishAttempts : uint64_t</text><ellipse cx="1179.5" cy="698.8672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="1188.5" y="702.0776">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1169.5" x2="1466" y1="672.6602" y2="672.6602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="164" x="1466" y="675.9683">URT_CFG_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1630" x2="1926.5" y1="672.6602" y2="672.6602"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1169.5" x2="1926.5" y1="708.6719" y2="708.6719"/><ellipse cx="1179.5" cy="719.6719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="617" x="1188.5" y="722.8823">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="1179.5" cy="732.4766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="733" x="1188.5" y="735.687">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
14
class urt_topic_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="235.2656" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="1963" y="560.4531"/><ellipse cx="2117.75" cy="576.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2117.2344,577.0156 Q2115.375,576.3125 2114.7188,575.5469 Q2114.0781,574.7656 2114.0781,573.4531 Q2114.0781,571.7656 2115.1563,570.7969 Q2116.2344,569.8281 2118.1094,569.8281 Q2118.9688,569.8281 2119.8125,570.0313 Q2120.6719,570.2188 2121.5156,570.6094 L2121.5156,573 Q2120.7344,572.4375 2119.9063,572.1563 Q2119.0938,571.8594 2118.2969,571.8594 Q2117.4219,571.8594 2116.9375,572.2188 Q2116.4688,572.5781 2116.4688,573.2344 Q2116.4688,573.75 2116.8125,574.0938 Q2117.1563,574.4219 2118.25,574.8281 L2119.3125,575.2344 Q2120.7969,575.7813 2121.5,576.6875 Q2122.2188,577.5938 2122.2188,578.9688 Q2122.2188,580.8438 2121.1094,581.7656 Q2120,582.6875 2117.75,582.6875 Q2116.8281,582.6875 2115.9063,582.4688 Q2114.9844,582.25 2114.125,581.8281 L2114.125,579.2969 Q2115.0938,579.9844 2116.0156,580.3281 Q2116.9375,580.6719 2117.8281,580.6719 Q2118.7344,580.6719 2119.2344,580.2656 Q2119.7344,579.8438 2119.7344,579.1094 Q2119.7344,578.5469 2119.3906,578.1406 Q2119.0625,577.7188 2118.4375,577.4688 L2117.2344,577.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="2138.25" y="580.6074">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1964" x2="2346" y1="592.4531" y2="592.4531"/><ellipse cx="1974" cy="603.4531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="1983" y="606.6636">next : urt_topic_t*</text><ellipse cx="1974" cy="616.2578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="1983" y="619.4683">id : urt_topicid_t</text><ellipse cx="1974" cy="629.0625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="1983" y="632.2729">lock : urt_osMutex_t</text><ellipse cx="1974" cy="641.8672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="1983" y="645.0776">evtSource : urt_osEventSource_t</text><ellipse cx="1974" cy="654.6719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="1983" y="657.8823">numHrtSubscribers : unsigned int</text><ellipse cx="1974" cy="667.4766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="1983" y="670.687">hrtSubscribers : urt_subscriber_t*</text><ellipse cx="1974" cy="680.2813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="1983" y="683.4917">mandatoryMessage : urt_message_t</text><ellipse cx="1974" cy="693.0859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="1983" y="696.2964">latestMessage : urt_message_t*</text><ellipse cx="1974" cy="722.6953" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="1983" y="725.9058">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1964" x2="2022.5" y1="709.293" y2="709.293"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="2022.5" y="712.6011">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2287.5" x2="2346" y1="709.293" y2="709.293"/><ellipse cx="1974" cy="752.3047" fill="none" 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="1983" y="755.5151">numDiscardedMessages : uint64_t</text><ellipse cx="1974" cy="765.1094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="1983" y="768.3198">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1964" x2="2046.5" y1="738.9023" y2="738.9023"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2046.5" y="742.2104">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2263.5" x2="2346" y1="738.9023" y2="738.9023"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1964" x2="2346" y1="774.9141" y2="774.9141"/><ellipse cx="1974" cy="785.9141" fill="#84BE84" 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="1983" y="789.1245">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--MD5=[4a0cbcfec60c5e893e4ff6f7470d1adc]
15
class urt_pubsub_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="86.4141" id="urt_pubsub_t" style="stroke: #A80036; stroke-width: 1.5;" width="340" x="1681" y="330.9531"/><ellipse cx="1805.75" cy="346.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1805.2344,347.5156 Q1803.375,346.8125 1802.7188,346.0469 Q1802.0781,345.2656 1802.0781,343.9531 Q1802.0781,342.2656 1803.1563,341.2969 Q1804.2344,340.3281 1806.1094,340.3281 Q1806.9688,340.3281 1807.8125,340.5313 Q1808.6719,340.7188 1809.5156,341.1094 L1809.5156,343.5 Q1808.7344,342.9375 1807.9063,342.6563 Q1807.0938,342.3594 1806.2969,342.3594 Q1805.4219,342.3594 1804.9375,342.7188 Q1804.4688,343.0781 1804.4688,343.7344 Q1804.4688,344.25 1804.8125,344.5938 Q1805.1563,344.9219 1806.25,345.3281 L1807.3125,345.7344 Q1808.7969,346.2813 1809.5,347.1875 Q1810.2188,348.0938 1810.2188,349.4688 Q1810.2188,351.3438 1809.1094,352.2656 Q1808,353.1875 1805.75,353.1875 Q1804.8281,353.1875 1803.9063,352.9688 Q1802.9844,352.75 1802.125,352.3281 L1802.125,349.7969 Q1803.0938,350.4844 1804.0156,350.8281 Q1804.9375,351.1719 1805.8281,351.1719 Q1806.7344,351.1719 1807.2344,350.7656 Q1807.7344,350.3438 1807.7344,349.6094 Q1807.7344,349.0469 1807.3906,348.6406 Q1807.0625,348.2188 1806.4375,347.9688 L1805.2344,347.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="1826.25" y="351.1074">urt_pubsub_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1682" x2="2020" y1="362.9531" y2="362.9531"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1689" y="370.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="117" x="1701" y="377.1636">_topics : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1682" x2="2020" y1="383.7578" y2="383.7578"/><ellipse cx="1692" cy="394.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="190" x="1701" y="397.9683">urtPubsubInit (void) : urt_status_t</text><ellipse cx="1692" cy="407.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="314" x="1701" y="410.7729">urtPubsubRetrieveTopic (id : urt_topicid_t) : urt_topic_t*</text><!--MD5=[ab7cf431813e3be5d474948fd959cdbf]
16
class urt_subscriber_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="312.0938" id="urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1068" x="2400" y="521.9531"/><ellipse cx="2879.25" cy="537.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2878.7344,538.5156 Q2876.875,537.8125 2876.2188,537.0469 Q2875.5781,536.2656 2875.5781,534.9531 Q2875.5781,533.2656 2876.6563,532.2969 Q2877.7344,531.3281 2879.6094,531.3281 Q2880.4688,531.3281 2881.3125,531.5313 Q2882.1719,531.7188 2883.0156,532.1094 L2883.0156,534.5 Q2882.2344,533.9375 2881.4063,533.6563 Q2880.5938,533.3594 2879.7969,533.3594 Q2878.9219,533.3594 2878.4375,533.7188 Q2877.9688,534.0781 2877.9688,534.7344 Q2877.9688,535.25 2878.3125,535.5938 Q2878.6563,535.9219 2879.75,536.3281 L2880.8125,536.7344 Q2882.2969,537.2813 2883,538.1875 Q2883.7188,539.0938 2883.7188,540.4688 Q2883.7188,542.3438 2882.6094,543.2656 Q2881.5,544.1875 2879.25,544.1875 Q2878.3281,544.1875 2877.4063,543.9688 Q2876.4844,543.75 2875.625,543.3281 L2875.625,540.7969 Q2876.5938,541.4844 2877.5156,541.8281 Q2878.4375,542.1719 2879.3281,542.1719 Q2880.2344,542.1719 2880.7344,541.7656 Q2881.2344,541.3438 2881.2344,540.6094 Q2881.2344,540.0469 2880.8906,539.6406 Q2880.5625,539.2188 2879.9375,538.9688 L2878.7344,538.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="2899.75" y="542.1074">urt_subscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2401" x2="3467" y1="553.9531" y2="553.9531"/><ellipse cx="2411" cy="564.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="2420" y="568.1636">topic : urt_topic_t*</text><ellipse cx="2411" cy="577.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="2420" y="580.9683">evtListener : urt_osEventListener_t</text><ellipse cx="2411" cy="590.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="191" x="2420" y="593.7729">rtconstraints : urt_rtconstaints_t*</text><ellipse cx="2411" cy="603.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="2420" y="606.5776">lastMessage : urt_message_t*</text><ellipse cx="2411" cy="616.1719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="2420" y="619.3823">lastMessageTime : urt_osTime_t</text><ellipse cx="2411" cy="645.7813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="2420" y="648.9917">sumLatencies : uint64_t</text><ellipse cx="2411" cy="658.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="2420" y="661.7964">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2401" x2="2825.5" y1="632.3789" y2="632.3789"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2825.5" y="635.687">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3042.5" x2="3467" y1="632.3789" y2="632.3789"/><ellipse cx="2411" cy="688.1953" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="2420" y="691.4058">minLatency : urt_delay_t</text><ellipse cx="2411" cy="701" fill="none" 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="2420" y="704.2104">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2401" x2="2673.5" y1="674.793" y2="674.793"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="521" x="2673.5" y="678.1011">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="3194.5" x2="3467" y1="674.793" y2="674.793"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2401" x2="3467" y1="710.8047" y2="710.8047"/><ellipse cx="2411" cy="721.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="359" x="2420" y="725.0151">urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="2411" cy="734.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1042" x="2420" y="737.8198">urtSubscriberSubscribeHrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="2411" cy="747.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1040" x="2420" y="750.6245">urtSubscriberSubscribeFrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="2411" cy="760.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1042" x="2420" y="763.4292">urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t</text><ellipse cx="2411" cy="773.0234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="699" x="2420" y="776.2339">urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="2411" cy="785.8281" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="413" x="2420" y="789.0386">urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="2411" cy="798.6328" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="752" x="2420" y="801.8433">urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2411" cy="811.4375" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="762" x="2420" y="814.6479">urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2411" cy="824.2422" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="537" x="2420" y="827.4526">urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float</text><!--MD5=[82a1b6b26b12edcbd86fa16935c3353e]
17
class urt_rtdata_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="73.6094" id="urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="2818.5" y="940.4531"/><ellipse cx="2892.75" cy="956.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2892.2344,957.0156 Q2890.375,956.3125 2889.7188,955.5469 Q2889.0781,954.7656 2889.0781,953.4531 Q2889.0781,951.7656 2890.1563,950.7969 Q2891.2344,949.8281 2893.1094,949.8281 Q2893.9688,949.8281 2894.8125,950.0313 Q2895.6719,950.2188 2896.5156,950.6094 L2896.5156,953 Q2895.7344,952.4375 2894.9063,952.1563 Q2894.0938,951.8594 2893.2969,951.8594 Q2892.4219,951.8594 2891.9375,952.2188 Q2891.4688,952.5781 2891.4688,953.2344 Q2891.4688,953.75 2891.8125,954.0938 Q2892.1563,954.4219 2893.25,954.8281 L2894.3125,955.2344 Q2895.7969,955.7813 2896.5,956.6875 Q2897.2188,957.5938 2897.2188,958.9688 Q2897.2188,960.8438 2896.1094,961.7656 Q2895,962.6875 2892.75,962.6875 Q2891.8281,962.6875 2890.9063,962.4688 Q2889.9844,962.25 2889.125,961.8281 L2889.125,959.2969 Q2890.0938,959.9844 2891.0156,960.3281 Q2891.9375,960.6719 2892.8281,960.6719 Q2893.7344,960.6719 2894.2344,960.2656 Q2894.7344,959.8438 2894.7344,959.1094 Q2894.7344,958.5469 2894.3906,958.1406 Q2894.0625,957.7188 2893.4375,957.4688 L2892.2344,957.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="2913.25" y="960.6074">urt_rtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2819.5" x2="3048.5" y1="972.4531" y2="972.4531"/><ellipse cx="2829.5" cy="983.4531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="2838.5" y="986.6636">class : urt_rtconstraintclass_t</text><ellipse cx="2829.5" cy="996.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="205" x="2838.5" y="999.4683">params : urt_rtconstraintsparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2819.5" x2="3048.5" y1="1006.0625" y2="1006.0625"/><!--MD5=[4bd59d3bc50b317c5523bafe6b73a042]
18
class urt_rtclass_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="99.2188" id="urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="2706.5" y="1120.9531"/><ellipse cx="2741.3" cy="1136.9531" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2745.4094,1142.9531 L2737.6906,1142.9531 L2737.6906,1130.5625 L2745.4094,1130.5625 L2745.4094,1132.7188 L2740.1438,1132.7188 L2740.1438,1135.3906 L2744.9094,1135.3906 L2744.9094,1137.5469 L2740.1438,1137.5469 L2740.1438,1140.7969 L2745.4094,1140.7969 L2745.4094,1142.9531 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="2759.7" y="1141.1074">urt_rtclass_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2707.5" x2="2858.5" y1="1152.9531" y2="1152.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="2712.5" y="1167.1636">URT_RTCLASS_HARD = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="2712.5" y="1179.9683">URT_RTCLASS_FIRM = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="2712.5" y="1192.7729">URT_RTCLASS_SOFT = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="2712.5" y="1205.5776">URT_RTCLASS_NONE = 3</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2707.5" x2="2858.5" y1="1212.1719" y2="1212.1719"/><!--MD5=[7b207cc31d63d27c526f257c1fda2512]
19
class urt_rtclassdata_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="99.2188" id="urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="2895" y="1120.9531"/><ellipse cx="2913.6" cy="1136.9531" fill="#7FCF7F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2909.475,1138.875 L2909.475,1131.0625 L2911.9281,1131.0625 L2911.9281,1139.5 Q2911.9281,1140.4219 2912.3969,1140.9531 Q2912.8813,1141.4844 2913.7094,1141.4844 Q2914.5531,1141.4844 2915.0219,1140.9531 Q2915.4906,1140.4219 2915.4906,1139.5 L2915.4906,1131.0625 L2917.9438,1131.0625 L2917.9438,1138.875 Q2917.9438,1141.4063 2916.9438,1142.5469 Q2915.9438,1143.6875 2913.7094,1143.6875 Q2911.4906,1143.6875 2910.475,1142.5469 Q2909.475,1141.4063 2909.475,1138.875 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="2928.4" y="1141.1074">urt_rtclassdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2896" x2="3040" y1="1152.9531" y2="1152.9531"/><ellipse cx="2906" cy="1163.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="2915" y="1167.1636">hrt : urt_hrtparams_t</text><ellipse cx="2906" cy="1176.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="2915" y="1179.9683">frt : urt_frtparams_t</text><ellipse cx="2906" cy="1189.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="2915" y="1192.7729">srt : urt_srtparans_t</text><ellipse cx="2906" cy="1202.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="2915" y="1205.5776">nrt : urt_nrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2896" x2="3040" y1="1212.1719" y2="1212.1719"/><!--MD5=[c57ade65ef97beb73587233399d5250a]
20
class urt_hrtdata_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="180.0469" id="urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="299" x="3244.5" y="1279.9531"/><ellipse cx="3348.75" cy="1295.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3348.2344,1296.5156 Q3346.375,1295.8125 3345.7188,1295.0469 Q3345.0781,1294.2656 3345.0781,1292.9531 Q3345.0781,1291.2656 3346.1563,1290.2969 Q3347.2344,1289.3281 3349.1094,1289.3281 Q3349.9688,1289.3281 3350.8125,1289.5313 Q3351.6719,1289.7188 3352.5156,1290.1094 L3352.5156,1292.5 Q3351.7344,1291.9375 3350.9063,1291.6563 Q3350.0938,1291.3594 3349.2969,1291.3594 Q3348.4219,1291.3594 3347.9375,1291.7188 Q3347.4688,1292.0781 3347.4688,1292.7344 Q3347.4688,1293.25 3347.8125,1293.5938 Q3348.1563,1293.9219 3349.25,1294.3281 L3350.3125,1294.7344 Q3351.7969,1295.2813 3352.5,1296.1875 Q3353.2188,1297.0938 3353.2188,1298.4688 Q3353.2188,1300.3438 3352.1094,1301.2656 Q3351,1302.1875 3348.75,1302.1875 Q3347.8281,1302.1875 3346.9063,1301.9688 Q3345.9844,1301.75 3345.125,1301.3281 L3345.125,1298.7969 Q3346.0938,1299.4844 3347.0156,1299.8281 Q3347.9375,1300.1719 3348.8281,1300.1719 Q3349.7344,1300.1719 3350.2344,1299.7656 Q3350.7344,1299.3438 3350.7344,1298.6094 Q3350.7344,1298.0469 3350.3906,1297.6406 Q3350.0625,1297.2188 3349.4375,1296.9688 L3348.2344,1296.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="3369.25" y="1300.1074">urt_hrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3245.5" x2="3542.5" y1="1311.9531" y2="1311.9531"/><ellipse cx="3255.5" cy="1322.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="3264.5" y="1326.1636">next : urt_subscriber_t*</text><ellipse cx="3255.5" cy="1352.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="3264.5" y="1355.7729">qosDeadlineTimer : urt_osTimer_t</text><ellipse cx="3255.5" cy="1365.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="3264.5" y="1368.5776">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3245.5" x2="3248.5" y1="1339.1602" y2="1339.1602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="3248.5" y="1342.4683">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3539.5" x2="3542.5" y1="1339.1602" y2="1339.1602"/><ellipse cx="3255.5" cy="1394.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="3264.5" y="1398.187">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3245.5" x2="3261.5" y1="1381.5742" y2="1381.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="3261.5" y="1384.8823">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3526.5" x2="3542.5" y1="1381.5742" y2="1381.5742"/><ellipse cx="3255.5" cy="1424.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="3264.5" y="1427.7964">maxJitter : urt_delay_t</text><ellipse cx="3255.5" cy="1437.3906" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="3264.5" y="1440.6011">minLatency : urt_delay_t</text><ellipse cx="3255.5" cy="1450.1953" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="3264.5" y="1453.4058">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3245.5" x2="3258.5" y1="1411.1836" y2="1411.1836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="3258.5" y="1414.4917">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3529.5" x2="3542.5" y1="1411.1836" y2="1411.1836"/><!--MD5=[72774668522d2286013bfbc0db723956]
21
class urt_frtdata_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="167.2422" id="urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="299" x="2389.5" y="1286.4531"/><ellipse cx="2495.75" cy="1302.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2495.2344,1303.0156 Q2493.375,1302.3125 2492.7188,1301.5469 Q2492.0781,1300.7656 2492.0781,1299.4531 Q2492.0781,1297.7656 2493.1563,1296.7969 Q2494.2344,1295.8281 2496.1094,1295.8281 Q2496.9688,1295.8281 2497.8125,1296.0313 Q2498.6719,1296.2188 2499.5156,1296.6094 L2499.5156,1299 Q2498.7344,1298.4375 2497.9063,1298.1563 Q2497.0938,1297.8594 2496.2969,1297.8594 Q2495.4219,1297.8594 2494.9375,1298.2188 Q2494.4688,1298.5781 2494.4688,1299.2344 Q2494.4688,1299.75 2494.8125,1300.0938 Q2495.1563,1300.4219 2496.25,1300.8281 L2497.3125,1301.2344 Q2498.7969,1301.7813 2499.5,1302.6875 Q2500.2188,1303.5938 2500.2188,1304.9688 Q2500.2188,1306.8438 2499.1094,1307.7656 Q2498,1308.6875 2495.75,1308.6875 Q2494.8281,1308.6875 2493.9063,1308.4688 Q2492.9844,1308.25 2492.125,1307.8281 L2492.125,1305.2969 Q2493.0938,1305.9844 2494.0156,1306.3281 Q2494.9375,1306.6719 2495.8281,1306.6719 Q2496.7344,1306.6719 2497.2344,1306.2656 Q2497.7344,1305.8438 2497.7344,1305.1094 Q2497.7344,1304.5469 2497.3906,1304.1406 Q2497.0625,1303.7188 2496.4375,1303.4688 L2495.2344,1303.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="78" x="2516.25" y="1306.6074">urt_frtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2390.5" x2="2687.5" y1="1318.4531" y2="1318.4531"/><ellipse cx="2400.5" cy="1346.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="194" x="2409.5" y="1349.4683">qosDeadlineTimer : urt_osTimer_t</text><ellipse cx="2400.5" cy="1359.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="157" x="2409.5" y="1362.2729">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2390.5" x2="2393.5" y1="1332.8555" y2="1332.8555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="2393.5" y="1336.1636">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2684.5" x2="2687.5" y1="1332.8555" y2="1332.8555"/><ellipse cx="2400.5" cy="1388.6719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="2409.5" y="1391.8823">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2390.5" x2="2406.5" y1="1375.2695" y2="1375.2695"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="2406.5" y="1378.5776">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2671.5" x2="2687.5" y1="1375.2695" y2="1375.2695"/><ellipse cx="2400.5" cy="1418.2813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="2409.5" y="1421.4917">maxJitter : urt_delay_t</text><ellipse cx="2400.5" cy="1431.0859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="2409.5" y="1434.2964">minLatency : urt_delay_t</text><ellipse cx="2400.5" cy="1443.8906" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="2409.5" y="1447.1011">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2390.5" x2="2403.5" y1="1404.8789" y2="1404.8789"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="2403.5" y="1408.187">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2674.5" x2="2687.5" y1="1404.8789" y2="1404.8789"/><!--MD5=[ca63c4d42025d7ce195746a6a8d32f3e]
22
class urt_nrtdata_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="48" id="urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="2724" y="1345.9531"/><ellipse cx="2739" cy="1361.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2738.4844,1362.5156 Q2736.625,1361.8125 2735.9688,1361.0469 Q2735.3281,1360.2656 2735.3281,1358.9531 Q2735.3281,1357.2656 2736.4063,1356.2969 Q2737.4844,1355.3281 2739.3594,1355.3281 Q2740.2188,1355.3281 2741.0625,1355.5313 Q2741.9219,1355.7188 2742.7656,1356.1094 L2742.7656,1358.5 Q2741.9844,1357.9375 2741.1563,1357.6563 Q2740.3438,1357.3594 2739.5469,1357.3594 Q2738.6719,1357.3594 2738.1875,1357.7188 Q2737.7188,1358.0781 2737.7188,1358.7344 Q2737.7188,1359.25 2738.0625,1359.5938 Q2738.4063,1359.9219 2739.5,1360.3281 L2740.5625,1360.7344 Q2742.0469,1361.2813 2742.75,1362.1875 Q2743.4688,1363.0938 2743.4688,1364.4688 Q2743.4688,1366.3438 2742.3594,1367.2656 Q2741.25,1368.1875 2739,1368.1875 Q2738.0781,1368.1875 2737.1563,1367.9688 Q2736.2344,1367.75 2735.375,1367.3281 L2735.375,1364.7969 Q2736.3438,1365.4844 2737.2656,1365.8281 Q2738.1875,1366.1719 2739.0781,1366.1719 Q2739.9844,1366.1719 2740.4844,1365.7656 Q2740.9844,1365.3438 2740.9844,1364.6094 Q2740.9844,1364.0469 2740.6406,1363.6406 Q2740.3125,1363.2188 2739.6875,1362.9688 L2738.4844,1362.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="2753" y="1366.1074">urt_nrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2725" x2="2837" y1="1377.9531" y2="1377.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2725" x2="2837" y1="1385.9531" y2="1385.9531"/><!--MD5=[fc7708c915a0148c667d62e1370980fd]
23
class urt_srtusefulnessfunc_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="60.8047" id="urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="2854" y="1519.9531"/><ellipse cx="2963.25" cy="1535.9531" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2967.4844,1531.7188 L2962.2031,1531.7188 L2962.2031,1534.3906 L2967,1534.3906 L2967,1536.5469 L2962.2031,1536.5469 L2962.2031,1541.9531 L2959.7656,1541.9531 L2959.7656,1529.5625 L2967.4844,1529.5625 L2967.4844,1531.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="2983.75" y="1540.1074">urt_srtusefulnessfunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2855" x2="3227" y1="1551.9531" y2="1551.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2855" x2="3227" y1="1559.9531" y2="1559.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="362" x="2860" y="1574.1636">urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float</text><!--MD5=[4a2daf41193a31389d6311337c2a120f]
24
class urt_srtdata_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="73.6094" id="urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="2892" y="1332.9531"/><ellipse cx="2976.25" cy="1348.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2975.7344,1349.5156 Q2973.875,1348.8125 2973.2188,1348.0469 Q2972.5781,1347.2656 2972.5781,1345.9531 Q2972.5781,1344.2656 2973.6563,1343.2969 Q2974.7344,1342.3281 2976.6094,1342.3281 Q2977.4688,1342.3281 2978.3125,1342.5313 Q2979.1719,1342.7188 2980.0156,1343.1094 L2980.0156,1345.5 Q2979.2344,1344.9375 2978.4063,1344.6563 Q2977.5938,1344.3594 2976.7969,1344.3594 Q2975.9219,1344.3594 2975.4375,1344.7188 Q2974.9688,1345.0781 2974.9688,1345.7344 Q2974.9688,1346.25 2975.3125,1346.5938 Q2975.6563,1346.9219 2976.75,1347.3281 L2977.8125,1347.7344 Q2979.2969,1348.2813 2980,1349.1875 Q2980.7188,1350.0938 2980.7188,1351.4688 Q2980.7188,1353.3438 2979.6094,1354.2656 Q2978.5,1355.1875 2976.25,1355.1875 Q2975.3281,1355.1875 2974.4063,1354.9688 Q2973.4844,1354.75 2972.625,1354.3281 L2972.625,1351.7969 Q2973.5938,1352.4844 2974.5156,1352.8281 Q2975.4375,1353.1719 2976.3281,1353.1719 Q2977.2344,1353.1719 2977.7344,1352.7656 Q2978.2344,1352.3438 2978.2344,1351.6094 Q2978.2344,1351.0469 2977.8906,1350.6406 Q2977.5625,1350.2188 2976.9375,1349.9688 L2975.7344,1349.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="2996.75" y="1353.1074">urt_srtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2893" x2="3149" y1="1364.9531" y2="1364.9531"/><ellipse cx="2903" cy="1375.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="232" x="2912" y="1379.1636">usefullnesscb : urt_srtusefulnessfunc_t*</text><ellipse cx="2903" cy="1388.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="2912" y="1391.9683">cbparams : void*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2893" x2="3149" y1="1398.5625" y2="1398.5625"/><!--MD5=[c49c66e54807645986bdfbce830f97dc]
25
class urt_rpc_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="86.4141" id="urt_rpc_t" style="stroke: #A80036; stroke-width: 1.5;" width="358" x="3649" y="330.9531"/><ellipse cx="3796.25" cy="346.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3795.7344,347.5156 Q3793.875,346.8125 3793.2188,346.0469 Q3792.5781,345.2656 3792.5781,343.9531 Q3792.5781,342.2656 3793.6563,341.2969 Q3794.7344,340.3281 3796.6094,340.3281 Q3797.4688,340.3281 3798.3125,340.5313 Q3799.1719,340.7188 3800.0156,341.1094 L3800.0156,343.5 Q3799.2344,342.9375 3798.4063,342.6563 Q3797.5938,342.3594 3796.7969,342.3594 Q3795.9219,342.3594 3795.4375,342.7188 Q3794.9688,343.0781 3794.9688,343.7344 Q3794.9688,344.25 3795.3125,344.5938 Q3795.6563,344.9219 3796.75,345.3281 L3797.8125,345.7344 Q3799.2969,346.2813 3800,347.1875 Q3800.7188,348.0938 3800.7188,349.4688 Q3800.7188,351.3438 3799.6094,352.2656 Q3798.5,353.1875 3796.25,353.1875 Q3795.3281,353.1875 3794.4063,352.9688 Q3793.4844,352.75 3792.625,352.3281 L3792.625,349.7969 Q3793.5938,350.4844 3794.5156,350.8281 Q3795.4375,351.1719 3796.3281,351.1719 Q3797.2344,351.1719 3797.7344,350.7656 Q3798.2344,350.3438 3798.2344,349.6094 Q3798.2344,349.0469 3797.8906,348.6406 Q3797.5625,348.2188 3796.9375,347.9688 L3795.7344,347.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="3816.75" y="351.1074">urt_rpc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3650" x2="4006" y1="362.9531" y2="362.9531"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="3657" y="370.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="145" x="3669" y="377.1636">_services : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3650" x2="4006" y1="383.7578" y2="383.7578"/><ellipse cx="3660" cy="394.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="168" x="3669" y="397.9683">urtRpcInit (void) : urt_status_t</text><ellipse cx="3660" cy="407.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="332" x="3669" y="410.7729">urtRpcRetrieveService (id : urt_serviceid_t) : urt_service_t*</text><!--MD5=[3226071078d8aeaa18fbafa5359ddee6]
26
class urt_servicefunc_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="60.8047" id="urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="3667.5" y="946.9531"/><ellipse cx="3835.75" cy="962.9531" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3839.9844,958.7188 L3834.7031,958.7188 L3834.7031,961.3906 L3839.5,961.3906 L3839.5,963.5469 L3834.7031,963.5469 L3834.7031,968.9531 L3832.2656,968.9531 L3832.2656,956.5625 L3839.9844,956.5625 L3839.9844,958.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="3856.25" y="967.1074">urt_servicefunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3668.5" x2="4117.5" y1="978.9531" y2="978.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3668.5" x2="4117.5" y1="986.9531" y2="986.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="439" x="3673.5" y="1001.1636">urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
27
class urt_service_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="222.4609" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="602" x="3592" y="566.9531"/><ellipse cx="3849.25" cy="582.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3848.7344,583.5156 Q3846.875,582.8125 3846.2188,582.0469 Q3845.5781,581.2656 3845.5781,579.9531 Q3845.5781,578.2656 3846.6563,577.2969 Q3847.7344,576.3281 3849.6094,576.3281 Q3850.4688,576.3281 3851.3125,576.5313 Q3852.1719,576.7188 3853.0156,577.1094 L3853.0156,579.5 Q3852.2344,578.9375 3851.4063,578.6563 Q3850.5938,578.3594 3849.7969,578.3594 Q3848.9219,578.3594 3848.4375,578.7188 Q3847.9688,579.0781 3847.9688,579.7344 Q3847.9688,580.25 3848.3125,580.5938 Q3848.6563,580.9219 3849.75,581.3281 L3850.8125,581.7344 Q3852.2969,582.2813 3853,583.1875 Q3853.7188,584.0938 3853.7188,585.4688 Q3853.7188,587.3438 3852.6094,588.2656 Q3851.5,589.1875 3849.25,589.1875 Q3848.3281,589.1875 3847.4063,588.9688 Q3846.4844,588.75 3845.625,588.3281 L3845.625,585.7969 Q3846.5938,586.4844 3847.5156,586.8281 Q3848.4375,587.1719 3849.3281,587.1719 Q3850.2344,587.1719 3850.7344,586.7656 Q3851.2344,586.3438 3851.2344,585.6094 Q3851.2344,585.0469 3850.8906,584.6406 Q3850.5625,584.2188 3849.9375,583.9688 L3848.7344,583.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="3869.75" y="587.1074">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3593" x2="4193" y1="598.9531" y2="598.9531"/><ellipse cx="3603" cy="609.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="3612" y="613.1636">next : urt_service_t*</text><ellipse cx="3603" cy="622.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="3612" y="625.9683">id : urt_serviceid_t</text><ellipse cx="3603" cy="635.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="3612" y="638.7729">lock : urt_osMutex_t</text><ellipse cx="3603" cy="648.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="3612" y="651.5776">callback : urt_servicefunc_t*</text><ellipse cx="3603" cy="677.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="3612" y="681.187">sumDurations : uint64_t</text><ellipse cx="3603" cy="690.7813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="3612" y="693.9917">numCalls : uint64_t</text><ellipse cx="3603" cy="703.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="3612" y="706.7964">numTimeouts : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3593" x2="3798.5" y1="664.5742" y2="664.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="3798.5" y="667.8823">URT_CFG_RPC_PROFLING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3987.5" x2="4193" y1="664.5742" y2="664.5742"/><ellipse cx="3603" cy="733.1953" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="3612" y="736.4058">minDuration : urt_delay_t</text><ellipse cx="3603" cy="746" fill="none" 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="3612" y="749.2104">maxDuration : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3593" x2="3660" y1="719.793" y2="719.793"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="466" x="3660" y="723.1011">URT_CFG_RPC_PROFILING == true &amp;&amp; URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4126" x2="4193" y1="719.793" y2="719.793"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3593" x2="4193" y1="755.8047" y2="755.8047"/><ellipse cx="3603" cy="766.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="576" x="3612" y="770.0151">urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t</text><ellipse cx="3603" cy="779.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="557" x="3612" y="782.8198">urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[89d25e87afdd75480e1ec2bd05524873]
28
class urt_core_t--><rect fill="#FEFECE" filter="url(#f1caui93febe6e)" height="196.8516" id="urt_core_t" style="stroke: #A80036; stroke-width: 1.5;" width="515" x="1593.5" y="28.9531"/><ellipse cx="1815.25" cy="44.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1814.7344,45.5156 Q1812.875,44.8125 1812.2188,44.0469 Q1811.5781,43.2656 1811.5781,41.9531 Q1811.5781,40.2656 1812.6563,39.2969 Q1813.7344,38.3281 1815.6094,38.3281 Q1816.4688,38.3281 1817.3125,38.5313 Q1818.1719,38.7188 1819.0156,39.1094 L1819.0156,41.5 Q1818.2344,40.9375 1817.4063,40.6563 Q1816.5938,40.3594 1815.7969,40.3594 Q1814.9219,40.3594 1814.4375,40.7188 Q1813.9688,41.0781 1813.9688,41.7344 Q1813.9688,42.25 1814.3125,42.5938 Q1814.6563,42.9219 1815.75,43.3281 L1816.8125,43.7344 Q1818.2969,44.2813 1819,45.1875 Q1819.7188,46.0938 1819.7188,47.4688 Q1819.7188,49.3438 1818.6094,50.2656 Q1817.5,51.1875 1815.25,51.1875 Q1814.3281,51.1875 1813.4063,50.9688 Q1812.4844,50.75 1811.625,50.3281 L1811.625,47.7969 Q1812.5938,48.4844 1813.5156,48.8281 Q1814.4375,49.1719 1815.3281,49.1719 Q1816.2344,49.1719 1816.7344,48.7656 Q1817.2344,48.3438 1817.2344,47.6094 Q1817.2344,47.0469 1816.8906,46.6406 Q1816.5625,46.2188 1815.9375,45.9688 L1814.7344,45.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="1835.75" y="49.1074">urt_core_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1594.5" x2="2107.5" y1="60.9531" y2="60.9531"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1601.5" y="68.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="1613.5" y="75.1636">_nodes : urt_node_t*</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1601.5" y="81.7578"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="192" x="1613.5" y="87.9683">_evtSource : urt_osEventSource_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1601.5" y="94.5625"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="1613.5" y="100.7729">_lock : urt_osMutex_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1601.5" y="124.1719"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="134" x="1613.5" y="130.3823">_pubsub : urt_pubsub_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1594.5" x2="1746" y1="113.7695" y2="113.7695"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="1746" y="117.0776">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1956" x2="2107.5" y1="113.7695" y2="113.7695"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1601.5" y="153.7813"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="86" x="1613.5" y="159.9917">_rpc : urt_rpc_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1594.5" x2="1758.5" y1="143.3789" y2="143.3789"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="1758.5" y="146.687">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1943.5" x2="2107.5" y1="143.3789" y2="143.3789"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1594.5" x2="2107.5" y1="166.5859" y2="166.5859"/><ellipse cx="1604.5" cy="177.5859" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="1613.5" y="180.7964">urtCoreInit (void) : urt_status_t</text><ellipse cx="1604.5" cy="190.3906" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="222" x="1613.5" y="193.6011">urtCoreStartNodes (void) : urt_status_t</text><ellipse cx="1604.5" cy="203.1953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="489" x="1613.5" y="206.4058">urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodestage_t) : urt_status_t</text><ellipse cx="1604.5" cy="216" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="1613.5" y="219.2104">urtCoreStopNodes (void) : urt_status_t</text><!--MD5=[182342162f0b9b45ddce11acc6582c59]
29
reverse link urt_node_t to urt_node_t--><path d="M1138.4188,351.2153 C1152.8891,357.5199 1161,365.0991 1161,373.9531 C1161,385.0639 1148.2271,394.1675 1126.1426,401.2636 " fill="none" id="urt_node_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1126.1426,346.6426,1130.3689,352.4854,1137.3878,350.8314,1133.1615,344.9886,1126.1426,346.6426" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1133.9634" y="343.2206">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1134.0759" y="398.6097">0..1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
30
reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M459.3833,471.1515 C393.4561,531.9077 316.3626,606.151 277.4902,647.1095 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="469.0233,462.2908,461.899,463.4062,460.1884,470.4115,467.3128,469.2961,469.0233,462.2908" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="452.3392" y="481.9982">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="273.7163" y="636.3019">1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
31
reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M489.3695,465.9568 C426.3813,527.6204 343.3784,604.976 294.1218,647.1095 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t-1" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="493.1095,462.2908,483.8822,465.7343,489.5388,465.7908,489.4822,471.4474,493.1095,462.2908" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b913f036db99e36b937989146817bd94]
32
reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M642.8131,472.6482 C690.6376,533.1226 752.0445,606.4867 789.6584,647.1095 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="634.6566,462.2908,635.2263,469.4794,642.081,471.7184,641.5113,464.5298,634.6566,462.2908" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="631.1714" y="481.9982">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="773.9567" y="636.3019">1</text><!--MD5=[b913f036db99e36b937989146817bd94]
33
reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M662.1912,466.3255 C714.7546,527.9285 776.6055,605.0599 806.2901,647.1095 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t-1" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="658.7428,462.2908,661.5494,471.7313,661.9913,466.0918,667.6309,466.5337,658.7428,462.2908" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0c465c1a61dfd99ff8b5568ca35c92d1]
34
reverse link urt_srtdata_t to urt_srtusefulnessfunc_t--><path d="M3026.5955,1420.4523 C3030.1293,1452.3446 3034.5801,1492.5133 3037.592,1519.6963 " fill="none" id="urt_srtdata_t&lt;-urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3025.144,1407.3528,3021.8292,1413.7569,3026.4657,1419.2798,3029.7805,1412.8757,3025.144,1407.3528" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3017.167" y="1426.6173">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3010.4141" y="1508.9066">0..1</text><!--MD5=[3f22cd2af9b1d30da63b75b4db75ae6e]
35
reverse link urt_rtclassdata_t to urt_hrtdata_t--><path d="M3053.3837,1223.5976 C3130.7011,1256.936 3161.6812,1245.0635 3241,1279.9531 C3242.1284,1280.4494 3243.2588,1280.9522 3244.391,1281.4611 " fill="none" id="urt_rtclassdata_t&lt;-urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3041.0974,1218.0935,3044.9377,1224.197,3052.0487,1222.9996,3048.2084,1216.8961,3041.0974,1218.0935" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3049.0481" y="1219.2955">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3212.5631" y="1273.8805">0..1</text><!--MD5=[a94a8c9c209e194384613684e912df80]
36
reverse link urt_rtclassdata_t to urt_frtdata_t--><path d="M2883.1418,1217.1585 C2881.0827,1218.115 2879.0333,1219.0481 2877,1219.9531 C2803.7992,1252.5322 2780.3044,1247.6078 2707,1279.9531 C2700.9455,1282.6246 2694.8117,1285.428 2688.6478,1288.3264 " fill="none" id="urt_rtclassdata_t&lt;-urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2894.9979,1211.459,2887.8572,1210.4536,2884.1827,1216.6583,2891.3234,1217.6637,2894.9979,1211.459" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2879.0571" y="1211.9768">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2696.4776" y="1281.0736">0..1</text><!--MD5=[e6a6d7a2212fadf5661857a71d4f05c3]
37
reverse link urt_rtclassdata_t to urt_srtdata_t--><path d="M2984.5458,1232.7341 C2993.2761,1265.596 3003.6927,1304.8059 3011.1511,1332.8803 " fill="none" id="urt_rtclassdata_t&lt;-urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2981.1692,1220.024,2978.8439,1226.8499,2984.2504,1231.6217,2986.5757,1224.7958,2981.1692,1220.024" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2974.4586" y="1240.1105">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2983.1227" y="1321.7774">0..1</text><!--MD5=[206fe31eaf8244c7272230bb0ec7137c]
38
reverse link urt_rtclassdata_t to urt_nrtdata_t--><path d="M2894.5293,1228.6517 C2876.4828,1244.4347 2857.8192,1262.1156 2842,1279.9531 C2823.7146,1300.5715 2806.4453,1326.9451 2794.9806,1345.8032 " fill="none" id="urt_rtclassdata_t&lt;-urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2904.4696,1220.0896,2897.313,1220.9746,2895.3774,1227.9211,2902.534,1227.0361,2904.4696,1220.0896" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2886.9731" y="1240.1853">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2771.4881" y="1334.7768">0..1</text><!--MD5=[1ba55993ff077c77667f6c7be6552d53]
39
reverse link urt_rtdata_t to urt_rtclass_t--><path d="M2896.7915,1025.011 C2873.9802,1054.1672 2844.8263,1091.43 2821.7392,1120.9388 " fill="none" id="urt_rtdata_t&lt;-urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2904.8857,1014.6654,2898.0381,1016.9261,2897.4913,1024.1165,2904.3388,1021.8558,2904.8857,1014.6654" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2891.4011" y="1034.1811">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2818.6244" y="1109.982">1</text><!--MD5=[8318054091d2ecf2336b9e490f482e2a]
40
reverse link urt_rtdata_t to urt_rtclassdata_t--><path d="M2942.8551,1027.7189 C2947.9162,1056.448 2954.2384,1092.336 2959.2773,1120.9388 " fill="none" id="urt_rtdata_t&lt;-urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2940.5555,1014.6654,2937.6571,1021.2684,2942.6374,1026.4834,2945.5358,1019.8805,2940.5555,1014.6654" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2932.9788" y="1034.1811">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2949.4882" y="1109.982">1</text><!--MD5=[b6ee30948a218449c72edbee7363b5d7]
41
link urt_subscriber_t to urt_hrtdata_t--><path d="M3037.8065,834.1142 C3126.2411,967.1506 3250.7259,1154.419 3326.6904,1268.696 " fill="none" id="urt_subscriber_t-&gt;urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3333.8875,1279.523,3333.8971,1272.3119,3327.2444,1269.5296,3327.2348,1276.7407,3333.8875,1279.523" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3018.2534" y="854.1094">0..1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3320.7785" y="1268.7895">1</text><!--MD5=[536025241394544a90bc53fb552f3a08]
42
reverse link urt_message_t to urt_message_t--><path d="M2359.9841,952.7119 C2374.0653,958.6277 2382.5,966.8747 2382.5,977.4531 C2382.5,990.8593 2368.9528,1000.5213 2347.534,1006.4389 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2347.534,948.4673,2351.9223,954.1895,2358.892,952.3396,2354.5038,946.6175,2347.534,948.4673" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2355.7829" y="944.221">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2355.3281" y="1004.209">0..1</text><!--MD5=[f7eb638a1c2d853c6fb0ae6f53692e50]
43
reverse link urt_subscriber_t to urt_rtdata_t--><path d="M2934,847.7383 C2934,882.7014 2934,916.1808 2934,940.367 " fill="none" id="urt_subscriber_t&lt;-urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2934,834.282,2930,840.282,2934,846.282,2938,840.282,2934,834.282" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2925.8063" y="854.2853">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2925.2625" y="929.2616">1</text><!--MD5=[bf7bf5810813e0e9b75d3053dc098443]
44
reverse link urt_subscriber_t to urt_topic_t--><path d="M2386.6352,677.9531 C2373.4526,677.9531 2360.27,677.9531 2347.0874,677.9531 " fill="none" id="urt_subscriber_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2399.8178,677.9531,2393.8178,673.9531,2387.8178,677.9531,2393.8178,681.9531,2399.8178,677.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2384.2496" y="674.9148">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2355.0596" y="674.7245">0..1</text><!--MD5=[d3b08a81de663c21a5ec062e6c430f2b]
45
reverse link urt_topic_t to urt_subscriber_t--><path d="M2360.27,677.9531 C2373.4526,677.9531 2386.6352,677.9531 2399.8178,677.9531 " fill="none" id="urt_topic_t&lt;-urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2347.0874,677.9531,2353.0874,681.9531,2359.0874,677.9531,2353.0874,673.9531,2347.0874,677.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2354.7471" y="690.3104">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2368.1371" y="690.1258">0..1</text><!--MD5=[67fd999c5486ad1c37ee9b77e12afd1b]
46
reverse link urt_subscriber_t to urt_message_t--><path d="M2498.8513,838.4544 C2446.6731,857.6999 2395.1403,876.7074 2347.7239,894.1966 " fill="none" id="urt_subscriber_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2511.0547,833.9533,2504.0412,832.2768,2499.7961,838.106,2506.8096,839.7825,2511.0547,833.9533" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2482.3745" y="853.9407">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2355.5242" y="888.2838">0..1</text><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
47
reverse link urt_publisher_t to urt_topic_t--><path d="M1940.8249,677.9531 C1948.1324,677.9531 1955.44,677.9531 1962.7475,677.9531 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1927.6714,677.9531,1933.6714,681.9531,1939.6714,677.9531,1933.6714,673.9531,1927.6714,677.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1935.4647" y="674.8708">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1947.0814" y="674.7245">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
48
link urt_publisher_t to urt_message_t--><path d="M1671.8428,742.5714 C1755.2984,786.1166 1866.3158,844.043 1957.2179,891.4736 " 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="1961.8043,893.8666,1955.6756,886.157,1957.3715,891.5536,1951.9748,893.2495,1961.8043,893.8666" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
49
reverse link urt_topic_t to urt_topic_t--><path d="M2359.0439,637.2233 C2373.3061,646.52 2382,660.0966 2382,677.9531 C2382,700.3613 2368.309,716.0295 2347.1039,724.9578 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2347.1039,630.9484,2350.5542,637.2805,2357.7262,636.531,2354.2759,630.199,2347.1039,630.9484" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2354.7642" y="625.8836">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2355.0767" y="723.5653">0..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
50
reverse link urt_topic_t to urt_message_t--><path d="M2127.9449,808.6218 C2124.4889,837.4407 2121.5662,867.2179 2119.6574,893.59 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2129.5686,795.4638,2124.8639,800.9288,2128.0989,807.3735,2132.8037,801.9085,2129.5686,795.4638" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2119.5912" y="815.9254">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2094.4248" y="882.8007">1..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
51
reverse link urt_topic_t to urt_message_t--><path d="M2154.0046,808.6218 C2151.1263,837.4407 2147.4661,867.2179 2143.5046,893.59 " fill="none" id="urt_topic_t&lt;-urt_message_t-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2155.2702,795.4638,2150.714,801.0532,2154.1211,807.4087,2158.6773,801.8193,2155.2702,795.4638" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2147.0196" y="815.9254">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2137.0089" y="882.8007">1</text><!--MD5=[d97285d52857c028121a6b5bc3935d87]
52
reverse link urt_pubsub_t to urt_topic_t--><path d="M1903.7677,426.7208 C1940.6176,463.5707 1991.2892,514.2423 2037.4771,560.4302 " fill="none" id="urt_pubsub_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1894.2329,417.186,1895.6471,424.2571,1902.7182,425.6713,1901.304,418.6002,1894.2329,417.186" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1892.4856" y="437.3161">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2005.1795" y="549.4836">0..1</text><!--MD5=[8d27a615fd5a1da0f7adeab7e6eca6da]
53
link urt_pubsub_t to urt_publisher_t--><!--MD5=[05f2c35569573d3273c65d3342945557]
54
reverse link urt_service_t to urt_service_t--><path d="M4205.7882,642.7778 C4220.4237,651.6505 4229,663.3756 4229,677.9531 C4229,696.0688 4215.7552,709.7795 4194.0965,719.085 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="4194.0965,636.8212,4197.6268,643.109,4204.7888,642.2687,4201.2585,635.9808,4194.0965,636.8212" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4202.2006" y="632.592">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4202.4131" y="717.0409">0..1</text><!--MD5=[586e61fedafd54ae7ea71cebd9f9032a]
55
reverse link urt_service_t to urt_servicefunc_t--><path d="M3893,802.0677 C3893,855.1217 3893,912.6003 3893,946.7887 " fill="none" id="urt_service_t&lt;-urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3893,789.0502,3889,795.0502,3893,801.0502,3897,795.0502,3893,789.0502" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3884.7188" y="809.4444">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3866.525" y="936.018">0..1</text><!--MD5=[44e85a81cd85acd5638164304275c8f6]
56
reverse link urt_rpc_t to urt_service_t--><path d="M3840.0075,430.1113 C3848.1844,468.354 3859.2845,520.2683 3869.2132,566.7039 " fill="none" id="urt_rpc_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3837.2439,417.186,3834.5869,423.8898,3839.7531,428.9208,3842.4101,422.217,3837.2439,417.186" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3830.0796" y="437.3161">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3842.8088" y="555.7813">0..1</text><!--MD5=[694e7400eb99f74d44ea388aed89d199]
57
reverse link urt_core_t to urt_node_t--><path d="M1580.3284,177.6924 C1450.6746,201.9315 1293.2316,231.6194 1152,258.9531 C1107.2997,267.6043 1060.6748,276.7228 1014.145,285.8846 " fill="none" id="urt_core_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1593.1866,175.2894,1586.5539,172.4598,1581.3908,177.494,1588.0236,180.3236,1593.1866,175.2894" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1577.414" y="173.558">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1026.9387" y="274.7423">0..1</text><!--MD5=[126a576c1462f30ade8ec99c3bc39be3]
58
reverse link urt_core_t to urt_pubsub_t--><path d="M1851,239.5861 C1851,271.9439 1851,305.3322 1851,330.7318 " fill="none" id="urt_core_t&lt;-urt_pubsub_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1851,226.2938,1847,232.2938,1851,238.2938,1855,232.2938,1851,226.2938" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1842.7188" y="245.8477">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1825.1625" y="320.0105">0..1</text><!--MD5=[d3daad950a97bef6626a3189265b6c3e]
59
reverse link urt_core_t to urt_rpc_t--><path d="M2121.8688,136.5188 C2536.5475,152.3569 3308.7951,190.1256 3576,258.9531 C3637.9383,274.9074 3703.5368,305.3241 3752.2745,330.8697 " fill="none" id="urt_core_t&lt;-urt_rpc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2108.792,136.0221,2114.6358,140.247,2120.7833,136.4777,2114.9395,132.2528,2108.792,136.0221" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2116.5639" y="133.1249">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3714.2932" y="319.8525">0..1</text><!--MD5=[1a7d90abfae25345a6c43983ff1c319b]
60
@startuml
61

    
62
title **µRtWare**
63

    
64

    
65

    
66

    
67

    
68

    
69

    
70

    
71

    
72

    
73

    
74

    
75

    
76
  class urt_core_t <<S,BFAFFF>> {
77
  - {field} {static} _nodes : urt_node_t*
78
  - {field} {static} _evtSource : urt_osEventSource_t
79
  - {field} {static} _lock : urt_osMutex_t
80
  .. URT_CFG_PUBSUB_ENABLED == true ..
81
  - {field} {static} _pubsub : urt_pubsub_t
82
  .. URT_CFG_RPC_ENABLED == true ..
83
  - {field} {static} _rpc : urt_rpc_t
84
  __
85
  + {method} urtCoreInit (void) : urt_status_t
86
  + {method} urtCoreStartNodes (void) : urt_status_t
87
  + {method} urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodestage_t) : urt_status_t
88
  + {method} urtCoreStopNodes (void) : urt_status_t
89
}
90

    
91
  package "node" <<Rectangle>> {
92
    class urt_nodeSetupCallback_t <<T,00CFFF>> {
93
    urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t
94
  }
95

    
96
    class urt_nodeLoopCallback_t <<T,00CFFF>> {
97
    urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t
98
  }
99

    
100
    class urt_node_t <<S,BFAFFF>> {
101
    + {field} next : urt_node_t*
102
    + {field} thread : urt_osThread_t*
103
    + {field} setupcallback : urt_nodeSetupCallback_t*
104
    + {field} setupparams : void*
105
    + {field} loopcallback : urt_nodeLoopCallback_t*
106
    + {field} loopparams : void*
107
    + {field} stage : urt_nodestage_t
108
    + {field} listener : urt_osEventListener_t
109
    __
110
    - {method} {static} _main : urt_osThreadFunction_t
111
    + {method} urtNodeInit (node : urt_node_t*, stacksize : size_t, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t
112
  }
113
} 
114

    
115
  package "Publish-Subscribe System" <<Node>> {
116

    
117
  class urt_message_t <<S,BFAFFF>> {
118
  + {field} next : urt_message_t*
119
  + {field} payload : void*
120
  + {field} originTime : urt_osTime_t
121
  + {field} lock : urt_osMutex_t
122
  + {field} numHrtConsumersLeft : unsigned int
123
  + {field} hrtConsumersLeft : urt_osCondvar_t
124
  .. URT_CFG_PUBSUB_PROFILING == true ..
125
  + {field} numConsumersLeft : unsigned int
126
  __
127
  + {method} urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t
128
}
129

    
130
  package "subscriber" <<Rectangle>> {
131
    package "real-time constraint data" <<Rectangle>> {
132
      class urt_rtdata_t <<S,BFAFFF>> {
133
      + {field} class : urt_rtconstraintclass_t
134
      + {field} params : urt_rtconstraintsparams_t
135
    }
136

    
137
      class urt_rtclass_t <<E,FF7F3F>> {
138
      URT_RTCLASS_HARD = 0
139
      URT_RTCLASS_FIRM = 1
140
      URT_RTCLASS_SOFT = 2
141
      URT_RTCLASS_NONE = 3
142
    }
143

    
144
      class urt_rtclassdata_t <<U,7FCF7F>> {
145
      + {field} hrt : urt_hrtparams_t
146
      + {field} frt : urt_frtparams_t
147
      + {field} srt : urt_srtparans_t
148
      + {field} nrt : urt_nrtparams_t
149
    }
150

    
151
      class urt_hrtdata_t <<S,BFAFFF>> {
152
      + {field} next : urt_subscriber_t*
153
      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
154
      + {field} qosDeadlineTimer : urt_osTimer_t
155
      + {field} deadlineOffset : urt_delay_t
156
      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
157
      + {field} expectedRate : urt_delay_t
158
      .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
159
      + {field} maxJitter : urt_delay_t
160
      + {field} minLatency : urt_delay_t
161
      + {field} maxLatency : urt_delay_t
162
    }
163

    
164
      class urt_frtdata_t <<S,BFAFFF>> {
165
      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
166
      + {field} qosDeadlineTimer : urt_osTimer_t
167
      + {field} deadlineOffset : urt_delay_t
168
      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
169
      + {field} expectedRate : urt_delay_t
170
      .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
171
      + {field} maxJitter : urt_delay_t
172
      + {field} minLatency : urt_delay_t
173
      + {field} maxLatency : urt_delay_t
174
    }
175

    
176
      package "SRT data" <<Rectangle>> {
177
        class urt_srtusefulnessfunc_t <<F,E0E0E0>> {
178
        urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
179
      }
180

    
181
        class urt_srtdata_t <<S,BFAFFF>> {
182
        + {field} usefullnesscb : urt_srtusefulnessfunc_t*
183
        + {field} cbparams : void*
184
      }
185
    } 
186

    
187
      class urt_nrtdata_t <<S,BFAFFF>> {
188
    }
189
  } 
190

    
191
    class urt_subscriber_t <<S,BFAFFF>> {
192
    + {field} topic : urt_topic_t*
193
    + {field} evtListener : urt_osEventListener_t
194
    + {field} rtconstraints : urt_rtconstaints_t*
195
    + {field} lastMessage : urt_message_t*
196
    + {field} lastMessageTime : urt_osTime_t
197
    .. URT_CFG_PUBSUB_PROFILING == true ..
198
    + {field} sumLatencies : uint64_t
199
    + {field} numMessagesReceived : uint64_t
200
    .. URT_CFG_PUBSUB_PROFILING == true && URT_CFG_PUBSUB_QOS_JITTERCHECKS == false ..
201
    + {field} minLatency : urt_delay_t
202
    + {field} maxLatency : urt_delay_t
203
    __
204
    + {method} urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t
205
    + {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
206
    + {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
207
    + {method} urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
208
    + {method} urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
209
    + {method} urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t
210
    + {method} urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
211
    + {method} urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
212
    + {method} urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float
213
  }
214
} 
215

    
216
  class urt_publisher_t <<S,BFAFFF>> {
217
  + {field} topic : urt_topic_t*
218
  .. URT_CFG_PROFILING == true ..
219
  + {field} publishAttempts : uint64_t
220
  + {field} publishFails : uint64_t
221
  __
222
  + {method} urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
223
  + {method} urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t
224
}
225

    
226
  class urt_topic_t <<S,BFAFFF>> {
227
  + {field} next : urt_topic_t*
228
  + {field} id : urt_topicid_t
229
  + {field} lock : urt_osMutex_t
230
  + {field} evtSource : urt_osEventSource_t
231
  + {field} numHrtSubscribers : unsigned int
232
  + {field} hrtSubscribers : urt_subscriber_t*
233
  + {field} mandatoryMessage : urt_message_t
234
  + {field} latestMessage : urt_message_t*
235
  .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
236
  + {field} qosRateTimer : urt_osTimer_t
237
  .. URT_CFG_PUBSUB_PROFILING == true ..
238
  + {field} numDiscardedMessages : uint64_t
239
  + {field} numSubscribers : unsigned int
240
  __
241
  + {method} urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t
242
}
243

    
244
  class urt_pubsub_t <<S,BFAFFF>> {
245
  - {field} {static} _topics : urt_topic_t*
246
  __
247
  + {method} urtPubsubInit (void) : urt_status_t
248
  + {method} urtPubsubRetrieveTopic (id : urt_topicid_t) : urt_topic_t*
249
}
250

    
251
}
252

    
253
  package "Remote Procedure Call System" <<Node>> {
254

    
255
  package "service" <<Rectangle>> {
256
    class urt_servicefunc_t <<F,E0E0E0>> {
257
    urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t
258
  }
259

    
260
    class urt_service_t <<S,BFAFFF>> {
261
    + {field} next : urt_service_t*
262
    + {field} id : urt_serviceid_t
263
    + {field} lock : urt_osMutex_t
264
    + {field} callback : urt_servicefunc_t*
265
    .. URT_CFG_RPC_PROFLING == true ..
266
    + {field} sumDurations : uint64_t
267
    + {field} numCalls : uint64_t
268
    + {field} numTimeouts : uint64_t
269
    .. URT_CFG_RPC_PROFILING == true && URT_CFG_RPC_QOS_JITTERCHECKS == true ..
270
    + {field} minDuration : urt_delay_t
271
    + {field} maxDuration : urt_delay_t
272
    __
273
    + {method} urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t
274
    + {method} urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t
275
  }
276
}
277

    
278
  class urt_rpc_t <<S,BFAFFF>> {
279
  - {field} {static} _services : urt_service_t*
280
  __
281
  + {method} urtRpcInit (void) : urt_status_t
282
  + {method} urtRpcRetrieveService (id : urt_serviceid_t) : urt_service_t*
283
}
284

    
285
}
286

    
287

    
288

    
289

    
290
urt_node_t "1" o- - "0..1" urt_node_t
291
urt_node_t "1" o- - "1" urt_nodeSetupCallback_t
292
urt_node_t <.. urt_nodeSetupCallback_t
293
urt_node_t "1" o- - "1" urt_nodeLoopCallback_t
294
urt_node_t <.. urt_nodeLoopCallback_t
295

    
296

    
297
urt_srtdata_t "1" o- - "0..1" urt_srtusefulnessfunc_t
298

    
299
urt_rtclassdata_t "1" *- - "0..1" urt_hrtdata_t
300
urt_rtclassdata_t "1" *- - "0..1" urt_frtdata_t
301
urt_rtclassdata_t "1" *- - "0..1" urt_srtdata_t
302
urt_rtclassdata_t "1" *- - "0..1" urt_nrtdata_t
303

    
304
urt_rtdata_t "1" *- - "1" urt_rtclass_t
305
urt_rtdata_t "1" *- - "1" urt_rtclassdata_t
306

    
307
urt_hrtdata_t "1" o-up- "0..1" urt_subscriber_t
308

    
309
urt_message_t "1" o- - "0..1" urt_message_t
310

    
311
urt_subscriber_t "1" *- - "1" urt_rtdata_t
312
urt_subscriber_t "1" o- "0..1" urt_topic_t
313
urt_subscriber_t "1" o- - "0..1" urt_message_t
314

    
315
urt_publisher_t "1" o- "1" urt_topic_t
316
urt_publisher_t ..> urt_message_t
317

    
318
urt_topic_t "1" o- - "0..1" urt_topic_t
319
urt_topic_t "1" o- "0..1" urt_subscriber_t
320
urt_topic_t "1" o- - "1..1" urt_message_t
321
urt_topic_t "1" *- - "1" urt_message_t
322

    
323
urt_pubsub_t "1" o- - "0..1" urt_topic_t
324
urt_pubsub_t -[hidden]-> urt_publisher_t
325

    
326

    
327

    
328
urt_service_t "1" o- - "0..1" urt_service_t
329
urt_service_t "1" o- - "0..1" urt_servicefunc_t
330

    
331
urt_rpc_t "1" o- - "0..1" urt_service_t
332

    
333

    
334
urt_core_t "1" o- - "0..1" urt_node_t
335
urt_core_t "1" *- - "0..1" urt_pubsub_t
336
urt_core_t "1" *- - "0..1" urt_rpc_t
337

    
338

    
339

    
340
@enduml
341

    
342
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
343
(GPL source distribution)
344
Java Runtime: OpenJDK Runtime Environment
345
JVM: OpenJDK 64-Bit Server VM
346
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
347
Operating System: Linux
348
Default Encoding: UTF-8
349
Language: en
350
Country: US
351
--></g></svg>