Statistics
| Branch: | Revision:

urtware / doc / classdiagrams / urtware.svg @ 056e40d2

History | View | Annotate | Download (95.022 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="1441px" preserveAspectRatio="none" style="width:4669px;height:1441px;" version="1.1" viewBox="0 0 4669 1441" width="4669px" zoomAndPan="magnify"><defs><filter height="300%" id="f1rbvtu6dodgxm" 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="2292.5" y="16.708">µRtWare</text><!--MD5=[b9de0669a29c7bc934fd916b09c39491]
2
cluster node--><rect fill="#FFFFFF" filter="url(#f1rbvtu6dodgxm)" height="446.5" style="stroke: #000000; stroke-width: 1.5;" width="1138" x="2854" y="392.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="3403" y="407.9482">node</text><!--MD5=[d74e2ef346f73688f9378f6d3d42598c]
3
cluster Publish-Subscribe System--><polygon fill="#FFFFFF" filter="url(#f1rbvtu6dodgxm)" points="14,302.9531,24,292.9531,2846,292.9531,2846,1419.9531,2836,1429.9531,14,1429.9531,14,302.9531" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="2836" x2="2845" y1="302.9531" y2="293.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="14" x2="2836" y1="302.9531" y2="302.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="2836" x2="2836" y1="302.9531" y2="1429.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="205" x="1323.5" y="318.9482">Publish-Subscribe System</text><!--MD5=[16a3bbbe805f94d6e6ce317c08ab945e]
4
cluster subscriber--><rect fill="#FFFFFF" filter="url(#f1rbvtu6dodgxm)" height="1097" style="stroke: #000000; stroke-width: 1.5;" width="1611" x="1227" y="324.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="1990" y="339.9482">subscriber</text><!--MD5=[94ad99421f5a0f525bc1c13a3777c25e]
5
cluster real-time constraint data--><rect fill="#FFFFFF" filter="url(#f1rbvtu6dodgxm)" height="677" style="stroke: #000000; stroke-width: 1.5;" width="1595" x="1235" y="736.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="194" x="1935.5" y="751.9482">real-time constraint data</text><!--MD5=[57c3116dbac3d3a2ea35fece1cdc00f4]
6
cluster SRT data--><rect fill="#FFFFFF" filter="url(#f1rbvtu6dodgxm)" height="283" style="stroke: #000000; stroke-width: 1.5;" width="390" x="1912" y="1122.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="2072.5" y="1137.9482">SRT data</text><!--MD5=[810d0f07e53ef611b6d803ef30301147]
7
cluster Remote Procedure Call System--><polygon fill="#FFFFFF" filter="url(#f1rbvtu6dodgxm)" points="4011,374.9531,4021,364.9531,4647,364.9531,4647,829.4531,4637,839.4531,4011,839.4531,4011,374.9531" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="4637" x2="4646" y1="374.9531" y2="365.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="4011" x2="4637" y1="374.9531" y2="374.9531"/><line style="stroke: #000000; stroke-width: 1.5;" x1="4637" x2="4637" y1="374.9531" y2="839.4531"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="244" x="4203" y="390.9482">Remote Procedure Call System</text><!--MD5=[a7dea26996a1231aa68629b332780450]
8
class urt_nodeSetupCallback_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="60.8047" id="urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="456" x="2870" y="770.4531"/><ellipse cx="3015.75" cy="786.4531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3016.5938,793.2031 L3014.1406,793.2031 L3014.1406,782.9531 L3011,782.9531 L3011,780.8125 L3019.7344,780.8125 L3019.7344,782.9531 L3016.5938,782.9531 L3016.5938,793.2031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="3036.25" y="790.6074">urt_nodeSetupCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2871" x2="3325" y1="802.4531" y2="802.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2871" x2="3325" y1="810.4531" y2="810.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="444" x="2876" y="824.6636">urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t</text><!--MD5=[7f869e17e281b89d59a4c09e0f22c3af]
9
class urt_nodeLoopCallback_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="60.8047" id="urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="614" x="3361" y="770.4531"/><ellipse cx="3589.25" cy="786.4531" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3590.0938,793.2031 L3587.6406,793.2031 L3587.6406,782.9531 L3584.5,782.9531 L3584.5,780.8125 L3593.2344,780.8125 L3593.2344,782.9531 L3590.0938,782.9531 L3590.0938,793.2031 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="3609.75" y="790.6074">urt_nodeLoopCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3362" x2="3974" y1="802.4531" y2="802.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3362" x2="3974" y1="810.4531" y2="810.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="602" x="3367" y="824.6636">urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t</text><!--MD5=[d2563153d77472384a15c07b815d639f]
10
class urt_node_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="176.0469" id="urt_node_t" style="stroke: #A80036; stroke-width: 1.5;" width="1104" x="2862" y="419.9531"/><ellipse cx="3376.25" cy="435.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3375.7344,436.5156 Q3373.875,435.8125 3373.2188,435.0469 Q3372.5781,434.2656 3372.5781,432.9531 Q3372.5781,431.2656 3373.6563,430.2969 Q3374.7344,429.3281 3376.6094,429.3281 Q3377.4688,429.3281 3378.3125,429.5313 Q3379.1719,429.7188 3380.0156,430.1094 L3380.0156,432.5 Q3379.2344,431.9375 3378.4063,431.6563 Q3377.5938,431.3594 3376.7969,431.3594 Q3375.9219,431.3594 3375.4375,431.7188 Q3374.9688,432.0781 3374.9688,432.7344 Q3374.9688,433.25 3375.3125,433.5938 Q3375.6563,433.9219 3376.75,434.3281 L3377.8125,434.7344 Q3379.2969,435.2813 3380,436.1875 Q3380.7188,437.0938 3380.7188,438.4688 Q3380.7188,440.3438 3379.6094,441.2656 Q3378.5,442.1875 3376.25,442.1875 Q3375.3281,442.1875 3374.4063,441.9688 Q3373.4844,441.75 3372.625,441.3281 L3372.625,438.7969 Q3373.5938,439.4844 3374.5156,439.8281 Q3375.4375,440.1719 3376.3281,440.1719 Q3377.2344,440.1719 3377.7344,439.7656 Q3378.2344,439.3438 3378.2344,438.6094 Q3378.2344,438.0469 3377.8906,437.6406 Q3377.5625,437.2188 3376.9375,436.9688 L3375.7344,436.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="67" x="3396.75" y="440.1074">urt_node_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2863" x2="3965" y1="451.9531" y2="451.9531"/><ellipse cx="2873" cy="462.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="2882" y="466.1636">next : urt_node_t*</text><ellipse cx="2873" cy="475.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="2882" y="478.9683">thread : urt_osThread_t*</text><ellipse cx="2873" cy="488.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="2882" y="491.7729">setupcallback : urt_nodeSetupCallback_t*</text><ellipse cx="2873" cy="501.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="2882" y="504.5776">setupparams : void*</text><ellipse cx="2873" cy="514.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="2882" y="517.3823">loopcallback : urt_nodeLoopCallback_t*</text><ellipse cx="2873" cy="526.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="2882" y="530.187">loopparams : void*</text><ellipse cx="2873" cy="539.7813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="2882" y="542.9917">stage : urt_nodestage_t</text><ellipse cx="2873" cy="552.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="178" x="2882" y="555.7964">listener : urt_osEventListener_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2863" x2="3965" y1="562.3906" y2="562.3906"/><rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="2870" y="570.3906"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="179" x="2882" y="576.6011">_main : urt_osThreadFunction_t</text><ellipse cx="2873" cy="586.1953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1078" x="2882" y="589.4058">urtNodeInit (node : urt_node_t*, stacksize : size_t, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t</text><!--MD5=[e602aa6d45f270ad04f88c9ca5352b33]
11
class urt_message_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="154.4375" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="750.5" y="723.9531"/><ellipse cx="925.75" cy="739.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M925.2344,740.5156 Q923.375,739.8125 922.7188,739.0469 Q922.0781,738.2656 922.0781,736.9531 Q922.0781,735.2656 923.1563,734.2969 Q924.2344,733.3281 926.1094,733.3281 Q926.9688,733.3281 927.8125,733.5313 Q928.6719,733.7188 929.5156,734.1094 L929.5156,736.5 Q928.7344,735.9375 927.9063,735.6563 Q927.0938,735.3594 926.2969,735.3594 Q925.4219,735.3594 924.9375,735.7188 Q924.4688,736.0781 924.4688,736.7344 Q924.4688,737.25 924.8125,737.5938 Q925.1563,737.9219 926.25,738.3281 L927.3125,738.7344 Q928.7969,739.2813 929.5,740.1875 Q930.2188,741.0938 930.2188,742.4688 Q930.2188,744.3438 929.1094,745.2656 Q928,746.1875 925.75,746.1875 Q924.8281,746.1875 923.9063,745.9688 Q922.9844,745.75 922.125,745.3281 L922.125,742.7969 Q923.0938,743.4844 924.0156,743.8281 Q924.9375,744.1719 925.8281,744.1719 Q926.7344,744.1719 927.2344,743.7656 Q927.7344,743.3438 927.7344,742.6094 Q927.7344,742.0469 927.3906,741.6406 Q927.0625,741.2188 926.4375,740.9688 L925.2344,740.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="946.25" y="744.1074">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="751.5" x2="1200.5" y1="755.9531" y2="755.9531"/><ellipse cx="761.5" cy="766.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="770.5" y="770.1636">next : urt_message_t*</text><ellipse cx="761.5" cy="779.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="770.5" y="782.9683">payload : void*</text><ellipse cx="761.5" cy="792.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="770.5" y="795.7729">originTime : urt_osTime_t</text><ellipse cx="761.5" cy="805.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="770.5" y="808.5776">lock : urt_osMutex_t</text><ellipse cx="761.5" cy="818.1719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="770.5" y="821.3823">numHrtConsumersLeft : unsigned int</text><ellipse cx="761.5" cy="847.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="194" x="770.5" y="850.9917">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="751.5" x2="867.5" y1="834.3789" y2="834.3789"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="867.5" y="837.687">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1084.5" x2="1200.5" y1="834.3789" y2="834.3789"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="751.5" x2="1200.5" y1="857.5859" y2="857.5859"/><ellipse cx="761.5" cy="868.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="425" x="770.5" y="871.7964">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--MD5=[2ac85a9c1cceb8bb0c9045edc105e6e3]
12
class urt_publisher_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="22.5" y="443.4531"/><ellipse cx="351.25" cy="459.4531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M350.7344,460.0156 Q348.875,459.3125 348.2188,458.5469 Q347.5781,457.7656 347.5781,456.4531 Q347.5781,454.7656 348.6563,453.7969 Q349.7344,452.8281 351.6094,452.8281 Q352.4688,452.8281 353.3125,453.0313 Q354.1719,453.2188 355.0156,453.6094 L355.0156,456 Q354.2344,455.4375 353.4063,455.1563 Q352.5938,454.8594 351.7969,454.8594 Q350.9219,454.8594 350.4375,455.2188 Q349.9688,455.5781 349.9688,456.2344 Q349.9688,456.75 350.3125,457.0938 Q350.6563,457.4219 351.75,457.8281 L352.8125,458.2344 Q354.2969,458.7813 355,459.6875 Q355.7188,460.5938 355.7188,461.9688 Q355.7188,463.8438 354.6094,464.7656 Q353.5,465.6875 351.25,465.6875 Q350.3281,465.6875 349.4063,465.4688 Q348.4844,465.25 347.625,464.8281 L347.625,462.2969 Q348.5938,462.9844 349.5156,463.3281 Q350.4375,463.6719 351.3281,463.6719 Q352.2344,463.6719 352.7344,463.2656 Q353.2344,462.8438 353.2344,462.1094 Q353.2344,461.5469 352.8906,461.1406 Q352.5625,460.7188 351.9375,460.4688 L350.7344,460.0156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="371.75" y="463.6074">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="23.5" x2="780.5" y1="475.4531" y2="475.4531"/><ellipse cx="33.5" cy="486.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="42.5" y="489.6636">topic : urt_topic_t*</text><ellipse cx="33.5" cy="516.0625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="42.5" y="519.2729">publishAttempts : uint64_t</text><ellipse cx="33.5" cy="528.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="42.5" y="532.0776">publishFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="23.5" x2="320" y1="502.6602" y2="502.6602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="164" x="320" y="505.9683">URT_CFG_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="484" x2="780.5" y1="502.6602" y2="502.6602"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="23.5" x2="780.5" y1="538.6719" y2="538.6719"/><ellipse cx="33.5" cy="549.6719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="617" x="42.5" y="552.8823">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="33.5" cy="562.4766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="733" x="42.5" y="565.687">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[a1b1e66ec52c209a9fa2dab315cd7630]
13
class urt_topic_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="248.0703" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="817" y="383.9531"/><ellipse cx="971.75" cy="399.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M971.2344,400.5156 Q969.375,399.8125 968.7188,399.0469 Q968.0781,398.2656 968.0781,396.9531 Q968.0781,395.2656 969.1563,394.2969 Q970.2344,393.3281 972.1094,393.3281 Q972.9688,393.3281 973.8125,393.5313 Q974.6719,393.7188 975.5156,394.1094 L975.5156,396.5 Q974.7344,395.9375 973.9063,395.6563 Q973.0938,395.3594 972.2969,395.3594 Q971.4219,395.3594 970.9375,395.7188 Q970.4688,396.0781 970.4688,396.7344 Q970.4688,397.25 970.8125,397.5938 Q971.1563,397.9219 972.25,398.3281 L973.3125,398.7344 Q974.7969,399.2813 975.5,400.1875 Q976.2188,401.0938 976.2188,402.4688 Q976.2188,404.3438 975.1094,405.2656 Q974,406.1875 971.75,406.1875 Q970.8281,406.1875 969.9063,405.9688 Q968.9844,405.75 968.125,405.3281 L968.125,402.7969 Q969.0938,403.4844 970.0156,403.8281 Q970.9375,404.1719 971.8281,404.1719 Q972.7344,404.1719 973.2344,403.7656 Q973.7344,403.3438 973.7344,402.6094 Q973.7344,402.0469 973.3906,401.6406 Q973.0625,401.2188 972.4375,400.9688 L971.2344,400.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="992.25" y="404.1074">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="818" x2="1200" y1="415.9531" y2="415.9531"/><ellipse cx="828" cy="426.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="837" y="430.1636">next : urt_topic_t*</text><ellipse cx="828" cy="439.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="837" y="442.9683">id : urt_topicid_t</text><ellipse cx="828" cy="452.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="837" y="455.7729">lock : urt_osMutex_t</text><ellipse cx="828" cy="465.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="837" y="468.5776">evtSource : urt_osEventSource_t</text><ellipse cx="828" cy="478.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="837" y="481.3823">numHrtSubscribers : unsigned int</text><ellipse cx="828" cy="490.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="196" x="837" y="494.187">hrtSubscribers : urt_subscriber_t*</text><ellipse cx="828" cy="503.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="173" x="837" y="506.9917">hrtReleased : urt_osCondvar_t</text><ellipse cx="828" cy="516.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="209" x="837" y="519.7964">mandatoryMessage : urt_message_t</text><ellipse cx="828" cy="529.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="186" x="837" y="532.6011">latestMessage : urt_message_t*</text><ellipse cx="828" cy="559" fill="none" 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="837" y="562.2104">qosRateTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="818" x2="876.5" y1="545.5977" y2="545.5977"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="876.5" y="548.9058">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1141.5" x2="1200" y1="545.5977" y2="545.5977"/><ellipse cx="828" cy="588.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="197" x="837" y="591.8198">numDiscardedMessages : uint64_t</text><ellipse cx="828" cy="601.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="176" x="837" y="604.6245">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="818" x2="900.5" y1="575.207" y2="575.207"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="900.5" y="578.5151">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1117.5" x2="1200" y1="575.207" y2="575.207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="818" x2="1200" y1="611.2188" y2="611.2188"/><ellipse cx="828" cy="622.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="358" x="837" y="625.4292">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--MD5=[ab7cf431813e3be5d474948fd959cdbf]
14
class urt_subscriber_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="312.0938" id="urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="1068" x="1254" y="351.9531"/><ellipse cx="1733.25" cy="367.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1732.7344,368.5156 Q1730.875,367.8125 1730.2188,367.0469 Q1729.5781,366.2656 1729.5781,364.9531 Q1729.5781,363.2656 1730.6563,362.2969 Q1731.7344,361.3281 1733.6094,361.3281 Q1734.4688,361.3281 1735.3125,361.5313 Q1736.1719,361.7188 1737.0156,362.1094 L1737.0156,364.5 Q1736.2344,363.9375 1735.4063,363.6563 Q1734.5938,363.3594 1733.7969,363.3594 Q1732.9219,363.3594 1732.4375,363.7188 Q1731.9688,364.0781 1731.9688,364.7344 Q1731.9688,365.25 1732.3125,365.5938 Q1732.6563,365.9219 1733.75,366.3281 L1734.8125,366.7344 Q1736.2969,367.2813 1737,368.1875 Q1737.7188,369.0938 1737.7188,370.4688 Q1737.7188,372.3438 1736.6094,373.2656 Q1735.5,374.1875 1733.25,374.1875 Q1732.3281,374.1875 1731.4063,373.9688 Q1730.4844,373.75 1729.625,373.3281 L1729.625,370.7969 Q1730.5938,371.4844 1731.5156,371.8281 Q1732.4375,372.1719 1733.3281,372.1719 Q1734.2344,372.1719 1734.7344,371.7656 Q1735.2344,371.3438 1735.2344,370.6094 Q1735.2344,370.0469 1734.8906,369.6406 Q1734.5625,369.2188 1733.9375,368.9688 L1732.7344,368.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="1753.75" y="372.1074">urt_subscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255" x2="2321" y1="383.9531" y2="383.9531"/><ellipse cx="1265" cy="394.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="1274" y="398.1636">topic : urt_topic_t*</text><ellipse cx="1265" cy="407.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="1274" y="410.9683">evtListener : urt_osEventListener_t</text><ellipse cx="1265" cy="420.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="112" x="1274" y="423.7729">rtdata : urt_rtdata_t</text><ellipse cx="1265" cy="433.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="1274" y="436.5776">lastMessage : urt_message_t*</text><ellipse cx="1265" cy="446.1719" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="1274" y="449.3823">lastMessageTime : urt_osTime_t</text><ellipse cx="1265" cy="475.7813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="1274" y="478.9917">sumLatencies : uint64_t</text><ellipse cx="1265" cy="488.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="1274" y="491.7964">numMessagesReceived : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1255" x2="1679.5" y1="462.3789" y2="462.3789"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1679.5" y="465.687">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1896.5" x2="2321" y1="462.3789" y2="462.3789"/><ellipse cx="1265" cy="518.1953" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="1274" y="521.4058">minLatency : urt_delay_t</text><ellipse cx="1265" cy="531" fill="none" 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="1274" y="534.2104">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1255" x2="1679.5" y1="504.793" y2="504.793"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1679.5" y="508.1011">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1896.5" x2="2321" y1="504.793" y2="504.793"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255" x2="2321" y1="540.8047" y2="540.8047"/><ellipse cx="1265" cy="551.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="359" x="1274" y="555.0151">urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="1265" cy="564.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1042" x="1274" y="567.8198">urtSubscriberSubscribeHrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="1265" cy="577.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1040" x="1274" y="580.6245">urtSubscriberSubscribeFrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t</text><ellipse cx="1265" cy="590.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1042" x="1274" y="593.4292">urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t</text><ellipse cx="1265" cy="603.0234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="699" x="1274" y="606.2339">urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="1265" cy="615.8281" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="413" x="1274" y="619.0386">urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="1265" cy="628.6328" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="752" x="1274" y="631.8433">urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1265" cy="641.4375" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="762" x="1274" y="644.6479">urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t</text><ellipse cx="1265" cy="654.2422" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="537" x="1274" y="657.4526">urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float</text><!--MD5=[82a1b6b26b12edcbd86fa16935c3353e]
15
class urt_rtdata_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="73.6094" id="urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="1672.5" y="763.9531"/><ellipse cx="1746.75" cy="779.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1746.2344,780.5156 Q1744.375,779.8125 1743.7188,779.0469 Q1743.0781,778.2656 1743.0781,776.9531 Q1743.0781,775.2656 1744.1563,774.2969 Q1745.2344,773.3281 1747.1094,773.3281 Q1747.9688,773.3281 1748.8125,773.5313 Q1749.6719,773.7188 1750.5156,774.1094 L1750.5156,776.5 Q1749.7344,775.9375 1748.9063,775.6563 Q1748.0938,775.3594 1747.2969,775.3594 Q1746.4219,775.3594 1745.9375,775.7188 Q1745.4688,776.0781 1745.4688,776.7344 Q1745.4688,777.25 1745.8125,777.5938 Q1746.1563,777.9219 1747.25,778.3281 L1748.3125,778.7344 Q1749.7969,779.2813 1750.5,780.1875 Q1751.2188,781.0938 1751.2188,782.4688 Q1751.2188,784.3438 1750.1094,785.2656 Q1749,786.1875 1746.75,786.1875 Q1745.8281,786.1875 1744.9063,785.9688 Q1743.9844,785.75 1743.125,785.3281 L1743.125,782.7969 Q1744.0938,783.4844 1745.0156,783.8281 Q1745.9375,784.1719 1746.8281,784.1719 Q1747.7344,784.1719 1748.2344,783.7656 Q1748.7344,783.3438 1748.7344,782.6094 Q1748.7344,782.0469 1748.3906,781.6406 Q1748.0625,781.2188 1747.4375,780.9688 L1746.2344,780.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="1767.25" y="784.1074">urt_rtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1673.5" x2="1902.5" y1="795.9531" y2="795.9531"/><ellipse cx="1683.5" cy="806.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="1692.5" y="810.1636">class : urt_rtconstraintclass_t</text><ellipse cx="1683.5" cy="819.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="205" x="1692.5" y="822.9683">params : urt_rtconstraintsparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1673.5" x2="1902.5" y1="829.5625" y2="829.5625"/><!--MD5=[4bd59d3bc50b317c5523bafe6b73a042]
16
class urt_rtclass_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="99.2188" id="urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="1648.5" y="937.9531"/><ellipse cx="1683.3" cy="953.9531" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1687.4094,959.9531 L1679.6906,959.9531 L1679.6906,947.5625 L1687.4094,947.5625 L1687.4094,949.7188 L1682.1438,949.7188 L1682.1438,952.3906 L1686.9094,952.3906 L1686.9094,954.5469 L1682.1438,954.5469 L1682.1438,957.7969 L1687.4094,957.7969 L1687.4094,959.9531 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="1701.7" y="958.1074">urt_rtclass_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1649.5" x2="1800.5" y1="969.9531" y2="969.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="1654.5" y="984.1636">URT_RTCLASS_HARD = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="1654.5" y="996.9683">URT_RTCLASS_FIRM = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="1654.5" y="1009.7729">URT_RTCLASS_SOFT = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1654.5" y="1022.5776">URT_RTCLASS_NONE = 3</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1649.5" x2="1800.5" y1="1029.1719" y2="1029.1719"/><!--MD5=[7b207cc31d63d27c526f257c1fda2512]
17
class urt_rtclassdata_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="99.2188" id="urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="1837" y="937.9531"/><ellipse cx="1855.6" cy="953.9531" fill="#7FCF7F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1851.475,955.875 L1851.475,948.0625 L1853.9281,948.0625 L1853.9281,956.5 Q1853.9281,957.4219 1854.3969,957.9531 Q1854.8813,958.4844 1855.7094,958.4844 Q1856.5531,958.4844 1857.0219,957.9531 Q1857.4906,957.4219 1857.4906,956.5 L1857.4906,948.0625 L1859.9438,948.0625 L1859.9438,955.875 Q1859.9438,958.4063 1858.9438,959.5469 Q1857.9438,960.6875 1855.7094,960.6875 Q1853.4906,960.6875 1852.475,959.5469 Q1851.475,958.4063 1851.475,955.875 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="1870.4" y="958.1074">urt_rtclassdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1838" x2="1982" y1="969.9531" y2="969.9531"/><ellipse cx="1848" cy="980.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="1857" y="984.1636">hrt : urt_hrtparams_t</text><ellipse cx="1848" cy="993.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="1857" y="996.9683">frt : urt_frtparams_t</text><ellipse cx="1848" cy="1006.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="1857" y="1009.7729">srt : urt_srtparans_t</text><ellipse cx="1848" cy="1019.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="1857" y="1022.5776">nrt : urt_nrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1838" x2="1982" y1="1029.1719" y2="1029.1719"/><!--MD5=[c57ade65ef97beb73587233399d5250a]
18
class urt_hrtdata_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="180.0469" id="urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="512" x="2310" y="1096.9531"/><ellipse cx="2520.75" cy="1112.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2520.2344,1113.5156 Q2518.375,1112.8125 2517.7188,1112.0469 Q2517.0781,1111.2656 2517.0781,1109.9531 Q2517.0781,1108.2656 2518.1563,1107.2969 Q2519.2344,1106.3281 2521.1094,1106.3281 Q2521.9688,1106.3281 2522.8125,1106.5313 Q2523.6719,1106.7188 2524.5156,1107.1094 L2524.5156,1109.5 Q2523.7344,1108.9375 2522.9063,1108.6563 Q2522.0938,1108.3594 2521.2969,1108.3594 Q2520.4219,1108.3594 2519.9375,1108.7188 Q2519.4688,1109.0781 2519.4688,1109.7344 Q2519.4688,1110.25 2519.8125,1110.5938 Q2520.1563,1110.9219 2521.25,1111.3281 L2522.3125,1111.7344 Q2523.7969,1112.2813 2524.5,1113.1875 Q2525.2188,1114.0938 2525.2188,1115.4688 Q2525.2188,1117.3438 2524.1094,1118.2656 Q2523,1119.1875 2520.75,1119.1875 Q2519.8281,1119.1875 2518.9063,1118.9688 Q2517.9844,1118.75 2517.125,1118.3281 L2517.125,1115.7969 Q2518.0938,1116.4844 2519.0156,1116.8281 Q2519.9375,1117.1719 2520.8281,1117.1719 Q2521.7344,1117.1719 2522.2344,1116.7656 Q2522.7344,1116.3438 2522.7344,1115.6094 Q2522.7344,1115.0469 2522.3906,1114.6406 Q2522.0625,1114.2188 2521.4375,1113.9688 L2520.2344,1113.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="2541.25" y="1117.1074">urt_hrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2311" x2="2821" y1="1128.9531" y2="1128.9531"/><ellipse cx="2321" cy="1139.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="2330" y="1143.1636">next : urt_subscriber_t*</text><ellipse cx="2321" cy="1169.5625" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="2330" y="1172.7729">qosDeadlineTimer : urt_osTimer_t</text><ellipse cx="2321" cy="1182.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="2330" y="1185.5776">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2311" x2="2420.5" y1="1156.1602" y2="1156.1602"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="2420.5" y="1159.4683">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2711.5" x2="2821" y1="1156.1602" y2="1156.1602"/><ellipse cx="2321" cy="1211.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="2330" y="1215.187">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2311" x2="2433.5" y1="1198.5742" y2="1198.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="2433.5" y="1201.8823">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2698.5" x2="2821" y1="1198.5742" y2="1198.5742"/><ellipse cx="2321" cy="1241.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="2330" y="1244.7964">maxJitter : urt_delay_t</text><ellipse cx="2321" cy="1254.3906" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="2330" y="1257.6011">minLatency : urt_delay_t</text><ellipse cx="2321" cy="1267.1953" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="2330" y="1270.4058">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2311" x2="2314" y1="1228.1836" y2="1228.1836"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="2314" y="1231.4917">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2818" x2="2821" y1="1228.1836" y2="1228.1836"/><!--MD5=[72774668522d2286013bfbc0db723956]
19
class urt_frtdata_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="154.4375" id="urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="512" x="1243" y="1109.9531"/><ellipse cx="1455.75" cy="1125.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1455.2344,1126.5156 Q1453.375,1125.8125 1452.7188,1125.0469 Q1452.0781,1124.2656 1452.0781,1122.9531 Q1452.0781,1121.2656 1453.1563,1120.2969 Q1454.2344,1119.3281 1456.1094,1119.3281 Q1456.9688,1119.3281 1457.8125,1119.5313 Q1458.6719,1119.7188 1459.5156,1120.1094 L1459.5156,1122.5 Q1458.7344,1121.9375 1457.9063,1121.6563 Q1457.0938,1121.3594 1456.2969,1121.3594 Q1455.4219,1121.3594 1454.9375,1121.7188 Q1454.4688,1122.0781 1454.4688,1122.7344 Q1454.4688,1123.25 1454.8125,1123.5938 Q1455.1563,1123.9219 1456.25,1124.3281 L1457.3125,1124.7344 Q1458.7969,1125.2813 1459.5,1126.1875 Q1460.2188,1127.0938 1460.2188,1128.4688 Q1460.2188,1130.3438 1459.1094,1131.2656 Q1458,1132.1875 1455.75,1132.1875 Q1454.8281,1132.1875 1453.9063,1131.9688 Q1452.9844,1131.75 1452.125,1131.3281 L1452.125,1128.7969 Q1453.0938,1129.4844 1454.0156,1129.8281 Q1454.9375,1130.1719 1455.8281,1130.1719 Q1456.7344,1130.1719 1457.2344,1129.7656 Q1457.7344,1129.3438 1457.7344,1128.6094 Q1457.7344,1128.0469 1457.3906,1127.6406 Q1457.0625,1127.2188 1456.4375,1126.9688 L1455.2344,1126.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="78" x="1476.25" y="1130.1074">urt_frtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1244" x2="1754" y1="1141.9531" y2="1141.9531"/><ellipse cx="1254" cy="1169.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="1263" y="1172.9683">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1244" x2="1353.5" y1="1156.3555" y2="1156.3555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="291" x="1353.5" y="1159.6636">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1644.5" x2="1754" y1="1156.3555" y2="1156.3555"/><ellipse cx="1254" cy="1199.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="150" x="1263" y="1202.5776">expectedRate : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1244" x2="1366.5" y1="1185.9648" y2="1185.9648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="1366.5" y="1189.2729">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1631.5" x2="1754" y1="1185.9648" y2="1185.9648"/><ellipse cx="1254" cy="1228.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="1263" y="1232.187">maxJitter : urt_delay_t</text><ellipse cx="1254" cy="1241.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="138" x="1263" y="1244.9917">minLatency : urt_delay_t</text><ellipse cx="1254" cy="1254.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="141" x="1263" y="1257.7964">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1244" x2="1247" y1="1215.5742" y2="1215.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="504" x="1247" y="1218.8823">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1751" x2="1754" y1="1215.5742" y2="1215.5742"/><!--MD5=[ca63c4d42025d7ce195746a6a8d32f3e]
20
class urt_nrtdata_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="48" id="urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="1790" y="1162.9531"/><ellipse cx="1805" cy="1178.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1804.4844,1179.5156 Q1802.625,1178.8125 1801.9688,1178.0469 Q1801.3281,1177.2656 1801.3281,1175.9531 Q1801.3281,1174.2656 1802.4063,1173.2969 Q1803.4844,1172.3281 1805.3594,1172.3281 Q1806.2188,1172.3281 1807.0625,1172.5313 Q1807.9219,1172.7188 1808.7656,1173.1094 L1808.7656,1175.5 Q1807.9844,1174.9375 1807.1563,1174.6563 Q1806.3438,1174.3594 1805.5469,1174.3594 Q1804.6719,1174.3594 1804.1875,1174.7188 Q1803.7188,1175.0781 1803.7188,1175.7344 Q1803.7188,1176.25 1804.0625,1176.5938 Q1804.4063,1176.9219 1805.5,1177.3281 L1806.5625,1177.7344 Q1808.0469,1178.2813 1808.75,1179.1875 Q1809.4688,1180.0938 1809.4688,1181.4688 Q1809.4688,1183.3438 1808.3594,1184.2656 Q1807.25,1185.1875 1805,1185.1875 Q1804.0781,1185.1875 1803.1563,1184.9688 Q1802.2344,1184.75 1801.375,1184.3281 L1801.375,1181.7969 Q1802.3438,1182.4844 1803.2656,1182.8281 Q1804.1875,1183.1719 1805.0781,1183.1719 Q1805.9844,1183.1719 1806.4844,1182.7656 Q1806.9844,1182.3438 1806.9844,1181.6094 Q1806.9844,1181.0469 1806.6406,1180.6406 Q1806.3125,1180.2188 1805.6875,1179.9688 L1804.4844,1179.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="1819" y="1183.1074">urt_nrtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1791" x2="1903" y1="1194.9531" y2="1194.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1791" x2="1903" y1="1202.9531" y2="1202.9531"/><!--MD5=[fc7708c915a0148c667d62e1370980fd]
21
class urt_srtusefulnessfunc_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="60.8047" id="urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="1920" y="1336.9531"/><ellipse cx="2029.25" cy="1352.9531" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2033.4844,1348.7188 L2028.2031,1348.7188 L2028.2031,1351.3906 L2033,1351.3906 L2033,1353.5469 L2028.2031,1353.5469 L2028.2031,1358.9531 L2025.7656,1358.9531 L2025.7656,1346.5625 L2033.4844,1346.5625 L2033.4844,1348.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="2049.75" y="1357.1074">urt_srtusefulnessfunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1921" x2="2293" y1="1368.9531" y2="1368.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1921" x2="2293" y1="1376.9531" y2="1376.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="362" x="1926" y="1391.1636">urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float</text><!--MD5=[4a2daf41193a31389d6311337c2a120f]
22
class urt_srtdata_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="73.6094" id="urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="1958" y="1149.9531"/><ellipse cx="2042.25" cy="1165.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2041.7344,1166.5156 Q2039.875,1165.8125 2039.2188,1165.0469 Q2038.5781,1164.2656 2038.5781,1162.9531 Q2038.5781,1161.2656 2039.6563,1160.2969 Q2040.7344,1159.3281 2042.6094,1159.3281 Q2043.4688,1159.3281 2044.3125,1159.5313 Q2045.1719,1159.7188 2046.0156,1160.1094 L2046.0156,1162.5 Q2045.2344,1161.9375 2044.4063,1161.6563 Q2043.5938,1161.3594 2042.7969,1161.3594 Q2041.9219,1161.3594 2041.4375,1161.7188 Q2040.9688,1162.0781 2040.9688,1162.7344 Q2040.9688,1163.25 2041.3125,1163.5938 Q2041.6563,1163.9219 2042.75,1164.3281 L2043.8125,1164.7344 Q2045.2969,1165.2813 2046,1166.1875 Q2046.7188,1167.0938 2046.7188,1168.4688 Q2046.7188,1170.3438 2045.6094,1171.2656 Q2044.5,1172.1875 2042.25,1172.1875 Q2041.3281,1172.1875 2040.4063,1171.9688 Q2039.4844,1171.75 2038.625,1171.3281 L2038.625,1168.7969 Q2039.5938,1169.4844 2040.5156,1169.8281 Q2041.4375,1170.1719 2042.3281,1170.1719 Q2043.2344,1170.1719 2043.7344,1169.7656 Q2044.2344,1169.3438 2044.2344,1168.6094 Q2044.2344,1168.0469 2043.8906,1167.6406 Q2043.5625,1167.2188 2042.9375,1166.9688 L2041.7344,1166.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="2062.75" y="1170.1074">urt_srtdata_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1959" x2="2215" y1="1181.9531" y2="1181.9531"/><ellipse cx="1969" cy="1192.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="232" x="1978" y="1196.1636">usefullnesscb : urt_srtusefulnessfunc_t*</text><ellipse cx="1969" cy="1205.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="1978" y="1208.9683">cbparams : void*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1959" x2="2215" y1="1215.5625" y2="1215.5625"/><!--MD5=[3226071078d8aeaa18fbafa5359ddee6]
23
class urt_servicefunc_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="60.8047" id="urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="4094.5" y="770.4531"/><ellipse cx="4262.75" cy="786.4531" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4266.9844,782.2188 L4261.7031,782.2188 L4261.7031,784.8906 L4266.5,784.8906 L4266.5,787.0469 L4261.7031,787.0469 L4261.7031,792.4531 L4259.2656,792.4531 L4259.2656,780.0625 L4266.9844,780.0625 L4266.9844,782.2188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="4283.25" y="790.6074">urt_servicefunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4095.5" x2="4544.5" y1="802.4531" y2="802.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4095.5" x2="4544.5" y1="810.4531" y2="810.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="439" x="4100.5" y="824.6636">urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
24
class urt_service_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="222.4609" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="602" x="4019" y="396.9531"/><ellipse cx="4276.25" cy="412.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4275.7344,413.5156 Q4273.875,412.8125 4273.2188,412.0469 Q4272.5781,411.2656 4272.5781,409.9531 Q4272.5781,408.2656 4273.6563,407.2969 Q4274.7344,406.3281 4276.6094,406.3281 Q4277.4688,406.3281 4278.3125,406.5313 Q4279.1719,406.7188 4280.0156,407.1094 L4280.0156,409.5 Q4279.2344,408.9375 4278.4063,408.6563 Q4277.5938,408.3594 4276.7969,408.3594 Q4275.9219,408.3594 4275.4375,408.7188 Q4274.9688,409.0781 4274.9688,409.7344 Q4274.9688,410.25 4275.3125,410.5938 Q4275.6563,410.9219 4276.75,411.3281 L4277.8125,411.7344 Q4279.2969,412.2813 4280,413.1875 Q4280.7188,414.0938 4280.7188,415.4688 Q4280.7188,417.3438 4279.6094,418.2656 Q4278.5,419.1875 4276.25,419.1875 Q4275.3281,419.1875 4274.4063,418.9688 Q4273.4844,418.75 4272.625,418.3281 L4272.625,415.7969 Q4273.5938,416.4844 4274.5156,416.8281 Q4275.4375,417.1719 4276.3281,417.1719 Q4277.2344,417.1719 4277.7344,416.7656 Q4278.2344,416.3438 4278.2344,415.6094 Q4278.2344,415.0469 4277.8906,414.6406 Q4277.5625,414.2188 4276.9375,413.9688 L4275.7344,413.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="4296.75" y="417.1074">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4020" x2="4620" y1="428.9531" y2="428.9531"/><ellipse cx="4030" cy="439.9531" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="4039" y="443.1636">next : urt_service_t*</text><ellipse cx="4030" cy="452.7578" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="4039" y="455.9683">id : urt_serviceid_t</text><ellipse cx="4030" cy="465.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="4039" y="468.7729">lock : urt_osMutex_t</text><ellipse cx="4030" cy="478.3672" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="4039" y="481.5776">callback : urt_servicefunc_t*</text><ellipse cx="4030" cy="507.9766" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="4039" y="511.187">sumDurations : uint64_t</text><ellipse cx="4030" cy="520.7813" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="4039" y="523.9917">numCalls : uint64_t</text><ellipse cx="4030" cy="533.5859" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="4039" y="536.7964">numTimeouts : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4020" x2="4225.5" y1="494.5742" y2="494.5742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="4225.5" y="497.8823">URT_CFG_RPC_PROFLING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4414.5" x2="4620" y1="494.5742" y2="494.5742"/><ellipse cx="4030" cy="563.1953" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="4039" y="566.4058">minDuration : urt_delay_t</text><ellipse cx="4030" cy="576" fill="none" 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="4039" y="579.2104">maxDuration : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4020" x2="4093" y1="549.793" y2="549.793"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="4093" y="553.1011">URT_CFG_RPC_PROFILING == true || URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="4547" x2="4620" y1="549.793" y2="549.793"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4020" x2="4620" y1="585.8047" y2="585.8047"/><ellipse cx="4030" cy="596.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="576" x="4039" y="600.0151">urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t</text><ellipse cx="4030" cy="609.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="557" x="4039" y="612.8198">urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[89d25e87afdd75480e1ec2bd05524873]
25
class urt_core_t--><rect fill="#FEFECE" filter="url(#f1rbvtu6dodgxm)" height="256.0703" id="urt_core_t" style="stroke: #A80036; stroke-width: 1.5;" width="515" x="3156.5" y="28.9531"/><ellipse cx="3378.25" cy="44.9531" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3377.7344,45.5156 Q3375.875,44.8125 3375.2188,44.0469 Q3374.5781,43.2656 3374.5781,41.9531 Q3374.5781,40.2656 3375.6563,39.2969 Q3376.7344,38.3281 3378.6094,38.3281 Q3379.4688,38.3281 3380.3125,38.5313 Q3381.1719,38.7188 3382.0156,39.1094 L3382.0156,41.5 Q3381.2344,40.9375 3380.4063,40.6563 Q3379.5938,40.3594 3378.7969,40.3594 Q3377.9219,40.3594 3377.4375,40.7188 Q3376.9688,41.0781 3376.9688,41.7344 Q3376.9688,42.25 3377.3125,42.5938 Q3377.6563,42.9219 3378.75,43.3281 L3379.8125,43.7344 Q3381.2969,44.2813 3382,45.1875 Q3382.7188,46.0938 3382.7188,47.4688 Q3382.7188,49.3438 3381.6094,50.2656 Q3380.5,51.1875 3378.25,51.1875 Q3377.3281,51.1875 3376.4063,50.9688 Q3375.4844,50.75 3374.625,50.3281 L3374.625,47.7969 Q3375.5938,48.4844 3376.5156,48.8281 Q3377.4375,49.1719 3378.3281,49.1719 Q3379.2344,49.1719 3379.7344,48.7656 Q3380.2344,48.3438 3380.2344,47.6094 Q3380.2344,47.0469 3379.8906,46.6406 Q3379.5625,46.2188 3378.9375,45.9688 L3377.7344,45.5156 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="3398.75" y="49.1074">urt_core_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3157.5" x2="3670.5" y1="60.9531" y2="60.9531"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="3164.5" y="68.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="3176.5" y="75.1636">_nodes : urt_node_t*</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="3164.5" y="81.7578"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="192" x="3176.5" y="87.9683">_evtSource : urt_osEventSource_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="3164.5" y="94.5625"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="3176.5" y="100.7729">_lock : urt_osMutex_t</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="3164.5" y="124.1719"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="117" x="3176.5" y="130.3823">_topics : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3157.5" x2="3309" y1="113.7695" y2="113.7695"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="3309" y="117.0776">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3519" x2="3670.5" y1="113.7695" y2="113.7695"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="3164.5" y="153.7813"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="145" x="3176.5" y="159.9917">_services : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3157.5" x2="3321.5" y1="143.3789" y2="143.3789"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="3321.5" y="146.687">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3506.5" x2="3670.5" y1="143.3789" y2="143.3789"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3157.5" x2="3670.5" y1="166.5859" y2="166.5859"/><ellipse cx="3167.5" cy="177.5859" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="3176.5" y="180.7964">urtCoreInit (void) : urt_status_t</text><ellipse cx="3167.5" cy="190.3906" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="222" x="3176.5" y="193.6011">urtCoreStartNodes (void) : urt_status_t</text><ellipse cx="3167.5" cy="203.1953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="489" x="3176.5" y="206.4058">urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodestage_t) : urt_status_t</text><ellipse cx="3167.5" cy="216" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="3176.5" y="219.2104">urtCoreStopNodes (void) : urt_status_t</text><ellipse cx="3167.5" cy="245.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="299" x="3176.5" y="248.8198">urtCoreRetrieveTopic (id : urt_topicid_t) : urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3157.5" x2="3309" y1="232.207" y2="232.207"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="3309" y="235.5151">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3519" x2="3670.5" y1="232.207" y2="232.207"/><ellipse cx="3167.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="339" x="3176.5" y="278.4292">urtCoreRetrieveService (id : urt_serviceid_t) : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3157.5" x2="3321.5" y1="261.8164" y2="261.8164"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="3321.5" y="265.1245">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3506.5" x2="3670.5" y1="261.8164" y2="261.8164"/><!--MD5=[182342162f0b9b45ddce11acc6582c59]
26
reverse link urt_node_t to urt_node_t--><path d="M3978.4188,480.9635 C3992.8891,488.447 4001,497.4435 4001,507.9531 C4001,521.1416 3988.2271,531.9474 3966.1426,540.3705 " fill="none" id="urt_node_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3966.1426,475.5357,3970.0126,481.6204,3977.1177,480.3883,3973.2477,474.3037,3966.1426,475.5357" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3973.9634" y="472.0419">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3974.0759" y="537.7884">0..1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
27
reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M3297.2531,605.0008 C3233.7575,662.3825 3160.7993,731.2314 3123.0193,770.1561 " fill="none" id="urt_node_t&lt;-urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3306.9508,596.2601,3299.8159,597.3059,3298.0371,604.2942,3305.172,603.2484,3306.9508,596.2601" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3290.1016" y="615.9651">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3119.3545" y="759.3581">1</text><!--MD5=[55d7f7c946c3356baf68288566af1bf6]
28
reverse link urt_node_t to urt_nodeSetupCallback_t--><path d="M3327.6416,599.7325 C3266.6305,658.1129 3187.7492,730.0325 3139.8917,770.1561 " 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="3331.2661,596.2601,3322.0001,599.598,3327.6557,599.7191,3327.5345,605.3747,3331.2661,596.2601" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b913f036db99e36b937989146817bd94]
29
reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M3487.2376,606.4171 C3535.1834,663.5114 3595.475,731.5511 3633.1071,770.1561 " fill="none" id="urt_node_t&lt;-urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3478.7425,596.2601,3479.5236,603.4288,3486.4413,605.465,3485.6602,598.2963,3478.7425,596.2601" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3475.5829" y="615.9651">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3617.0854" y="759.3581">1</text><!--MD5=[b913f036db99e36b937989146817bd94]
30
reverse link urt_node_t to urt_nodeLoopCallback_t--><path d="M3506.5028,600.0815 C3558.9932,658.3993 3619.841,730.1124 3649.9796,770.1561 " 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="3503.0578,596.2601,3506.113,605.6231,3506.4057,599.9739,3512.0549,600.2665,3503.0578,596.2601" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0c465c1a61dfd99ff8b5568ca35c92d1]
31
reverse link urt_srtdata_t to urt_srtusefulnessfunc_t--><path d="M2092.5955,1237.4523 C2096.1293,1269.3446 2100.5801,1309.5133 2103.592,1336.6963 " fill="none" id="urt_srtdata_t&lt;-urt_srtusefulnessfunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2091.144,1224.3528,2087.8292,1230.7569,2092.4657,1236.2798,2095.7805,1229.8757,2091.144,1224.3528" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2083.167" y="1243.6173">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2076.4141" y="1325.9066">0..1</text><!--MD5=[3f22cd2af9b1d30da63b75b4db75ae6e]
32
reverse link urt_rtclassdata_t to urt_hrtdata_t--><path d="M1995.297,1040.0604 C2123.8884,1088.5033 2170.7904,1061.0452 2306,1096.9531 C2307.2696,1097.2903 2308.5419,1097.6306 2309.8167,1097.9739 " fill="none" id="urt_rtclassdata_t&lt;-urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1983.0096,1035.2973,1987.1582,1041.1956,1994.1983,1039.6347,1990.0497,1033.7365,1983.0096,1035.2973" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1990.9512" y="1036.5203">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2277.855" y="1092.1779">0..1</text><!--MD5=[a94a8c9c209e194384613684e912df80]
33
reverse link urt_rtclassdata_t to urt_frtdata_t--><path d="M1825.0133,1033.8881 C1822.9927,1034.9255 1820.986,1035.9486 1819,1036.9531 C1770.545,1061.4609 1717.3487,1086.9504 1668.4801,1109.814 " fill="none" id="urt_rtclassdata_t&lt;-urt_frtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1836.6931,1027.8175,1829.5245,1027.0354,1826.0455,1033.3517,1833.214,1034.1339,1836.6931,1027.8175" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1821.0832" y="1028.1153">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1659.4899" y="1098.7992">0..1</text><!--MD5=[e6a6d7a2212fadf5661857a71d4f05c3]
34
reverse link urt_rtclassdata_t to urt_srtdata_t--><path d="M1962.9469,1047.1306 C1992.5584,1080.5062 2028.5389,1121.0605 2054.1083,1149.8803 " fill="none" id="urt_rtclassdata_t&lt;-urt_srtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1953.9802,1037.024,1954.97,1044.1669,1961.9441,1046.0004,1960.9543,1038.8576,1953.9802,1037.024" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1951.6024" y="1057.1105">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2021.8314" y="1138.7774">0..1</text><!--MD5=[206fe31eaf8244c7272230bb0ec7137c]
35
reverse link urt_rtclassdata_t to urt_nrtdata_t--><path d="M1890.3632,1049.6363 C1878.2731,1087.9215 1863.4526,1134.8532 1854.6423,1162.7525 " fill="none" id="urt_rtclassdata_t&lt;-urt_nrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1894.346,1037.024,1888.7248,1041.5409,1890.7323,1048.467,1896.3535,1043.9501,1894.346,1037.024" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1883.5822" y="1057.1105">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1829.5256" y="1151.7132">0..1</text><!--MD5=[1ba55993ff077c77667f6c7be6552d53]
36
reverse link urt_rtdata_t to urt_rtclass_t--><path d="M1771.1226,850.9157 C1762.0246,877.8486 1750.8351,910.973 1741.7558,937.8505 " fill="none" id="urt_rtdata_t&lt;-urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1775.4024,838.2459,1769.6925,842.6502,1771.5619,849.6148,1777.2718,845.2105,1775.4024,838.2459" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1764.7572" y="857.4934">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1735.5496" y="926.8813">1</text><!--MD5=[8318054091d2ecf2336b9e490f482e2a]
37
reverse link urt_rtdata_t to urt_rtclassdata_t--><path d="M1819.7263,849.4528 C1837.5123,876.642 1859.6505,910.4844 1877.5522,937.8505 " fill="none" id="urt_rtdata_t&lt;-urt_rtclassdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1812.3953,838.2459,1812.3325,845.4568,1818.9645,848.2881,1819.0273,841.0773,1812.3953,838.2459" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1807.6458" y="857.4934">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1864.4267" y="926.8813">1</text><!--MD5=[b6ee30948a218449c72edbee7363b5d7]
38
link urt_subscriber_t to urt_hrtdata_t--><path d="M1966.9771,664.1555 C2116.4912,794.644 2325.1235,976.728 2452.5906,1087.9749 " fill="none" id="urt_subscriber_t-&gt;urt_hrtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2462.7651,1096.8548,2460.8748,1089.8959,2453.7241,1088.9643,2455.6144,1095.9232,2462.7651,1096.8548" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1951.0651" y="684.1527">0..1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2445.8847" y="1085.8429">1</text><!--MD5=[536025241394544a90bc53fb552f3a08]
39
reverse link urt_message_t to urt_message_t--><path d="M1213.9841,776.985 C1228.0653,782.7159 1236.5,790.7053 1236.5,800.9531 C1236.5,813.9404 1222.9528,823.3004 1201.534,829.0331 " fill="none" id="urt_message_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1201.534,772.8731,1205.9769,778.553,1212.9286,776.6365,1208.4858,770.9566,1201.534,772.8731" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1209.7829" y="768.6559">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1209.3281" y="826.7703">0..1</text><!--MD5=[f7eb638a1c2d853c6fb0ae6f53692e50]
40
reverse link urt_subscriber_t to urt_rtdata_t--><path d="M1788,677.3551 C1788,709.926 1788,740.9483 1788,763.7661 " fill="none" id="urt_subscriber_t&lt;-urt_rtdata_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1788,664.318,1784,670.318,1788,676.318,1792,670.318,1788,664.318" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1779.8063" y="684.3231">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1779.2875" y="752.9198">1</text><!--MD5=[bf7bf5810813e0e9b75d3053dc098443]
41
reverse link urt_subscriber_t to urt_topic_t--><path d="M1240.6352,507.9531 C1227.4526,507.9531 1214.27,507.9531 1201.0874,507.9531 " fill="none" id="urt_subscriber_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1253.8178,507.9531,1247.8178,503.9531,1241.8178,507.9531,1247.8178,511.9531,1253.8178,507.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1238.2496" y="504.9148">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1209.0596" y="504.7283">0..1</text><!--MD5=[d3b08a81de663c21a5ec062e6c430f2b]
42
reverse link urt_topic_t to urt_subscriber_t--><path d="M1214.27,507.9531 C1227.4526,507.9531 1240.6352,507.9531 1253.8178,507.9531 " fill="none" id="urt_topic_t&lt;-urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1201.0874,507.9531,1207.0874,511.9531,1213.0874,507.9531,1207.0874,503.9531,1201.0874,507.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1208.7471" y="520.3142">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1222.1371" y="520.1258">0..1</text><!--MD5=[67fd999c5486ad1c37ee9b77e12afd1b]
43
reverse link urt_subscriber_t to urt_message_t--><path d="M1343.0697,668.5006 C1289.7205,687.751 1237.2761,706.6749 1189.4669,723.9262 " fill="none" id="urt_subscriber_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1355.5513,663.9968,1348.5498,662.2708,1344.2637,668.0699,1351.2652,669.7959,1355.5513,663.9968" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1326.4108" y="683.9863">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1184.6692" y="712.9221">0..1</text><!--MD5=[54fcf25ad8c5f1d36e678e42d5bfd4cc]
44
reverse link urt_publisher_t to urt_topic_t--><path d="M794.8249,507.9531 C802.1324,507.9531 809.44,507.9531 816.7475,507.9531 " fill="none" id="urt_publisher_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="781.6714,507.9531,787.6714,511.9531,793.6714,507.9531,787.6714,503.9531,781.6714,507.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="789.4647" y="504.8708">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="801.0814" y="504.7283">1</text><!--MD5=[5025b4c4053b8e7c7ca8a657f09f21c0]
45
link urt_publisher_t to urt_message_t--><path d="M528.6773,572.6159 C614.6335,616.4925 728.839,674.789 820.3376,721.4948 " 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="824.9519,723.8502,818.7546,716.1956,820.4986,721.5769,815.1173,723.3209,824.9519,723.8502" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b2afc1defaa6ed5a86f99c07f8466dd]
46
reverse link urt_topic_t to urt_topic_t--><path d="M1213.0439,468.0434 C1227.3061,477.1529 1236,490.4561 1236,507.9531 C1236,529.9101 1222.309,545.2629 1201.1039,554.0114 " fill="none" id="urt_topic_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1201.1039,461.8948,1204.6069,468.1979,1211.7724,467.3887,1208.2695,461.0856,1201.1039,461.8948" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1208.7642" y="456.8708">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1209.0767" y="552.5857">0..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
47
reverse link urt_topic_t to urt_message_t--><path d="M980.7947,645.3706 C977.6351,672.276 975.0046,699.5915 973.3143,723.6684 " fill="none" id="urt_topic_t&lt;-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="982.3865,632.2115,977.6949,637.6878,980.9455,644.1247,985.637,638.6485,982.3865,632.2115" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="972.6167" y="651.8975">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="947.9605" y="712.9052">1..1</text><!--MD5=[0b5167e958c0ed93ffc0c98ce399b54d]
48
reverse link urt_topic_t to urt_message_t--><path d="M1006.9999,645.3706 C1004.1065,672.276 1000.5577,699.5915 996.7645,723.6684 " fill="none" id="urt_topic_t&lt;-urt_message_t-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1008.3658,632.2115,1003.7677,637.7664,1007.1268,644.1474,1011.7249,638.5925,1008.3658,632.2115" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1000.0979" y="651.8975">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="990.31" y="712.9052">1</text><!--MD5=[05f2c35569573d3273c65d3342945557]
49
reverse link urt_service_t to urt_service_t--><path d="M4632.7882,473.486 C4647.4237,482.1801 4656,493.6691 4656,507.9531 C4656,525.7041 4642.7552,539.1387 4621.0965,548.2568 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="4621.0965,467.6494,4624.6781,473.9082,4631.833,473.0093,4628.2514,466.7505,4621.0965,467.6494" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4629.2006" y="463.4422">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4629.4131" y="546.1907">0..1</text><!--MD5=[586e61fedafd54ae7ea71cebd9f9032a]
50
reverse link urt_service_t to urt_servicefunc_t--><path d="M4320,632.2858 C4320,682.9975 4320,737.3367 4320,770.2353 " fill="none" id="urt_service_t&lt;-urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="4320,619.1416,4316,625.1416,4320,631.1416,4324,625.1416,4320,619.1416" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4311.7188" y="639.5423">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4293.525" y="759.4536">0..1</text><!--MD5=[694e7400eb99f74d44ea388aed89d199]
51
reverse link urt_core_t to urt_node_t--><path d="M3414,298.3868 C3414,339.4358 3414,383.0706 3414,419.8362 " fill="none" id="urt_core_t&lt;-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3414,285.1621,3410,291.1621,3414,297.1621,3418,291.1621,3414,285.1621" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3405.7688" y="305.0765">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3389.0063" y="408.9884">0..1</text><!--MD5=[250695c91040478b50550bc37a8775c7]
52
reverse link urt_core_t to urt_topic_t--><path d="M3143.0912,162.8691 C2594.5177,176.4214 1389.7388,214.7476 1219,292.9531 C1174.1713,313.4865 1133.8232,348.1574 1100.7563,383.7304 " fill="none" id="urt_core_t&lt;-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3156.3271,162.5438,3150.2306,158.6925,3144.3307,162.8388,3150.4272,166.6901,3156.3271,162.5438" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3140.5587" y="159.555">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1081.6164" y="372.7724">0..1</text><!--MD5=[8d0a227ec56585cdbc167f8316b34b64]
53
reverse link urt_core_t to urt_service_t--><path d="M3684.694,198.4163 C3786.2037,219.4381 3900.9032,249.9035 4000,292.9531 C4062.1554,319.9546 4125.2013,359.2292 4178.7107,396.8449 " fill="none" id="urt_core_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3671.744,195.7706,3676.8219,200.8907,3683.5011,198.1727,3678.4233,193.0526,3671.744,195.7706" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3679.5145" y="193.7682">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="4144.4116" y="385.9318">0..1</text><!--MD5=[a10441da5a087837729000420a7aa5a0]
54
@startuml
55

    
56
title **µRtWare**
57

    
58

    
59

    
60

    
61

    
62

    
63

    
64

    
65

    
66

    
67

    
68

    
69

    
70
  class urt_core_t <<S,BFAFFF>> {
71
  - {field} {static} _nodes : urt_node_t*
72
  - {field} {static} _evtSource : urt_osEventSource_t
73
  - {field} {static} _lock : urt_osMutex_t
74
  .. URT_CFG_PUBSUB_ENABLED == true ..
75
  - {field} {static} _topics : urt_topic_t*
76
  .. URT_CFG_RPC_ENABLED == true ..
77
  - {field} {static} _services : urt_service_t*
78
  __
79
  + {method} urtCoreInit (void) : urt_status_t
80
  + {method} urtCoreStartNodes (void) : urt_status_t
81
  + {method} urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodestage_t) : urt_status_t
