Statistics
| Branch: | Revision:

urtware / doc / classdiagrams / urtware.svg @ 5b7188aa

History | View | Annotate | Download (135.289 KB)

1 6c5df8c1 Thomas Schöpping
<?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="1144px" preserveAspectRatio="none" style="width:10337px;height:1144px;" version="1.1" viewBox="0 0 10337 1144" width="10337px" zoomAndPan="magnify"><defs><filter height="300%" id="f8on3nil7jvs5" 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="5126" y="16.708">µRtWare</text><!--MD5=[b9de0669a29c7bc934fd916b09c39491]
2
cluster node--><rect fill="#FFFFFF" filter="url(#f8on3nil7jvs5)" height="443" style="stroke: #000000; stroke-width: 1.5;" width="1674" x="5349" y="451.4531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="6166" y="466.4482">node</text><!--MD5=[d74e2ef346f73688f9378f6d3d42598c]
3
cluster Publish-Subscribe System--><polygon fill="#FFFFFF" filter="url(#f8on3nil7jvs5)" points="14,410.4531,24,400.4531,5341,400.4531,5341,1122.9531,5331,1132.9531,14,1132.9531,14,410.4531" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="5331" x2="5340" y1="410.4531" y2="401.4531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="14" x2="5331" y1="410.4531" y2="410.4531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="5331" x2="5331" y1="410.4531" y2="1132.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="205" x="2571" y="426.4482">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
4
cluster subscriber--><rect fill="#FFFFFF" filter="url(#f8on3nil7jvs5)" height="498.5" style="stroke: #000000; stroke-width: 1.5;" width="4062" x="1271" y="432.4531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="3259.5" y="447.4482">subscriber</text><!--MD5=[810d0f07e53ef611b6d803ef30301147]
5
cluster Remote Procedure Call System--><polygon fill="#FFFFFF" filter="url(#f8on3nil7jvs5)" points="7031,46.9531,7041,36.9531,10315,36.9531,10315,726.9531,10305,736.9531,7031,736.9531,7031,46.9531" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="10305" x2="10314" y1="46.9531" y2="37.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="7031" x2="10305" y1="46.9531" y2="46.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="10305" x2="10305" y1="46.9531" y2="736.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="244" x="8547" y="62.9482">Remote Procedure Call System</text><!--MD5=[ecaf13b018fb9788c80013f5b3634b61]
6
cluster request--><rect fill="#FFFFFF" filter="url(#f8on3nil7jvs5)" height="632" style="stroke: #000000; stroke-width: 1.5;" width="2646" x="7661" y="68.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="62" x="8953" y="83.9482">request</text><!--MD5=[a7dea26996a1231aa68629b332780450]
7
class urt_nodeSetupCallback_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="60.8047" id="urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="456" x="5357" y="825.4531"/><ellipse cx="5502.75" cy="841.4531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5503.5938,848.2031 L5501.1406,848.2031 L5501.1406,837.9531 L5498,837.9531 L5498,835.8125 L5506.7344,835.8125 L5506.7344,837.9531 L5503.5938,837.9531 L5503.5938,848.2031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="5523.25" y="845.6074">urt_nodeSetupCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5358" x2="5812" y1="857.4531" y2="857.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5358" x2="5812" y1="865.4531" y2="865.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="444" x="5363" y="879.6636">urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t</text><!--MD5=[7f869e17e281b89d59a4c09e0f22c3af]
8
class urt_nodeLoopCallback_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="60.8047" id="urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="614" x="5848" y="825.4531"/><ellipse cx="6076.25" cy="841.4531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6077.0938,848.2031 L6074.6406,848.2031 L6074.6406,837.9531 L6071.5,837.9531 L6071.5,835.8125 L6080.2344,835.8125 L6080.2344,837.9531 L6077.0938,837.9531 L6077.0938,848.2031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="6096.75" y="845.6074">urt_nodeLoopCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5849" x2="6461" y1="857.4531" y2="857.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5849" x2="6461" y1="865.4531" y2="865.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="602" x="5854" y="879.6636">urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t</text><!--MD5=[843db13320bebc2ca47f25c6a57c2ae5]
9
class urt_nodeShutdownCallback_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="60.8047" id="urt_nodeShutdownCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="518" x="6497" y="825.4531"/><ellipse cx="6661.25" cy="841.4531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6662.0938,848.2031 L6659.6406,848.2031 L6659.6406,837.9531 L6656.5,837.9531 L6656.5,835.8125 L6665.2344,835.8125 L6665.2344,837.9531 L6662.0938,837.9531 L6662.0938,848.2031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="181" x="6681.75" y="845.6074">urt_nodeShutdownCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6498" x2="7014" y1="857.4531" y2="857.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6498" x2="7014" y1="865.4531" y2="865.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="506" x="6503" y="879.6636">urt_nodeShutdownCallback_t (node : urt_node_t*, cause : urt_status_t, arg : void*) : void</text><!--MD5=[d2563153d77472384a15c07b815d639f]
10
class urt_node_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="231.2656" id="urt_node_t" style="stroke: #A80036; stroke-width: 1.5;" width="1541" x="5384.5" y="478.4531"/><ellipse cx="6117.25" cy="494.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6116.7344,495.0156 Q6114.875,494.3125 6114.2188,493.5469 Q6113.5781,492.7656 6113.5781,491.4531 Q6113.5781,489.7656 6114.6563,488.7969 Q6115.7344,487.8281 6117.6094,487.8281 Q6118.4688,487.8281 6119.3125,488.0313 Q6120.1719,488.2188 6121.0156,488.6094 L6121.0156,491 Q6120.2344,490.4375 6119.4063,490.1563 Q6118.5938,489.8594 6117.7969,489.8594 Q6116.9219,489.8594 6116.4375,490.2188 Q6115.9688,490.5781 6115.9688,491.2344 Q6115.9688,491.75 6116.3125,492.0938 Q6116.6563,492.4219 6117.75,492.8281 L6118.8125,493.2344 Q6120.2969,493.7813 6121,494.6875 Q6121.7188,495.5938 6121.7188,496.9688 Q6121.7188,498.8438 6120.6094,499.7656 Q6119.5,500.6875 6117.25,500.6875 Q6116.3281,500.6875 6115.4063,500.4688 Q6114.4844,500.25 6113.625,499.8281 L6113.625,497.2969 Q6114.5938,497.9844 6115.5156,498.3281 Q6116.4375,498.6719 6117.3281,498.6719 Q6118.2344,498.6719 6118.7344,498.2656 Q6119.2344,497.8438 6119.2344,497.1094 Q6119.2344,496.5469 6118.8906,496.1406 Q6118.5625,495.7188 6117.9375,495.4688 L6116.7344,495.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="67" x="6137.75" y="498.6074">urt_node_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5385.5" x2="6924.5" y1="510.4531" y2="510.4531"/><ellipse cx="5395.5" cy="521.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="102" x="5404.5" y="524.6636">next : urt_node_t*</text><ellipse cx="5395.5" cy="534.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="141" x="5404.5" y="537.4683">thread : urt_osThread_t*</text><ellipse cx="5395.5" cy="547.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="235" x="5404.5" y="550.2729">setupcallback : urt_nodeSetupCallback_t*</text><ellipse cx="5395.5" cy="559.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="117" x="5404.5" y="563.0776">setupparams : void*</text><ellipse cx="5395.5" cy="572.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="221" x="5404.5" y="575.8823">loopcallback : urt_nodeLoopCallback_t*</text><ellipse cx="5395.5" cy="585.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="109" x="5404.5" y="588.687">loopparams : void*</text><ellipse cx="5395.5" cy="598.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="281" x="5404.5" y="601.4917">shutdowncallback : urt_nodeShutdownCallback_t*</text><ellipse cx="5395.5" cy="611.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="140" x="5404.5" y="614.2964">shutdownparams : void*</text><ellipse cx="5395.5" cy="623.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="136" x="5404.5" y="627.1011">stage : urt_nodestage_t</text><ellipse cx="5395.5" cy="636.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="178" x="5404.5" y="639.9058">listener : urt_osEventListener_t</text><ellipse cx="5395.5" cy="666.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="88" x="5404.5" y="669.5151">loops : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5385.5" x2="5947" y1="652.9023" y2="652.9023"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="416" x="5947" y="656.2104">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6363" x2="6924.5" y1="652.9023" y2="652.9023"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5385.5" x2="6924.5" y1="676.1094" y2="676.1094"/><rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5392.5" y="684.1094"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="179" x="5404.5" y="690.3198">_main : urt_osThreadFunction_t</text><ellipse cx="5395.5" cy="699.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="1515" x="5404.5" y="703.1245">urtNodeInit (node : urt_node_t*, thread : urt_osThread_t*, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*, shutdowncallback : urt_nodeShutdownCallback_t*, shutodwnparams : void*) : void</text><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
11
class urt_message_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="141.6328" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="406" x="830" y="982.9531"/><ellipse cx="982.75" cy="998.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M982.2344,999.5156 Q980.375,998.8125 979.7188,998.0469 Q979.0781,997.2656 979.0781,995.9531 Q979.0781,994.2656 980.1563,993.2969 Q981.2344,992.3281 983.1094,992.3281 Q983.9688,992.3281 984.8125,992.5313 Q985.6719,992.7188 986.5156,993.1094 L986.5156,995.5 Q985.7344,994.9375 984.9063,994.6563 Q984.0938,994.3594 983.2969,994.3594 Q982.4219,994.3594 981.9375,994.7188 Q981.4688,995.0781 981.4688,995.7344 Q981.4688,996.25 981.8125,996.5938 Q982.1563,996.9219 983.25,997.3281 L984.3125,997.7344 Q985.7969,998.2813 986.5,999.1875 Q987.2188,1000.0938 987.2188,1001.4688 Q987.2188,1003.3438 986.1094,1004.2656 Q985,1005.1875 982.75,1005.1875 Q981.8281,1005.1875 980.9063,1004.9688 Q979.9844,1004.75 979.125,1004.3281 L979.125,1001.7969 Q980.0938,1002.4844 981.0156,1002.8281 Q981.9375,1003.1719 982.8281,1003.1719 Q983.7344,1003.1719 984.2344,1002.7656 Q984.7344,1002.3438 984.7344,1001.6094 Q984.7344,1001.0469 984.3906,1000.6406 Q984.0625,1000.2188 983.4375,999.9688 L982.2344,999.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="1003.25" y="1003.1074">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="831" x2="1235" y1="1014.9531" y2="1014.9531"/><ellipse cx="841" cy="1025.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="850" y="1029.1636">next : urt_message_t*</text><ellipse cx="841" cy="1038.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="850" y="1041.9683">payload : void*</text><ellipse cx="841" cy="1051.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="850" y="1054.7729">originTime : urt_osTime_t</text><ellipse cx="841" cy="1064.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="211" x="850" y="1067.5776">numHrtConsumersLeft : unsigned int</text><ellipse cx="841" cy="1093.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="194" x="850" y="1097.187">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="831" x2="924.5" y1="1080.5742" y2="1080.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="924.5" y="1083.8823">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1141.5" x2="1235" y1="1080.5742" y2="1080.5742"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="831" x2="1235" y1="1103.7813" y2="1103.7813"/><ellipse cx="841" cy="1114.7813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="380" x="850" y="1117.9917">urtMessageInit (message : urt_message_t*, payload : void*) : void</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
12
class urt_publisher_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="196.0469" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="783" x="22.5" y="495.9531"/><ellipse cx="363.25" cy="511.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M362.7344,512.5156 Q360.875,511.8125 360.2188,511.0469 Q359.5781,510.2656 359.5781,508.9531 Q359.5781,507.2656 360.6563,506.2969 Q361.7344,505.3281 363.6094,505.3281 Q364.4688,505.3281 365.3125,505.5313 Q366.1719,505.7188 367.0156,506.1094 L367.0156,508.5 Q366.2344,507.9375 365.4063,507.6563 Q364.5938,507.3594 363.7969,507.3594 Q362.9219,507.3594 362.4375,507.7188 Q361.9688,508.0781 361.9688,508.7344 Q361.9688,509.25 362.3125,509.5938 Q362.6563,509.9219 363.75,510.3281 L364.8125,510.7344 Q366.2969,511.2813 367,512.1875 Q367.7188,513.0938 367.7188,514.4688 Q367.7188,516.3438 366.6094,517.2656 Q365.5,518.1875 363.25,518.1875 Q362.3281,518.1875 361.4063,517.9688 Q360.4844,517.75 359.625,517.3281 L359.625,514.7969 Q360.5938,515.4844 361.5156,515.8281 Q362.4375,516.1719 363.3281,516.1719 Q364.2344,516.1719 364.7344,515.7656 Q365.2344,515.3438 365.2344,514.6094 Q365.2344,514.0469 364.8906,513.6406 Q364.5625,513.2188 363.9375,512.9688 L362.7344,512.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="383.75" y="516.1074">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="23.5" x2="804.5" y1="527.9531" y2="527.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="289" x="28.5" y="542.1636">URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT : bool</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="23.5" x2="804.5" y1="548.7578" y2="548.7578"/><ellipse cx="33.5" cy="559.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="104" x="42.5" y="562.9683">topic : urt_topic_t*</text><ellipse cx="33.5" cy="589.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="149" x="42.5" y="592.5776">publishAttempts : uint64_t</text><ellipse cx="33.5" cy="602.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="124" x="42.5" y="605.3823">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="23.5" x2="305.5" y1="575.9648" y2="575.9648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="305.5" y="579.2729">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="522.5" x2="804.5" y1="575.9648" y2="575.9648"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="23.5" x2="804.5" y1="611.9766" y2="611.9766"/><ellipse cx="33.5" cy="622.9766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="572" x="42.5" y="626.187">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : void</text><ellipse cx="33.5" cy="652.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="632" x="42.5" y="655.7964">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, bytes : size_t, t : urt_osTime_t) : urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="23.5" x2="260.5" y1="639.1836" y2="639.1836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="307" x="260.5" y="642.4917">URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == false</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="567.5" x2="804.5" y1="639.1836" y2="639.1836"/><ellipse cx="33.5" cy="682.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="757" x="42.5" y="685.4058">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, bytes : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="23.5" x2="263" y1="668.793" y2="668.793"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="302" x="263" y="672.1011">URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="565" x2="804.5" y1="668.793" y2="668.793"/><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
13
class urt_topic_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="260.875" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="841" y="463.4531"/><ellipse cx="995.75" cy="479.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M995.2344,480.0156 Q993.375,479.3125 992.7188,478.5469 Q992.0781,477.7656 992.0781,476.4531 Q992.0781,474.7656 993.1563,473.7969 Q994.2344,472.8281 996.1094,472.8281 Q996.9688,472.8281 997.8125,473.0313 Q998.6719,473.2188 999.5156,473.6094 L999.5156,476 Q998.7344,475.4375 997.9063,475.1563 Q997.0938,474.8594 996.2969,474.8594 Q995.4219,474.8594 994.9375,475.2188 Q994.4688,475.5781 994.4688,476.2344 Q994.4688,476.75 994.8125,477.0938 Q995.1563,477.4219 996.25,477.8281 L997.3125,478.2344 Q998.7969,478.7813 999.5,479.6875 Q1000.2188,480.5938 1000.2188,481.9688 Q1000.2188,483.8438 999.1094,484.7656 Q998,485.6875 995.75,485.6875 Q994.8281,485.6875 993.9063,485.4688 Q992.9844,485.25 992.125,484.8281 L992.125,482.2969 Q993.0938,482.9844 994.0156,483.3281 Q994.9375,483.6719 995.8281,483.6719 Q996.7344,483.6719 997.2344,483.2656 Q997.7344,482.8438 997.7344,482.1094 Q997.7344,481.5469 997.3906,481.1406 Q997.0625,480.7188 996.4375,480.4688 L995.2344,480.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="1016.25" y="483.6074">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="842" x2="1224" y1="495.4531" y2="495.4531"/><ellipse cx="852" cy="506.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="861" y="509.6636">next : urt_topic_t*</text><ellipse cx="852" cy="519.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="861" y="522.4683">id : urt_topicid_t</text><ellipse cx="852" cy="532.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="861" y="535.2729">lock : urt_osMutex_t</text><ellipse cx="852" cy="544.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="861" y="548.0776">evtSource : urt_osEventSource_t</text><ellipse cx="852" cy="557.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="861" y="560.8823">numHrtSubscribers : unsigned int</text><ellipse cx="852" cy="570.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="173" x="861" y="573.687">hrtReleased : urt_osCondvar_t</text><ellipse cx="852" cy="583.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="861" y="586.4917">mandatoryMessage : urt_message_t</text><ellipse cx="852" cy="596.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="861" y="599.2964">latestMessage : urt_message_t*</text><ellipse cx="852" cy="625.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="212" x="861" y="628.9058">hrtSubscribers : urt_hrtsubscriber_t*</text><ellipse cx="852" cy="638.5" fill="none" 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="861" y="641.7104">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="842" x2="900.5" y1="612.293" y2="612.293"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="900.5" y="615.6011">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1165.5" x2="1224" y1="612.293" y2="612.293"/><ellipse cx="852" cy="668.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="195" x="861" y="671.3198">numMessagesPublished : uint64_t</text><ellipse cx="852" cy="680.9141" fill="none" 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="861" y="684.1245">numMessagesDiscarded : uint64_t</text><ellipse cx="852" cy="693.7188" fill="none" 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="861" y="696.9292">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="842" x2="924.5" y1="654.707" y2="654.707"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="924.5" y="658.0151">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1141.5" x2="1224" y1="654.707" y2="654.707"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="842" x2="1224" y1="703.5234" y2="703.5234"/><ellipse cx="852" cy="714.5234" 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="861" y="717.7339">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--MD5=[50a042e24f957794dab9ba3ea8701c50]
14
class urt_basesubscriber_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="133.6328" id="urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="2564.5" y="788.9531"/><ellipse cx="2606.95" cy="804.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2606.4344,805.5156 Q2604.575,804.8125 2603.9188,804.0469 Q2603.2781,803.2656 2603.2781,801.9531 Q2603.2781,800.2656 2604.3563,799.2969 Q2605.4344,798.3281 2607.3094,798.3281 Q2608.1688,798.3281 2609.0125,798.5313 Q2609.8719,798.7188 2610.7156,799.1094 L2610.7156,801.5 Q2609.9344,800.9375 2609.1063,800.6563 Q2608.2938,800.3594 2607.4969,800.3594 Q2606.6219,800.3594 2606.1375,800.7188 Q2605.6688,801.0781 2605.6688,801.7344 Q2605.6688,802.25 2606.0125,802.5938 Q2606.3563,802.9219 2607.45,803.3281 L2608.5125,803.7344 Q2609.9969,804.2813 2610.7,805.1875 Q2611.4188,806.0938 2611.4188,807.4688 Q2611.4188,809.3438 2610.3094,810.2656 Q2609.2,811.1875 2606.95,811.1875 Q2606.0281,811.1875 2605.1063,810.9688 Q2604.1844,810.75 2603.325,810.3281 L2603.325,807.7969 Q2604.2938,808.4844 2605.2156,808.8281 Q2606.1375,809.1719 2607.0281,809.1719 Q2607.9344,809.1719 2608.4344,808.7656 Q2608.9344,808.3438 2608.9344,807.6094 Q2608.9344,807.0469 2608.5906,806.6406 Q2608.2625,806.2188 2607.6375,805.9688 L2606.4344,805.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="132" x="2627.05" y="809.1074">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2565.5" x2="2788.5" y1="820.9531" y2="820.9531"/><ellipse cx="2575.5" cy="831.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="2584.5" y="835.1636">topic : urt_topic_t*</text><ellipse cx="2575.5" cy="844.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="2584.5" y="847.9683">evtListener : urt_osEventListener_t</text><ellipse cx="2575.5" cy="857.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="175" x="2584.5" y="860.7729">lastMessage : urt_message_t*</text><ellipse cx="2575.5" cy="870.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="186" x="2584.5" y="873.5776">lastMessageTime : urt_osTime_t</text><ellipse cx="2575.5" cy="899.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="136" x="2584.5" y="903.187">sumLatencies : uint64_t</text><ellipse cx="2575.5" cy="912.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="190" x="2584.5" y="915.9917">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2565.5" x2="2568.5" y1="886.5742" y2="886.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2568.5" y="889.8823">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2785.5" x2="2788.5" y1="886.5742" y2="886.5742"/><!--MD5=[9ff46073dd541e50679ef35e851c67d6]
15
class urt_nrtsubscriber_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="154.4375" id="urt_nrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="821" x="1278.5" y="516.9531"/><ellipse cx="1625.25" cy="532.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1624.7344,533.5156 Q1622.875,532.8125 1622.2188,532.0469 Q1621.5781,531.2656 1621.5781,529.9531 Q1621.5781,528.2656 1622.6563,527.2969 Q1623.7344,526.3281 1625.6094,526.3281 Q1626.4688,526.3281 1627.3125,526.5313 Q1628.1719,526.7188 1629.0156,527.1094 L1629.0156,529.5 Q1628.2344,528.9375 1627.4063,528.6563 Q1626.5938,528.3594 1625.7969,528.3594 Q1624.9219,528.3594 1624.4375,528.7188 Q1623.9688,529.0781 1623.9688,529.7344 Q1623.9688,530.25 1624.3125,530.5938 Q1624.6563,530.9219 1625.75,531.3281 L1626.8125,531.7344 Q1628.2969,532.2813 1629,533.1875 Q1629.7188,534.0938 1629.7188,535.4688 Q1629.7188,537.3438 1628.6094,538.2656 Q1627.5,539.1875 1625.25,539.1875 Q1624.3281,539.1875 1623.4063,538.9688 Q1622.4844,538.75 1621.625,538.3281 L1621.625,535.7969 Q1622.5938,536.4844 1623.5156,536.8281 Q1624.4375,537.1719 1625.3281,537.1719 Q1626.2344,537.1719 1626.7344,536.7656 Q1627.2344,536.3438 1627.2344,535.6094 Q1627.2344,535.0469 1626.8906,534.6406 Q1626.5625,534.2188 1625.9375,533.9688 L1624.7344,533.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="1645.75" y="537.1074">urt_nrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1279.5" x2="2098.5" y1="548.9531" y2="548.9531"/><ellipse cx="1289.5" cy="576.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="138" x="1298.5" y="579.9683">minLatency : urt_delay_t</text><ellipse cx="1289.5" cy="589.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="141" x="1298.5" y="592.7729">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1279.5" x2="1580.5" y1="563.3555" y2="563.3555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1580.5" y="566.6636">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1797.5" x2="2098.5" y1="563.3555" y2="563.3555"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1279.5" x2="2098.5" y1="599.3672" y2="599.3672"/><ellipse cx="1289.5" cy="610.3672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="347" x="1298.5" y="613.5776">urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : void</text><ellipse cx="1289.5" cy="623.1719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="715" x="1298.5" y="626.3823">urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="1289.5" cy="635.9766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="1298.5" y="639.187">urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1289.5" cy="648.7813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="1298.5" y="651.9917">urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1289.5" cy="661.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="446" x="1298.5" y="664.7964">urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t</text><!--MD5=[5c7929572d87ccc448d875bea5da0fb1]
16
class urt_srtsubscriber_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="192.8516" id="urt_srtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1044" x="4281" y="497.4531"/><ellipse cx="4739.75" cy="513.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4739.2344,514.0156 Q4737.375,513.3125 4736.7188,512.5469 Q4736.0781,511.7656 4736.0781,510.4531 Q4736.0781,508.7656 4737.1563,507.7969 Q4738.2344,506.8281 4740.1094,506.8281 Q4740.9688,506.8281 4741.8125,507.0313 Q4742.6719,507.2188 4743.5156,507.6094 L4743.5156,510 Q4742.7344,509.4375 4741.9063,509.1563 Q4741.0938,508.8594 4740.2969,508.8594 Q4739.4219,508.8594 4738.9375,509.2188 Q4738.4688,509.5781 4738.4688,510.2344 Q4738.4688,510.75 4738.8125,511.0938 Q4739.1563,511.4219 4740.25,511.8281 L4741.3125,512.2344 Q4742.7969,512.7813 4743.5,513.6875 Q4744.2188,514.5938 4744.2188,515.9688 Q4744.2188,517.8438 4743.1094,518.7656 Q4742,519.6875 4739.75,519.6875 Q4738.8281,519.6875 4737.9063,519.4688 Q4736.9844,519.25 4736.125,518.8281 L4736.125,516.2969 Q4737.0938,516.9844 4738.0156,517.3281 Q4738.9375,517.6719 4739.8281,517.6719 Q4740.7344,517.6719 4741.2344,517.2656 Q4741.7344,516.8438 4741.7344,516.1094 Q4741.7344,515.5469 4741.3906,515.1406 Q4741.0625,514.7188 4740.4375,514.4688 L4739.2344,514.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="4760.25" y="517.6074">urt_srtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4282" x2="5324" y1="529.4531" y2="529.4531"/><ellipse cx="4292" cy="540.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="189" x="4301" y="543.6636">usefulnesscb : urt_usefulness_f*</text><ellipse cx="4292" cy="553.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="98" x="4301" y="556.4683">cbparams : void*</text><ellipse cx="4292" cy="582.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="138" x="4301" y="586.0776">minLatency : urt_delay_t</text><ellipse cx="4292" cy="595.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="141" x="4301" y="598.8823">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4282" x2="4694.5" y1="569.4648" y2="569.4648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="4694.5" y="572.7729">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4911.5" x2="5324" y1="569.4648" y2="569.4648"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4282" x2="5324" y1="605.4766" y2="605.4766"/><ellipse cx="4292" cy="616.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="347" x="4301" y="619.687">urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : void</text><ellipse cx="4292" cy="629.2813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1018" x="4301" y="632.4917">urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_usefulness_f*, cbparams : void*) : urt_status_t</text><ellipse cx="4292" cy="642.0859" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="785" x="4301" y="645.2964">urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4292" cy="654.8906" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="4301" y="658.1011">urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4292" cy="667.6953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="570" x="4301" y="670.9058">urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float</text><ellipse cx="4292" cy="680.5" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="4301" y="683.7104">urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t</text><!--MD5=[17838fb05fe219fd399839979ec8a4a4]
17
class urt_frtsubscriber_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="226.4609" id="urt_frtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="974" x="3272" y="480.9531"/><ellipse cx="3697.25" cy="496.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3696.7344,497.5156 Q3694.875,496.8125 3694.2188,496.0469 Q3693.5781,495.2656 3693.5781,493.9531 Q3693.5781,492.2656 3694.6563,491.2969 Q3695.7344,490.3281 3697.6094,490.3281 Q3698.4688,490.3281 3699.3125,490.5313 Q3700.1719,490.7188 3701.0156,491.1094 L3701.0156,493.5 Q3700.2344,492.9375 3699.4063,492.6563 Q3698.5938,492.3594 3697.7969,492.3594 Q3696.9219,492.3594 3696.4375,492.7188 Q3695.9688,493.0781 3695.9688,493.7344 Q3695.9688,494.25 3696.3125,494.5938 Q3696.6563,494.9219 3697.75,495.3281 L3698.8125,495.7344 Q3700.2969,496.2813 3701,497.1875 Q3701.7188,498.0938 3701.7188,499.4688 Q3701.7188,501.3438 3700.6094,502.2656 Q3699.5,503.1875 3697.25,503.1875 Q3696.3281,503.1875 3695.4063,502.9688 Q3694.4844,502.75 3693.625,502.3281 L3693.625,499.7969 Q3694.5938,500.4844 3695.5156,500.8281 Q3696.4375,501.1719 3697.3281,501.1719 Q3698.2344,501.1719 3698.7344,500.7656 Q3699.2344,500.3438 3699.2344,499.6094 Q3699.2344,499.0469 3698.8906,498.6406 Q3698.5625,498.2188 3697.9375,497.9688 L3696.7344,497.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="3717.75" y="501.1074">urt_frtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3273" x2="4245" y1="512.9531" y2="512.9531"/><ellipse cx="3283" cy="540.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="157" x="3292" y="543.9683">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3273" x2="3613.5" y1="527.3555" y2="527.3555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="3613.5" y="530.6636">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3904.5" x2="4245" y1="527.3555" y2="527.3555"/><ellipse cx="3283" cy="570.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="124" x="3292" y="573.5776">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3273" x2="3623.5" y1="556.9648" y2="556.9648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="3623.5" y="560.2729">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3894.5" x2="4245" y1="556.9648" y2="556.9648"/><ellipse cx="3283" cy="599.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="138" x="3292" y="603.187">minLatency : urt_delay_t</text><ellipse cx="3283" cy="612.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="141" x="3292" y="615.9917">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3273" x2="3505" y1="586.5742" y2="586.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="508" x="3505" y="589.8823">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ||  URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4013" x2="4245" y1="586.5742" y2="586.5742"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3273" x2="4245" y1="622.5859" y2="622.5859"/><ellipse cx="3283" cy="633.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="342" x="3292" y="636.7964">urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : void</text><ellipse cx="3283" cy="646.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="948" x="3292" y="649.6011">urtFrtSubscriberSubscribe (subscriber : urt_frtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="3283" cy="659.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="780" x="3292" y="662.4058">urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3283" cy="672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="790" x="3292" y="675.2104">urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3283" cy="684.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="540" x="3292" y="688.0151">urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool</text><ellipse cx="3283" cy="697.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="441" x="3292" y="700.8198">urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t</text><!--MD5=[104dc879e5721421b987fcc467bc3a1d]
18
class urt_hrtsubscriber_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="268.875" id="urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1084" x="2135" y="459.4531"/><ellipse cx="2613.25" cy="475.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2612.7344,476.0156 Q2610.875,475.3125 2610.2188,474.5469 Q2609.5781,473.7656 2609.5781,472.4531 Q2609.5781,470.7656 2610.6563,469.7969 Q2611.7344,468.8281 2613.6094,468.8281 Q2614.4688,468.8281 2615.3125,469.0313 Q2616.1719,469.2188 2617.0156,469.6094 L2617.0156,472 Q2616.2344,471.4375 2615.4063,471.1563 Q2614.5938,470.8594 2613.7969,470.8594 Q2612.9219,470.8594 2612.4375,471.2188 Q2611.9688,471.5781 2611.9688,472.2344 Q2611.9688,472.75 2612.3125,473.0938 Q2612.6563,473.4219 2613.75,473.8281 L2614.8125,474.2344 Q2616.2969,474.7813 2617,475.6875 Q2617.7188,476.5938 2617.7188,477.9688 Q2617.7188,479.8438 2616.6094,480.7656 Q2615.5,481.6875 2613.25,481.6875 Q2612.3281,481.6875 2611.4063,481.4688 Q2610.4844,481.25 2609.625,480.8281 L2609.625,478.2969 Q2610.5938,478.9844 2611.5156,479.3281 Q2612.4375,479.6719 2613.3281,479.6719 Q2614.2344,479.6719 2614.7344,479.2656 Q2615.2344,478.8438 2615.2344,478.1094 Q2615.2344,477.5469 2614.8906,477.1406 Q2614.5625,476.7188 2613.9375,476.4688 L2612.7344,476.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="2633.75" y="479.6074">urt_hrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2136" x2="3218" y1="491.4531" y2="491.4531"/><ellipse cx="2146" cy="502.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="151" x="2155" y="505.6636">next : urt_hrtsubscriber_t*</text><ellipse cx="2146" cy="532.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="2155" y="535.2729">deadlineOffset : urt_delay_t</text><ellipse cx="2146" cy="544.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="194" x="2155" y="548.0776">qosDeadlineTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2136" x2="2531.5" y1="518.6602" y2="518.6602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="2531.5" y="521.9683">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2822.5" x2="3218" y1="518.6602" y2="518.6602"/><ellipse cx="2146" cy="574.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="124" x="2155" y="577.687">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2136" x2="2541.5" y1="561.0742" y2="561.0742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="2541.5" y="564.3823">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2812.5" x2="3218" y1="561.0742" y2="561.0742"/><ellipse cx="2146" cy="604.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="2155" y="607.2964">minLatency : urt_delay_t</text><ellipse cx="2146" cy="616.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="2155" y="620.1011">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2136" x2="2425" y1="590.6836" y2="590.6836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="2425" y="593.9917">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2929" x2="3218" y1="590.6836" y2="590.6836"/><ellipse cx="2146" cy="646.5" fill="none" 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="2155" y="649.7104">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2136" x2="2544.5" y1="633.0977" y2="633.0977"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="2544.5" y="636.4058">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2809.5" x2="3218" y1="633.0977" y2="633.0977"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2136" x2="3218" y1="656.3047" y2="656.3047"/><ellipse cx="2146" cy="667.3047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="347" x="2155" y="670.5151">urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : void</text><ellipse cx="2146" cy="680.1094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1058" x="2155" y="683.3198">urtHrtSubscriberSubscribe (subscriber : urt_hrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="2146" cy="692.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="785" x="2155" y="696.1245">urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2146" cy="705.7188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="795" x="2155" y="708.9292">urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2146" cy="718.5234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="446" x="2155" y="721.7339">urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
19
class urt_service_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="269.6797" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="596" x="7039" y="458.9531"/><ellipse cx="7293.25" cy="474.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7292.7344,475.5156 Q7290.875,474.8125 7290.2188,474.0469 Q7289.5781,473.2656 7289.5781,471.9531 Q7289.5781,470.2656 7290.6563,469.2969 Q7291.7344,468.3281 7293.6094,468.3281 Q7294.4688,468.3281 7295.3125,468.5313 Q7296.1719,468.7188 7297.0156,469.1094 L7297.0156,471.5 Q7296.2344,470.9375 7295.4063,470.6563 Q7294.5938,470.3594 7293.7969,470.3594 Q7292.9219,470.3594 7292.4375,470.7188 Q7291.9688,471.0781 7291.9688,471.7344 Q7291.9688,472.25 7292.3125,472.5938 Q7292.6563,472.9219 7293.75,473.3281 L7294.8125,473.7344 Q7296.2969,474.2813 7297,475.1875 Q7297.7188,476.0938 7297.7188,477.4688 Q7297.7188,479.3438 7296.6094,480.2656 Q7295.5,481.1875 7293.25,481.1875 Q7292.3281,481.1875 7291.4063,480.9688 Q7290.4844,480.75 7289.625,480.3281 L7289.625,477.7969 Q7290.5938,478.4844 7291.5156,478.8281 Q7292.4375,479.1719 7293.3281,479.1719 Q7294.2344,479.1719 7294.7344,478.7656 Q7295.2344,478.3438 7295.2344,477.6094 Q7295.2344,477.0469 7294.8906,476.6406 Q7294.5625,476.2188 7293.9375,475.9688 L7292.7344,475.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="7313.75" y="479.1074">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7040" x2="7634" y1="490.9531" y2="490.9531"/><ellipse cx="7050" cy="501.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="7059" y="505.1636">next : urt_service_t*</text><ellipse cx="7050" cy="514.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="7059" y="517.9683">id : urt_serviceid_t</text><ellipse cx="7050" cy="527.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="7059" y="530.7729">lock : urt_osMutex_t</text><ellipse cx="7050" cy="540.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="236" x="7059" y="543.5776">requestQueue_front : urt_baserequest_t*</text><ellipse cx="7050" cy="553.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="240" x="7059" y="556.3823">requestQueue_hrtBack : urt_hrtrequest_t*</text><ellipse cx="7050" cy="565.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="256" x="7059" y="569.187">requestQueue_fsrtBack : urt_baserequest_t*</text><ellipse cx="7050" cy="578.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="235" x="7059" y="581.9917">requestQueue_back : urt_baserequest_t*</text><ellipse cx="7050" cy="591.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="186" x="7059" y="594.7964">evtSource : urt_osEventSource_t</text><ellipse cx="7050" cy="604.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="198" x="7059" y="607.6011">evtListener : urt_osEventListener_t</text><ellipse cx="7050" cy="634" fill="none" 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="7059" y="637.2104">numCalls : uint64_t</text><ellipse cx="7050" cy="646.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="167" x="7059" y="650.0151">numOwnershipLost : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7040" x2="7241" y1="620.5977" y2="620.5977"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="7241" y="623.9058">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7433" x2="7634" y1="620.5977" y2="620.5977"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7040" x2="7634" y1="656.6094" y2="656.6094"/><ellipse cx="7050" cy="667.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="412" x="7059" y="670.8198">urtServiceInit (service : urt_service_t*, id : urt_serviceid_t) : urt_status_t</text><ellipse cx="7050" cy="680.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="549" x="7059" y="683.6245">urtServiceDispatch (service : urt_service_t*, payload : void*, bytes : size_t) : urt_baserequest_t*</text><ellipse cx="7050" cy="693.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="552" x="7059" y="696.4292">urtServiceAcquireRequest (service* urt_serviceid_t*, request : urt_baserequest_t*) : urt_status_t</text><ellipse cx="7050" cy="706.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="570" x="7059" y="709.2339">urtServiceTryAcquireRequest (service* urt_serviceid_t*, request : urt_baserequest_t*) : urt_status_t</text><ellipse cx="7050" cy="718.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="365" x="7059" y="722.0386">urtServiceRespond (request : urt_baserequest_t*) : urt_status_t</text><!--MD5=[7294e1cfaeb111bef046bc5d07a96458]
20
class urt_baserequest_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="197.6563" id="urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="224" x="8519" y="494.9531"/><ellipse cx="8569.25" cy="510.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M8568.7344,511.5156 Q8566.875,510.8125 8566.2188,510.0469 Q8565.5781,509.2656 8565.5781,507.9531 Q8565.5781,506.2656 8566.6563,505.2969 Q8567.7344,504.3281 8569.6094,504.3281 Q8570.4688,504.3281 8571.3125,504.5313 Q8572.1719,504.7188 8573.0156,505.1094 L8573.0156,507.5 Q8572.2344,506.9375 8571.4063,506.6563 Q8570.5938,506.3594 8569.7969,506.3594 Q8568.9219,506.3594 8568.4375,506.7188 Q8567.9688,507.0781 8567.9688,507.7344 Q8567.9688,508.25 8568.3125,508.5938 Q8568.6563,508.9219 8569.75,509.3281 L8570.8125,509.7344 Q8572.2969,510.2813 8573,511.1875 Q8573.7188,512.0938 8573.7188,513.4688 Q8573.7188,515.3438 8572.6094,516.2656 Q8571.5,517.1875 8569.25,517.1875 Q8568.3281,517.1875 8567.4063,516.9688 Q8566.4844,516.75 8565.625,516.3281 L8565.625,513.7969 Q8566.5938,514.4844 8567.5156,514.8281 Q8568.4375,515.1719 8569.3281,515.1719 Q8570.2344,515.1719 8570.7344,514.7656 Q8571.2344,514.3438 8571.2344,513.6094 Q8571.2344,513.0469 8570.8906,512.6406 Q8570.5625,512.2188 8569.9375,511.9688 L8568.7344,511.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="8589.75" y="515.1074">urt_baserequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8520" x2="8742" y1="526.9531" y2="526.9531"/><ellipse cx="8530" cy="537.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="147" x="8539" y="541.1636">prev : urt_baserequest_t*</text><ellipse cx="8530" cy="550.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="146" x="8539" y="553.9683">next : urt_baserequest_t*</text><ellipse cx="8530" cy="563.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="8539" y="566.7729">lock : urt_osMutex_t</text><ellipse cx="8530" cy="576.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="126" x="8539" y="579.5776">owner : urt_service_t*</text><ellipse cx="8530" cy="589.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="180" x="8539" y="592.3823">submissionTime : urt_osTime_t</text><ellipse cx="8530" cy="601.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="85" x="8539" y="605.187">payload : void*</text><ellipse cx="8530" cy="614.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="186" x="8539" y="617.9917">evtSource : urt_osEventSource_t</text><ellipse cx="8530" cy="627.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="198" x="8539" y="630.7964">evtListener : urt_osEventListener_t</text><ellipse cx="8530" cy="657.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="136" x="8539" y="660.4058">sumLatencies : uint64_t</text><ellipse cx="8530" cy="670" fill="none" 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="8539" y="673.2104">numCalls : uint64_t</text><ellipse cx="8530" cy="682.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="8539" y="686.0151">numFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8520" x2="8535" y1="643.793" y2="643.793"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="8535" y="647.1011">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8727" x2="8742" y1="643.793" y2="643.793"/><!--MD5=[65269c71e9a2a076bc4014c9b128c9e6]
21
class urt_nrtrequest_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="167.2422" id="urt_nrtrequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="531" x="8365.5" y="155.4531"/><ellipse cx="8575.75" cy="171.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M8575.2344,172.0156 Q8573.375,171.3125 8572.7188,170.5469 Q8572.0781,169.7656 8572.0781,168.4531 Q8572.0781,166.7656 8573.1563,165.7969 Q8574.2344,164.8281 8576.1094,164.8281 Q8576.9688,164.8281 8577.8125,165.0313 Q8578.6719,165.2188 8579.5156,165.6094 L8579.5156,168 Q8578.7344,167.4375 8577.9063,167.1563 Q8577.0938,166.8594 8576.2969,166.8594 Q8575.4219,166.8594 8574.9375,167.2188 Q8574.4688,167.5781 8574.4688,168.2344 Q8574.4688,168.75 8574.8125,169.0938 Q8575.1563,169.4219 8576.25,169.8281 L8577.3125,170.2344 Q8578.7969,170.7813 8579.5,171.6875 Q8580.2188,172.5938 8580.2188,173.9688 Q8580.2188,175.8438 8579.1094,176.7656 Q8578,177.6875 8575.75,177.6875 Q8574.8281,177.6875 8573.9063,177.4688 Q8572.9844,177.25 8572.125,176.8281 L8572.125,174.2969 Q8573.0938,174.9844 8574.0156,175.3281 Q8574.9375,175.6719 8575.8281,175.6719 Q8576.7344,175.6719 8577.2344,175.2656 Q8577.7344,174.8438 8577.7344,174.1094 Q8577.7344,173.5469 8577.3906,173.1406 Q8577.0625,172.7188 8576.4375,172.4688 L8575.2344,172.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="8596.25" y="175.6074">urt_nrtrequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8366.5" x2="8895.5" y1="187.4531" y2="187.4531"/><ellipse cx="8376.5" cy="215.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="138" x="8385.5" y="218.4683">minLatency : urt_delay_t</text><ellipse cx="8376.5" cy="228.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="141" x="8385.5" y="231.2729">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8366.5" x2="8535" y1="201.8555" y2="201.8555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="8535" y="205.1636">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8727" x2="8895.5" y1="201.8555" y2="201.8555"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="8366.5" x2="8895.5" y1="237.8672" y2="237.8672"/><ellipse cx="8376.5" cy="248.8672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="297" x="8385.5" y="252.0776">urtNrtRequestInit (request : urt_nrtrequest_t*) : void</text><ellipse cx="8376.5" cy="261.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="367" x="8385.5" y="264.8823">urtNrtRequestAcquire (request : urt_nrtrequest_t*) : urt_status_t</text><ellipse cx="8376.5" cy="274.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="385" x="8385.5" y="277.687">urtNrtRequestTryAcquire (request : urt_nrtrequest_t*) : urt_status_t</text><ellipse cx="8376.5" cy="287.2813" 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="370" x="8385.5" y="290.4917">urtNrtRequestRelease (request : urt_nrtrequest_t*) : urt_status_t</text><ellipse cx="8376.5" cy="300.0859" 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="505" x="8385.5" y="303.2964">urtNrtRequestSubmit (request : urt_nrtrequest_t*, service : urt_service_t*) : urt_status_t</text><ellipse cx="8376.5" cy="312.8906" 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="371" x="8385.5" y="316.1011">urtNrtRequestRetrieve (request : urt_nrtrequest_t*) : urt_status_t</text><!--MD5=[e9d515ad43a4cecec056dd09bc14a3c2]
22
class urt_srtrequest_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="180.0469" id="urt_srtrequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="675" x="9623.5" y="148.9531"/><ellipse cx="9906.25" cy="164.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9905.7344,165.5156 Q9903.875,164.8125 9903.2188,164.0469 Q9902.5781,163.2656 9902.5781,161.9531 Q9902.5781,160.2656 9903.6563,159.2969 Q9904.7344,158.3281 9906.6094,158.3281 Q9907.4688,158.3281 9908.3125,158.5313 Q9909.1719,158.7188 9910.0156,159.1094 L9910.0156,161.5 Q9909.2344,160.9375 9908.4063,160.6563 Q9907.5938,160.3594 9906.7969,160.3594 Q9905.9219,160.3594 9905.4375,160.7188 Q9904.9688,161.0781 9904.9688,161.7344 Q9904.9688,162.25 9905.3125,162.5938 Q9905.6563,162.9219 9906.75,163.3281 L9907.8125,163.7344 Q9909.2969,164.2813 9910,165.1875 Q9910.7188,166.0938 9910.7188,167.4688 Q9910.7188,169.3438 9909.6094,170.2656 Q9908.5,171.1875 9906.25,171.1875 Q9905.3281,171.1875 9904.4063,170.9688 Q9903.4844,170.75 9902.625,170.3281 L9902.625,167.7969 Q9903.5938,168.4844 9904.5156,168.8281 Q9905.4375,169.1719 9906.3281,169.1719 Q9907.2344,169.1719 9907.7344,168.7656 Q9908.2344,168.3438 9908.2344,167.6094 Q9908.2344,167.0469 9907.8906,166.6406 Q9907.5625,166.2188 9906.9375,165.9688 L9905.7344,165.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="9926.75" y="169.1074">urt_srtrequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9624.5" x2="10297.5" y1="180.9531" y2="180.9531"/><ellipse cx="9634.5" cy="208.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="138" x="9643.5" y="211.9683">minLatency : urt_delay_t</text><ellipse cx="9634.5" cy="221.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="141" x="9643.5" y="224.7729">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9624.5" x2="9865" y1="195.3555" y2="195.3555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="9865" y="198.6636">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10057" x2="10297.5" y1="195.3555" y2="195.3555"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="9624.5" x2="10297.5" y1="231.3672" y2="231.3672"/><ellipse cx="9634.5" cy="242.3672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="297" x="9643.5" y="245.5776">urtSrtRequestInit (request : urt_srtrequest_t*) : void</text><ellipse cx="9634.5" cy="255.1719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="367" x="9643.5" y="258.3823">urtSrtRequestAcquire (request : urt_srtrequest_t*) : urt_status_t</text><ellipse cx="9634.5" cy="267.9766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="385" x="9643.5" y="271.187">urtSrtRequestTryAcquire (request : urt_srtrequest_t*) : urt_status_t</text><ellipse cx="9634.5" cy="280.7813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="370" x="9643.5" y="283.9917">urtSrtRequestRelease (request : urt_srtrequest_t*) : urt_status_t</text><ellipse cx="9634.5" cy="293.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="505" x="9643.5" y="296.7964">urtSrtRequestSubmit (request : urt_srtrequest_t*, service : urt_service_t*) : urt_status_t</text><ellipse cx="9634.5" cy="306.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="371" x="9643.5" y="309.6011">urtSrtRequestRetrieve (request : urt_srtrequest_t*) : urt_status_t</text><ellipse cx="9634.5" cy="319.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="649" x="9643.5" y="322.4058">urtSrtCalculateUsefulness (request : urt_srtrequest_t*, usefulnesscb : urt_usefulness_f, cbparams : void*) : float</text><!--MD5=[240977dbca9212fa5365c87da90aa051]
23
class urt_frtrequest_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="268.875" id="urt_frtrequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="656" x="8932" y="104.4531"/><ellipse cx="9206.75" cy="120.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9206.2344,121.0156 Q9204.375,120.3125 9203.7188,119.5469 Q9203.0781,118.7656 9203.0781,117.4531 Q9203.0781,115.7656 9204.1563,114.7969 Q9205.2344,113.8281 9207.1094,113.8281 Q9207.9688,113.8281 9208.8125,114.0313 Q9209.6719,114.2188 9210.5156,114.6094 L9210.5156,117 Q9209.7344,116.4375 9208.9063,116.1563 Q9208.0938,115.8594 9207.2969,115.8594 Q9206.4219,115.8594 9205.9375,116.2188 Q9205.4688,116.5781 9205.4688,117.2344 Q9205.4688,117.75 9205.8125,118.0938 Q9206.1563,118.4219 9207.25,118.8281 L9208.3125,119.2344 Q9209.7969,119.7813 9210.5,120.6875 Q9211.2188,121.5938 9211.2188,122.9688 Q9211.2188,124.8438 9210.1094,125.7656 Q9209,126.6875 9206.75,126.6875 Q9205.8281,126.6875 9204.9063,126.4688 Q9203.9844,126.25 9203.125,125.8281 L9203.125,123.2969 Q9204.0938,123.9844 9205.0156,124.3281 Q9205.9375,124.6719 9206.8281,124.6719 Q9207.7344,124.6719 9208.2344,124.2656 Q9208.7344,123.8438 9208.7344,123.1094 Q9208.7344,122.5469 9208.3906,122.1406 Q9208.0625,121.7188 9207.4375,121.4688 L9206.2344,121.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="98" x="9227.25" y="124.6074">urt_frtrequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8933" x2="9587" y1="136.4531" y2="136.4531"/><ellipse cx="8943" cy="164.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="157" x="8952" y="167.4683">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8933" x2="9127" y1="150.8555" y2="150.8555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="266" x="9127" y="154.1636">URT_CFG_RPC_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9393" x2="9587" y1="150.8555" y2="150.8555"/><ellipse cx="8943" cy="193.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="8952" y="197.0776">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8933" x2="9137" y1="180.4648" y2="180.4648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="9137" y="183.7729">URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9383" x2="9587" y1="180.4648" y2="180.4648"/><ellipse cx="8943" cy="223.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="138" x="8952" y="226.687">minLatency : urt_delay_t</text><ellipse cx="8943" cy="236.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="141" x="8952" y="239.4917">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8933" x2="9033" y1="210.0742" y2="210.0742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="9033" y="213.3823">URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9487" x2="9587" y1="210.0742" y2="210.0742"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="8933" x2="9587" y1="246.0859" y2="246.0859"/><ellipse cx="8943" cy="257.0859" 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="292" x="8952" y="260.2964">urtFrtRequestInit (request : urt_frtrequest_t*) : void</text><ellipse cx="8943" cy="269.8906" 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="362" x="8952" y="273.1011">urtFrtRequestAcquire (request : urt_frtrequest_t*) : urt_status_t</text><ellipse cx="8943" cy="282.6953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="380" x="8952" y="285.9058">urtFrtRequestTryAcquire (request : urt_frtrequest_t*) : urt_status_t</text><ellipse cx="8943" cy="295.5" 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="365" x="8952" y="298.7104">urtFrtRequestRelease (request : urt_frtrequest_t*) : urt_status_t</text><ellipse cx="8943" cy="308.3047" 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="630" x="8952" y="311.5151">urtFrtRequestSubmit (request : urt_frtrequest_t*, service : urt_service_t*, deadline : urt_delay_t) : urt_status_t</text><ellipse cx="8943" cy="321.1094" 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="366" x="8952" y="324.3198">urtFrtRequestRetrieve (request : urt_frtrequest_t*) : urt_status_t</text><ellipse cx="8943" cy="333.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="318" x="8952" y="337.1245">urtDrtCalculateValidity (request : urt_frtrequest_t) : bool</text><ellipse cx="8943" cy="363.5234" 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="423" x="8952" y="366.7339">urtFrtRequestGetMaxJitter (request : urt_frtrequest_t*) : urt_delay_t* const</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8933" x2="9137" y1="350.1211" y2="350.1211"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="9137" y="353.4292">URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9383" x2="9587" y1="350.1211" y2="350.1211"/><!--MD5=[2b0c3d572fefe037473ca776bdd2f803]
24
class urt_hrtrequest_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="285.6797" id="urt_hrtrequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="661" x="7669.5" y="95.9531"/><ellipse cx="7944.75" cy="111.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7944.2344,112.5156 Q7942.375,111.8125 7941.7188,111.0469 Q7941.0781,110.2656 7941.0781,108.9531 Q7941.0781,107.2656 7942.1563,106.2969 Q7943.2344,105.3281 7945.1094,105.3281 Q7945.9688,105.3281 7946.8125,105.5313 Q7947.6719,105.7188 7948.5156,106.1094 L7948.5156,108.5 Q7947.7344,107.9375 7946.9063,107.6563 Q7946.0938,107.3594 7945.2969,107.3594 Q7944.4219,107.3594 7943.9375,107.7188 Q7943.4688,108.0781 7943.4688,108.7344 Q7943.4688,109.25 7943.8125,109.5938 Q7944.1563,109.9219 7945.25,110.3281 L7946.3125,110.7344 Q7947.7969,111.2813 7948.5,112.1875 Q7949.2188,113.0938 7949.2188,114.4688 Q7949.2188,116.3438 7948.1094,117.2656 Q7947,118.1875 7944.75,118.1875 Q7943.8281,118.1875 7942.9063,117.9688 Q7941.9844,117.75 7941.125,117.3281 L7941.125,114.7969 Q7942.0938,115.4844 7943.0156,115.8281 Q7943.9375,116.1719 7944.8281,116.1719 Q7945.7344,116.1719 7946.2344,115.7656 Q7946.7344,115.3438 7946.7344,114.6094 Q7946.7344,114.0469 7946.3906,113.6406 Q7946.0625,113.2188 7945.4375,112.9688 L7944.2344,112.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="7965.25" y="116.1074">urt_hrtrequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7670.5" x2="8329.5" y1="127.9531" y2="127.9531"/><ellipse cx="7680.5" cy="155.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="157" x="7689.5" y="158.9683">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7670.5" x2="7867" y1="142.3555" y2="142.3555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="266" x="7867" y="145.6636">URT_CFG_RPC_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8133" x2="8329.5" y1="142.3555" y2="142.3555"/><ellipse cx="7680.5" cy="185.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="124" x="7689.5" y="188.5776">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7670.5" x2="7877" y1="171.9648" y2="171.9648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="7877" y="175.2729">URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8123" x2="8329.5" y1="171.9648" y2="171.9648"/><ellipse cx="7680.5" cy="214.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="145" x="7689.5" y="218.187">qosTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7670.5" x2="7736" y1="201.5742" y2="201.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="528" x="7736" y="204.8823">URT_CFG_RPC_QOS_DEADLINECHECKS == true || URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8264" x2="8329.5" y1="201.5742" y2="201.5742"/><ellipse cx="7680.5" cy="244.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="138" x="7689.5" y="247.7964">minLatency : urt_delay_t</text><ellipse cx="7680.5" cy="257.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="141" x="7689.5" y="260.6011">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7670.5" x2="7773" y1="231.1836" y2="231.1836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="7773" y="234.4917">URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8227" x2="8329.5" y1="231.1836" y2="231.1836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7670.5" x2="8329.5" y1="267.1953" y2="267.1953"/><ellipse cx="7680.5" cy="278.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="297" x="7689.5" y="281.4058">urtHrtRequestInit (request : urt_hrtrequest_t*) : void</text><ellipse cx="7680.5" cy="291" 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="367" x="7689.5" y="294.2104">urtHrtRequestAcquire (request : urt_hrtrequest_t*) : urt_status_t</text><ellipse cx="7680.5" cy="303.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="385" x="7689.5" y="307.0151">urtHrtRequestTryAcquire (request : urt_hrtrequest_t*) : urt_status_t</text><ellipse cx="7680.5" cy="316.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="370" x="7689.5" y="319.8198">urtHrtRequestRelease (request : urt_hrtrequest_t*) : urt_status_t</text><ellipse cx="7680.5" cy="329.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="635" x="7689.5" y="332.6245">urtHrtRequestSubmit (request : urt_hrtrequest_t*, service : urt_service_t*, deadline : urt_delay_t) : urt_status_t</text><ellipse cx="7680.5" cy="342.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="371" x="7689.5" y="345.4292">urtHrtRequestRetrieve (request : urt_hrtrequest_t*) : urt_status_t</text><ellipse cx="7680.5" cy="371.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="428" x="7689.5" y="375.0386">urtHrtRequestGetMaxJitter (request : urt_hrtrequest_t*) : urt_delay_t* const</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7670.5" x2="7877" y1="358.4258" y2="358.4258"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="7877" y="361.7339">URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8123" x2="8329.5" y1="358.4258" y2="358.4258"/><!--MD5=[89d25e87afdd75480e1ec2bd05524873]
25
class urt_core_t--><rect fill="#FEFECE" filter="url(#f8on3nil7jvs5)" height="307.2891" id="urt_core_t" style="stroke: #A80036; stroke-width: 1.5;" width="343" x="5983.5" y="85.4531"/><ellipse cx="6119.25" cy="101.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6118.7344,102.0156 Q6116.875,101.3125 6116.2188,100.5469 Q6115.5781,99.7656 6115.5781,98.4531 Q6115.5781,96.7656 6116.6563,95.7969 Q6117.7344,94.8281 6119.6094,94.8281 Q6120.4688,94.8281 6121.3125,95.0313 Q6122.1719,95.2188 6123.0156,95.6094 L6123.0156,98 Q6122.2344,97.4375 6121.4063,97.1563 Q6120.5938,96.8594 6119.7969,96.8594 Q6118.9219,96.8594 6118.4375,97.2188 Q6117.9688,97.5781 6117.9688,98.2344 Q6117.9688,98.75 6118.3125,99.0938 Q6118.6563,99.4219 6119.75,99.8281 L6120.8125,100.2344 Q6122.2969,100.7813 6123,101.6875 Q6123.7188,102.5938 6123.7188,103.9688 Q6123.7188,105.8438 6122.6094,106.7656 Q6121.5,107.6875 6119.25,107.6875 Q6118.3281,107.6875 6117.4063,107.4688 Q6116.4844,107.25 6115.625,106.8281 L6115.625,104.2969 Q6116.5938,104.9844 6117.5156,105.3281 Q6118.4375,105.6719 6119.3281,105.6719 Q6120.2344,105.6719 6120.7344,105.2656 Q6121.2344,104.8438 6121.2344,104.1094 Q6121.2344,103.5469 6120.8906,103.1406 Q6120.5625,102.7188 6119.9375,102.4688 L6118.7344,102.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="6139.75" y="105.6074">urt_core_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5984.5" x2="6325.5" y1="117.4531" y2="117.4531"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5991.5" y="125.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="6003.5" y="131.6636">_nodes : urt_node_t*</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5991.5" y="138.2578"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="192" x="6003.5" y="144.4683">_evtSource : urt_osEventSource_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5991.5" y="151.0625"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="6003.5" y="157.2729">_lock : urt_osMutex_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5991.5" y="163.8672"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="122" x="6003.5" y="170.0776">_status : urt_status_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5991.5" y="193.4766"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="117" x="6003.5" y="199.687">_topics : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5984.5" x2="6050" y1="183.0742" y2="183.0742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="6050" y="186.3823">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6260" x2="6325.5" y1="183.0742" y2="183.0742"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5991.5" y="223.0859"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="145" x="6003.5" y="229.2964">_services : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5984.5" x2="6062.5" y1="212.6836" y2="212.6836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="6062.5" y="215.9917">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6247.5" x2="6325.5" y1="212.6836" y2="212.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5984.5" x2="6325.5" y1="235.8906" y2="235.8906"/><ellipse cx="5994.5" cy="246.8906" 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="130" x="6003.5" y="250.1011">urtCoreInit (void) : void</text><ellipse cx="5994.5" cy="259.6953" 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="215" x="6003.5" y="262.9058">urtCoreGetStatus (void) : urt_status_t</text><ellipse cx="5994.5" cy="272.5" 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="177" x="6003.5" y="275.7104">urtCoreStartNodes (void) : void</text><ellipse cx="5994.5" cy="285.3047" 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="309" x="6003.5" y="288.5151">urtCoreSynchronize (node : urt_node_t*) : urt_status_t</text><ellipse cx="5994.5" cy="298.1094" 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="317" x="6003.5" y="301.3198">urtCoreStopNodes (reason : urt_status_t) : urt_status_t</text><ellipse cx="5994.5" cy="310.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="304" x="6003.5" y="314.1245">urtCoreGetEventSource (void) : urt_osEventSource_t*</text><ellipse cx="5994.5" cy="323.7188" 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="228" x="6003.5" y="326.9292">urtCoreGetMutex (void) : urt_osMutex_t*</text><ellipse cx="5994.5" cy="353.3281" 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="273" x="6003.5" y="356.5386">urtCoreGetTopic (id : urt_topicid_t) : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5984.5" x2="6050" y1="339.9258" y2="339.9258"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="6050" y="343.2339">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6260" x2="6325.5" y1="339.9258" y2="339.9258"/><ellipse cx="5994.5" cy="382.9375" 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="313" x="6003.5" y="386.1479">urtCoreGetService (id : urt_serviceid_t) : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5984.5" x2="6062.5" y1="369.5352" y2="369.5352"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="6062.5" y="372.8433">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6247.5" x2="6325.5" y1="369.5352" y2="369.5352"/><!--MD5=[182342162f0b9b45ddce11acc6582c59]
26 621aa0b6 Thomas Schöpping
reverse link urt_node_t to urt_node_t--><path d="M6937.9212,572.8785 C6952.4841,578.9256 6960.5,585.9505 6960.5,593.9531 C6960.5,603.9956 6947.8767,612.4983 6925.5332,619.4614 " fill="none" id="urt_node_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6925.5332,568.4448,6929.8344,574.2327,6936.8314,572.4885,6932.5302,566.7006,6925.5332,568.4448" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6934.0047" y="565.15">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="6934.0703" y="616.7246">0,1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
27
reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M5878.6717,715.1213 C5789.6061,755.938 5699.4142,798.0348 5642.8397,825.4419 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="5890.6583,709.6328,5883.5377,708.4939,5879.7477,714.6288,5886.8683,715.7676,5890.6583,709.6328" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5864.6291" y="729.9714">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="5633.3046" y="814.2298">0,1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
28
reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M5912.1611,711.751 C5821.4884,753.6073 5725.0101,797.2798 5660.4215,825.4419 " 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="5916.7481,709.6328,5906.9003,709.7746,5912.2087,711.7291,5910.2543,717.0376,5916.7481,709.6328" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b913f036db99e36b937989146817bd94]
29
reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M6142.2514,722.8795 C6142.1989,761.2058 6143.6019,799.7688 6146.4603,825.4419 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6142.3278,709.6328,6138.2933,715.6096,6142.2586,721.6326,6146.2931,715.6558,6142.3278,709.6328" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6133.2076" y="729.9714">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6135.7172" y="814.2298">1</text><!--MD5=[b913f036db99e36b937989146817bd94]
30
reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M6168.4661,715.1213 C6168.7477,755.938 6167.273,798.0348 6164.0421,825.4419 " 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="6168.4176,709.6328,6164.4975,718.6679,6168.4619,714.6326,6172.4972,718.597,6168.4176,709.6328" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[496dffc41052f1912ec8ad492f24fe61]
31
reverse link urt_node_t to urt_nodeShutdownCallback_t--><path d="M6419.6574,714.8715 C6513.1922,755.7662 6611.416,797.9789 6677.4708,825.4419 " fill="none" id="urt_node_t&lt;-urt_nodeShutdownCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6407.6846,709.6328,6411.578,715.7026,6418.6782,714.4432,6414.7849,708.3735,6407.6846,709.6328" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6416.3931" y="729.9714">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="6638.105" y="814.2298">0,1</text><!--MD5=[496dffc41052f1912ec8ad492f24fe61]
32
reverse link urt_node_t to urt_nodeShutdownCallback_t--><path d="M6438.3674,711.6263 C6534.8611,753.5205 6633.7108,797.2518 6695.0525,825.4419 " fill="none" id="urt_node_t&lt;-urt_nodeShutdownCallback_t-1" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6433.7744,709.6328,6440.4376,716.8855,6438.361,711.6236,6443.6229,709.547,6433.7744,709.6328" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[536025241394544a90bc53fb552f3a08]
33
reverse link urt_message_t to urt_message_t--><path d="M1248.5028,1027.5601 C1262.5209,1033.7125 1271,1042.5102 1271,1053.9531 C1271,1068.4551 1257.3815,1078.7084 1236.1293,1084.7131 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1236.1293,1023.1931,1240.456,1028.962,1247.4452,1027.1869,1243.1185,1021.418,1236.1293,1023.1931" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1244.2203" y="1018.7753">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1243.7886" y="1082.6249">0,1</text><!--MD5=[aa8990705afdbad14c7f998fe04b6f05]
34
reverse link urt_basesubscriber_t to urt_message_t--><path d="M2568.7112,928.1333 C2566.1446,929.1376 2563.5726,930.0801 2561,930.9531 C2321.2643,1012.3021 1593.9511,1040.6718 1236.1648,1049.8784 " fill="none" id="urt_basesubscriber_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2580.6632,923.0124,2573.5728,921.6986,2569.633,927.7383,2576.7234,929.0521,2580.6632,923.0124" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2562.316" y="942.794">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1243.8254" y="1046.5383">0,1</text><!--MD5=[0585cd4928de92ce6927d9c389eadd29]
35
link urt_nrtsubscriber_t to urt_basesubscriber_t--><path d="M1891.7135,671.0027 C1962.4365,695.3368 2042.9049,720.2157 2118,736.9531 C2304.8793,778.6053 2368.4942,730.082 2545.1263,783.9702 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2547.3836,777.3426,2564.314,790.0847,2543.1328,790.6817,2547.3836,777.3426" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6d81edfa5aa102b898ad487ae19b49f9]
36
link urt_srtsubscriber_t to urt_basesubscriber_t--><path d="M4478.0414,690.4988 C4407.9682,708.4065 4333.9284,725.1589 4264,736.9531 C3730.3517,826.9585 3084.2591,848.8977 2810.1996,854.2383 " fill="none" id="urt_srtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2810.0655,861.242,2789.9385,854.6159,2809.8046,847.2444,2810.0655,861.242" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f626d284cba98e1d5d5fe914b1fa4188]
37
link urt_frtsubscriber_t to urt_basesubscriber_t--><path d="M3371.4405,707.0088 C3332.2104,717.5233 3292.881,727.6928 3255,736.9531 C3103.1803,774.0664 2927.0543,809.2045 2809.5003,831.5426 " fill="none" id="urt_frtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2810.6553,838.4482,2789.7026,835.2889,2808.0523,824.6923,2810.6553,838.4482" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[1ea71f2b33e56ab0ac5545988c1af396]
38
link urt_hrtsubscriber_t to urt_basesubscriber_t--><path d="M2677,728.7905 C2677,742.2868 2677,755.7288 2677,768.5427 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2684.0001,768.7395,2677,788.7395,2670.0001,768.7394,2684.0001,768.7395" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ea2ec5c5272e65289dabade75a749f58]
39
reverse link urt_hrtsubscriber_t to urt_hrtsubscriber_t--><path d="M3231.3399,569.5191 C3245.8539,576.2767 3254,584.4213 3254,593.9531 C3254,605.9145 3241.1717,615.6916 3219.0292,623.2843 " fill="none" id="urt_hrtsubscriber_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3219.0292,564.6219,3223.1257,570.5564,3230.1793,569.0575,3226.0828,563.123,3219.0292,564.6219" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3226.7077" y="561.1727">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="3226.7921" y="620.66">0,1</text><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
40
reverse link urt_publisher_t to urt_topic_t--><path d="M818.8622,593.9531 C826.1684,593.9531 833.4747,593.9531 840.7809,593.9531 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="805.7109,593.9531,811.7109,597.9531,817.7109,593.9531,811.7109,589.9531,805.7109,593.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="813.7488" y="590.8685">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="825.1161" y="590.7321">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
41
link urt_publisher_t to urt_message_t--><path d="M546.0318,692.0704 C661.8911,778.1695 827.8639,901.5095 933.016,979.6516 " 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="937.0419,982.6433,932.2041,974.0646,933.0287,979.661,927.4323,980.4856,937.0419,982.6433" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
42
reverse link urt_topic_t to urt_topic_t--><path d="M1237.0439,558.1437 C1251.3061,566.3173 1260,578.2537 1260,593.9531 C1260,613.6543 1246.309,627.4297 1225.1039,635.2794 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1225.1039,552.6268,1228.8728,558.7746,1235.9972,557.6602,1232.2284,551.5124,1225.1039,552.6268" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1232.7642" y="547.7915">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1232.9986" y="633.6727">0,1</text><!--MD5=[ed3fb6de0913094c41bd74c175d366df]
43
reverse link urt_topic_t to urt_hrtsubscriber_t--><path d="M1177.7361,454.9498 C1204.5888,434.3434 1233.5161,415.1369 1263,400.4531 C1270.1417,396.8963 1272.5719,397.3476 1280.5,396.4531 C1325.7131,391.3517 2054.2869,391.3517 2099.5,396.4531 C2187.5516,406.388 2279.7005,430.9069 2363.8741,459.4215 " fill="none" id="urt_topic_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1167.1558,463.2225,1174.3463,462.6778,1176.6091,455.831,1169.4186,456.3756,1167.1558,463.2225" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1166.6804" y="452.3054">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="2325.1934" y="448.2847">0,1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
44
reverse link urt_topic_t to urt_message_t--><path d="M1033,737.7196 C1033,819.1756 1033,917.505 1033,982.6655 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1033,724.5402,1029,730.5402,1033,736.5402,1037,730.5402,1033,724.5402" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1024.7688" y="744.5977">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1024.6063" y="972.0014">1</text><!--MD5=[ed8977051960dfa72b850fe399f41716]
45
reverse link urt_baserequest_t to urt_baserequest_t--><path d="M8755.2263,552.5268 C8769.0583,560.3592 8778,574.168 8778,593.9531 C8778,619.0273 8763.6385,634.5028 8743.1623,640.3796 " fill="none" id="urt_baserequest_t&lt;-urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="8743.1623,547.5266,8747.1735,553.5191,8754.2478,552.1213,8750.2366,546.1288,8743.1623,547.5266" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8750.967" y="540.9863">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="8750.9722" y="639.8331">0,1,2</text><!--MD5=[426f0ba47802c5735a37a0acd494a192]
46
reverse link urt_baserequest_t to urt_service_t--><path d="M8505.3111,593.9531 C8215.2829,593.9531 7925.2547,593.9531 7635.2266,593.9531 " fill="none" id="urt_baserequest_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="8518.6838,593.9531,8512.6838,589.9531,8506.6838,593.9531,8512.6838,597.9531,8518.6838,593.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8502.8688" y="590.5321">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="7643.4139" y="590.8268">0,1</text><!--MD5=[09de7ef26922535bfe0682cb358ee29c]
47
reverse link urt_service_t to urt_baserequest_t--><path d="M7648.5992,593.9531 C7938.6274,593.9531 8228.6556,593.9531 8518.6838,593.9531 " fill="none" id="urt_service_t&lt;-urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7635.2266,593.9531,7641.2266,597.9531,7647.2266,593.9531,7641.2266,589.9531,7635.2266,593.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7643.2545" y="606.2253">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="8478.8645" y="606.4916">0,2,3</text><!--MD5=[dc2d1805b45628aba9d654613b3d05f9]
48
link urt_nrtrequest_t to urt_baserequest_t--><path d="M8631,322.6336 C8631,367.945 8631,424.7031 8631,474.5785 " fill="none" id="urt_nrtrequest_t-&gt;urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="8638.0001,474.7538,8631,494.7538,8624.0001,474.7538,8638.0001,474.7538" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[d53ae0f00163daee879678d1d1554717]
49
link urt_nrtrequest_t to urt_service_t--><path d="M8507.9317,322.589 C8460.1398,350.4303 8403.5847,378.008 8348,392.4531 C8273.2554,411.8774 7727.2096,379.0754 7653,400.4531 C7609.3119,413.0384 7565.6616,433.4227 7525.358,456.3405 " fill="none" id="urt_nrtrequest_t-&gt;urt_service_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7520.9658,458.8556,7530.7636,457.8544,7525.3047,456.3709,7526.7881,450.9121,7520.9658,458.8556" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f9755d42ba41539dee622699d8be3a22]
50
link urt_srtrequest_t to urt_baserequest_t--><path d="M9772.1188,329.1123 C9719.1956,352.0293 9661.0644,375.0596 9606,392.4531 C9311.4039,485.5088 8952.8914,546.8487 8763.322,575.3981 " fill="none" id="urt_srtrequest_t-&gt;urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="8764.0981,582.3597,8743.284,578.3883,8762.0318,568.5131,8764.0981,582.3597" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[90efd84e0f70286880ba110c49a1e8f8]
51
link urt_srtrequest_t to urt_service_t--><path d="M9790.917,329.0335 C9733.7662,354.7653 9668.6036,379.3642 9606,392.4531 C9552.8977,403.5555 7705.1858,385.6291 7653,400.4531 C7609.1163,412.9188 7565.2964,433.3268 7524.8725,456.3203 " fill="none" id="urt_srtrequest_t-&gt;urt_service_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7520.4674,458.8438,7530.2651,457.8412,7524.806,456.3585,7526.2886,450.8994,7520.4674,458.8438" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[bfc5f4e50344156edda6a5cfcff14fef]
52
link urt_frtrequest_t to urt_baserequest_t--><path d="M9021.3052,373.6696 C8932.8256,423.6064 8835.8339,478.3473 8760.6723,520.7676 " fill="none" id="urt_frtrequest_t-&gt;urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="8763.89,526.9895,8743.032,530.7236,8757.0088,514.7973,8763.89,526.9895" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[836450d5c472e7b2344319739fa0d5d1]
53
link urt_frtrequest_t to urt_service_t--><path d="M8982.8758,373.4937 C8959.9421,381.0472 8936.807,387.5455 8914,392.4531 C8845.5107,407.1907 7720.3692,381.2343 7653,400.4531 C7609.1303,412.9681 7565.3167,433.3981 7524.8945,456.3976 " fill="none" id="urt_frtrequest_t-&gt;urt_service_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7520.4896,458.9217,7530.2872,457.9178,7524.8279,456.4359,7526.3098,450.9766,7520.4896,458.9217" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7c5d2ea3f0b69f804ad9b60a9539ac96]
54
link urt_hrtrequest_t to urt_baserequest_t--><path d="M8309.1881,382.0587 C8322.1767,385.9261 8335.1461,389.4211 8348,392.4531 C8366.0807,396.7179 8499.0599,390.913 8515,400.4531 C8544.8504,418.3184 8567.951,447.0791 8585.3922,477.0244 " fill="none" id="urt_hrtrequest_t-&gt;urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="8591.6096,473.8052,8595.0156,494.7193,8579.3108,480.494,8591.6096,473.8052" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[189d7bd823f9a098ae8eb3eaa3789ee1]
55
link urt_hrtrequest_t to urt_service_t--><path d="M7670.9735,382.0975 C7659.1086,388.1956 7647.4173,394.3262 7636,400.4531 C7603.7225,417.7743 7570.1695,436.9636 7537.6925,456.3331 " fill="none" id="urt_hrtrequest_t-&gt;urt_service_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7533.3248,458.943,7543.1024,457.76,7537.6169,456.3782,7538.9987,450.8927,7533.3248,458.943" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[bcf13f9307d05af3b11663d6e8155fbe]
56
reverse link urt_service_t to urt_hrtrequest_t--><path d="M7579.1573,452.3042 C7609.8197,434.3096 7640.9622,416.5724 7671,400.4531 C7682.4173,394.3262 7694.1086,388.1956 7705.958,382.0975 " fill="none" id="urt_service_t&lt;-urt_hrtrequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7567.8853,458.943,7575.0852,459.3448,7578.2252,452.8532,7571.0253,452.4515,7567.8853,458.943" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7573.0021" y="447.7842">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="7671.231" y="401.4722">0,1</text><!--MD5=[05f2c35569573d3273c65d3342945557]
57
reverse link urt_service_t to urt_service_t--><path d="M7647.2443,563.1615 C7661.5974,570.9463 7670,581.2101 7670,593.9531 C7670,609.9443 7656.7678,622.0314 7635.1491,630.2144 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7635.1491,557.6918,7638.9678,563.8088,7646.083,562.6365,7642.2643,556.5195,7635.1491,557.6918" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7643.1749" y="553.6023">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="7643.3343" y="628.0513">0,1</text><!--MD5=[694e7400eb99f74d44ea388aed89d199]
58
reverse link urt_core_t to urt_node_t--><path d="M6155,405.791 C6155,430.332 6155,455.1459 6155,478.3469 " fill="none" id="urt_core_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6155,392.5966,6151,398.5966,6155,404.5966,6159,398.5966,6155,392.5966" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6146.7938" y="412.9685">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="6134.3594" y="467.5231">0,1</text><!--MD5=[250695c91040478b50550bc37a8775c7]
59
reverse link urt_core_t to urt_topic_t--><path d="M5970.1848,241.6707 C5104.877,254.8244 1486.4238,314.7673 1263,400.4531 C1225.6058,414.7942 1189.9605,437.9286 1158.3764,463.2947 " fill="none" id="urt_core_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="5983.3424,241.471,5977.2823,237.5626,5971.3438,241.6533,5977.4038,245.5617,5983.3424,241.471" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5967.3829" y="238.3086">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1145.0466" y="452.3818">0,1</text><!--MD5=[8d0a227ec56585cdbc167f8316b34b64]
60 6c5df8c1 Thomas Schöpping
reverse link urt_core_t to urt_service_t--><path d="M6339.7014,252.4707 C6520.9369,270.4327 6802.5869,311.0467 7031,400.4531 C7070.5086,415.9177 7110.4566,436.6798 7147.8655,458.8707 " fill="none" id="urt_core_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6326.5572,251.1903,6332.1411,255.7532,6338.5007,252.3538,6332.9168,247.7909,6326.5572,251.1903" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6334.5121" y="248.4683">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="7116.353" y="447.7077">0,1</text><!--MD5=[1252844a9364531b6e043ba3871ee118]
61 4d55cea4 Thomas Schöpping
@startuml
62
63
title **µRtWare**
64
65
66
67
68
69
70
71
72
73
74
75
76
77
  class urt_core_t <<S,BFAFFF>> {
78
  - {field} {static} _nodes : urt_node_t*
79
  - {field} {static} _evtSource : urt_osEventSource_t
80
  - {field} {static} _lock : urt_osMutex_t
81 e87bd7c7 Thomas Schöpping
  - {field} {static} _status : urt_status_t
82 4d55cea4 Thomas Schöpping
  .. URT_CFG_PUBSUB_ENABLED == true ..
83 056e40d2 Thomas Schöpping
  - {field} {static} _topics : urt_topic_t*
84 4d55cea4 Thomas Schöpping
  .. URT_CFG_RPC_ENABLED == true ..
85 056e40d2 Thomas Schöpping
  - {field} {static} _services : urt_service_t*
86 4d55cea4 Thomas Schöpping
  __
87 dd31cb03 Thomas Schöpping
  + {method} urtCoreInit (void) : void
88 e87bd7c7 Thomas Schöpping
  + {method} urtCoreGetStatus (void) : urt_status_t
89 dd31cb03 Thomas Schöpping
  + {method} urtCoreStartNodes (void) : void
90 e87bd7c7 Thomas Schöpping
  + {method} urtCoreSynchronize (node : urt_node_t*) : urt_status_t
91
  + {method} urtCoreStopNodes (reason : urt_status_t) : urt_status_t
92 6c5df8c1 Thomas Schöpping
  + {method} urtCoreGetEventSource (void) : urt_osEventSource_t*
93
  + {method} urtCoreGetMutex (void) : urt_osMutex_t*
94 056e40d2 Thomas Schöpping
  .. URT_CFG_PUBSUB_ENABLED == true ..
95 ee83a495 Thomas Schöpping
  + {method} urtCoreGetTopic (id : urt_topicid_t) : urt_topic_t*
96 056e40d2 Thomas Schöpping
  .. URT_CFG_RPC_ENABLED == true ..
97 ee83a495 Thomas Schöpping
  + {method} urtCoreGetService (id : urt_serviceid_t) : urt_service_t*
98 4d55cea4 Thomas Schöpping
}
99
100
  package "node" <<Rectangle>> {
101
    class urt_nodeSetupCallback_t <<T,00CFFF>> {
102
    urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t
103
  }
104
105
    class urt_nodeLoopCallback_t <<T,00CFFF>> {
106
    urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t
107
  }
108
109 e87bd7c7 Thomas Schöpping
    class urt_nodeShutdownCallback_t <<T,00CFFF>> {
110
    urt_nodeShutdownCallback_t (node : urt_node_t*, cause : urt_status_t, arg : void*) : void
111
  }
112
113 4d55cea4 Thomas Schöpping
    class urt_node_t <<S,BFAFFF>> {
114
    + {field} next : urt_node_t*
115
    + {field} thread : urt_osThread_t*
116
    + {field} setupcallback : urt_nodeSetupCallback_t*
117
    + {field} setupparams : void*
118
    + {field} loopcallback : urt_nodeLoopCallback_t*
119
    + {field} loopparams : void*
120 e87bd7c7 Thomas Schöpping
    + {field} shutdowncallback : urt_nodeShutdownCallback_t*
121
    + {field} shutdownparams : void*
122 4d55cea4 Thomas Schöpping
    + {field} stage : urt_nodestage_t
123
    + {field} listener : urt_osEventListener_t
124 ee83a495 Thomas Schöpping
    .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true ..
125
    + {field} loops : uint64_t
126 4d55cea4 Thomas Schöpping
    __
127
    - {method} {static} _main : urt_osThreadFunction_t
128 dd31cb03 Thomas Schöpping
    + {method} urtNodeInit (node : urt_node_t*, thread : urt_osThread_t*, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*, shutdowncallback : urt_nodeShutdownCallback_t*, shutodwnparams : void*) : void
129 4d55cea4 Thomas Schöpping
  }
130
} 
131
132
  package "Publish-Subscribe System" <<Node>> {
133
134
  class urt_message_t <<S,BFAFFF>> {
135
  + {field} next : urt_message_t*
136
  + {field} payload : void*
137
  + {field} originTime : urt_osTime_t
138
  + {field} numHrtConsumersLeft : unsigned int
139
  .. URT_CFG_PUBSUB_PROFILING == true ..
140
  + {field} numConsumersLeft : unsigned int
141
  __
142 dd31cb03 Thomas Schöpping
  + {method} urtMessageInit (message : urt_message_t*, payload : void*) : void
143 4d55cea4 Thomas Schöpping
}
144
145
  package "subscriber" <<Rectangle>> {
146 ee83a495 Thomas Schöpping
    class urt_basesubscriber_t <<S,BFAFFF>> {
147 4d55cea4 Thomas Schöpping
    + {field} topic : urt_topic_t*
148
    + {field} evtListener : urt_osEventListener_t
149
    + {field} lastMessage : urt_message_t*
150
    + {field} lastMessageTime : urt_osTime_t
151
    .. URT_CFG_PUBSUB_PROFILING == true ..
152
    + {field} sumLatencies : uint64_t
153
    + {field} numMessagesReceived : uint64_t
154 ee83a495 Thomas Schöpping
  }
155
156
    class urt_nrtsubscriber_t <<S,BFAFFF>> {
157
    .. URT_CFG_PUBSUB_PROFILING == true ..
158
    + {field} minLatency : urt_delay_t
159
    + {field} maxLatency : urt_delay_t
160
    __
161 dd31cb03 Thomas Schöpping
    + {method} urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : void
162 ee83a495 Thomas Schöpping
    + {method} urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
163
    + {method} urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
164
    + {method} urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
165
    + {method} urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t
166
  }
167
168
    class urt_srtsubscriber_t <<S,BFAFFF>> {
169 2d315870 Thomas Schöpping
    + {field} usefulnesscb : urt_usefulness_f*
170 ee83a495 Thomas Schöpping
    + {field} cbparams : void*
171 056e40d2 Thomas Schöpping
    .. URT_CFG_PUBSUB_PROFILING == true ..
172 4d55cea4 Thomas Schöpping
    + {field} minLatency : urt_delay_t
173
    + {field} maxLatency : urt_delay_t
174
    __
175 dd31cb03 Thomas Schöpping
    + {method} urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : void
176 2d315870 Thomas Schöpping
    + {method} urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_usefulness_f*, cbparams : void*) : urt_status_t
177 ee83a495 Thomas Schöpping
    + {method} urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
178
    + {method} urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
179
    + {method} urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float
180
    + {method} urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t
181
  }
182
183
    class urt_frtsubscriber_t <<S,BFAFFF>> {
184
    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
185
    + {field} deadlineOffset : urt_delay_t
186
    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
187
    + {field} maxJitter : urt_delay_t
188
    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ||  URT_CFG_PUBSUB_PROFILING == true ..
189
    + {field} minLatency : urt_delay_t
190
    + {field} maxLatency : urt_delay_t
191
    __
192 dd31cb03 Thomas Schöpping
    + {method} urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : void
193 ee83a495 Thomas Schöpping
    + {method} urtFrtSubscriberSubscribe (subscriber : urt_frtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, jitter : urt_delay_t) : urt_status_t
194
    + {method} urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
195
    + {method} urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
196
    + {method} urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool
197
    + {method} urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t
198
  }
199
200
    class urt_hrtsubscriber_t <<S,BFAFFF>> {
201
    + {field} next : urt_hrtsubscriber_t*
202
    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
203
    + {field} deadlineOffset : urt_delay_t
204
    + {field} qosDeadlineTimer : urt_osTimer_t
205
    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
206
    + {field} maxJitter : urt_delay_t
207
    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true..
208
    + {field} minLatency : urt_delay_t
209
    + {field} maxLatency : urt_delay_t
210
    .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
211
    + {field} expectedRate : urt_delay_t
212
    __
213 dd31cb03 Thomas Schöpping
    + {method} urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : void
214 ee83a495 Thomas Schöpping
    + {method} urtHrtSubscriberSubscribe (subscriber : urt_hrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
215
    + {method} urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
216
    + {method} urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
217
    + {method} urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t
218 4d55cea4 Thomas Schöpping
  }
219
} 
220
221
  class urt_publisher_t <<S,BFAFFF>> {
222 621aa0b6 Thomas Schöpping
  URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT : bool
223
  __
224 4d55cea4 Thomas Schöpping
  + {field} topic : urt_topic_t*
225 ee83a495 Thomas Schöpping
  .. URT_CFG_PUBSUB_PROFILING == true ..
226 4d55cea4 Thomas Schöpping
  + {field} publishAttempts : uint64_t
227
  + {field} publishFails : uint64_t
228
  __
229 dd31cb03 Thomas Schöpping
  + {method} urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : void
230 621aa0b6 Thomas Schöpping
  .. URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == false ..
231
  + {method} urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, bytes : size_t, t : urt_osTime_t) : urt_status_t
232
  .. URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == true ..
233 dd31cb03 Thomas Schöpping
  + {method} urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, bytes : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t
234 4d55cea4 Thomas Schöpping
}
235
236
  class urt_topic_t <<S,BFAFFF>> {
237
  + {field} next : urt_topic_t*
238
  + {field} id : urt_topicid_t
239
  + {field} lock : urt_osMutex_t
240
  + {field} evtSource : urt_osEventSource_t
241
  + {field} numHrtSubscribers : unsigned int
242 056e40d2 Thomas Schöpping
  + {field} hrtReleased : urt_osCondvar_t
243 4d55cea4 Thomas Schöpping
  + {field} mandatoryMessage : urt_message_t
244
  + {field} latestMessage : urt_message_t*
245
  .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
246 dd31cb03 Thomas Schöpping
  + {field} hrtSubscribers : urt_hrtsubscriber_t*
247 4d55cea4 Thomas Schöpping
  + {field} qosRateTimer : urt_osTimer_t
248
  .. URT_CFG_PUBSUB_PROFILING == true ..
249 dd31cb03 Thomas Schöpping
  + {field} numMessagesPublished : uint64_t
250
  + {field} numMessagesDiscarded : uint64_t
251 4d55cea4 Thomas Schöpping
  + {field} numSubscribers : unsigned int
252
  __
253
  + {method} urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t
254
}
255
256
}
257
258
  package "Remote Procedure Call System" <<Node>> {
259
260 2d315870 Thomas Schöpping
  package "request" <<Rectangle>> {
261
    class urt_baserequest_t <<S,BFAFFF>> {
262
    + {field} prev : urt_baserequest_t*
263
    + {field} next : urt_baserequest_t*
264
    + {field} lock : urt_osMutex_t
265
    + {field} owner : urt_service_t*
266
    + {field} submissionTime : urt_osTime_t
267
    + {field} payload : void*
268
    + {field} evtSource : urt_osEventSource_t
269
    + {field} evtListener : urt_osEventListener_t
270
    .. URT_CFG_RPC_PROFILING == true ..
271
    + {field} sumLatencies : uint64_t
272
    + {field} numCalls : uint64_t
273
    + {field} numFails : uint64_t
274
  }
275
276
    class urt_nrtrequest_t <<S,BFAFFF>> {
277
    .. URT_CFG_RPC_PROFILING == true ..
278
    + {field} minLatency : urt_delay_t
279
    + {field} maxLatency : urt_delay_t
280
    __
281
    + {method} urtNrtRequestInit (request : urt_nrtrequest_t*) : void
282
    + {method} urtNrtRequestAcquire (request : urt_nrtrequest_t*) : urt_status_t
283
    + {method} urtNrtRequestTryAcquire (request : urt_nrtrequest_t*) : urt_status_t
284
    + {method} urtNrtRequestRelease (request : urt_nrtrequest_t*) : urt_status_t
285
    + {method} urtNrtRequestSubmit (request : urt_nrtrequest_t*, service : urt_service_t*) : urt_status_t
286
    + {method} urtNrtRequestRetrieve (request : urt_nrtrequest_t*) : urt_status_t
287
  }
288
289
    class urt_srtrequest_t <<S,BFAFFF>> {
290
    .. URT_CFG_RPC_PROFILING == true ..
291
    + {field} minLatency : urt_delay_t
292
    + {field} maxLatency : urt_delay_t
293
    __
294
    + {method} urtSrtRequestInit (request : urt_srtrequest_t*) : void
295
    + {method} urtSrtRequestAcquire (request : urt_srtrequest_t*) : urt_status_t
296
    + {method} urtSrtRequestTryAcquire (request : urt_srtrequest_t*) : urt_status_t
297
    + {method} urtSrtRequestRelease (request : urt_srtrequest_t*) : urt_status_t
298
    + {method} urtSrtRequestSubmit (request : urt_srtrequest_t*, service : urt_service_t*) : urt_status_t
299
    + {method} urtSrtRequestRetrieve (request : urt_srtrequest_t*) : urt_status_t
300
    + {method} urtSrtCalculateUsefulness (request : urt_srtrequest_t*, usefulnesscb : urt_usefulness_f, cbparams : void*) : float
301
  }
302
303
    class urt_frtrequest_t <<S,BFAFFF>> {
304
    .. URT_CFG_RPC_QOS_DEADLINECHECKS == true ..
305
    + {field} deadlineOffset : urt_delay_t
306
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true ..
307
    + {field} maxJitter : urt_delay_t
308
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true ..
309
    + {field} minLatency : urt_delay_t
310
    + {field} maxLatency : urt_delay_t
311
    __
312
    + {method} urtFrtRequestInit (request : urt_frtrequest_t*) : void
313
    + {method} urtFrtRequestAcquire (request : urt_frtrequest_t*) : urt_status_t
314
    + {method} urtFrtRequestTryAcquire (request : urt_frtrequest_t*) : urt_status_t
315
    + {method} urtFrtRequestRelease (request : urt_frtrequest_t*) : urt_status_t
316
    + {method} urtFrtRequestSubmit (request : urt_frtrequest_t*, service : urt_service_t*, deadline : urt_delay_t) : urt_status_t
317
    + {method} urtFrtRequestRetrieve (request : urt_frtrequest_t*) : urt_status_t
318
    + {method} urtDrtCalculateValidity (request : urt_frtrequest_t) : bool
319
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true ..
320 6c5df8c1 Thomas Schöpping
    + {method} urtFrtRequestGetMaxJitter (request : urt_frtrequest_t*) : urt_delay_t* const
321 2d315870 Thomas Schöpping
  }
322
323
    class urt_hrtrequest_t <<S,BFAFFF>> {
324
    .. URT_CFG_RPC_QOS_DEADLINECHECKS == true ..
325
    + {field} deadlineOffset : urt_delay_t
326
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true ..
327
    + {field} maxJitter : urt_delay_t
328
    .. URT_CFG_RPC_QOS_DEADLINECHECKS == true || URT_CFG_RPC_QOS_JITTERCHECKS == true ..
329
    + {field} qosTimer : urt_osTimer_t
330
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true ..
331
    + {field} minLatency : urt_delay_t
332
    + {field} maxLatency : urt_delay_t
333
    __
334
    + {method} urtHrtRequestInit (request : urt_hrtrequest_t*) : void
335
    + {method} urtHrtRequestAcquire (request : urt_hrtrequest_t*) : urt_status_t
336
    + {method} urtHrtRequestTryAcquire (request : urt_hrtrequest_t*) : urt_status_t
337
    + {method} urtHrtRequestRelease (request : urt_hrtrequest_t*) : urt_status_t
338
    + {method} urtHrtRequestSubmit (request : urt_hrtrequest_t*, service : urt_service_t*, deadline : urt_delay_t) : urt_status_t
339
    + {method} urtHrtRequestRetrieve (request : urt_hrtrequest_t*) : urt_status_t
340
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true ..
341 6c5df8c1 Thomas Schöpping
    + {method} urtHrtRequestGetMaxJitter (request : urt_hrtrequest_t*) : urt_delay_t* const
342 2d315870 Thomas Schöpping
  }
343 4d55cea4 Thomas Schöpping
}
344
345 056e40d2 Thomas Schöpping
  class urt_service_t <<S,BFAFFF>> {
346
  + {field} next : urt_service_t*
347
  + {field} id : urt_serviceid_t
348
  + {field} lock : urt_osMutex_t
349 2d315870 Thomas Schöpping
  + {field} requestQueue_front : urt_baserequest_t*
350
  + {field} requestQueue_hrtBack : urt_hrtrequest_t*
351
  + {field} requestQueue_fsrtBack : urt_baserequest_t*
352
  + {field} requestQueue_back : urt_baserequest_t*
353
  + {field} evtSource : urt_osEventSource_t
354
  + {field} evtListener : urt_osEventListener_t
355 ee83a495 Thomas Schöpping
  .. URT_CFG_RPC_PROFILING == true ..
356 056e40d2 Thomas Schöpping
  + {field} numCalls : uint64_t
357 2d315870 Thomas Schöpping
  + {field} numOwnershipLost : uint64_t
358 4d55cea4 Thomas Schöpping
  __
359 2d315870 Thomas Schöpping
  + {method} urtServiceInit (service : urt_service_t*, id : urt_serviceid_t) : urt_status_t
360
  + {method} urtServiceDispatch (service : urt_service_t*, payload : void*, bytes : size_t) : urt_baserequest_t*
361
  + {method} urtServiceAcquireRequest (service* urt_serviceid_t*, request : urt_baserequest_t*) : urt_status_t
362
  + {method} urtServiceTryAcquireRequest (service* urt_serviceid_t*, request : urt_baserequest_t*) : urt_status_t
363
  + {method} urtServiceRespond (request : urt_baserequest_t*) : urt_status_t
364 4d55cea4 Thomas Schöpping
}
365
366
}
367
368
369
370
371 2d315870 Thomas Schöpping
urt_node_t "1" o- - "0,1" urt_node_t
372
urt_node_t "1" o- - "0,1" urt_nodeSetupCallback_t
373 4d55cea4 Thomas Schöpping
urt_node_t <.. urt_nodeSetupCallback_t
374
urt_node_t "1" o- - "1" urt_nodeLoopCallback_t
375
urt_node_t <.. urt_nodeLoopCallback_t
376 2d315870 Thomas Schöpping
urt_node_t "1" o- - "0,1" urt_nodeShutdownCallback_t
377 e87bd7c7 Thomas Schöpping
urt_node_t <.. urt_nodeShutdownCallback_t
378 4d55cea4 Thomas Schöpping
379
380 2d315870 Thomas Schöpping
urt_message_t "1" o- "0,1" urt_message_t
381
382
urt_basesubscriber_t "1" o- - "0,1" urt_message_t
383 4d55cea4 Thomas Schöpping
384 ee83a495 Thomas Schöpping
urt_nrtsubscriber_t - -|> urt_basesubscriber_t
385 4d55cea4 Thomas Schöpping
386 ee83a495 Thomas Schöpping
urt_srtsubscriber_t - -|> urt_basesubscriber_t
387 4d55cea4 Thomas Schöpping
388 ee83a495 Thomas Schöpping
urt_frtsubscriber_t - -|> urt_basesubscriber_t
389 4d55cea4 Thomas Schöpping
390 ee83a495 Thomas Schöpping
urt_hrtsubscriber_t - -|> urt_basesubscriber_t
391 2d315870 Thomas Schöpping
urt_hrtsubscriber_t "1" o- "0,1" urt_hrtsubscriber_t
392 4d55cea4 Thomas Schöpping
393
urt_publisher_t "1" o- "1" urt_topic_t
394
urt_publisher_t ..> urt_message_t
395
396 2d315870 Thomas Schöpping
urt_topic_t "1" o- "0,1" urt_topic_t
397
urt_topic_t "1" o- "0,1" urt_hrtsubscriber_t
398 4d55cea4 Thomas Schöpping
urt_topic_t "1" *- - "1" urt_message_t
399
400
401
402 2d315870 Thomas Schöpping
urt_baserequest_t "1" o- "0,1,2" urt_baserequest_t
403
urt_baserequest_t "1" o- "0,1" urt_service_t
404
405
urt_nrtrequest_t - -|> urt_baserequest_t
406
urt_nrtrequest_t ..> urt_service_t
407
408
urt_srtrequest_t - -|> urt_baserequest_t
409
urt_srtrequest_t ..> urt_service_t
410
411
urt_frtrequest_t - -|> urt_baserequest_t
412
urt_frtrequest_t ..> urt_service_t
413
414
urt_hrtrequest_t - -|> urt_baserequest_t
415
urt_hrtrequest_t ..> urt_service_t
416
417
urt_service_t "1" o- "0,1" urt_service_t
418
urt_service_t "1" o- "0,2,3" urt_baserequest_t
419
urt_service_t "1" o- "0,1" urt_hrtrequest_t
420 4d55cea4 Thomas Schöpping
421
422 2d315870 Thomas Schöpping
urt_core_t "1" o- - "0,1" urt_node_t
423
urt_core_t "1" o- - "0,1" urt_topic_t
424
urt_core_t "1" o- - "0,1" urt_service_t
425 4d55cea4 Thomas Schöpping
426
427
428
@enduml
429
430
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
431
(GPL source distribution)
432
Java Runtime: OpenJDK Runtime Environment
433
JVM: OpenJDK 64-Bit Server VM
434 2d315870 Thomas Schöpping
Java Version: 11.0.7+10-post-Ubuntu-2ubuntu218.04
435 4d55cea4 Thomas Schöpping
Operating System: Linux
436
Default Encoding: UTF-8
437
Language: en
438
Country: US
439
--></g></svg>