Statistics
| Branch: | Revision:

urtware / doc / classdiagrams / urtware.svg @ 77bd2c61

History | View | Annotate | Download (143.502 KB)

1
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1173px" preserveAspectRatio="none" style="width:10557px;height:1173px;" version="1.1" viewBox="0 0 10557 1173" width="10557px" zoomAndPan="magnify"><defs><filter height="300%" id="fgmjoycxg2h2i" 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="5225" y="16.708">µRtWare</text><!--MD5=[b9de0669a29c7bc934fd916b09c39491]
2
cluster node--><rect fill="#FFFFFF" filter="url(#fgmjoycxg2h2i)" height="443" style="stroke: #000000; stroke-width: 1.5;" width="1674" x="5569" y="479.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="6386" y="494.9482">node</text><!--MD5=[d74e2ef346f73688f9378f6d3d42598c]
3
cluster Publish-Subscribe System--><polygon fill="#FFFFFF" filter="url(#fgmjoycxg2h2i)" points="16,438.9531,26,428.9531,5561,428.9531,5561,1151.4531,5551,1161.4531,16,1161.4531,16,438.9531" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="5551" x2="5560" y1="438.9531" y2="429.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="16" x2="5551" y1="438.9531" y2="438.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="5551" x2="5551" y1="438.9531" y2="1161.4531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="205" x="2682" y="454.9482">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
4
cluster subscriber--><rect fill="#FFFFFF" filter="url(#fgmjoycxg2h2i)" height="498.5" style="stroke: #000000; stroke-width: 1.5;" width="4062" x="1491" y="460.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="3479.5" y="475.9482">subscriber</text><!--MD5=[810d0f07e53ef611b6d803ef30301147]
5
cluster Remote Procedure Call System--><polygon fill="#FFFFFF" filter="url(#fgmjoycxg2h2i)" points="7251,36.9531,7261,26.9531,10535,26.9531,10535,755.4531,10525,765.4531,7251,765.4531,7251,36.9531" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="10525" x2="10534" y1="36.9531" y2="27.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="7251" x2="10525" y1="36.9531" y2="36.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="10525" x2="10525" y1="36.9531" y2="765.4531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="244" x="8767" y="52.9482">Remote Procedure Call System</text><!--MD5=[ecaf13b018fb9788c80013f5b3634b61]
6
cluster request--><rect fill="#FFFFFF" filter="url(#fgmjoycxg2h2i)" height="670.5" style="stroke: #000000; stroke-width: 1.5;" width="2646" x="7881" y="58.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="62" x="9173" y="73.9482">request</text><!--MD5=[a7dea26996a1231aa68629b332780450]
7
class urt_nodeSetupCallback_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="60.8047" id="urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="456" x="5577" y="853.9531"/><ellipse cx="5722.75" cy="869.9531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5723.5938,876.7031 L5721.1406,876.7031 L5721.1406,866.4531 L5718,866.4531 L5718,864.3125 L5726.7344,864.3125 L5726.7344,866.4531 L5723.5938,866.4531 L5723.5938,876.7031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="5743.25" y="874.1074">urt_nodeSetupCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5578" x2="6032" y1="885.9531" y2="885.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5578" x2="6032" y1="893.9531" y2="893.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="444" x="5583" y="908.1636">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(#fgmjoycxg2h2i)" height="60.8047" id="urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="614" x="6068" y="853.9531"/><ellipse cx="6296.25" cy="869.9531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6297.0938,876.7031 L6294.6406,876.7031 L6294.6406,866.4531 L6291.5,866.4531 L6291.5,864.3125 L6300.2344,864.3125 L6300.2344,866.4531 L6297.0938,866.4531 L6297.0938,876.7031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="6316.75" y="874.1074">urt_nodeLoopCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6069" x2="6681" y1="885.9531" y2="885.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6069" x2="6681" y1="893.9531" y2="893.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="602" x="6074" y="908.1636">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(#fgmjoycxg2h2i)" height="60.8047" id="urt_nodeShutdownCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="518" x="6717" y="853.9531"/><ellipse cx="6881.25" cy="869.9531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6882.0938,876.7031 L6879.6406,876.7031 L6879.6406,866.4531 L6876.5,866.4531 L6876.5,864.3125 L6885.2344,864.3125 L6885.2344,866.4531 L6882.0938,866.4531 L6882.0938,876.7031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="181" x="6901.75" y="874.1074">urt_nodeShutdownCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6718" x2="7234" y1="885.9531" y2="885.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6718" x2="7234" y1="893.9531" y2="893.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="506" x="6723" y="908.1636">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(#fgmjoycxg2h2i)" height="231.2656" id="urt_node_t" style="stroke: #A80036; stroke-width: 1.5;" width="1541" x="5604.5" y="506.9531"/><ellipse cx="6337.25" cy="522.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6336.7344,523.5156 Q6334.875,522.8125 6334.2188,522.0469 Q6333.5781,521.2656 6333.5781,519.9531 Q6333.5781,518.2656 6334.6563,517.2969 Q6335.7344,516.3281 6337.6094,516.3281 Q6338.4688,516.3281 6339.3125,516.5313 Q6340.1719,516.7188 6341.0156,517.1094 L6341.0156,519.5 Q6340.2344,518.9375 6339.4063,518.6563 Q6338.5938,518.3594 6337.7969,518.3594 Q6336.9219,518.3594 6336.4375,518.7188 Q6335.9688,519.0781 6335.9688,519.7344 Q6335.9688,520.25 6336.3125,520.5938 Q6336.6563,520.9219 6337.75,521.3281 L6338.8125,521.7344 Q6340.2969,522.2813 6341,523.1875 Q6341.7188,524.0938 6341.7188,525.4688 Q6341.7188,527.3438 6340.6094,528.2656 Q6339.5,529.1875 6337.25,529.1875 Q6336.3281,529.1875 6335.4063,528.9688 Q6334.4844,528.75 6333.625,528.3281 L6333.625,525.7969 Q6334.5938,526.4844 6335.5156,526.8281 Q6336.4375,527.1719 6337.3281,527.1719 Q6338.2344,527.1719 6338.7344,526.7656 Q6339.2344,526.3438 6339.2344,525.6094 Q6339.2344,525.0469 6338.8906,524.6406 Q6338.5625,524.2188 6337.9375,523.9688 L6336.7344,523.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="67" x="6357.75" y="527.1074">urt_node_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5605.5" x2="7144.5" y1="538.9531" y2="538.9531"/><ellipse cx="5615.5" cy="549.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="5624.5" y="553.1636">next : urt_node_t*</text><ellipse cx="5615.5" cy="562.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="5624.5" y="565.9683">thread : urt_osThread_t*</text><ellipse cx="5615.5" cy="575.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="5624.5" y="578.7729">setupcallback : urt_nodeSetupCallback_t*</text><ellipse cx="5615.5" cy="588.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="117" x="5624.5" y="591.5776">setupparams : void*</text><ellipse cx="5615.5" cy="601.1719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="221" x="5624.5" y="604.3823">loopcallback : urt_nodeLoopCallback_t*</text><ellipse cx="5615.5" cy="613.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="5624.5" y="617.187">loopparams : void*</text><ellipse cx="5615.5" cy="626.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="281" x="5624.5" y="629.9917">shutdowncallback : urt_nodeShutdownCallback_t*</text><ellipse cx="5615.5" cy="639.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="140" x="5624.5" y="642.7964">shutdownparams : void*</text><ellipse cx="5615.5" cy="652.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="136" x="5624.5" y="655.6011">stage : urt_nodestage_t</text><ellipse cx="5615.5" cy="665.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="178" x="5624.5" y="668.4058">listener : urt_osEventListener_t</text><ellipse cx="5615.5" cy="694.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="88" x="5624.5" y="698.0151">loops : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5605.5" x2="6167" y1="681.4023" y2="681.4023"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="416" x="6167" y="684.7104">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="6583" x2="7144.5" y1="681.4023" y2="681.4023"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5605.5" x2="7144.5" y1="704.6094" y2="704.6094"/><rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5612.5" y="712.6094"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="179" x="5624.5" y="718.8198">_main : urt_osThreadFunction_t</text><ellipse cx="5615.5" cy="728.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="1515" x="5624.5" y="731.6245">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(#fgmjoycxg2h2i)" height="141.6328" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="406" x="941" y="1011.4531"/><ellipse cx="1093.75" cy="1027.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1093.2344,1028.0156 Q1091.375,1027.3125 1090.7188,1026.5469 Q1090.0781,1025.7656 1090.0781,1024.4531 Q1090.0781,1022.7656 1091.1563,1021.7969 Q1092.2344,1020.8281 1094.1094,1020.8281 Q1094.9688,1020.8281 1095.8125,1021.0313 Q1096.6719,1021.2188 1097.5156,1021.6094 L1097.5156,1024 Q1096.7344,1023.4375 1095.9063,1023.1563 Q1095.0938,1022.8594 1094.2969,1022.8594 Q1093.4219,1022.8594 1092.9375,1023.2188 Q1092.4688,1023.5781 1092.4688,1024.2344 Q1092.4688,1024.75 1092.8125,1025.0938 Q1093.1563,1025.4219 1094.25,1025.8281 L1095.3125,1026.2344 Q1096.7969,1026.7813 1097.5,1027.6875 Q1098.2188,1028.5938 1098.2188,1029.9688 Q1098.2188,1031.8438 1097.1094,1032.7656 Q1096,1033.6875 1093.75,1033.6875 Q1092.8281,1033.6875 1091.9063,1033.4688 Q1090.9844,1033.25 1090.125,1032.8281 L1090.125,1030.2969 Q1091.0938,1030.9844 1092.0156,1031.3281 Q1092.9375,1031.6719 1093.8281,1031.6719 Q1094.7344,1031.6719 1095.2344,1031.2656 Q1095.7344,1030.8438 1095.7344,1030.1094 Q1095.7344,1029.5469 1095.3906,1029.1406 Q1095.0625,1028.7188 1094.4375,1028.4688 L1093.2344,1028.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="1114.25" y="1031.6074">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="942" x2="1346" y1="1043.4531" y2="1043.4531"/><ellipse cx="952" cy="1054.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="127" x="961" y="1057.6636">next : urt_message_t*</text><ellipse cx="952" cy="1067.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="85" x="961" y="1070.4683">payload : void*</text><ellipse cx="952" cy="1080.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="146" x="961" y="1083.2729">originTime : urt_osTime_t</text><ellipse cx="952" cy="1092.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="211" x="961" y="1096.0776">numHrtConsumersLeft : unsigned int</text><ellipse cx="952" cy="1122.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="194" x="961" y="1125.687">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="942" x2="1035.5" y1="1109.0742" y2="1109.0742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1035.5" y="1112.3823">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1252.5" x2="1346" y1="1109.0742" y2="1109.0742"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="942" x2="1346" y1="1132.2813" y2="1132.2813"/><ellipse cx="952" cy="1143.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="380" x="961" y="1146.4917">urtMessageInit (message : urt_message_t*, payload : void*) : void</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
12
class urt_publisher_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="196.0469" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="783" x="24.5" y="524.4531"/><ellipse cx="365.25" cy="540.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M364.7344,541.0156 Q362.875,540.3125 362.2188,539.5469 Q361.5781,538.7656 361.5781,537.4531 Q361.5781,535.7656 362.6563,534.7969 Q363.7344,533.8281 365.6094,533.8281 Q366.4688,533.8281 367.3125,534.0313 Q368.1719,534.2188 369.0156,534.6094 L369.0156,537 Q368.2344,536.4375 367.4063,536.1563 Q366.5938,535.8594 365.7969,535.8594 Q364.9219,535.8594 364.4375,536.2188 Q363.9688,536.5781 363.9688,537.2344 Q363.9688,537.75 364.3125,538.0938 Q364.6563,538.4219 365.75,538.8281 L366.8125,539.2344 Q368.2969,539.7813 369,540.6875 Q369.7188,541.5938 369.7188,542.9688 Q369.7188,544.8438 368.6094,545.7656 Q367.5,546.6875 365.25,546.6875 Q364.3281,546.6875 363.4063,546.4688 Q362.4844,546.25 361.625,545.8281 L361.625,543.2969 Q362.5938,543.9844 363.5156,544.3281 Q364.4375,544.6719 365.3281,544.6719 Q366.2344,544.6719 366.7344,544.2656 Q367.2344,543.8438 367.2344,543.1094 Q367.2344,542.5469 366.8906,542.1406 Q366.5625,541.7188 365.9375,541.4688 L364.7344,541.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="385.75" y="544.6074">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="25.5" x2="806.5" y1="556.4531" y2="556.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="289" x="30.5" y="570.6636">URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT : bool</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="25.5" x2="806.5" y1="577.2578" y2="577.2578"/><ellipse cx="35.5" cy="588.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="104" x="44.5" y="591.4683">topic : urt_topic_t*</text><ellipse cx="35.5" cy="617.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="149" x="44.5" y="621.0776">publishAttempts : uint64_t</text><ellipse cx="35.5" cy="630.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="124" x="44.5" y="633.8823">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="25.5" x2="307.5" y1="604.4648" y2="604.4648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="307.5" y="607.7729">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="524.5" x2="806.5" y1="604.4648" y2="604.4648"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="25.5" x2="806.5" y1="640.4766" y2="640.4766"/><ellipse cx="35.5" cy="651.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="572" x="44.5" y="654.687">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : void</text><ellipse cx="35.5" cy="681.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="632" x="44.5" y="684.2964">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="25.5" x2="262.5" y1="667.6836" y2="667.6836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="307" x="262.5" y="670.9917">URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == false</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="569.5" x2="806.5" y1="667.6836" y2="667.6836"/><ellipse cx="35.5" cy="710.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="757" x="44.5" y="713.9058">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="25.5" x2="265" y1="697.293" y2="697.293"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="302" x="265" y="700.6011">URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="567" x2="806.5" y1="697.293" y2="697.293"/><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
13
class urt_topic_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="260.875" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="603" x="842.5" y="491.9531"/><ellipse cx="1106.75" cy="507.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1106.2344,508.5156 Q1104.375,507.8125 1103.7188,507.0469 Q1103.0781,506.2656 1103.0781,504.9531 Q1103.0781,503.2656 1104.1563,502.2969 Q1105.2344,501.3281 1107.1094,501.3281 Q1107.9688,501.3281 1108.8125,501.5313 Q1109.6719,501.7188 1110.5156,502.1094 L1110.5156,504.5 Q1109.7344,503.9375 1108.9063,503.6563 Q1108.0938,503.3594 1107.2969,503.3594 Q1106.4219,503.3594 1105.9375,503.7188 Q1105.4688,504.0781 1105.4688,504.7344 Q1105.4688,505.25 1105.8125,505.5938 Q1106.1563,505.9219 1107.25,506.3281 L1108.3125,506.7344 Q1109.7969,507.2813 1110.5,508.1875 Q1111.2188,509.0938 1111.2188,510.4688 Q1111.2188,512.3438 1110.1094,513.2656 Q1109,514.1875 1106.75,514.1875 Q1105.8281,514.1875 1104.9063,513.9688 Q1103.9844,513.75 1103.125,513.3281 L1103.125,510.7969 Q1104.0938,511.4844 1105.0156,511.8281 Q1105.9375,512.1719 1106.8281,512.1719 Q1107.7344,512.1719 1108.2344,511.7656 Q1108.7344,511.3438 1108.7344,510.6094 Q1108.7344,510.0469 1108.3906,509.6406 Q1108.0625,509.2188 1107.4375,508.9688 L1106.2344,508.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="1127.25" y="512.1074">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="843.5" x2="1444.5" y1="523.9531" y2="523.9531"/><ellipse cx="853.5" cy="534.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="101" x="862.5" y="538.1636">next : urt_topic_t*</text><ellipse cx="853.5" cy="547.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="91" x="862.5" y="550.9683">id : urt_topicid_t</text><ellipse cx="853.5" cy="560.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="862.5" y="563.7729">lock : urt_osMutex_t</text><ellipse cx="853.5" cy="573.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="862.5" y="576.5776">evtSource : urt_osEventSource_t</text><ellipse cx="853.5" cy="586.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="193" x="862.5" y="589.3823">numHrtSubscribers : unsigned int</text><ellipse cx="853.5" cy="598.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="173" x="862.5" y="602.187">hrtReleased : urt_osCondvar_t</text><ellipse cx="853.5" cy="611.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="209" x="862.5" y="614.9917">mandatoryMessage : urt_message_t</text><ellipse cx="853.5" cy="624.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="862.5" y="627.7964">latestMessage : urt_message_t*</text><ellipse cx="853.5" cy="654.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="212" x="862.5" y="657.4058">hrtSubscribers : urt_hrtsubscriber_t*</text><ellipse cx="853.5" cy="667" fill="none" 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="862.5" y="670.2104">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="843.5" x2="1011.5" y1="640.793" y2="640.793"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="1011.5" y="644.1011">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1276.5" x2="1444.5" y1="640.793" y2="640.793"/><ellipse cx="853.5" cy="696.6094" fill="none" 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="862.5" y="699.8198">numMessagesPublished : uint64_t</text><ellipse cx="853.5" cy="709.4141" fill="none" 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="862.5" y="712.6245">numMessagesDiscarded : uint64_t</text><ellipse cx="853.5" cy="722.2188" fill="none" 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="862.5" y="725.4292">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="843.5" x2="1035.5" y1="683.207" y2="683.207"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1035.5" y="686.5151">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1252.5" x2="1444.5" y1="683.207" y2="683.207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="843.5" x2="1444.5" y1="732.0234" y2="732.0234"/><ellipse cx="853.5" cy="743.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="577" x="862.5" y="746.2339">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t, mandatoryMessage: urt_message_t*) : urt_status_t</text><!--MD5=[50a042e24f957794dab9ba3ea8701c50]
14
class urt_basesubscriber_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="133.6328" id="urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="2784.5" y="817.4531"/><ellipse cx="2826.95" cy="833.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2826.4344,834.0156 Q2824.575,833.3125 2823.9188,832.5469 Q2823.2781,831.7656 2823.2781,830.4531 Q2823.2781,828.7656 2824.3563,827.7969 Q2825.4344,826.8281 2827.3094,826.8281 Q2828.1688,826.8281 2829.0125,827.0313 Q2829.8719,827.2188 2830.7156,827.6094 L2830.7156,830 Q2829.9344,829.4375 2829.1063,829.1563 Q2828.2938,828.8594 2827.4969,828.8594 Q2826.6219,828.8594 2826.1375,829.2188 Q2825.6688,829.5781 2825.6688,830.2344 Q2825.6688,830.75 2826.0125,831.0938 Q2826.3563,831.4219 2827.45,831.8281 L2828.5125,832.2344 Q2829.9969,832.7813 2830.7,833.6875 Q2831.4188,834.5938 2831.4188,835.9688 Q2831.4188,837.8438 2830.3094,838.7656 Q2829.2,839.6875 2826.95,839.6875 Q2826.0281,839.6875 2825.1063,839.4688 Q2824.1844,839.25 2823.325,838.8281 L2823.325,836.2969 Q2824.2938,836.9844 2825.2156,837.3281 Q2826.1375,837.6719 2827.0281,837.6719 Q2827.9344,837.6719 2828.4344,837.2656 Q2828.9344,836.8438 2828.9344,836.1094 Q2828.9344,835.5469 2828.5906,835.1406 Q2828.2625,834.7188 2827.6375,834.4688 L2826.4344,834.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="132" x="2847.05" y="837.6074">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2785.5" x2="3008.5" y1="849.4531" y2="849.4531"/><ellipse cx="2795.5" cy="860.4531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="2804.5" y="863.6636">topic : urt_topic_t*</text><ellipse cx="2795.5" cy="873.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="198" x="2804.5" y="876.4683">evtListener : urt_osEventListener_t</text><ellipse cx="2795.5" cy="886.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="175" x="2804.5" y="889.2729">lastMessage : urt_message_t*</text><ellipse cx="2795.5" cy="898.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="2804.5" y="902.0776">lastMessageTime : urt_osTime_t</text><ellipse cx="2795.5" cy="928.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="136" x="2804.5" y="931.687">sumLatencies : uint64_t</text><ellipse cx="2795.5" cy="941.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="190" x="2804.5" y="944.4917">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2785.5" x2="2788.5" y1="915.0742" y2="915.0742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="2788.5" y="918.3823">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3005.5" x2="3008.5" y1="915.0742" y2="915.0742"/><!--MD5=[9ff46073dd541e50679ef35e851c67d6]
15
class urt_nrtsubscriber_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="154.4375" id="urt_nrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="821" x="1498.5" y="545.4531"/><ellipse cx="1845.25" cy="561.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1844.7344,562.0156 Q1842.875,561.3125 1842.2188,560.5469 Q1841.5781,559.7656 1841.5781,558.4531 Q1841.5781,556.7656 1842.6563,555.7969 Q1843.7344,554.8281 1845.6094,554.8281 Q1846.4688,554.8281 1847.3125,555.0313 Q1848.1719,555.2188 1849.0156,555.6094 L1849.0156,558 Q1848.2344,557.4375 1847.4063,557.1563 Q1846.5938,556.8594 1845.7969,556.8594 Q1844.9219,556.8594 1844.4375,557.2188 Q1843.9688,557.5781 1843.9688,558.2344 Q1843.9688,558.75 1844.3125,559.0938 Q1844.6563,559.4219 1845.75,559.8281 L1846.8125,560.2344 Q1848.2969,560.7813 1849,561.6875 Q1849.7188,562.5938 1849.7188,563.9688 Q1849.7188,565.8438 1848.6094,566.7656 Q1847.5,567.6875 1845.25,567.6875 Q1844.3281,567.6875 1843.4063,567.4688 Q1842.4844,567.25 1841.625,566.8281 L1841.625,564.2969 Q1842.5938,564.9844 1843.5156,565.3281 Q1844.4375,565.6719 1845.3281,565.6719 Q1846.2344,565.6719 1846.7344,565.2656 Q1847.2344,564.8438 1847.2344,564.1094 Q1847.2344,563.5469 1846.8906,563.1406 Q1846.5625,562.7188 1845.9375,562.4688 L1844.7344,562.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="1865.75" y="565.6074">urt_nrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1499.5" x2="2318.5" y1="577.4531" y2="577.4531"/><ellipse cx="1509.5" cy="605.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="1518.5" y="608.4683">minLatency : urt_delay_t</text><ellipse cx="1509.5" cy="618.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="1518.5" y="621.2729">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1499.5" x2="1800.5" y1="591.8555" y2="591.8555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1800.5" y="595.1636">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2017.5" x2="2318.5" y1="591.8555" y2="591.8555"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1499.5" x2="2318.5" y1="627.8672" y2="627.8672"/><ellipse cx="1509.5" cy="638.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="347" x="1518.5" y="642.0776">urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : void</text><ellipse cx="1509.5" cy="651.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="715" x="1518.5" y="654.8823">urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="1509.5" cy="664.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="785" x="1518.5" y="667.687">urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1509.5" cy="677.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="795" x="1518.5" y="680.4917">urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1509.5" cy="690.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="446" x="1518.5" y="693.2964">urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t</text><!--MD5=[5c7929572d87ccc448d875bea5da0fb1]
16
class urt_srtsubscriber_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="192.8516" id="urt_srtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1044" x="4501" y="525.9531"/><ellipse cx="4959.75" cy="541.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4959.2344,542.5156 Q4957.375,541.8125 4956.7188,541.0469 Q4956.0781,540.2656 4956.0781,538.9531 Q4956.0781,537.2656 4957.1563,536.2969 Q4958.2344,535.3281 4960.1094,535.3281 Q4960.9688,535.3281 4961.8125,535.5313 Q4962.6719,535.7188 4963.5156,536.1094 L4963.5156,538.5 Q4962.7344,537.9375 4961.9063,537.6563 Q4961.0938,537.3594 4960.2969,537.3594 Q4959.4219,537.3594 4958.9375,537.7188 Q4958.4688,538.0781 4958.4688,538.7344 Q4958.4688,539.25 4958.8125,539.5938 Q4959.1563,539.9219 4960.25,540.3281 L4961.3125,540.7344 Q4962.7969,541.2813 4963.5,542.1875 Q4964.2188,543.0938 4964.2188,544.4688 Q4964.2188,546.3438 4963.1094,547.2656 Q4962,548.1875 4959.75,548.1875 Q4958.8281,548.1875 4957.9063,547.9688 Q4956.9844,547.75 4956.125,547.3281 L4956.125,544.7969 Q4957.0938,545.4844 4958.0156,545.8281 Q4958.9375,546.1719 4959.8281,546.1719 Q4960.7344,546.1719 4961.2344,545.7656 Q4961.7344,545.3438 4961.7344,544.6094 Q4961.7344,544.0469 4961.3906,543.6406 Q4961.0625,543.2188 4960.4375,542.9688 L4959.2344,542.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="4980.25" y="546.1074">urt_srtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4502" x2="5544" y1="557.9531" y2="557.9531"/><ellipse cx="4512" cy="568.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="189" x="4521" y="572.1636">usefulnesscb : urt_usefulness_f*</text><ellipse cx="4512" cy="581.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="4521" y="584.9683">cbparams : void*</text><ellipse cx="4512" cy="611.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="138" x="4521" y="614.5776">minLatency : urt_delay_t</text><ellipse cx="4512" cy="624.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="141" x="4521" y="627.3823">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4502" x2="4914.5" y1="597.9648" y2="597.9648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="4914.5" y="601.2729">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5131.5" x2="5544" y1="597.9648" y2="597.9648"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4502" x2="5544" y1="633.9766" y2="633.9766"/><ellipse cx="4512" cy="644.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="347" x="4521" y="648.187">urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : void</text><ellipse cx="4512" cy="657.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="1018" x="4521" y="660.9917">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="4512" cy="670.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="785" x="4521" y="673.7964">urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4512" cy="683.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="795" x="4521" y="686.6011">urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="4512" cy="696.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="570" x="4521" y="699.4058">urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float</text><ellipse cx="4512" cy="709" 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="4521" y="712.2104">urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t</text><!--MD5=[17838fb05fe219fd399839979ec8a4a4]
17
class urt_frtsubscriber_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="226.4609" id="urt_frtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="974" x="3492" y="509.4531"/><ellipse cx="3917.25" cy="525.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3916.7344,526.0156 Q3914.875,525.3125 3914.2188,524.5469 Q3913.5781,523.7656 3913.5781,522.4531 Q3913.5781,520.7656 3914.6563,519.7969 Q3915.7344,518.8281 3917.6094,518.8281 Q3918.4688,518.8281 3919.3125,519.0313 Q3920.1719,519.2188 3921.0156,519.6094 L3921.0156,522 Q3920.2344,521.4375 3919.4063,521.1563 Q3918.5938,520.8594 3917.7969,520.8594 Q3916.9219,520.8594 3916.4375,521.2188 Q3915.9688,521.5781 3915.9688,522.2344 Q3915.9688,522.75 3916.3125,523.0938 Q3916.6563,523.4219 3917.75,523.8281 L3918.8125,524.2344 Q3920.2969,524.7813 3921,525.6875 Q3921.7188,526.5938 3921.7188,527.9688 Q3921.7188,529.8438 3920.6094,530.7656 Q3919.5,531.6875 3917.25,531.6875 Q3916.3281,531.6875 3915.4063,531.4688 Q3914.4844,531.25 3913.625,530.8281 L3913.625,528.2969 Q3914.5938,528.9844 3915.5156,529.3281 Q3916.4375,529.6719 3917.3281,529.6719 Q3918.2344,529.6719 3918.7344,529.2656 Q3919.2344,528.8438 3919.2344,528.1094 Q3919.2344,527.5469 3918.8906,527.1406 Q3918.5625,526.7188 3917.9375,526.4688 L3916.7344,526.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="3937.75" y="529.6074">urt_frtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3493" x2="4465" y1="541.4531" y2="541.4531"/><ellipse cx="3503" cy="569.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="3512" y="572.4683">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3493" x2="3833.5" y1="555.8555" y2="555.8555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="3833.5" y="559.1636">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4124.5" x2="4465" y1="555.8555" y2="555.8555"/><ellipse cx="3503" cy="598.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="3512" y="602.0776">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3493" x2="3843.5" y1="585.4648" y2="585.4648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="3843.5" y="588.7729">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4114.5" x2="4465" y1="585.4648" y2="585.4648"/><ellipse cx="3503" cy="628.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="3512" y="631.687">minLatency : urt_delay_t</text><ellipse cx="3503" cy="641.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="3512" y="644.4917">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3493" x2="3725" y1="615.0742" y2="615.0742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="508" x="3725" y="618.3823">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="4233" x2="4465" y1="615.0742" y2="615.0742"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3493" x2="4465" y1="651.0859" y2="651.0859"/><ellipse cx="3503" cy="662.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="342" x="3512" y="665.2964">urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : void</text><ellipse cx="3503" cy="674.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="948" x="3512" y="678.1011">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="3503" cy="687.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="780" x="3512" y="690.9058">urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3503" cy="700.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="790" x="3512" y="703.7104">urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="3503" cy="713.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="540" x="3512" y="716.5151">urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool</text><ellipse cx="3503" cy="726.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="441" x="3512" y="729.3198">urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t</text><!--MD5=[104dc879e5721421b987fcc467bc3a1d]
18
class urt_hrtsubscriber_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="268.875" id="urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1084" x="2355" y="487.9531"/><ellipse cx="2833.25" cy="503.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2832.7344,504.5156 Q2830.875,503.8125 2830.2188,503.0469 Q2829.5781,502.2656 2829.5781,500.9531 Q2829.5781,499.2656 2830.6563,498.2969 Q2831.7344,497.3281 2833.6094,497.3281 Q2834.4688,497.3281 2835.3125,497.5313 Q2836.1719,497.7188 2837.0156,498.1094 L2837.0156,500.5 Q2836.2344,499.9375 2835.4063,499.6563 Q2834.5938,499.3594 2833.7969,499.3594 Q2832.9219,499.3594 2832.4375,499.7188 Q2831.9688,500.0781 2831.9688,500.7344 Q2831.9688,501.25 2832.3125,501.5938 Q2832.6563,501.9219 2833.75,502.3281 L2834.8125,502.7344 Q2836.2969,503.2813 2837,504.1875 Q2837.7188,505.0938 2837.7188,506.4688 Q2837.7188,508.3438 2836.6094,509.2656 Q2835.5,510.1875 2833.25,510.1875 Q2832.3281,510.1875 2831.4063,509.9688 Q2830.4844,509.75 2829.625,509.3281 L2829.625,506.7969 Q2830.5938,507.4844 2831.5156,507.8281 Q2832.4375,508.1719 2833.3281,508.1719 Q2834.2344,508.1719 2834.7344,507.7656 Q2835.2344,507.3438 2835.2344,506.6094 Q2835.2344,506.0469 2834.8906,505.6406 Q2834.5625,505.2188 2833.9375,504.9688 L2832.7344,504.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="2853.75" y="508.1074">urt_hrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2356" x2="3438" y1="519.9531" y2="519.9531"/><ellipse cx="2366" cy="530.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="151" x="2375" y="534.1636">next : urt_hrtsubscriber_t*</text><ellipse cx="2366" cy="560.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="157" x="2375" y="563.7729">deadlineOffset : urt_delay_t</text><ellipse cx="2366" cy="573.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="194" x="2375" y="576.5776">qosDeadlineTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2356" x2="2751.5" y1="547.1602" y2="547.1602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="2751.5" y="550.4683">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3042.5" x2="3438" y1="547.1602" y2="547.1602"/><ellipse cx="2366" cy="602.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="124" x="2375" y="606.187">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2356" x2="2761.5" y1="589.5742" y2="589.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="2761.5" y="592.8823">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3032.5" x2="3438" y1="589.5742" y2="589.5742"/><ellipse cx="2366" cy="632.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="2375" y="635.7964">minLatency : urt_delay_t</text><ellipse cx="2366" cy="645.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="2375" y="648.6011">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2356" x2="2645" y1="619.1836" y2="619.1836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="2645" y="622.4917">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="3149" x2="3438" y1="619.1836" y2="619.1836"/><ellipse cx="2366" cy="675" fill="none" 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="2375" y="678.2104">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2356" x2="2764.5" y1="661.5977" y2="661.5977"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="2764.5" y="664.9058">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3029.5" x2="3438" y1="661.5977" y2="661.5977"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2356" x2="3438" y1="684.8047" y2="684.8047"/><ellipse cx="2366" cy="695.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="347" x="2375" y="699.0151">urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : void</text><ellipse cx="2366" cy="708.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="1058" x="2375" y="711.8198">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="2366" cy="721.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="785" x="2375" y="724.6245">urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2366" cy="734.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="795" x="2375" y="737.4292">urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="2366" cy="747.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="446" x="2375" y="750.2339">urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
19
class urt_service_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="269.6797" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="596" x="7259" y="487.4531"/><ellipse cx="7513.25" cy="503.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7512.7344,504.0156 Q7510.875,503.3125 7510.2188,502.5469 Q7509.5781,501.7656 7509.5781,500.4531 Q7509.5781,498.7656 7510.6563,497.7969 Q7511.7344,496.8281 7513.6094,496.8281 Q7514.4688,496.8281 7515.3125,497.0313 Q7516.1719,497.2188 7517.0156,497.6094 L7517.0156,500 Q7516.2344,499.4375 7515.4063,499.1563 Q7514.5938,498.8594 7513.7969,498.8594 Q7512.9219,498.8594 7512.4375,499.2188 Q7511.9688,499.5781 7511.9688,500.2344 Q7511.9688,500.75 7512.3125,501.0938 Q7512.6563,501.4219 7513.75,501.8281 L7514.8125,502.2344 Q7516.2969,502.7813 7517,503.6875 Q7517.7188,504.5938 7517.7188,505.9688 Q7517.7188,507.8438 7516.6094,508.7656 Q7515.5,509.6875 7513.25,509.6875 Q7512.3281,509.6875 7511.4063,509.4688 Q7510.4844,509.25 7509.625,508.8281 L7509.625,506.2969 Q7510.5938,506.9844 7511.5156,507.3281 Q7512.4375,507.6719 7513.3281,507.6719 Q7514.2344,507.6719 7514.7344,507.2656 Q7515.2344,506.8438 7515.2344,506.1094 Q7515.2344,505.5469 7514.8906,505.1406 Q7514.5625,504.7188 7513.9375,504.4688 L7512.7344,504.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="7533.75" y="507.6074">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7260" x2="7854" y1="519.4531" y2="519.4531"/><ellipse cx="7270" cy="530.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="115" x="7279" y="533.6636">next : urt_service_t*</text><ellipse cx="7270" cy="543.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="105" x="7279" y="546.4683">id : urt_serviceid_t</text><ellipse cx="7270" cy="556.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="7279" y="559.2729">lock : urt_osMutex_t</text><ellipse cx="7270" cy="568.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="236" x="7279" y="572.0776">requestQueue_front : urt_baserequest_t*</text><ellipse cx="7270" cy="581.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="240" x="7279" y="584.8823">requestQueue_hrtBack : urt_hrtrequest_t*</text><ellipse cx="7270" cy="594.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="256" x="7279" y="597.687">requestQueue_fsrtBack : urt_baserequest_t*</text><ellipse cx="7270" cy="607.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="235" x="7279" y="610.4917">requestQueue_back : urt_baserequest_t*</text><ellipse cx="7270" cy="620.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="7279" y="623.2964">evtSource : urt_osEventSource_t</text><ellipse cx="7270" cy="632.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="198" x="7279" y="636.1011">evtListener : urt_osEventListener_t</text><ellipse cx="7270" cy="662.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="110" x="7279" y="665.7104">numCalls : uint64_t</text><ellipse cx="7270" cy="675.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="167" x="7279" y="678.5151">numOwnershipLost : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7260" x2="7461" y1="649.0977" y2="649.0977"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="7461" y="652.4058">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7653" x2="7854" y1="649.0977" y2="649.0977"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7260" x2="7854" y1="685.1094" y2="685.1094"/><ellipse cx="7270" cy="696.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="412" x="7279" y="699.3198">urtServiceInit (service : urt_service_t*, id : urt_serviceid_t) : urt_status_t</text><ellipse cx="7270" cy="708.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="549" x="7279" y="712.1245">urtServiceDispatch (service : urt_service_t*, payload : void*, bytes : size_t) : urt_baserequest_t*</text><ellipse cx="7270" cy="721.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="552" x="7279" y="724.9292">urtServiceAcquireRequest (service* urt_serviceid_t*, request : urt_baserequest_t*) : urt_status_t</text><ellipse cx="7270" cy="734.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="570" x="7279" y="737.7339">urtServiceTryAcquireRequest (service* urt_serviceid_t*, request : urt_baserequest_t*) : urt_status_t</text><ellipse cx="7270" cy="747.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="365" x="7279" y="750.5386">urtServiceRespond (request : urt_baserequest_t*) : urt_status_t</text><!--MD5=[7294e1cfaeb111bef046bc5d07a96458]
20
class urt_baserequest_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="197.6563" id="urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="224" x="8739" y="523.4531"/><ellipse cx="8789.25" cy="539.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M8788.7344,540.0156 Q8786.875,539.3125 8786.2188,538.5469 Q8785.5781,537.7656 8785.5781,536.4531 Q8785.5781,534.7656 8786.6563,533.7969 Q8787.7344,532.8281 8789.6094,532.8281 Q8790.4688,532.8281 8791.3125,533.0313 Q8792.1719,533.2188 8793.0156,533.6094 L8793.0156,536 Q8792.2344,535.4375 8791.4063,535.1563 Q8790.5938,534.8594 8789.7969,534.8594 Q8788.9219,534.8594 8788.4375,535.2188 Q8787.9688,535.5781 8787.9688,536.2344 Q8787.9688,536.75 8788.3125,537.0938 Q8788.6563,537.4219 8789.75,537.8281 L8790.8125,538.2344 Q8792.2969,538.7813 8793,539.6875 Q8793.7188,540.5938 8793.7188,541.9688 Q8793.7188,543.8438 8792.6094,544.7656 Q8791.5,545.6875 8789.25,545.6875 Q8788.3281,545.6875 8787.4063,545.4688 Q8786.4844,545.25 8785.625,544.8281 L8785.625,542.2969 Q8786.5938,542.9844 8787.5156,543.3281 Q8788.4375,543.6719 8789.3281,543.6719 Q8790.2344,543.6719 8790.7344,543.2656 Q8791.2344,542.8438 8791.2344,542.1094 Q8791.2344,541.5469 8790.8906,541.1406 Q8790.5625,540.7188 8789.9375,540.4688 L8788.7344,540.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="8809.75" y="543.6074">urt_baserequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8740" x2="8962" y1="555.4531" y2="555.4531"/><ellipse cx="8750" cy="566.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="147" x="8759" y="569.6636">prev : urt_baserequest_t*</text><ellipse cx="8750" cy="579.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="146" x="8759" y="582.4683">next : urt_baserequest_t*</text><ellipse cx="8750" cy="592.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="8759" y="595.2729">lock : urt_osMutex_t</text><ellipse cx="8750" cy="604.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="126" x="8759" y="608.0776">owner : urt_service_t*</text><ellipse cx="8750" cy="617.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="180" x="8759" y="620.8823">submissionTime : urt_osTime_t</text><ellipse cx="8750" cy="630.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="85" x="8759" y="633.687">payload : void*</text><ellipse cx="8750" cy="643.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="186" x="8759" y="646.4917">evtSource : urt_osEventSource_t</text><ellipse cx="8750" cy="656.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="198" x="8759" y="659.2964">evtListener : urt_osEventListener_t</text><ellipse cx="8750" cy="685.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="136" x="8759" y="688.9058">sumLatencies : uint64_t</text><ellipse cx="8750" cy="698.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="110" x="8759" y="701.7104">numCalls : uint64_t</text><ellipse cx="8750" cy="711.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="108" x="8759" y="714.5151">numFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8740" x2="8755" y1="672.293" y2="672.293"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="8755" y="675.6011">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8947" x2="8962" y1="672.293" y2="672.293"/><!--MD5=[65269c71e9a2a076bc4014c9b128c9e6]
21
class urt_nrtrequest_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="167.2422" id="urt_nrtrequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="531" x="8585.5" y="145.4531"/><ellipse cx="8795.75" cy="161.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M8795.2344,162.0156 Q8793.375,161.3125 8792.7188,160.5469 Q8792.0781,159.7656 8792.0781,158.4531 Q8792.0781,156.7656 8793.1563,155.7969 Q8794.2344,154.8281 8796.1094,154.8281 Q8796.9688,154.8281 8797.8125,155.0313 Q8798.6719,155.2188 8799.5156,155.6094 L8799.5156,158 Q8798.7344,157.4375 8797.9063,157.1563 Q8797.0938,156.8594 8796.2969,156.8594 Q8795.4219,156.8594 8794.9375,157.2188 Q8794.4688,157.5781 8794.4688,158.2344 Q8794.4688,158.75 8794.8125,159.0938 Q8795.1563,159.4219 8796.25,159.8281 L8797.3125,160.2344 Q8798.7969,160.7813 8799.5,161.6875 Q8800.2188,162.5938 8800.2188,163.9688 Q8800.2188,165.8438 8799.1094,166.7656 Q8798,167.6875 8795.75,167.6875 Q8794.8281,167.6875 8793.9063,167.4688 Q8792.9844,167.25 8792.125,166.8281 L8792.125,164.2969 Q8793.0938,164.9844 8794.0156,165.3281 Q8794.9375,165.6719 8795.8281,165.6719 Q8796.7344,165.6719 8797.2344,165.2656 Q8797.7344,164.8438 8797.7344,164.1094 Q8797.7344,163.5469 8797.3906,163.1406 Q8797.0625,162.7188 8796.4375,162.4688 L8795.2344,162.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="8816.25" y="165.6074">urt_nrtrequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8586.5" x2="9115.5" y1="177.4531" y2="177.4531"/><ellipse cx="8596.5" cy="205.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="8605.5" y="208.4683">minLatency : urt_delay_t</text><ellipse cx="8596.5" cy="218.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="8605.5" y="221.2729">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8586.5" x2="8755" y1="191.8555" y2="191.8555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="8755" y="195.1636">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8947" x2="9115.5" y1="191.8555" y2="191.8555"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="8586.5" x2="9115.5" y1="227.8672" y2="227.8672"/><ellipse cx="8596.5" cy="238.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="8605.5" y="242.0776">urtNrtRequestInit (request : urt_nrtrequest_t*) : void</text><ellipse cx="8596.5" cy="251.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="8605.5" y="254.8823">urtNrtRequestAcquire (request : urt_nrtrequest_t*) : urt_status_t</text><ellipse cx="8596.5" cy="264.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="8605.5" y="267.687">urtNrtRequestTryAcquire (request : urt_nrtrequest_t*) : urt_status_t</text><ellipse cx="8596.5" cy="277.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="8605.5" y="280.4917">urtNrtRequestRelease (request : urt_nrtrequest_t*) : urt_status_t</text><ellipse cx="8596.5" cy="290.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="8605.5" y="293.2964">urtNrtRequestSubmit (request : urt_nrtrequest_t*, service : urt_service_t*) : urt_status_t</text><ellipse cx="8596.5" cy="302.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="8605.5" y="306.1011">urtNrtRequestRetrieve (request : urt_nrtrequest_t*) : urt_status_t</text><!--MD5=[e9d515ad43a4cecec056dd09bc14a3c2]
22
class urt_srtrequest_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="180.0469" id="urt_srtrequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="675" x="9843.5" y="138.9531"/><ellipse cx="10126.25" cy="154.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M10125.7344,155.5156 Q10123.875,154.8125 10123.2188,154.0469 Q10122.5781,153.2656 10122.5781,151.9531 Q10122.5781,150.2656 10123.6563,149.2969 Q10124.7344,148.3281 10126.6094,148.3281 Q10127.4688,148.3281 10128.3125,148.5313 Q10129.1719,148.7188 10130.0156,149.1094 L10130.0156,151.5 Q10129.2344,150.9375 10128.4063,150.6563 Q10127.5938,150.3594 10126.7969,150.3594 Q10125.9219,150.3594 10125.4375,150.7188 Q10124.9688,151.0781 10124.9688,151.7344 Q10124.9688,152.25 10125.3125,152.5938 Q10125.6563,152.9219 10126.75,153.3281 L10127.8125,153.7344 Q10129.2969,154.2813 10130,155.1875 Q10130.7188,156.0938 10130.7188,157.4688 Q10130.7188,159.3438 10129.6094,160.2656 Q10128.5,161.1875 10126.25,161.1875 Q10125.3281,161.1875 10124.4063,160.9688 Q10123.4844,160.75 10122.625,160.3281 L10122.625,157.7969 Q10123.5938,158.4844 10124.5156,158.8281 Q10125.4375,159.1719 10126.3281,159.1719 Q10127.2344,159.1719 10127.7344,158.7656 Q10128.2344,158.3438 10128.2344,157.6094 Q10128.2344,157.0469 10127.8906,156.6406 Q10127.5625,156.2188 10126.9375,155.9688 L10125.7344,155.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="10146.75" y="159.1074">urt_srtrequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9844.5" x2="10517.5" y1="170.9531" y2="170.9531"/><ellipse cx="9854.5" cy="198.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="9863.5" y="201.9683">minLatency : urt_delay_t</text><ellipse cx="9854.5" cy="211.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="9863.5" y="214.7729">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9844.5" x2="10085" y1="185.3555" y2="185.3555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="10085" y="188.6636">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10277" x2="10517.5" y1="185.3555" y2="185.3555"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="9844.5" x2="10517.5" y1="221.3672" y2="221.3672"/><ellipse cx="9854.5" cy="232.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="9863.5" y="235.5776">urtSrtRequestInit (request : urt_srtrequest_t*) : void</text><ellipse cx="9854.5" cy="245.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="9863.5" y="248.3823">urtSrtRequestAcquire (request : urt_srtrequest_t*) : urt_status_t</text><ellipse cx="9854.5" cy="257.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="9863.5" y="261.187">urtSrtRequestTryAcquire (request : urt_srtrequest_t*) : urt_status_t</text><ellipse cx="9854.5" cy="270.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="9863.5" y="273.9917">urtSrtRequestRelease (request : urt_srtrequest_t*) : urt_status_t</text><ellipse cx="9854.5" cy="283.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="9863.5" y="286.7964">urtSrtRequestSubmit (request : urt_srtrequest_t*, service : urt_service_t*) : urt_status_t</text><ellipse cx="9854.5" cy="296.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="9863.5" y="299.6011">urtSrtRequestRetrieve (request : urt_srtrequest_t*) : urt_status_t</text><ellipse cx="9854.5" cy="309.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="9863.5" y="312.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(#fgmjoycxg2h2i)" height="268.875" id="urt_frtrequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="656" x="9152" y="94.4531"/><ellipse cx="9426.75" cy="110.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M9426.2344,111.0156 Q9424.375,110.3125 9423.7188,109.5469 Q9423.0781,108.7656 9423.0781,107.4531 Q9423.0781,105.7656 9424.1563,104.7969 Q9425.2344,103.8281 9427.1094,103.8281 Q9427.9688,103.8281 9428.8125,104.0313 Q9429.6719,104.2188 9430.5156,104.6094 L9430.5156,107 Q9429.7344,106.4375 9428.9063,106.1563 Q9428.0938,105.8594 9427.2969,105.8594 Q9426.4219,105.8594 9425.9375,106.2188 Q9425.4688,106.5781 9425.4688,107.2344 Q9425.4688,107.75 9425.8125,108.0938 Q9426.1563,108.4219 9427.25,108.8281 L9428.3125,109.2344 Q9429.7969,109.7813 9430.5,110.6875 Q9431.2188,111.5938 9431.2188,112.9688 Q9431.2188,114.8438 9430.1094,115.7656 Q9429,116.6875 9426.75,116.6875 Q9425.8281,116.6875 9424.9063,116.4688 Q9423.9844,116.25 9423.125,115.8281 L9423.125,113.2969 Q9424.0938,113.9844 9425.0156,114.3281 Q9425.9375,114.6719 9426.8281,114.6719 Q9427.7344,114.6719 9428.2344,114.2656 Q9428.7344,113.8438 9428.7344,113.1094 Q9428.7344,112.5469 9428.3906,112.1406 Q9428.0625,111.7188 9427.4375,111.4688 L9426.2344,111.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="98" x="9447.25" y="114.6074">urt_frtrequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="9153" x2="9807" y1="126.4531" y2="126.4531"/><ellipse cx="9163" cy="154.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="9172" y="157.4683">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9153" x2="9347" y1="140.8555" y2="140.8555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="266" x="9347" y="144.1636">URT_CFG_RPC_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9613" x2="9807" y1="140.8555" y2="140.8555"/><ellipse cx="9163" cy="183.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="9172" y="187.0776">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9153" x2="9357" y1="170.4648" y2="170.4648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="9357" y="173.7729">URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9603" x2="9807" y1="170.4648" y2="170.4648"/><ellipse cx="9163" cy="213.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="9172" y="216.687">minLatency : urt_delay_t</text><ellipse cx="9163" cy="226.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="9172" y="229.4917">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9153" x2="9253" y1="200.0742" y2="200.0742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="9253" y="203.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="9707" x2="9807" y1="200.0742" y2="200.0742"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="9153" x2="9807" y1="236.0859" y2="236.0859"/><ellipse cx="9163" cy="247.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="9172" y="250.2964">urtFrtRequestInit (request : urt_frtrequest_t*) : void</text><ellipse cx="9163" cy="259.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="9172" y="263.1011">urtFrtRequestAcquire (request : urt_frtrequest_t*) : urt_status_t</text><ellipse cx="9163" cy="272.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="9172" y="275.9058">urtFrtRequestTryAcquire (request : urt_frtrequest_t*) : urt_status_t</text><ellipse cx="9163" cy="285.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="9172" y="288.7104">urtFrtRequestRelease (request : urt_frtrequest_t*) : urt_status_t</text><ellipse cx="9163" cy="298.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="9172" y="301.5151">urtFrtRequestSubmit (request : urt_frtrequest_t*, service : urt_service_t*, deadline : urt_delay_t) : urt_status_t</text><ellipse cx="9163" cy="311.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="9172" y="314.3198">urtFrtRequestRetrieve (request : urt_frtrequest_t*) : urt_status_t</text><ellipse cx="9163" cy="323.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="9172" y="327.1245">urtDrtCalculateValidity (request : urt_frtrequest_t) : bool</text><ellipse cx="9163" cy="353.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="9172" y="356.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="9153" x2="9357" y1="340.1211" y2="340.1211"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="9357" y="343.4292">URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="9603" x2="9807" y1="340.1211" y2="340.1211"/><!--MD5=[2b0c3d572fefe037473ca776bdd2f803]
24
class urt_hrtrequest_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="285.6797" id="urt_hrtrequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="661" x="7889.5" y="85.9531"/><ellipse cx="8164.75" cy="101.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M8164.2344,102.5156 Q8162.375,101.8125 8161.7188,101.0469 Q8161.0781,100.2656 8161.0781,98.9531 Q8161.0781,97.2656 8162.1563,96.2969 Q8163.2344,95.3281 8165.1094,95.3281 Q8165.9688,95.3281 8166.8125,95.5313 Q8167.6719,95.7188 8168.5156,96.1094 L8168.5156,98.5 Q8167.7344,97.9375 8166.9063,97.6563 Q8166.0938,97.3594 8165.2969,97.3594 Q8164.4219,97.3594 8163.9375,97.7188 Q8163.4688,98.0781 8163.4688,98.7344 Q8163.4688,99.25 8163.8125,99.5938 Q8164.1563,99.9219 8165.25,100.3281 L8166.3125,100.7344 Q8167.7969,101.2813 8168.5,102.1875 Q8169.2188,103.0938 8169.2188,104.4688 Q8169.2188,106.3438 8168.1094,107.2656 Q8167,108.1875 8164.75,108.1875 Q8163.8281,108.1875 8162.9063,107.9688 Q8161.9844,107.75 8161.125,107.3281 L8161.125,104.7969 Q8162.0938,105.4844 8163.0156,105.8281 Q8163.9375,106.1719 8164.8281,106.1719 Q8165.7344,106.1719 8166.2344,105.7656 Q8166.7344,105.3438 8166.7344,104.6094 Q8166.7344,104.0469 8166.3906,103.6406 Q8166.0625,103.2188 8165.4375,102.9688 L8164.2344,102.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="8185.25" y="106.1074">urt_hrtrequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7890.5" x2="8549.5" y1="117.9531" y2="117.9531"/><ellipse cx="7900.5" cy="145.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="7909.5" y="148.9683">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7890.5" x2="8087" y1="132.3555" y2="132.3555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="266" x="8087" y="135.6636">URT_CFG_RPC_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8353" x2="8549.5" y1="132.3555" y2="132.3555"/><ellipse cx="7900.5" cy="175.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="7909.5" y="178.5776">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7890.5" x2="8097" y1="161.9648" y2="161.9648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="8097" y="165.2729">URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8343" x2="8549.5" y1="161.9648" y2="161.9648"/><ellipse cx="7900.5" cy="204.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="7909.5" y="208.187">qosTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7890.5" x2="7956" y1="191.5742" y2="191.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="528" x="7956" y="194.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="8484" x2="8549.5" y1="191.5742" y2="191.5742"/><ellipse cx="7900.5" cy="234.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="7909.5" y="237.7964">minLatency : urt_delay_t</text><ellipse cx="7900.5" cy="247.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="7909.5" y="250.6011">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7890.5" x2="7993" y1="221.1836" y2="221.1836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="7993" y="224.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="8447" x2="8549.5" y1="221.1836" y2="221.1836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7890.5" x2="8549.5" y1="257.1953" y2="257.1953"/><ellipse cx="7900.5" cy="268.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="7909.5" y="271.4058">urtHrtRequestInit (request : urt_hrtrequest_t*) : void</text><ellipse cx="7900.5" cy="281" 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="7909.5" y="284.2104">urtHrtRequestAcquire (request : urt_hrtrequest_t*) : urt_status_t</text><ellipse cx="7900.5" cy="293.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="7909.5" y="297.0151">urtHrtRequestTryAcquire (request : urt_hrtrequest_t*) : urt_status_t</text><ellipse cx="7900.5" cy="306.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="7909.5" y="309.8198">urtHrtRequestRelease (request : urt_hrtrequest_t*) : urt_status_t</text><ellipse cx="7900.5" cy="319.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="7909.5" y="322.6245">urtHrtRequestSubmit (request : urt_hrtrequest_t*, service : urt_service_t*, deadline : urt_delay_t) : urt_status_t</text><ellipse cx="7900.5" cy="332.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="7909.5" y="335.4292">urtHrtRequestRetrieve (request : urt_hrtrequest_t*) : urt_status_t</text><ellipse cx="7900.5" cy="361.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="7909.5" y="365.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="7890.5" x2="8097" y1="348.4258" y2="348.4258"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="8097" y="351.7339">URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8343" x2="8549.5" y1="348.4258" y2="348.4258"/><!--MD5=[89d25e87afdd75480e1ec2bd05524873]
25
class urt_core_t--><rect fill="#FEFECE" filter="url(#fgmjoycxg2h2i)" height="384.1172" id="urt_core_t" style="stroke: #A80036; stroke-width: 1.5;" width="371" x="6189.5" y="36.9531"/><ellipse cx="6339.25" cy="52.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6338.7344,53.5156 Q6336.875,52.8125 6336.2188,52.0469 Q6335.5781,51.2656 6335.5781,49.9531 Q6335.5781,48.2656 6336.6563,47.2969 Q6337.7344,46.3281 6339.6094,46.3281 Q6340.4688,46.3281 6341.3125,46.5313 Q6342.1719,46.7188 6343.0156,47.1094 L6343.0156,49.5 Q6342.2344,48.9375 6341.4063,48.6563 Q6340.5938,48.3594 6339.7969,48.3594 Q6338.9219,48.3594 6338.4375,48.7188 Q6337.9688,49.0781 6337.9688,49.7344 Q6337.9688,50.25 6338.3125,50.5938 Q6338.6563,50.9219 6339.75,51.3281 L6340.8125,51.7344 Q6342.2969,52.2813 6343,53.1875 Q6343.7188,54.0938 6343.7188,55.4688 Q6343.7188,57.3438 6342.6094,58.2656 Q6341.5,59.1875 6339.25,59.1875 Q6338.3281,59.1875 6337.4063,58.9688 Q6336.4844,58.75 6335.625,58.3281 L6335.625,55.7969 Q6336.5938,56.4844 6337.5156,56.8281 Q6338.4375,57.1719 6339.3281,57.1719 Q6340.2344,57.1719 6340.7344,56.7656 Q6341.2344,56.3438 6341.2344,55.6094 Q6341.2344,55.0469 6340.8906,54.6406 Q6340.5625,54.2188 6339.9375,53.9688 L6338.7344,53.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="6359.75" y="57.1074">urt_core_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6190.5" x2="6559.5" y1="68.9531" y2="68.9531"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="6197.5" y="76.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="6209.5" y="83.1636">_nodes : urt_node_t*</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="6197.5" y="89.7578"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="192" x="6209.5" y="95.9683">_evtSource : urt_osEventSource_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="6197.5" y="102.5625"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="6209.5" y="108.7729">_lock : urt_osMutex_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="6197.5" y="115.3672"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="122" x="6209.5" y="121.5776">_status : urt_status_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="6197.5" y="144.9766"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="117" x="6209.5" y="151.187">_topics : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6190.5" x2="6270" y1="134.5742" y2="134.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="6270" y="137.8823">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6480" x2="6559.5" y1="134.5742" y2="134.5742"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="6197.5" y="174.5859"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="145" x="6209.5" y="180.7964">_services : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6190.5" x2="6282.5" y1="164.1836" y2="164.1836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="6282.5" y="167.4917">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6467.5" x2="6559.5" y1="164.1836" y2="164.1836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6190.5" x2="6559.5" y1="187.3906" y2="187.3906"/><ellipse cx="6200.5" cy="198.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="130" x="6209.5" y="201.6011">urtCoreInit (void) : void</text><ellipse cx="6200.5" cy="211.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="215" x="6209.5" y="214.4058">urtCoreGetStatus (void) : urt_status_t</text><ellipse cx="6200.5" cy="224" 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="276" x="6209.5" y="227.2104">urtCoreGetEventMask (void) : urt_osEventMask_t</text><ellipse cx="6200.5" cy="236.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="290" x="6209.5" y="240.0151">urtCoreGetEvtSource (void) : urt_osEventSource_t*</text><ellipse cx="6200.5" cy="249.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="177" x="6209.5" y="252.8198">urtCoreStartNodes (void) : void</text><ellipse cx="6200.5" cy="262.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="345" x="6209.5" y="265.6245">urtCoreSynchronizeNodes (node : urt_node_t*) : urt_status_t</text><ellipse cx="6200.5" cy="275.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="317" x="6209.5" y="278.4292">urtCoreStopNodes (reason : urt_status_t) : urt_status_t</text><ellipse cx="6200.5" cy="288.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="304" x="6209.5" y="291.2339">urtCoreGetEventSource (void) : urt_osEventSource_t*</text><ellipse cx="6200.5" cy="300.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="228" x="6209.5" y="304.0386">urtCoreGetMutex (void) : urt_osMutex_t*</text><ellipse cx="6200.5" cy="313.6328" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="212" x="6209.5" y="316.8433">urtCoreGetNodes (void) : urt_node_t*</text><ellipse cx="6200.5" cy="326.4375" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="6209.5" y="329.6479">urtCoreAddNode (node : urt_node_t*) : void</text><ellipse cx="6200.5" cy="356.0469" 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="6209.5" y="359.2573">urtCoreGetTopic (id : urt_topicid_t) : urt_topic_t*</text><ellipse cx="6200.5" cy="368.8516" 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="245" x="6209.5" y="372.062">urtCoreAddTopic (topic : urt_topic_t*) : void</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6190.5" x2="6270" y1="342.6445" y2="342.6445"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="6270" y="345.9526">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6480" x2="6559.5" y1="342.6445" y2="342.6445"/><ellipse cx="6200.5" cy="398.4609" 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="284" x="6209.5" y="401.6714">urtCoreGetService (service : urt_service_t*) : void</text><ellipse cx="6200.5" cy="411.2656" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="314" x="6209.5" y="414.4761">urtCoreAddService (id : urt_serviceid_t) : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6190.5" x2="6282.5" y1="385.0586" y2="385.0586"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="6282.5" y="388.3667">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="6467.5" x2="6559.5" y1="385.0586" y2="385.0586"/><!--MD5=[182342162f0b9b45ddce11acc6582c59]
26
reverse link urt_node_t to urt_node_t--><path d="M7157.9212,601.3785 C7172.4841,607.4256 7180.5,614.4505 7180.5,622.4531 C7180.5,632.4956 7167.8767,640.9983 7145.5332,647.9614 " fill="none" id="urt_node_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7145.5332,596.9448,7149.8344,602.7327,7156.8314,600.9885,7152.5302,595.2006,7145.5332,596.9448" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7154.0047" y="593.65">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="7154.0703" y="645.2246">0,1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
27
reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M6098.6717,743.6213 C6009.6061,784.438 5919.4142,826.5348 5862.8397,853.9419 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6110.6583,738.1328,6103.5377,736.9939,6099.7477,743.1288,6106.8683,744.2676,6110.6583,738.1328" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6084.6291" y="758.4714">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="5853.3046" y="842.7298">0,1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
28
reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M6132.1611,740.251 C6041.4884,782.1073 5945.0101,825.7798 5880.4215,853.9419 " 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="6136.7481,738.1328,6126.9003,738.2746,6132.2087,740.2291,6130.2543,745.5376,6136.7481,738.1328" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b913f036db99e36b937989146817bd94]
29
reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M6362.2514,751.3795 C6362.1989,789.7058 6363.6019,828.2688 6366.4603,853.9419 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6362.3278,738.1328,6358.2933,744.1096,6362.2586,750.1326,6366.2931,744.1558,6362.3278,738.1328" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6353.2076" y="758.4714">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6355.7172" y="842.7298">1</text><!--MD5=[b913f036db99e36b937989146817bd94]
30
reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M6388.4661,743.6213 C6388.7477,784.438 6387.273,826.5348 6384.0421,853.9419 " 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="6388.4176,738.1328,6384.4975,747.1679,6388.4619,743.1326,6392.4972,747.097,6388.4176,738.1328" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[496dffc41052f1912ec8ad492f24fe61]
31
reverse link urt_node_t to urt_nodeShutdownCallback_t--><path d="M6639.6574,743.3715 C6733.1922,784.2662 6831.416,826.4789 6897.4708,853.9419 " fill="none" id="urt_node_t&lt;-urt_nodeShutdownCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6627.6846,738.1328,6631.578,744.2026,6638.6782,742.9432,6634.7849,736.8735,6627.6846,738.1328" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6636.3931" y="758.4714">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="6858.105" y="842.7298">0,1</text><!--MD5=[496dffc41052f1912ec8ad492f24fe61]
32
reverse link urt_node_t to urt_nodeShutdownCallback_t--><path d="M6658.3674,740.1263 C6754.8611,782.0205 6853.7108,825.7518 6915.0525,853.9419 " 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="6653.7744,738.1328,6660.4376,745.3855,6658.361,740.1236,6663.6229,738.047,6653.7744,738.1328" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[536025241394544a90bc53fb552f3a08]
33
reverse link urt_message_t to urt_message_t--><path d="M1359.5028,1056.0601 C1373.5209,1062.2125 1382,1071.0102 1382,1082.4531 C1382,1096.9551 1368.3815,1107.2084 1347.1293,1113.2131 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1347.1293,1051.6931,1351.456,1057.462,1358.4452,1055.6869,1354.1185,1049.918,1347.1293,1051.6931" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1355.2203" y="1047.2753">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1354.7886" y="1111.1249">0,1</text><!--MD5=[aa8990705afdbad14c7f998fe04b6f05]
34
reverse link urt_basesubscriber_t to urt_message_t--><path d="M2788.7175,956.6521 C2786.1491,957.6507 2783.5749,958.587 2781,959.4531 C2520.7458,1046.9922 1724.8521,1072.4363 1347.0983,1079.6675 " fill="none" id="urt_basesubscriber_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2800.6772,951.5538,2793.5892,950.2271,2789.6384,956.2596,2796.7264,957.5863,2800.6772,951.5538" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2782.3314" y="971.3397">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1354.7565" y="1076.3738">0,1</text><!--MD5=[0585cd4928de92ce6927d9c389eadd29]
35
link urt_nrtsubscriber_t to urt_basesubscriber_t--><path d="M2111.7135,699.5027 C2182.4365,723.8368 2262.9049,748.7157 2338,765.4531 C2524.8793,807.1053 2588.4942,758.582 2765.1263,812.4702 " fill="none" id="urt_nrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2767.3836,805.8426,2784.314,818.5847,2763.1328,819.1817,2767.3836,805.8426" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6d81edfa5aa102b898ad487ae19b49f9]
36
link urt_srtsubscriber_t to urt_basesubscriber_t--><path d="M4698.0414,718.9988 C4627.9682,736.9065 4553.9284,753.6589 4484,765.4531 C3950.3517,855.4585 3304.2591,877.3977 3030.1996,882.7383 " fill="none" id="urt_srtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3030.0655,889.742,3009.9385,883.1159,3029.8046,875.7444,3030.0655,889.742" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f626d284cba98e1d5d5fe914b1fa4188]
37
link urt_frtsubscriber_t to urt_basesubscriber_t--><path d="M3591.4405,735.5088 C3552.2104,746.0233 3512.881,756.1928 3475,765.4531 C3323.1803,802.5664 3147.0543,837.7045 3029.5003,860.0426 " fill="none" id="urt_frtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="3030.6553,866.9482,3009.7026,863.7889,3028.0523,853.1923,3030.6553,866.9482" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[1ea71f2b33e56ab0ac5545988c1af396]
38
link urt_hrtsubscriber_t to urt_basesubscriber_t--><path d="M2897,757.2905 C2897,770.7868 2897,784.2288 2897,797.0427 " fill="none" id="urt_hrtsubscriber_t-&gt;urt_basesubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2904.0001,797.2395,2897,817.2395,2890.0001,797.2394,2904.0001,797.2395" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ea2ec5c5272e65289dabade75a749f58]
39
reverse link urt_hrtsubscriber_t to urt_hrtsubscriber_t--><path d="M3451.3399,598.0191 C3465.8539,604.7767 3474,612.9213 3474,622.4531 C3474,634.4145 3461.1717,644.1916 3439.0292,651.7843 " fill="none" id="urt_hrtsubscriber_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3439.0292,593.1219,3443.1257,599.0564,3450.1793,597.5575,3446.0828,591.623,3439.0292,593.1219" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3446.7077" y="589.6727">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="3446.7921" y="649.16">0,1</text><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
40
reverse link urt_publisher_t to urt_topic_t--><path d="M820.9264,622.4531 C828.0202,622.4531 835.1139,622.4531 842.2077,622.4531 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="807.7266,622.4531,813.7266,626.4531,819.7266,622.4531,813.7266,618.4531,807.7266,622.4531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="815.7648" y="619.3685">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="826.0851" y="619.3242">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
41
link urt_publisher_t to urt_message_t--><path d="M571.2813,720.5704 C707.7804,806.8198 903.4234,930.4404 1027.057,1008.5605 " 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="1031.4244,1011.3202,1025.9527,1003.1312,1027.1975,1008.6494,1021.6793,1009.8942,1031.4244,1011.3202" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
42
reverse link urt_topic_t to urt_topic_t--><path d="M1457.6789,591.7551 C1472.0769,599.5284 1480.5,609.7611 1480.5,622.4531 C1480.5,638.3803 1467.2354,650.4347 1445.5445,658.616 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1445.5445,586.2902,1449.3727,592.4013,1456.486,591.218,1452.6579,585.1069,1445.5445,586.2902" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1453.6605" y="582.2007">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1453.8199" y="656.4477">0,1</text><!--MD5=[ed3fb6de0913094c41bd74c175d366df]
43
reverse link urt_topic_t to urt_hrtsubscriber_t--><path d="M1327.809,485.3317 C1380.6903,456.0057 1440.4009,431.7341 1500.5,424.9531 C1545.7131,419.8517 2274.2869,419.8517 2319.5,424.9531 C2327.4281,425.8476 2329.3295,426.7582 2337,428.9531 C2398.4375,446.5334 2463.0355,466.9766 2525.6419,487.8578 " fill="none" id="urt_topic_t&lt;-urt_hrtsubscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1316.2813,491.8639,1323.4735,492.386,1326.7216,485.9478,1319.5294,485.4258,1316.2813,491.8639" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1318.0101" y="480.955">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="2483.5946" y="476.7173">0,1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
44
reverse link urt_topic_t to urt_message_t--><path d="M1144,766.2196 C1144,847.6756 1144,946.005 1144,1011.1655 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1144,753.0402,1140,759.0402,1144,765.0402,1148,759.0402,1144,753.0402" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1135.7688" y="773.0977">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1135.6063" y="1000.5014">1</text><!--MD5=[ed8977051960dfa72b850fe399f41716]
45
reverse link urt_baserequest_t to urt_baserequest_t--><path d="M8975.2263,581.0268 C8989.0583,588.8592 8998,602.668 8998,622.4531 C8998,647.5273 8983.6385,663.0028 8963.1623,668.8796 " fill="none" id="urt_baserequest_t&lt;-urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="8963.1623,576.0266,8967.1735,582.0191,8974.2478,580.6213,8970.2366,574.6288,8963.1623,576.0266" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8970.967" y="569.4863">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="8970.9722" y="668.3331">0,1,2</text><!--MD5=[426f0ba47802c5735a37a0acd494a192]
46
reverse link urt_baserequest_t to urt_service_t--><path d="M8725.3111,622.4531 C8435.2829,622.4531 8145.2547,622.4531 7855.2266,622.4531 " fill="none" id="urt_baserequest_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="8738.6838,622.4531,8732.6838,618.4531,8726.6838,622.4531,8732.6838,626.4531,8738.6838,622.4531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8722.8688" y="619.0321">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="7863.4139" y="619.3268">0,1</text><!--MD5=[09de7ef26922535bfe0682cb358ee29c]
47
reverse link urt_service_t to urt_baserequest_t--><path d="M7868.5992,622.4531 C8158.6274,622.4531 8448.6556,622.4531 8738.6838,622.4531 " fill="none" id="urt_service_t&lt;-urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7855.2266,622.4531,7861.2266,626.4531,7867.2266,622.4531,7861.2266,618.4531,7855.2266,622.4531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7863.2545" y="634.7253">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="8698.8645" y="634.9916">0,2,3</text><!--MD5=[dc2d1805b45628aba9d654613b3d05f9]
48
link urt_nrtrequest_t to urt_baserequest_t--><path d="M8851,312.8861 C8851,368.2482 8851,441.61 8851,503.0211 " fill="none" id="urt_nrtrequest_t-&gt;urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="8858.0001,503.346,8851,523.346,8844.0001,503.346,8858.0001,503.346" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[d53ae0f00163daee879678d1d1554717]
49
link urt_nrtrequest_t to urt_service_t--><path d="M8757.9548,312.6347 C8706.0126,353.7458 8637.825,399.0617 8568,420.9531 C8531.1547,432.5047 7910.1048,418.2643 7873,428.9531 C7829.3119,441.5384 7785.6616,461.9227 7745.358,484.8405 " 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="7740.9658,487.3556,7750.7636,486.3544,7745.3047,484.8709,7746.7881,479.4121,7740.9658,487.3556" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f9755d42ba41539dee622699d8be3a22]
50
link urt_srtrequest_t to urt_baserequest_t--><path d="M10037.3871,319.0497 C9974.4788,355.1974 9898.5726,394.4791 9826,420.9531 C9535.03,527.097 9173.6993,583.3716 8983.0663,607.5854 " fill="none" id="urt_srtrequest_t-&gt;urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="8983.9136,614.5339,8963.1993,610.071,8982.1756,600.6422,8983.9136,614.5339" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[90efd84e0f70286880ba110c49a1e8f8]
51
link urt_srtrequest_t to urt_service_t--><path d="M10051.3428,319.1102 C9986.7567,358.6495 9905.6026,400.6322 9826,420.9531 C9773.4353,434.3718 7925.1858,414.1291 7873,428.9531 C7829.1163,441.4188 7785.2964,461.8268 7744.8725,484.8203 " 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="7740.4674,487.3438,7750.2651,486.3412,7744.806,484.8585,7746.2886,479.3994,7740.4674,487.3438" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[bfc5f4e50344156edda6a5cfcff14fef]
52
link urt_frtrequest_t to urt_baserequest_t--><path d="M9264.8536,363.5479 C9170.1946,422.7661 9062.153,490.3566 8980.2019,541.6249 " fill="none" id="urt_frtrequest_t-&gt;urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="8983.7927,547.6354,8963.1247,552.3083,8976.3676,535.7666,8983.7927,547.6354" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[836450d5c472e7b2344319739fa0d5d1]
53
link urt_frtrequest_t to urt_service_t--><path d="M9276.7235,363.5177 C9231.4878,387.1528 9182.5093,408.2315 9134,420.9531 C9066.2346,438.7247 7940.3692,409.7343 7873,428.9531 C7829.1303,441.4681 7785.3167,461.8981 7744.8945,484.8976 " 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="7740.4896,487.4217,7750.2872,486.4178,7744.8279,484.9359,7746.3098,479.4766,7740.4896,487.4217" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7c5d2ea3f0b69f804ad9b60a9539ac96]
54
link urt_hrtrequest_t to urt_baserequest_t--><path d="M8444.7816,372.0645 C8484.5305,391.7418 8526.5061,409.2001 8568,420.9531 C8585.8737,426.0158 8719.0599,419.413 8735,428.9531 C8764.8504,446.8184 8787.951,475.5791 8805.3922,505.5244 " fill="none" id="urt_hrtrequest_t-&gt;urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="8811.6096,502.3052,8815.0156,523.2193,8799.3108,508.994,8811.6096,502.3052" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[189d7bd823f9a098ae8eb3eaa3789ee1]
55
link urt_hrtrequest_t to urt_service_t--><path d="M7952.9635,372.0905 C7920.1719,391.0793 7887.2331,410.394 7856,428.9531 C7825.955,446.8062 7794.4306,465.7964 7763.5703,484.6371 " 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="7759.0222,487.4156,7768.7877,486.1371,7763.289,484.809,7764.6171,479.3102,7759.0222,487.4156" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[bcf13f9307d05af3b11663d6e8155fbe]
56
reverse link urt_service_t to urt_hrtrequest_t--><path d="M7805.1442,480.4655 C7834.0737,463.0008 7863.1715,445.4892 7891,428.9531 C7922.2331,410.394 7955.1719,391.0793 7987.6659,372.0905 " fill="none" id="urt_service_t&lt;-urt_hrtrequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7793.6359,487.4156,7800.8398,487.7379,7803.908,481.2121,7796.7041,480.8898,7793.6359,487.4156" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7799.0852" y="476.2552">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="7955.9278" y="391.4649">0,1</text><!--MD5=[05f2c35569573d3273c65d3342945557]
57
reverse link urt_service_t to urt_service_t--><path d="M7867.2443,591.6615 C7881.5974,599.4463 7890,609.7101 7890,622.4531 C7890,638.4443 7876.7678,650.5314 7855.1491,658.7144 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="7855.1491,586.1918,7858.9678,592.3088,7866.083,591.1365,7862.2643,585.0195,7855.1491,586.1918" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7863.1749" y="582.1023">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="7863.3343" y="656.5513">0,1</text><!--MD5=[694e7400eb99f74d44ea388aed89d199]
58
reverse link urt_core_t to urt_node_t--><path d="M6375,434.1243 C6375,459.0302 6375,483.7558 6375,506.7009 " fill="none" id="urt_core_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6375,421.0921,6371,427.0921,6375,433.0921,6379,427.0921,6375,421.0921" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6366.8438" y="440.9577">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="6354.3594" y="495.8677">0,1</text><!--MD5=[250695c91040478b50550bc37a8775c7]
59
reverse link urt_core_t to urt_topic_t--><path d="M6176.3152,231.5223 C5316.4701,243.3923 1938.7273,298.0227 1483,428.9531 C1433.0111,443.3149 1382.5257,466.4576 1336.3347,491.8251 " fill="none" id="urt_core_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6189.4071,231.3422,6183.3526,227.4252,6177.4082,231.5075,6183.4627,235.4245,6189.4071,231.3422" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6173.4086" y="228.1938">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="1326.8759" y="480.9139">0,1</text><!--MD5=[8d0a227ec56585cdbc167f8316b34b64]
60
reverse link urt_core_t to urt_service_t--><path d="M6573.8327,254.669 C6755.3267,282.682 7028.4077,336.3695 7251,428.9531 C7289.3034,444.8848 7328.1956,465.4631 7364.8271,487.2332 " fill="none" id="urt_core_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="6560.9254,252.6962,6566.2522,257.5568,6572.7876,254.5093,6567.4609,249.6487,6560.9254,252.6962" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6568.3444" y="250.3979">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="7333.7708" y="476.5075">0,1</text><!--MD5=[575c198f0faf2a90dc62729c0a2144e0]
61
@startuml
62

    
63
title **µRtWare**
64

    
65
!include ./functions.iuml
66

    
67
/'### ENTITIES ###############################################################'/
68

    
69
!startsub ENTITIES
70

    
71
/' µRtWare core structure. '/
72
$structure("urt_core_t") {
73
    'List of nodes ordered by their (initial) priority.
74
  - {field} {static} _nodes : urt_node_t*
75
    'Event source for control events.
76
  - {field} {static} _evtSource : urt_osEventSource_t
77
    'Mutex used for synchronization.
78
  - {field} {static} _lock : urt_osMutex_t
79
    'System execution/health status.
80
  - {field} {static} _status : urt_status_t
81
  .. URT_CFG_PUBSUB_ENABLED == true ..
82
    'List of topics ordered by their identifiers.
83
  - {field} {static} _topics : urt_topic_t*
84
  .. URT_CFG_RPC_ENABLED == true ..
85
    'List of services ordered by their identifiers.
86
  - {field} {static} _services : urt_service_t*
87
  __
88
    'Initializes the urt_core_t object.
89
  + {method} urtCoreInit (void) : void
90
    'Retrieves the current system status.
91
  + {method} urtCoreGetStatus (void) : urt_status_t
92
    'Starts all node threads (nodes will block before the loop).
93
  + {method} urtCoreGetEventMask (void) : urt_osEventMask_t
94
    'Retrieve the core event mask.
95
  + {method} urtCoreGetEvtSource (void) : urt_osEventSource_t*
96
    'Retrieve the core event source.
97
  + {method} urtCoreStartNodes (void) : void
98
    'Nodes can use this function to synchronize.
99
  + {method} urtCoreSynchronizeNodes (node : urt_node_t*) : urt_status_t
100
    'Stops all nodes and propagates a specified reason.
101
  + {method} urtCoreStopNodes (reason : urt_status_t) : urt_status_t
102
    'Retrieve the core event source.
103
  + {method} urtCoreGetEventSource (void) : urt_osEventSource_t*
104
    'Retrieve the core mutex lock.
105
  + {method} urtCoreGetMutex (void) : urt_osMutex_t*
106
  + {method} urtCoreGetNodes (void) : urt_node_t*
107
    'Retrieve node of the core.
108
  + {method} urtCoreAddNode (node : urt_node_t*) : void
109
    'Prepend node to core's list of nodes..
110
  .. URT_CFG_PUBSUB_ENABLED == true ..
111
    'Retrieves a topic given an identifier.
112
  + {method} urtCoreGetTopic (id : urt_topicid_t) : urt_topic_t*
113
    'Append topic to core's list of topics.
114
  + {method} urtCoreAddTopic (topic : urt_topic_t*) : void
115
  .. URT_CFG_RPC_ENABLED == true ..
116
    'Retrieves a service given an identifier.
117
  + {method} urtCoreGetService (service : urt_service_t*) : void
118
  + {method} urtCoreAddService (id : urt_serviceid_t) : urt_service_t*
119
}
120

    
121
$group("node") {
122
  /' Function type to be called during setup phase of node threads. '/
123
  $type("urt_nodeSetupCallback_t") {
124
      'Takes the node and optional parameters as arguments and returns a event mask for the next iteration.
125
    urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t
126
  }
127

    
128
  /' Function type to be called during loop phase of node threads. '/
129
  $type("urt_nodeLoopCallback_t") {
130
      'Takes the node, a mask of occurred events and optional parameters as arguments and returns a event mask for the next iteration.
131
    urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t
132
  }
133

    
134
  /' Function type to be called during shutdown phase of node threads. '/
135
  $type("urt_nodeShutdownCallback_t") {
136
      'Takes the node, an error code defining the cause of the shutdown and optional parameters as argumnets.
137
    urt_nodeShutdownCallback_t (node : urt_node_t*, cause : urt_status_t, arg : void*) : void
138
  }
139

    
140
  /' Node structure. '/
141
  $structure("urt_node_t") {
142
      'Pointer to the next node in a list.
143
    + {field} next : urt_node_t*
144
      'Pointer to the node thread.
145
    + {field} thread : urt_osThread_t*
146
      'Optional callback function to be called during the setup phase.
147
    + {field} setupcallback : urt_nodeSetupCallback_t*
148
      'Optional parameters for the setup callback function.
149
    + {field} setupparams : void*
150
      'Callback function to be called in each loop iteration.
151
    + {field} loopcallback : urt_nodeLoopCallback_t*
152
      'Optional parameters for the loop callback function.
153
    + {field} loopparams : void*
154
      'Optional callback function to be called during the shutdown phase.
155
    + {field} shutdowncallback : urt_nodeShutdownCallback_t*
156
      'Optional parameters for the shutdown callback function.
157
    + {field} shutdownparams : void*
158
      'Execution stage of the node.
159
    + {field} stage : urt_nodestage_t
160
      'Event listener for middleware-wide control events.
161
    + {field} listener : urt_osEventListener_t
162
    .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true ..
163
      'Counter of executed loops.
164
    + {field} loops : uint64_t
165
    __
166
    'The main() function of the node thread.
167
    - {method} {static} _main : urt_osThreadFunction_t
168
      'Initializes an urt_node_t object.
169
    + {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
170
  }
171
} /'node'/
172

    
173
$module("Publish-Subscribe System") {
174
  !includesub pubsub.uml!ENTITIES
175
}
176

    
177
$module("Remote Procedure Call System") {
178
  !includesub rpc.uml!ENTITIES
179
}
180

    
181
!endsub
182

    
183
/'### DEPENDENCIES & LAYOUT ##################################################'/
184

    
185
!startsub DEPENDENCIES
186

    
187
urt_node_t "1" o- - "0,1" urt_node_t
188
urt_node_t "1" o- - "0,1" urt_nodeSetupCallback_t
189
urt_node_t <.. urt_nodeSetupCallback_t
190
urt_node_t "1" o- - "1" urt_nodeLoopCallback_t
191
urt_node_t <.. urt_nodeLoopCallback_t
192
urt_node_t "1" o- - "0,1" urt_nodeShutdownCallback_t
193
urt_node_t <.. urt_nodeShutdownCallback_t
194

    
195
!includesub pubsub.uml!DEPENDENCIES
196

    
197
!includesub rpc.uml!DEPENDENCIES
198

    
199
urt_core_t "1" o- - "0,1" urt_node_t
200
urt_core_t "1" o- - "0,1" urt_topic_t
201
urt_core_t "1" o- - "0,1" urt_service_t
202

    
203
!endsub
204

    
205
/'### OUTRO ##################################################################'/
206

    
207
@enduml
208

    
209
@startuml
210

    
211
title **µRtWare**
212

    
213

    
214

    
215

    
216

    
217

    
218

    
219

    
220

    
221

    
222

    
223

    
224
  class urt_core_t <<S,BFAFFF>> {
225
  - {field} {static} _nodes : urt_node_t*
226
  - {field} {static} _evtSource : urt_osEventSource_t
227
  - {field} {static} _lock : urt_osMutex_t
228
  - {field} {static} _status : urt_status_t
229
  .. URT_CFG_PUBSUB_ENABLED == true ..
230
  - {field} {static} _topics : urt_topic_t*
231
  .. URT_CFG_RPC_ENABLED == true ..
232
  - {field} {static} _services : urt_service_t*
233
  __
234
  + {method} urtCoreInit (void) : void
235
  + {method} urtCoreGetStatus (void) : urt_status_t
236
  + {method} urtCoreGetEventMask (void) : urt_osEventMask_t
237
  + {method} urtCoreGetEvtSource (void) : urt_osEventSource_t*
238
  + {method} urtCoreStartNodes (void) : void
239
  + {method} urtCoreSynchronizeNodes (node : urt_node_t*) : urt_status_t
240
  + {method} urtCoreStopNodes (reason : urt_status_t) : urt_status_t
241
  + {method} urtCoreGetEventSource (void) : urt_osEventSource_t*
242
  + {method} urtCoreGetMutex (void) : urt_osMutex_t*
243
  + {method} urtCoreGetNodes (void) : urt_node_t*
244
  + {method} urtCoreAddNode (node : urt_node_t*) : void
245
  .. URT_CFG_PUBSUB_ENABLED == true ..
246
  + {method} urtCoreGetTopic (id : urt_topicid_t) : urt_topic_t*
247
  + {method} urtCoreAddTopic (topic : urt_topic_t*) : void
248
  .. URT_CFG_RPC_ENABLED == true ..
249
  + {method} urtCoreGetService (service : urt_service_t*) : void
250
  + {method} urtCoreAddService (id : urt_serviceid_t) : urt_service_t*
251
}
252

    
253
  package "node" <<Rectangle>> {
254
    class urt_nodeSetupCallback_t <<T,00CFFF>> {
255
    urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t
256
  }
257

    
258
    class urt_nodeLoopCallback_t <<T,00CFFF>> {
259
    urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t
260
  }
261

    
262
    class urt_nodeShutdownCallback_t <<T,00CFFF>> {
263
    urt_nodeShutdownCallback_t (node : urt_node_t*, cause : urt_status_t, arg : void*) : void
264
  }
265

    
266
    class urt_node_t <<S,BFAFFF>> {
267
    + {field} next : urt_node_t*
268
    + {field} thread : urt_osThread_t*
269
    + {field} setupcallback : urt_nodeSetupCallback_t*
270
    + {field} setupparams : void*
271
    + {field} loopcallback : urt_nodeLoopCallback_t*
272
    + {field} loopparams : void*
273
    + {field} shutdowncallback : urt_nodeShutdownCallback_t*
274
    + {field} shutdownparams : void*
275
    + {field} stage : urt_nodestage_t
276
    + {field} listener : urt_osEventListener_t
277
    .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true ..
278
    + {field} loops : uint64_t
279
    __
280
    - {method} {static} _main : urt_osThreadFunction_t
281
    + {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
282
  }
283
} 
284

    
285
  package "Publish-Subscribe System" <<Node>> {
286

    
287
  class urt_message_t <<S,BFAFFF>> {
288
  + {field} next : urt_message_t*
289
  + {field} payload : void*
290
  + {field} originTime : urt_osTime_t
291
  + {field} numHrtConsumersLeft : unsigned int
292
  .. URT_CFG_PUBSUB_PROFILING == true ..
293
  + {field} numConsumersLeft : unsigned int
294
  __
295
  + {method} urtMessageInit (message : urt_message_t*, payload : void*) : void
296
}
297

    
298
  package "subscriber" <<Rectangle>> {
299
    class urt_basesubscriber_t <<S,BFAFFF>> {
300
    + {field} topic : urt_topic_t*
301
    + {field} evtListener : urt_osEventListener_t
302
    + {field} lastMessage : urt_message_t*
303
    + {field} lastMessageTime : urt_osTime_t
304
    .. URT_CFG_PUBSUB_PROFILING == true ..
305
    + {field} sumLatencies : uint64_t
306
    + {field} numMessagesReceived : uint64_t
307
  }
308

    
309
    class urt_nrtsubscriber_t <<S,BFAFFF>> {
310
    .. URT_CFG_PUBSUB_PROFILING == true ..
311
    + {field} minLatency : urt_delay_t
312
    + {field} maxLatency : urt_delay_t
313
    __
314
    + {method} urtNrtSubscriberInit (subscriber : urt_nrtsubscriber_t*) : void
315
    + {method} urtNrtSubscriberSubscribe (subscriber : urt_nrtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
316
    + {method} urtNrtSubscriberFetchNextMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
317
    + {method} urtNrtSubscriberFetchLatestMessage (subscriber : urt_nrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
318
    + {method} urtNrtSubscriberUnsubscribe (subscriber : urt_nrtsubscriber_t*) : urt_status_t
319
  }
320

    
321
    class urt_srtsubscriber_t <<S,BFAFFF>> {
322
    + {field} usefulnesscb : urt_usefulness_f*
323
    + {field} cbparams : void*
324
    .. URT_CFG_PUBSUB_PROFILING == true ..
325
    + {field} minLatency : urt_delay_t
326
    + {field} maxLatency : urt_delay_t
327
    __
328
    + {method} urtSrtSubscriberInit (subscriber : urt_srtsubscriber_t*) : void
329
    + {method} urtSrtSubscriberSubscribe (subscriber : urt_srtsubscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_usefulness_f*, cbparams : void*) : urt_status_t
330
    + {method} urtSrtSubscriberFetchNextMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
331
    + {method} urtSrtSubscriberFetchLatestMessage (subscriber : urt_srtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
332
    + {method} urtSrtSubscriberCalculateUsefulness (subscriber : urt_srtsubscriber_t*, latency : urt_delay_t) : float
333
    + {method} urtSrtSubscriberUnsubscribe (subscriber : urt_srtsubscriber_t*) : urt_status_t
334
  }
335

    
336
    class urt_frtsubscriber_t <<S,BFAFFF>> {
337
    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
338
    + {field} deadlineOffset : urt_delay_t
339
    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
340
    + {field} maxJitter : urt_delay_t
341
    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ||  URT_CFG_PUBSUB_PROFILING == true ..
342
    + {field} minLatency : urt_delay_t
343
    + {field} maxLatency : urt_delay_t
344
    __
345
    + {method} urtFrtSubscriberInit (subscriber : urt_frtsubscriber_t*) : void
346
    + {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
347
    + {method} urtFrtSubscriberFetchNextMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
348
    + {method} urtFrtSubscriberFetchLatestMessage (subscriber : urt_frtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
349
    + {method} urtFrtSubscriberCalculateValidity (subscriber : urt_frtsubscriber_t*, latency : urt_delay_t) : bool
350
    + {method} urtFrtSubscriberUnsubscribe (subscriber : urt_frtsubscriber_t*) : urt_status_t
351
  }
352

    
353
    class urt_hrtsubscriber_t <<S,BFAFFF>> {
354
    + {field} next : urt_hrtsubscriber_t*
355
    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
356
    + {field} deadlineOffset : urt_delay_t
357
    + {field} qosDeadlineTimer : urt_osTimer_t
358
    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
359
    + {field} maxJitter : urt_delay_t
360
    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true..
361
    + {field} minLatency : urt_delay_t
362
    + {field} maxLatency : urt_delay_t
363
    .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
364
    + {field} expectedRate : urt_delay_t
365
    __
366
    + {method} urtHrtSubscriberInit (subscriber : urt_hrtsubscriber_t*) : void
367
    + {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
368
    + {method} urtHrtSubscriberFetchNextMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
369
    + {method} urtHrtSubscriberFetchLatestMessage (subscriber : urt_hrtsubscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
370
    + {method} urtHrtSubscriberUnsubscribe (subscriber : urt_hrtsubscriber_t*) : urt_status_t
371
  }
372
} 
373

    
374
  class urt_publisher_t <<S,BFAFFF>> {
375
  URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT : bool
376
  __
377
  + {field} topic : urt_topic_t*
378
  .. URT_CFG_PUBSUB_PROFILING == true ..
379
  + {field} publishAttempts : uint64_t
380
  + {field} publishFails : uint64_t
381
  __
382
  + {method} urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : void
383
  .. URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == false ..
384
  + {method} urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, bytes : size_t, t : urt_osTime_t) : urt_status_t
385
  .. URT_PUBSUB_PUBLISHER_PUBLISH_TIMEOUT == true ..
386
  + {method} urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, bytes : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t
387
}
388

    
389
  class urt_topic_t <<S,BFAFFF>> {
390
  + {field} next : urt_topic_t*
391
  + {field} id : urt_topicid_t
392
  + {field} lock : urt_osMutex_t
393
  + {field} evtSource : urt_osEventSource_t
394
  + {field} numHrtSubscribers : unsigned int
395
  + {field} hrtReleased : urt_osCondvar_t
396
  + {field} mandatoryMessage : urt_message_t
397
  + {field} latestMessage : urt_message_t*
398
  .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
399
  + {field} hrtSubscribers : urt_hrtsubscriber_t*
400
  + {field} qosRateTimer : urt_osTimer_t
401
  .. URT_CFG_PUBSUB_PROFILING == true ..
402
  + {field} numMessagesPublished : uint64_t
403
  + {field} numMessagesDiscarded : uint64_t
404
  + {field} numSubscribers : unsigned int
405
  __
406
  + {method} urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t, mandatoryMessage: urt_message_t*) : urt_status_t
407
}
408

    
409
}
410

    
411
  package "Remote Procedure Call System" <<Node>> {
412

    
413
  package "request" <<Rectangle>> {
414
    class urt_baserequest_t <<S,BFAFFF>> {
415
    + {field} prev : urt_baserequest_t*
416
    + {field} next : urt_baserequest_t*
417
    + {field} lock : urt_osMutex_t
418
    + {field} owner : urt_service_t*
419
    + {field} submissionTime : urt_osTime_t
420
    + {field} payload : void*
421
    + {field} evtSource : urt_osEventSource_t
422
    + {field} evtListener : urt_osEventListener_t
423
    .. URT_CFG_RPC_PROFILING == true ..
424
    + {field} sumLatencies : uint64_t
425
    + {field} numCalls : uint64_t
426
    + {field} numFails : uint64_t
427
  }
428

    
429
    class urt_nrtrequest_t <<S,BFAFFF>> {
430
    .. URT_CFG_RPC_PROFILING == true ..
431
    + {field} minLatency : urt_delay_t
432
    + {field} maxLatency : urt_delay_t
433
    __
434
    + {method} urtNrtRequestInit (request : urt_nrtrequest_t*) : void
435
    + {method} urtNrtRequestAcquire (request : urt_nrtrequest_t*) : urt_status_t
436
    + {method} urtNrtRequestTryAcquire (request : urt_nrtrequest_t*) : urt_status_t
437
    + {method} urtNrtRequestRelease (request : urt_nrtrequest_t*) : urt_status_t
438
    + {method} urtNrtRequestSubmit (request : urt_nrtrequest_t*, service : urt_service_t*) : urt_status_t
439
    + {method} urtNrtRequestRetrieve (request : urt_nrtrequest_t*) : urt_status_t
440
  }
441

    
442
    class urt_srtrequest_t <<S,BFAFFF>> {
443
    .. URT_CFG_RPC_PROFILING == true ..
444
    + {field} minLatency : urt_delay_t
445
    + {field} maxLatency : urt_delay_t
446
    __
447
    + {method} urtSrtRequestInit (request : urt_srtrequest_t*) : void
448
    + {method} urtSrtRequestAcquire (request : urt_srtrequest_t*) : urt_status_t
449
    + {method} urtSrtRequestTryAcquire (request : urt_srtrequest_t*) : urt_status_t
450
    + {method} urtSrtRequestRelease (request : urt_srtrequest_t*) : urt_status_t
451
    + {method} urtSrtRequestSubmit (request : urt_srtrequest_t*, service : urt_service_t*) : urt_status_t
452
    + {method} urtSrtRequestRetrieve (request : urt_srtrequest_t*) : urt_status_t
453
    + {method} urtSrtCalculateUsefulness (request : urt_srtrequest_t*, usefulnesscb : urt_usefulness_f, cbparams : void*) : float
454
  }
455

    
456
    class urt_frtrequest_t <<S,BFAFFF>> {
457
    .. URT_CFG_RPC_QOS_DEADLINECHECKS == true ..
458
    + {field} deadlineOffset : urt_delay_t
459
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true ..
460
    + {field} maxJitter : urt_delay_t
461
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true ..
462
    + {field} minLatency : urt_delay_t
463
    + {field} maxLatency : urt_delay_t
464
    __
465
    + {method} urtFrtRequestInit (request : urt_frtrequest_t*) : void
466
    + {method} urtFrtRequestAcquire (request : urt_frtrequest_t*) : urt_status_t
467
    + {method} urtFrtRequestTryAcquire (request : urt_frtrequest_t*) : urt_status_t
468
    + {method} urtFrtRequestRelease (request : urt_frtrequest_t*) : urt_status_t
469
    + {method} urtFrtRequestSubmit (request : urt_frtrequest_t*, service : urt_service_t*, deadline : urt_delay_t) : urt_status_t
470
    + {method} urtFrtRequestRetrieve (request : urt_frtrequest_t*) : urt_status_t
471
    + {method} urtDrtCalculateValidity (request : urt_frtrequest_t) : bool
472
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true ..
473
    + {method} urtFrtRequestGetMaxJitter (request : urt_frtrequest_t*) : urt_delay_t* const
474
  }
475

    
476
    class urt_hrtrequest_t <<S,BFAFFF>> {
477
    .. URT_CFG_RPC_QOS_DEADLINECHECKS == true ..
478
    + {field} deadlineOffset : urt_delay_t
479
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true ..
480
    + {field} maxJitter : urt_delay_t
481
    .. URT_CFG_RPC_QOS_DEADLINECHECKS == true || URT_CFG_RPC_QOS_JITTERCHECKS == true ..
482
    + {field} qosTimer : urt_osTimer_t
483
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true ..
484
    + {field} minLatency : urt_delay_t
485
    + {field} maxLatency : urt_delay_t
486
    __
487
    + {method} urtHrtRequestInit (request : urt_hrtrequest_t*) : void
488
    + {method} urtHrtRequestAcquire (request : urt_hrtrequest_t*) : urt_status_t
489
    + {method} urtHrtRequestTryAcquire (request : urt_hrtrequest_t*) : urt_status_t
490
    + {method} urtHrtRequestRelease (request : urt_hrtrequest_t*) : urt_status_t
491
    + {method} urtHrtRequestSubmit (request : urt_hrtrequest_t*, service : urt_service_t*, deadline : urt_delay_t) : urt_status_t
492
    + {method} urtHrtRequestRetrieve (request : urt_hrtrequest_t*) : urt_status_t
493
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true ..
494
    + {method} urtHrtRequestGetMaxJitter (request : urt_hrtrequest_t*) : urt_delay_t* const
495
  }
496
}
497

    
498
  class urt_service_t <<S,BFAFFF>> {
499
  + {field} next : urt_service_t*
500
  + {field} id : urt_serviceid_t
501
  + {field} lock : urt_osMutex_t
502
  + {field} requestQueue_front : urt_baserequest_t*
503
  + {field} requestQueue_hrtBack : urt_hrtrequest_t*
504
  + {field} requestQueue_fsrtBack : urt_baserequest_t*
505
  + {field} requestQueue_back : urt_baserequest_t*
506
  + {field} evtSource : urt_osEventSource_t
507
  + {field} evtListener : urt_osEventListener_t
508
  .. URT_CFG_RPC_PROFILING == true ..
509
  + {field} numCalls : uint64_t
510
  + {field} numOwnershipLost : uint64_t
511
  __
512
  + {method} urtServiceInit (service : urt_service_t*, id : urt_serviceid_t) : urt_status_t
513
  + {method} urtServiceDispatch (service : urt_service_t*, payload : void*, bytes : size_t) : urt_baserequest_t*
514
  + {method} urtServiceAcquireRequest (service* urt_serviceid_t*, request : urt_baserequest_t*) : urt_status_t
515
  + {method} urtServiceTryAcquireRequest (service* urt_serviceid_t*, request : urt_baserequest_t*) : urt_status_t
516
  + {method} urtServiceRespond (request : urt_baserequest_t*) : urt_status_t
517
}
518

    
519
}
520

    
521

    
522

    
523

    
524
urt_node_t "1" o- - "0,1" urt_node_t
525
urt_node_t "1" o- - "0,1" urt_nodeSetupCallback_t
526
urt_node_t <.. urt_nodeSetupCallback_t
527
urt_node_t "1" o- - "1" urt_nodeLoopCallback_t
528
urt_node_t <.. urt_nodeLoopCallback_t
529
urt_node_t "1" o- - "0,1" urt_nodeShutdownCallback_t
530
urt_node_t <.. urt_nodeShutdownCallback_t
531

    
532

    
533
urt_message_t "1" o- "0,1" urt_message_t
534

    
535
urt_basesubscriber_t "1" o- - "0,1" urt_message_t
536

    
537
urt_nrtsubscriber_t - -|> urt_basesubscriber_t
538

    
539
urt_srtsubscriber_t - -|> urt_basesubscriber_t
540

    
541
urt_frtsubscriber_t - -|> urt_basesubscriber_t
542

    
543
urt_hrtsubscriber_t - -|> urt_basesubscriber_t
544
urt_hrtsubscriber_t "1" o- "0,1" urt_hrtsubscriber_t
545

    
546
urt_publisher_t "1" o- "1" urt_topic_t
547
urt_publisher_t ..> urt_message_t
548

    
549
urt_topic_t "1" o- "0,1" urt_topic_t
550
urt_topic_t "1" o- "0,1" urt_hrtsubscriber_t
551
urt_topic_t "1" *- - "1" urt_message_t
552

    
553

    
554

    
555
urt_baserequest_t "1" o- "0,1,2" urt_baserequest_t
556
urt_baserequest_t "1" o- "0,1" urt_service_t
557

    
558
urt_nrtrequest_t - -|> urt_baserequest_t
559
urt_nrtrequest_t ..> urt_service_t
560

    
561
urt_srtrequest_t - -|> urt_baserequest_t
562
urt_srtrequest_t ..> urt_service_t
563

    
564
urt_frtrequest_t - -|> urt_baserequest_t
565
urt_frtrequest_t ..> urt_service_t
566

    
567
urt_hrtrequest_t - -|> urt_baserequest_t
568
urt_hrtrequest_t ..> urt_service_t
569

    
570
urt_service_t "1" o- "0,1" urt_service_t
571
urt_service_t "1" o- "0,2,3" urt_baserequest_t
572
urt_service_t "1" o- "0,1" urt_hrtrequest_t
573

    
574

    
575
urt_core_t "1" o- - "0,1" urt_node_t
576
urt_core_t "1" o- - "0,1" urt_topic_t
577
urt_core_t "1" o- - "0,1" urt_service_t
578

    
579

    
580

    
581
@enduml
582

    
583
PlantUML version 1.2020.15(Sun Jun 28 13:39:45 CEST 2020)
584
(GPL source distribution)
585
Java Runtime: OpenJDK Runtime Environment
586
JVM: OpenJDK 64-Bit Server VM
587
Default Encoding: UTF-8
588
Language: de
589
Country: DE
590
--></g></svg>