82
  + {method} urtCoreStopNodes (void) : urt_status_t
83
  .. URT_CFG_PUBSUB_ENABLED == true ..
84
  + {method} urtCoreRetrieveTopic (id : urt_topicid_t) : urt_topic_t*
85
  .. URT_CFG_RPC_ENABLED == true ..
86
  + {method} urtCoreRetrieveService (id : urt_serviceid_t) : urt_service_t*
87
}
88

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

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

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

    
113
  package "Publish-Subscribe System" <<Node>> {
114

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

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

    
134
      class urt_rtclass_t <<E,FF7F3F>> {
135
      URT_RTCLASS_HARD = 0
136
      URT_RTCLASS_FIRM = 1
137
      URT_RTCLASS_SOFT = 2
138
      URT_RTCLASS_NONE = 3
139
    }
140

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

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

    
161
      class urt_frtdata_t <<S,BFAFFF>> {
162
      .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
163
      + {field} deadlineOffset : urt_delay_t
164
      .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
165
      + {field} expectedRate : urt_delay_t
166
      .. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
167
      + {field} maxJitter : urt_delay_t
168
      + {field} minLatency : urt_delay_t
169
      + {field} maxLatency : urt_delay_t
170
    }
171

    
172
      package "SRT data" <<Rectangle>> {
173
        class urt_srtusefulnessfunc_t <<F,E0E0E0>> {
174
        urt_srtusefulnessfunc_t (dt : urt_delay_t, params : void*) : float
175
      }
176

    
177
        class urt_srtdata_t <<S,BFAFFF>> {
178
        + {field} usefullnesscb : urt_srtusefulnessfunc_t*
179
        + {field} cbparams : void*
180
      }
181
    } 
182

    
183
      class urt_nrtdata_t <<S,BFAFFF>> {
184
    }
185
  } 
