Statistics
| Branch: | Revision:

urtware / doc / classdiagrams / rpc.svg @ 6c5df8c1

History | View | Annotate | Download (50.087 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="711px" preserveAspectRatio="none" style="width:3311px;height:711px;" version="1.1" viewBox="0 0 3311 711" width="3311px" zoomAndPan="magnify"><defs><filter height="300%" id="f16784wm24ekua" 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="1614" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="277" x="1520" y="37.6611">Remote Procedure Call System</text><!--MD5=[ecaf13b018fb9788c80013f5b3634b61]
2
cluster request--><rect fill="#FFFFFF" filter="url(#f16784wm24ekua)" height="615" style="stroke: #000000; stroke-width: 1.5;" width="2646" x="14" y="57.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="62" x="1306" y="72.9014">request</text><!--MD5=[7294e1cfaeb111bef046bc5d07a96458]
3
class urt_baserequest_t--><rect fill="#FEFECE" filter="url(#f16784wm24ekua)" height="197.6563" id="urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="224" x="1506" y="466.9063"/><ellipse cx="1556.25" cy="482.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1555.7344,483.4688 Q1553.875,482.7656 1553.2188,482 Q1552.5781,481.2188 1552.5781,479.9063 Q1552.5781,478.2188 1553.6563,477.25 Q1554.7344,476.2813 1556.6094,476.2813 Q1557.4688,476.2813 1558.3125,476.4844 Q1559.1719,476.6719 1560.0156,477.0625 L1560.0156,479.4531 Q1559.2344,478.8906 1558.4063,478.6094 Q1557.5938,478.3125 1556.7969,478.3125 Q1555.9219,478.3125 1555.4375,478.6719 Q1554.9688,479.0313 1554.9688,479.6875 Q1554.9688,480.2031 1555.3125,480.5469 Q1555.6563,480.875 1556.75,481.2813 L1557.8125,481.6875 Q1559.2969,482.2344 1560,483.1406 Q1560.7188,484.0469 1560.7188,485.4219 Q1560.7188,487.2969 1559.6094,488.2188 Q1558.5,489.1406 1556.25,489.1406 Q1555.3281,489.1406 1554.4063,488.9219 Q1553.4844,488.7031 1552.625,488.2813 L1552.625,485.75 Q1553.5938,486.4375 1554.5156,486.7813 Q1555.4375,487.125 1556.3281,487.125 Q1557.2344,487.125 1557.7344,486.7188 Q1558.2344,486.2969 1558.2344,485.5625 Q1558.2344,485 1557.8906,484.5938 Q1557.5625,484.1719 1556.9375,483.9219 L1555.7344,483.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="1576.75" y="487.0605">urt_baserequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1507" x2="1729" y1="498.9063" y2="498.9063"/><ellipse cx="1517" cy="509.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="1526" y="513.1167">prev : urt_baserequest_t*</text><ellipse cx="1517" cy="522.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="1526" y="525.9214">next : urt_baserequest_t*</text><ellipse cx="1517" cy="535.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="1526" y="538.7261">lock : urt_osMutex_t</text><ellipse cx="1517" cy="548.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="1526" y="551.5308">owner : urt_service_t*</text><ellipse cx="1517" cy="561.125" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="180" x="1526" y="564.3354">submissionTime : urt_osTime_t</text><ellipse cx="1517" cy="573.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="1526" y="577.1401">payload : void*</text><ellipse cx="1517" cy="586.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="1526" y="589.9448">evtSource : urt_osEventSource_t</text><ellipse cx="1517" cy="599.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="1526" y="602.7495">evtListener : urt_osEventListener_t</text><ellipse cx="1517" cy="629.1484" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="1526" y="632.3589">sumLatencies : uint64_t</text><ellipse cx="1517" cy="641.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="110" x="1526" y="645.1636">numCalls : uint64_t</text><ellipse cx="1517" cy="654.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="108" x="1526" y="657.9683">numFails : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1507" x2="1522" y1="615.7461" y2="615.7461"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="1522" y="619.0542">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1714" x2="1729" y1="615.7461" y2="615.7461"/><!--MD5=[65269c71e9a2a076bc4014c9b128c9e6]
4
class urt_nrtrequest_t--><rect fill="#FEFECE" filter="url(#f16784wm24ekua)" height="167.2422" id="urt_nrtrequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="531" x="22.5" y="144.4063"/><ellipse cx="232.75" cy="160.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M232.2344,160.9688 Q230.375,160.2656 229.7188,159.5 Q229.0781,158.7188 229.0781,157.4063 Q229.0781,155.7188 230.1563,154.75 Q231.2344,153.7813 233.1094,153.7813 Q233.9688,153.7813 234.8125,153.9844 Q235.6719,154.1719 236.5156,154.5625 L236.5156,156.9531 Q235.7344,156.3906 234.9063,156.1094 Q234.0938,155.8125 233.2969,155.8125 Q232.4219,155.8125 231.9375,156.1719 Q231.4688,156.5313 231.4688,157.1875 Q231.4688,157.7031 231.8125,158.0469 Q232.1563,158.375 233.25,158.7813 L234.3125,159.1875 Q235.7969,159.7344 236.5,160.6406 Q237.2188,161.5469 237.2188,162.9219 Q237.2188,164.7969 236.1094,165.7188 Q235,166.6406 232.75,166.6406 Q231.8281,166.6406 230.9063,166.4219 Q229.9844,166.2031 229.125,165.7813 L229.125,163.25 Q230.0938,163.9375 231.0156,164.2813 Q231.9375,164.625 232.8281,164.625 Q233.7344,164.625 234.2344,164.2188 Q234.7344,163.7969 234.7344,163.0625 Q234.7344,162.5 234.3906,162.0938 Q234.0625,161.6719 233.4375,161.4219 L232.2344,160.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="253.25" y="164.5605">urt_nrtrequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="23.5" x2="552.5" y1="176.4063" y2="176.4063"/><ellipse cx="33.5" cy="204.2109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="42.5" y="207.4214">minLatency : urt_delay_t</text><ellipse cx="33.5" cy="217.0156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="42.5" y="220.2261">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="23.5" x2="192" y1="190.8086" y2="190.8086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="192" y="194.1167">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="384" x2="552.5" y1="190.8086" y2="190.8086"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="23.5" x2="552.5" y1="226.8203" y2="226.8203"/><ellipse cx="33.5" cy="237.8203" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="297" x="42.5" y="241.0308">urtNrtRequestInit (request : urt_nrtrequest_t*) : void</text><ellipse cx="33.5" cy="250.625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="367" x="42.5" y="253.8354">urtNrtRequestAcquire (request : urt_nrtrequest_t*) : urt_status_t</text><ellipse cx="33.5" cy="263.4297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="385" x="42.5" y="266.6401">urtNrtRequestTryAcquire (request : urt_nrtrequest_t*) : urt_status_t</text><ellipse cx="33.5" cy="276.2344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="370" x="42.5" y="279.4448">urtNrtRequestRelease (request : urt_nrtrequest_t*) : urt_status_t</text><ellipse cx="33.5" cy="289.0391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="505" x="42.5" y="292.2495">urtNrtRequestSubmit (request : urt_nrtrequest_t*, service : urt_service_t*) : urt_status_t</text><ellipse cx="33.5" cy="301.8438" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="371" x="42.5" y="305.0542">urtNrtRequestRetrieve (request : urt_nrtrequest_t*) : urt_status_t</text><!--MD5=[e9d515ad43a4cecec056dd09bc14a3c2]
5
class urt_srtrequest_t--><rect fill="#FEFECE" filter="url(#f16784wm24ekua)" height="180.0469" id="urt_srtrequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="675" x="1280.5" y="137.9063"/><ellipse cx="1563.25" cy="153.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1562.7344,154.4688 Q1560.875,153.7656 1560.2188,153 Q1559.5781,152.2188 1559.5781,150.9063 Q1559.5781,149.2188 1560.6563,148.25 Q1561.7344,147.2813 1563.6094,147.2813 Q1564.4688,147.2813 1565.3125,147.4844 Q1566.1719,147.6719 1567.0156,148.0625 L1567.0156,150.4531 Q1566.2344,149.8906 1565.4063,149.6094 Q1564.5938,149.3125 1563.7969,149.3125 Q1562.9219,149.3125 1562.4375,149.6719 Q1561.9688,150.0313 1561.9688,150.6875 Q1561.9688,151.2031 1562.3125,151.5469 Q1562.6563,151.875 1563.75,152.2813 L1564.8125,152.6875 Q1566.2969,153.2344 1567,154.1406 Q1567.7188,155.0469 1567.7188,156.4219 Q1567.7188,158.2969 1566.6094,159.2188 Q1565.5,160.1406 1563.25,160.1406 Q1562.3281,160.1406 1561.4063,159.9219 Q1560.4844,159.7031 1559.625,159.2813 L1559.625,156.75 Q1560.5938,157.4375 1561.5156,157.7813 Q1562.4375,158.125 1563.3281,158.125 Q1564.2344,158.125 1564.7344,157.7188 Q1565.2344,157.2969 1565.2344,156.5625 Q1565.2344,156 1564.8906,155.5938 Q1564.5625,155.1719 1563.9375,154.9219 L1562.7344,154.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="1583.75" y="158.0605">urt_srtrequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1281.5" x2="1954.5" y1="169.9063" y2="169.9063"/><ellipse cx="1291.5" cy="197.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="1300.5" y="200.9214">minLatency : urt_delay_t</text><ellipse cx="1291.5" cy="210.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1300.5" y="213.7261">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1281.5" x2="1522" y1="184.3086" y2="184.3086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="1522" y="187.6167">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1714" x2="1954.5" y1="184.3086" y2="184.3086"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1281.5" x2="1954.5" y1="220.3203" y2="220.3203"/><ellipse cx="1291.5" cy="231.3203" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="297" x="1300.5" y="234.5308">urtSrtRequestInit (request : urt_srtrequest_t*) : void</text><ellipse cx="1291.5" cy="244.125" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="367" x="1300.5" y="247.3354">urtSrtRequestAcquire (request : urt_srtrequest_t*) : urt_status_t</text><ellipse cx="1291.5" cy="256.9297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="385" x="1300.5" y="260.1401">urtSrtRequestTryAcquire (request : urt_srtrequest_t*) : urt_status_t</text><ellipse cx="1291.5" cy="269.7344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="370" x="1300.5" y="272.9448">urtSrtRequestRelease (request : urt_srtrequest_t*) : urt_status_t</text><ellipse cx="1291.5" cy="282.5391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="505" x="1300.5" y="285.7495">urtSrtRequestSubmit (request : urt_srtrequest_t*, service : urt_service_t*) : urt_status_t</text><ellipse cx="1291.5" cy="295.3438" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="371" x="1300.5" y="298.5542">urtSrtRequestRetrieve (request : urt_srtrequest_t*) : urt_status_t</text><ellipse cx="1291.5" cy="308.1484" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="649" x="1300.5" y="311.3589">urtSrtCalculateUsefulness (request : urt_srtrequest_t*, usefulnesscb : urt_usefulness_f, cbparams : void*) : float</text><!--MD5=[240977dbca9212fa5365c87da90aa051]
6
class urt_frtrequest_t--><rect fill="#FEFECE" filter="url(#f16784wm24ekua)" height="268.875" id="urt_frtrequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="656" x="589" y="93.4063"/><ellipse cx="863.75" cy="109.4063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M863.2344,109.9688 Q861.375,109.2656 860.7188,108.5 Q860.0781,107.7188 860.0781,106.4063 Q860.0781,104.7188 861.1563,103.75 Q862.2344,102.7813 864.1094,102.7813 Q864.9688,102.7813 865.8125,102.9844 Q866.6719,103.1719 867.5156,103.5625 L867.5156,105.9531 Q866.7344,105.3906 865.9063,105.1094 Q865.0938,104.8125 864.2969,104.8125 Q863.4219,104.8125 862.9375,105.1719 Q862.4688,105.5313 862.4688,106.1875 Q862.4688,106.7031 862.8125,107.0469 Q863.1563,107.375 864.25,107.7813 L865.3125,108.1875 Q866.7969,108.7344 867.5,109.6406 Q868.2188,110.5469 868.2188,111.9219 Q868.2188,113.7969 867.1094,114.7188 Q866,115.6406 863.75,115.6406 Q862.8281,115.6406 861.9063,115.4219 Q860.9844,115.2031 860.125,114.7813 L860.125,112.25 Q861.0938,112.9375 862.0156,113.2813 Q862.9375,113.625 863.8281,113.625 Q864.7344,113.625 865.2344,113.2188 Q865.7344,112.7969 865.7344,112.0625 Q865.7344,111.5 865.3906,111.0938 Q865.0625,110.6719 864.4375,110.4219 L863.2344,109.9688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="98" x="884.25" y="113.5605">urt_frtrequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="590" x2="1244" y1="125.4063" y2="125.4063"/><ellipse cx="600" cy="153.2109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="609" y="156.4214">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="590" x2="784" y1="139.8086" y2="139.8086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="266" x="784" y="143.1167">URT_CFG_RPC_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1050" x2="1244" y1="139.8086" y2="139.8086"/><ellipse cx="600" cy="182.8203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="609" y="186.0308">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="590" x2="794" y1="169.418" y2="169.418"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="794" y="172.7261">URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1040" x2="1244" y1="169.418" y2="169.418"/><ellipse cx="600" cy="212.4297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="609" y="215.6401">minLatency : urt_delay_t</text><ellipse cx="600" cy="225.2344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="609" y="228.4448">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="590" x2="690" y1="199.0273" y2="199.0273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="690" y="202.3354">URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1144" x2="1244" y1="199.0273" y2="199.0273"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="590" x2="1244" y1="235.0391" y2="235.0391"/><ellipse cx="600" cy="246.0391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="292" x="609" y="249.2495">urtFrtRequestInit (request : urt_frtrequest_t*) : void</text><ellipse cx="600" cy="258.8438" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="362" x="609" y="262.0542">urtFrtRequestAcquire (request : urt_frtrequest_t*) : urt_status_t</text><ellipse cx="600" cy="271.6484" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="380" x="609" y="274.8589">urtFrtRequestTryAcquire (request : urt_frtrequest_t*) : urt_status_t</text><ellipse cx="600" cy="284.4531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="365" x="609" y="287.6636">urtFrtRequestRelease (request : urt_frtrequest_t*) : urt_status_t</text><ellipse cx="600" cy="297.2578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="630" x="609" y="300.4683">urtFrtRequestSubmit (request : urt_frtrequest_t*, service : urt_service_t*, deadline : urt_delay_t) : urt_status_t</text><ellipse cx="600" cy="310.0625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="366" x="609" y="313.2729">urtFrtRequestRetrieve (request : urt_frtrequest_t*) : urt_status_t</text><ellipse cx="600" cy="322.8672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="318" x="609" y="326.0776">urtDrtCalculateValidity (request : urt_frtrequest_t) : bool</text><ellipse cx="600" cy="352.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="423" x="609" y="355.687">urtFrtRequestGetMaxJitter (request : urt_frtrequest_t*) : urt_delay_t* const</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="590" x2="794" y1="339.0742" y2="339.0742"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="794" y="342.3823">URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1040" x2="1244" y1="339.0742" y2="339.0742"/><!--MD5=[2b0c3d572fefe037473ca776bdd2f803]
7
class urt_hrtrequest_t--><rect fill="#FEFECE" filter="url(#f16784wm24ekua)" height="285.6797" id="urt_hrtrequest_t" style="stroke: #A80036; stroke-width: 1.5;" width="661" x="1990.5" y="84.9063"/><ellipse cx="2265.75" cy="100.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2265.2344,101.4688 Q2263.375,100.7656 2262.7188,100 Q2262.0781,99.2188 2262.0781,97.9063 Q2262.0781,96.2188 2263.1563,95.25 Q2264.2344,94.2813 2266.1094,94.2813 Q2266.9688,94.2813 2267.8125,94.4844 Q2268.6719,94.6719 2269.5156,95.0625 L2269.5156,97.4531 Q2268.7344,96.8906 2267.9063,96.6094 Q2267.0938,96.3125 2266.2969,96.3125 Q2265.4219,96.3125 2264.9375,96.6719 Q2264.4688,97.0313 2264.4688,97.6875 Q2264.4688,98.2031 2264.8125,98.5469 Q2265.1563,98.875 2266.25,99.2813 L2267.3125,99.6875 Q2268.7969,100.2344 2269.5,101.1406 Q2270.2188,102.0469 2270.2188,103.4219 Q2270.2188,105.2969 2269.1094,106.2188 Q2268,107.1406 2265.75,107.1406 Q2264.8281,107.1406 2263.9063,106.9219 Q2262.9844,106.7031 2262.125,106.2813 L2262.125,103.75 Q2263.0938,104.4375 2264.0156,104.7813 Q2264.9375,105.125 2265.8281,105.125 Q2266.7344,105.125 2267.2344,104.7188 Q2267.7344,104.2969 2267.7344,103.5625 Q2267.7344,103 2267.3906,102.5938 Q2267.0625,102.1719 2266.4375,101.9219 L2265.2344,101.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="2286.25" y="105.0605">urt_hrtrequest_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1991.5" x2="2650.5" y1="116.9063" y2="116.9063"/><ellipse cx="2001.5" cy="144.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="2010.5" y="147.9214">deadlineOffset : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1991.5" x2="2188" y1="131.3086" y2="131.3086"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="266" x="2188" y="134.6167">URT_CFG_RPC_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2454" x2="2650.5" y1="131.3086" y2="131.3086"/><ellipse cx="2001.5" cy="174.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="2010.5" y="177.5308">maxJitter : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1991.5" x2="2198" y1="160.918" y2="160.918"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="2198" y="164.2261">URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2444" x2="2650.5" y1="160.918" y2="160.918"/><ellipse cx="2001.5" cy="203.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="2010.5" y="207.1401">qosTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1991.5" x2="2057" y1="190.5273" y2="190.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="528" x="2057" y="193.8354">URT_CFG_RPC_QOS_DEADLINECHECKS == true || URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2585" x2="2650.5" y1="190.5273" y2="190.5273"/><ellipse cx="2001.5" cy="233.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="2010.5" y="236.7495">minLatency : urt_delay_t</text><ellipse cx="2001.5" cy="246.3438" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="2010.5" y="249.5542">maxLatency : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1991.5" x2="2094" y1="220.1367" y2="220.1367"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="2094" y="223.4448">URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2548" x2="2650.5" y1="220.1367" y2="220.1367"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1991.5" x2="2650.5" y1="256.1484" y2="256.1484"/><ellipse cx="2001.5" cy="267.1484" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="297" x="2010.5" y="270.3589">urtHrtRequestInit (request : urt_hrtrequest_t*) : void</text><ellipse cx="2001.5" cy="279.9531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="367" x="2010.5" y="283.1636">urtHrtRequestAcquire (request : urt_hrtrequest_t*) : urt_status_t</text><ellipse cx="2001.5" cy="292.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="385" x="2010.5" y="295.9683">urtHrtRequestTryAcquire (request : urt_hrtrequest_t*) : urt_status_t</text><ellipse cx="2001.5" cy="305.5625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="370" x="2010.5" y="308.7729">urtHrtRequestRelease (request : urt_hrtrequest_t*) : urt_status_t</text><ellipse cx="2001.5" cy="318.3672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="635" x="2010.5" y="321.5776">urtHrtRequestSubmit (request : urt_hrtrequest_t*, service : urt_service_t*, deadline : urt_delay_t) : urt_status_t</text><ellipse cx="2001.5" cy="331.1719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="371" x="2010.5" y="334.3823">urtHrtRequestRetrieve (request : urt_hrtrequest_t*) : urt_status_t</text><ellipse cx="2001.5" cy="360.7813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="428" x="2010.5" y="363.9917">urtHrtRequestGetMaxJitter (request : urt_hrtrequest_t*) : urt_delay_t* const</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1991.5" x2="2198" y1="347.3789" y2="347.3789"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="2198" y="350.687">URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2444" x2="2650.5" y1="347.3789" y2="347.3789"/><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
8
class urt_service_t--><rect fill="#FEFECE" filter="url(#f16784wm24ekua)" height="269.6797" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="596" x="2668" y="430.9063"/><ellipse cx="2922.25" cy="446.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2921.7344,447.4688 Q2919.875,446.7656 2919.2188,446 Q2918.5781,445.2188 2918.5781,443.9063 Q2918.5781,442.2188 2919.6563,441.25 Q2920.7344,440.2813 2922.6094,440.2813 Q2923.4688,440.2813 2924.3125,440.4844 Q2925.1719,440.6719 2926.0156,441.0625 L2926.0156,443.4531 Q2925.2344,442.8906 2924.4063,442.6094 Q2923.5938,442.3125 2922.7969,442.3125 Q2921.9219,442.3125 2921.4375,442.6719 Q2920.9688,443.0313 2920.9688,443.6875 Q2920.9688,444.2031 2921.3125,444.5469 Q2921.6563,444.875 2922.75,445.2813 L2923.8125,445.6875 Q2925.2969,446.2344 2926,447.1406 Q2926.7188,448.0469 2926.7188,449.4219 Q2926.7188,451.2969 2925.6094,452.2188 Q2924.5,453.1406 2922.25,453.1406 Q2921.3281,453.1406 2920.4063,452.9219 Q2919.4844,452.7031 2918.625,452.2813 L2918.625,449.75 Q2919.5938,450.4375 2920.5156,450.7813 Q2921.4375,451.125 2922.3281,451.125 Q2923.2344,451.125 2923.7344,450.7188 Q2924.2344,450.2969 2924.2344,449.5625 Q2924.2344,449 2923.8906,448.5938 Q2923.5625,448.1719 2922.9375,447.9219 L2921.7344,447.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="2942.75" y="451.0605">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2669" x2="3263" y1="462.9063" y2="462.9063"/><ellipse cx="2679" cy="473.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="2688" y="477.1167">next : urt_service_t*</text><ellipse cx="2679" cy="486.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="2688" y="489.9214">id : urt_serviceid_t</text><ellipse cx="2679" cy="499.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="2688" y="502.7261">lock : urt_osMutex_t</text><ellipse cx="2679" cy="512.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="236" x="2688" y="515.5308">requestQueue_front : urt_baserequest_t*</text><ellipse cx="2679" cy="525.125" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="2688" y="528.3354">requestQueue_hrtBack : urt_hrtrequest_t*</text><ellipse cx="2679" cy="537.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="256" x="2688" y="541.1401">requestQueue_fsrtBack : urt_baserequest_t*</text><ellipse cx="2679" cy="550.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="2688" y="553.9448">requestQueue_back : urt_baserequest_t*</text><ellipse cx="2679" cy="563.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="2688" y="566.7495">evtSource : urt_osEventSource_t</text><ellipse cx="2679" cy="576.3438" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="2688" y="579.5542">evtListener : urt_osEventListener_t</text><ellipse cx="2679" cy="605.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="110" x="2688" y="609.1636">numCalls : uint64_t</text><ellipse cx="2679" cy="618.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="167" x="2688" y="621.9683">numOwnershipLost : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2669" x2="2870" y1="592.5508" y2="592.5508"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="2870" y="595.8589">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="3062" x2="3263" y1="592.5508" y2="592.5508"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2669" x2="3263" y1="628.5625" y2="628.5625"/><ellipse cx="2679" cy="639.5625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="412" x="2688" y="642.7729">urtServiceInit (service : urt_service_t*, id : urt_serviceid_t) : urt_status_t</text><ellipse cx="2679" cy="652.3672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="549" x="2688" y="655.5776">urtServiceDispatch (service : urt_service_t*, payload : void*, bytes : size_t) : urt_baserequest_t*</text><ellipse cx="2679" cy="665.1719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="552" x="2688" y="668.3823">urtServiceAcquireRequest (service* urt_serviceid_t*, request : urt_baserequest_t*) : urt_status_t</text><ellipse cx="2679" cy="677.9766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="570" x="2688" y="681.187">urtServiceTryAcquireRequest (service* urt_serviceid_t*, request : urt_baserequest_t*) : urt_status_t</text><ellipse cx="2679" cy="690.7813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="365" x="2688" y="693.9917">urtServiceRespond (request : urt_baserequest_t*) : urt_status_t</text><!--MD5=[ed8977051960dfa72b850fe399f41716]
9
reverse link urt_baserequest_t to urt_baserequest_t--><path d="M1741.814,512.1653 C1755.8803,522.2156 1765,540.1293 1765,565.9063 C1765,598.254 1750.6385,618.2185 1730.1623,625.8 " fill="none" id="urt_baserequest_t&lt;-urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1730.1623,506.0126,1733.6002,512.3514,1740.7737,511.616,1737.3358,505.2771,1730.1623,506.0126" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1737.967" y="498.5674">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1737.9722" y="626.0741">0,1,2</text><!--MD5=[426f0ba47802c5735a37a0acd494a192]
10
reverse link urt_baserequest_t to urt_service_t--><path d="M1743.5015,565.9063 C2051.6401,565.9063 2359.7787,565.9063 2667.9172,565.9063 " fill="none" id="urt_baserequest_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1730.2236,565.9063,1736.2236,569.9063,1742.2236,565.9063,1736.2236,561.9063,1730.2236,565.9063" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1738.0324" y="562.4852">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="2639.7338" y="562.7799">0,1</text><!--MD5=[09de7ef26922535bfe0682cb358ee29c]
11
reverse link urt_service_t to urt_baserequest_t--><path d="M2654.6393,565.9063 C2346.5008,565.9063 2038.3622,565.9063 1730.2236,565.9063 " fill="none" id="urt_service_t&lt;-urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2667.9172,565.9063,2661.9172,561.9063,2655.9172,565.9063,2661.9172,569.9063,2667.9172,565.9063" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2651.8931" y="578.1784">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1738.0372" y="578.4447">0,2,3</text><!--MD5=[dc2d1805b45628aba9d654613b3d05f9]
12
link urt_nrtrequest_t to urt_baserequest_t--><path d="M433.6468,311.4139 C476.7848,333.399 524.8484,355.3038 571,370.9063 C889.5746,478.6069 1283.96,531.7007 1485.6314,553.4172 " fill="none" id="urt_nrtrequest_t-&gt;urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="1486.5654,546.4769,1505.7169,555.5446,1485.0908,560.399,1486.5654,546.4769" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[d53ae0f00163daee879678d1d1554717]
13
link urt_nrtrequest_t to urt_service_t--><path d="M423.5759,311.5727 C468.8143,335.2921 520.5745,358.1235 571,370.9063 C1020.3839,484.8246 2201.6822,328.467 2662.7282,430.6481 " fill="none" id="urt_nrtrequest_t-&gt;urt_service_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2667.7827,431.7854,2659.8802,425.9073,2662.9046,430.6878,2658.1242,433.7122,2667.7827,431.7854" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f9755d42ba41539dee622699d8be3a22]
14
link urt_srtrequest_t to urt_baserequest_t--><path d="M1618,318.0401 C1618,357.5399 1618,404.4493 1618,446.7749 " fill="none" id="urt_srtrequest_t-&gt;urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="1625.0001,446.8115,1618,466.8114,1611.0001,446.8114,1625.0001,446.8115" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[90efd84e0f70286880ba110c49a1e8f8]
15
link urt_srtrequest_t to urt_service_t--><path d="M1811.7638,317.982 C1863.1909,338.5355 1919.3641,358.0775 1973,370.9063 C2271.1998,442.2308 2364.5822,354.5486 2662.9057,430.6454 " fill="none" id="urt_srtrequest_t-&gt;urt_service_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2667.7566,431.8926,2660.0361,425.7776,2662.9141,430.6476,2658.0441,433.5256,2667.7566,431.8926" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[bfc5f4e50344156edda6a5cfcff14fef]
16
link urt_frtrequest_t to urt_baserequest_t--><path d="M1196.068,362.464 C1296.7001,410.9856 1405.5363,463.463 1487.4629,502.9654 " fill="none" id="urt_frtrequest_t-&gt;urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="1490.5993,496.7064,1505.5743,511.6982,1484.5188,509.3171,1490.5993,496.7064" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[836450d5c472e7b2344319739fa0d5d1]
17
link urt_frtrequest_t to urt_service_t--><path d="M1228.9679,362.4745 C1240.3676,365.5879 1251.7344,368.4183 1263,370.9063 C1869.9387,504.9465 2056.3997,289.0249 2662.8682,430.6596 " fill="none" id="urt_frtrequest_t-&gt;urt_service_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2667.7766,431.8116,2659.9288,425.8608,2662.9089,430.669,2658.1007,433.6491,2667.7766,431.8116" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7c5d2ea3f0b69f804ad9b60a9539ac96]
18
link urt_hrtrequest_t to urt_baserequest_t--><path d="M2023.3742,371.0037 C1927.342,417.1757 1825.8142,465.9899 1748.3869,503.2166 " fill="none" id="urt_hrtrequest_t-&gt;urt_baserequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="1751.3031,509.5816,1730.245,511.9393,1745.2367,496.9642,1751.3031,509.5816" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[189d7bd823f9a098ae8eb3eaa3789ee1]
19
link urt_hrtrequest_t to urt_service_t--><path d="M2581.4546,371.0037 C2617.6563,390.0787 2654.9397,409.6047 2691.3902,428.5782 " fill="none" id="urt_hrtrequest_t-&gt;urt_service_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2695.8311,430.8893,2689.6942,423.1861,2691.3958,428.581,2686.0009,430.2826,2695.8311,430.8893" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[bcf13f9307d05af3b11663d6e8155fbe]
20
reverse link urt_service_t to urt_hrtrequest_t--><path d="M2709.7554,424.6371 C2676.1334,406.9081 2641.5096,388.7605 2607.4286,371.0037 " fill="none" id="urt_service_t&lt;-urt_hrtrequest_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2721.6036,430.8893,2718.1639,424.5514,2710.9906,425.2889,2714.4303,431.6268,2721.6036,430.8893" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2699.2432" y="419.73">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="2601.6819" y="390.8474">0,1</text><!--MD5=[05f2c35569573d3273c65d3342945557]
21
reverse link urt_service_t to urt_service_t--><path d="M3275.8204,525.8884 C3290.4318,535.9664 3299,549.3057 3299,565.9063 C3299,586.5362 3285.7678,602.1295 3264.1491,612.6862 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3264.1491,519.1264,3267.3355,525.5953,3274.5323,525.1421,3271.3459,518.6731,3264.1491,519.1264" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3272.1749" y="514.7575">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="3272.3343" y="610.8024">0,1</text><!--MD5=[76b18f006114981c715fb41e71ced385]
22
@startuml
23

    
24
title **µRtWare**\nRemote Procedure Call System
25

    
26

    
27

    
28

    
29

    
30

    
31

    
32

    
33

    
34

    
35

    
36

    
37

    
38
  package "request" <<Rectangle>> {
39
    class urt_baserequest_t <<S,BFAFFF>> {
40
    + {field} prev : urt_baserequest_t*
41
    + {field} next : urt_baserequest_t*
42
    + {field} lock : urt_osMutex_t
43
    + {field} owner : urt_service_t*
44
    + {field} submissionTime : urt_osTime_t
45
    + {field} payload : void*
46
    + {field} evtSource : urt_osEventSource_t
47
    + {field} evtListener : urt_osEventListener_t
48
    .. URT_CFG_RPC_PROFILING == true ..
49
    + {field} sumLatencies : uint64_t
50
    + {field} numCalls : uint64_t
51
    + {field} numFails : uint64_t
52
  }
53

    
54
    class urt_nrtrequest_t <<S,BFAFFF>> {
55
    .. URT_CFG_RPC_PROFILING == true ..
56
    + {field} minLatency : urt_delay_t
57
    + {field} maxLatency : urt_delay_t
58
    __
59
    + {method} urtNrtRequestInit (request : urt_nrtrequest_t*) : void
60
    + {method} urtNrtRequestAcquire (request : urt_nrtrequest_t*) : urt_status_t
61
    + {method} urtNrtRequestTryAcquire (request : urt_nrtrequest_t*) : urt_status_t
62
    + {method} urtNrtRequestRelease (request : urt_nrtrequest_t*) : urt_status_t
63
    + {method} urtNrtRequestSubmit (request : urt_nrtrequest_t*, service : urt_service_t*) : urt_status_t
64
    + {method} urtNrtRequestRetrieve (request : urt_nrtrequest_t*) : urt_status_t
65
  }
66

    
67
    class urt_srtrequest_t <<S,BFAFFF>> {
68
    .. URT_CFG_RPC_PROFILING == true ..
69
    + {field} minLatency : urt_delay_t
70
    + {field} maxLatency : urt_delay_t
71
    __
72
    + {method} urtSrtRequestInit (request : urt_srtrequest_t*) : void
73
    + {method} urtSrtRequestAcquire (request : urt_srtrequest_t*) : urt_status_t
74
    + {method} urtSrtRequestTryAcquire (request : urt_srtrequest_t*) : urt_status_t
75
    + {method} urtSrtRequestRelease (request : urt_srtrequest_t*) : urt_status_t
76
    + {method} urtSrtRequestSubmit (request : urt_srtrequest_t*, service : urt_service_t*) : urt_status_t
77
    + {method} urtSrtRequestRetrieve (request : urt_srtrequest_t*) : urt_status_t
78
    + {method} urtSrtCalculateUsefulness (request : urt_srtrequest_t*, usefulnesscb : urt_usefulness_f, cbparams : void*) : float
79
  }
80

    
81
    class urt_frtrequest_t <<S,BFAFFF>> {
82
    .. URT_CFG_RPC_QOS_DEADLINECHECKS == true ..
83
    + {field} deadlineOffset : urt_delay_t
84
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true ..
85
    + {field} maxJitter : urt_delay_t
86
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true ..
87
    + {field} minLatency : urt_delay_t
88
    + {field} maxLatency : urt_delay_t
89
    __
90
    + {method} urtFrtRequestInit (request : urt_frtrequest_t*) : void
91
    + {method} urtFrtRequestAcquire (request : urt_frtrequest_t*) : urt_status_t
92
    + {method} urtFrtRequestTryAcquire (request : urt_frtrequest_t*) : urt_status_t
93
    + {method} urtFrtRequestRelease (request : urt_frtrequest_t*) : urt_status_t
94
    + {method} urtFrtRequestSubmit (request : urt_frtrequest_t*, service : urt_service_t*, deadline : urt_delay_t) : urt_status_t
95
    + {method} urtFrtRequestRetrieve (request : urt_frtrequest_t*) : urt_status_t
96
    + {method} urtDrtCalculateValidity (request : urt_frtrequest_t) : bool
97
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true ..
98
    + {method} urtFrtRequestGetMaxJitter (request : urt_frtrequest_t*) : urt_delay_t* const
99
  }
100

    
101
    class urt_hrtrequest_t <<S,BFAFFF>> {
102
    .. URT_CFG_RPC_QOS_DEADLINECHECKS == true ..
103
    + {field} deadlineOffset : urt_delay_t
104
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true ..
105
    + {field} maxJitter : urt_delay_t
106
    .. URT_CFG_RPC_QOS_DEADLINECHECKS == true || URT_CFG_RPC_QOS_JITTERCHECKS == true ..
107
    + {field} qosTimer : urt_osTimer_t
108
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true ..
109
    + {field} minLatency : urt_delay_t
110
    + {field} maxLatency : urt_delay_t
111
    __
112
    + {method} urtHrtRequestInit (request : urt_hrtrequest_t*) : void
113
    + {method} urtHrtRequestAcquire (request : urt_hrtrequest_t*) : urt_status_t
114
    + {method} urtHrtRequestTryAcquire (request : urt_hrtrequest_t*) : urt_status_t
115
    + {method} urtHrtRequestRelease (request : urt_hrtrequest_t*) : urt_status_t
116
    + {method} urtHrtRequestSubmit (request : urt_hrtrequest_t*, service : urt_service_t*, deadline : urt_delay_t) : urt_status_t
117
    + {method} urtHrtRequestRetrieve (request : urt_hrtrequest_t*) : urt_status_t
118
    .. URT_CFG_RPC_QOS_JITTERCHECKS == true ..
119
    + {method} urtHrtRequestGetMaxJitter (request : urt_hrtrequest_t*) : urt_delay_t* const
120
  }
121
}
122

    
123
  class urt_service_t <<S,BFAFFF>> {
124
  + {field} next : urt_service_t*
125
  + {field} id : urt_serviceid_t
126
  + {field} lock : urt_osMutex_t
127
  + {field} requestQueue_front : urt_baserequest_t*
128
  + {field} requestQueue_hrtBack : urt_hrtrequest_t*
129
  + {field} requestQueue_fsrtBack : urt_baserequest_t*
130
  + {field} requestQueue_back : urt_baserequest_t*
131
  + {field} evtSource : urt_osEventSource_t
132
  + {field} evtListener : urt_osEventListener_t
133
  .. URT_CFG_RPC_PROFILING == true ..
134
  + {field} numCalls : uint64_t
135
  + {field} numOwnershipLost : uint64_t
136
  __
137
  + {method} urtServiceInit (service : urt_service_t*, id : urt_serviceid_t) : urt_status_t
138
  + {method} urtServiceDispatch (service : urt_service_t*, payload : void*, bytes : size_t) : urt_baserequest_t*
139
  + {method} urtServiceAcquireRequest (service* urt_serviceid_t*, request : urt_baserequest_t*) : urt_status_t
140
  + {method} urtServiceTryAcquireRequest (service* urt_serviceid_t*, request : urt_baserequest_t*) : urt_status_t
141
  + {method} urtServiceRespond (request : urt_baserequest_t*) : urt_status_t
142
}
143

    
144

    
145

    
146

    
147
urt_baserequest_t "1" o- "0,1,2" urt_baserequest_t
148
urt_baserequest_t "1" o- "0,1" urt_service_t
149

    
150
urt_nrtrequest_t - -|> urt_baserequest_t
151
urt_nrtrequest_t ..> urt_service_t
152

    
153
urt_srtrequest_t - -|> urt_baserequest_t
154
urt_srtrequest_t ..> urt_service_t
155

    
156
urt_frtrequest_t - -|> urt_baserequest_t
157
urt_frtrequest_t ..> urt_service_t
158

    
159
urt_hrtrequest_t - -|> urt_baserequest_t
160
urt_hrtrequest_t ..> urt_service_t
161

    
162
urt_service_t "1" o- "0,1" urt_service_t
163
urt_service_t "1" o- "0,2,3" urt_baserequest_t
164
urt_service_t "1" o- "0,1" urt_hrtrequest_t
165

    
166

    
167

    
168
@enduml
169

    
170
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
171
(GPL source distribution)
172
Java Runtime: OpenJDK Runtime Environment
173
JVM: OpenJDK 64-Bit Server VM
174
Java Version: 11.0.7+10-post-Ubuntu-2ubuntu218.04
175
Operating System: Linux
176
Default Encoding: UTF-8
177
Language: en
178
Country: US
179
--></g></svg>