186

    
187
    class urt_subscriber_t <<S,BFAFFF>> {
188
    + {field} topic : urt_topic_t*
189
    + {field} evtListener : urt_osEventListener_t
190
    + {field} rtdata : urt_rtdata_t
191
    + {field} lastMessage : urt_message_t*
192
    + {field} lastMessageTime : urt_osTime_t
193
    .. URT_CFG_PUBSUB_PROFILING == true ..
194
    + {field} sumLatencies : uint64_t
195
    + {field} numMessagesReceived : uint64_t
196
    .. URT_CFG_PUBSUB_PROFILING == true ..
197
    + {field} minLatency : urt_delay_t
198
    + {field} maxLatency : urt_delay_t
199
    __
200
    + {method} urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t
201
    + {method} urtSubscriberSubscribeHrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
202
    + {method} urtSubscriberSubscribeFrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, deadline : urt_delay_t, rate : urt_delay_t, jitter : urt_delay_t) : urt_status_t
203
    + {method} urtSubscriberSubscribeSrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*, usefulnesscb : urt_srtusefulnessfunc_t*, cbparams : void*) : urt_status_t
204
    + {method} urtSubscriberSubscribeNrt (subscriber : urt_subscriber_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t
205
    + {method} urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t
206
    + {method} urtSubscriberFetchNextMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
207
    + {method} urtSubscriberFetchLatestMessage (subscriber : urt_subscriber_t*, payload : void*, bytes : size_t, latency : urt_delay_t*) : urt_status_t
208
    + {method} urtSubscriberCalculateUsefulness (subscriber : urt_subscriber_t*, latency : urt_delay_t) : float
209
  }
210
} 
211

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

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

    
241
}
242

    
243
  package "Remote Procedure Call System" <<Node>> {
244

    
245
  class urt_servicefunc_t <<F,E0E0E0>> {
246
  urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t
247
}
248

    
249
  class urt_service_t <<S,BFAFFF>> {
250
  + {field} next : urt_service_t*
251
  + {field} id : urt_serviceid_t
252
  + {field} lock : urt_osMutex_t
253
  + {field} callback : urt_servicefunc_t*
254
  .. URT_CFG_RPC_PROFLING == true ..
255
  + {field} sumDurations : uint64_t
256
  + {field} numCalls : uint64_t
257
  + {field} numTimeouts : uint64_t
258
  .. URT_CFG_RPC_PROFILING == true || URT_CFG_RPC_QOS_JITTERCHECKS == true ..
259
  + {field} minDuration : urt_delay_t
260
  + {field} maxDuration : urt_delay_t
261
  __
262
  + {method} urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t
263
  + {method} urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t
264
}
265

    
266
}
267

    
268

    
269

    
270

    
271
urt_node_t "1" o- - "0..1" urt_node_t
272
urt_node_t "1" o- - "1" urt_nodeSetupCallback_t
273
urt_node_t <.. urt_nodeSetupCallback_t
274
urt_node_t "1" o- - "1" urt_nodeLoopCallback_t
275
urt_node_t <.. urt_nodeLoopCallback_t
276

    
277

    
278
urt_srtdata_t "1" o- - "0..1" urt_srtusefulnessfunc_t
279

    
280
urt_rtclassdata_t "1" *- - "0..1" urt_hrtdata_t
281
urt_rtclassdata_t "1" *- - "0..1" urt_frtdata_t
282
urt_rtclassdata_t "1" *- - "0..1" urt_srtdata_t
283
urt_rtclassdata_t "1" *- - "0..1" urt_nrtdata_t
284

    
285
urt_rtdata_t "1" *- - "1" urt_rtclass_t
286
urt_rtdata_t "1" *- - "1" urt_rtclassdata_t
287

    
288
urt_hrtdata_t "1" o-up- "0..1" urt_subscriber_t
289

    
290
urt_message_t "1" o- - "0..1" urt_message_t
291

    
292
urt_subscriber_t "1" *- - "1" urt_rtdata_t
293
urt_subscriber_t "1" o- "0..1" urt_topic_t
294
urt_subscriber_t "1" o- - "0..1" urt_message_t
295

    
296
urt_publisher_t "1" o- "1" urt_topic_t
297
urt_publisher_t ..> urt_message_t
298

    
299
urt_topic_t "1" o- - "0..1" urt_topic_t
300
urt_topic_t "1" o- "0..1" urt_subscriber_t
301
urt_topic_t "1" o- - "1..1" urt_message_t
302
urt_topic_t "1" *- - "1" urt_message_t
303

    
304

    
305

    
306
urt_service_t "1" o- - "0..1" urt_service_t
307
urt_service_t "1" o- - "0..1" urt_servicefunc_t
308

    
309

    
310
urt_core_t "1" o- - "0..1" urt_node_t
311
urt_core_t "1" *- - "0..1" urt_topic_t
312
urt_core_t "1" *- - "0..1" urt_service_t
313

    
314

    
315

    
316
@enduml
317

    
318
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
319
(GPL source distribution)
320
Java Runtime: OpenJDK Runtime Environment
321
JVM: OpenJDK 64-Bit Server VM
322
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
323
Operating System: Linux
324
Default Encoding: UTF-8
325
Language: en
326
Country: US
327
--></g></svg>