Revision 056e40d2 doc/classdiagrams/rpc.svg

View differences:

doc/classdiagrams/rpc.svg
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="557px" preserveAspectRatio="none" style="width:671px;height:557px;" version="1.1" viewBox="0 0 671 557" width="671px" zoomAndPan="magnify"><defs><filter height="300%" id="fh228s0d9ux2n" 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="294" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="277" x="200" y="37.6611">Remote Procedure Call System</text><!--MD5=[7579d5565d2521d5936cec86ed3dadee]
2
cluster service--><rect fill="#FFFFFF" filter="url(#fh228s0d9ux2n)" height="378" style="stroke: #000000; stroke-width: 1.5;" width="636" x="14" y="168.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="58" x="303" y="183.9014">service</text><!--MD5=[3226071078d8aeaa18fbafa5359ddee6]
3
class urt_servicefunc_t--><rect fill="#FEFECE" filter="url(#fh228s0d9ux2n)" height="60.8047" id="urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="97.5" y="477.9063"/><ellipse cx="265.75" cy="493.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M269.9844,489.6719 L264.7031,489.6719 L264.7031,492.3438 L269.5,492.3438 L269.5,494.5 L264.7031,494.5 L264.7031,499.9063 L262.2656,499.9063 L262.2656,487.5156 L269.9844,487.5156 L269.9844,489.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="286.25" y="498.0605">urt_servicefunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="98.5" x2="547.5" y1="509.9063" y2="509.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="98.5" x2="547.5" y1="517.9063" y2="517.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="439" x="103.5" y="532.1167">urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
4
class urt_service_t--><rect fill="#FEFECE" filter="url(#fh228s0d9ux2n)" height="222.4609" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="602" x="22" y="195.9063"/><ellipse cx="279.25" cy="211.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M278.7344,212.4688 Q276.875,211.7656 276.2188,211 Q275.5781,210.2188 275.5781,208.9063 Q275.5781,207.2188 276.6563,206.25 Q277.7344,205.2813 279.6094,205.2813 Q280.4688,205.2813 281.3125,205.4844 Q282.1719,205.6719 283.0156,206.0625 L283.0156,208.4531 Q282.2344,207.8906 281.4063,207.6094 Q280.5938,207.3125 279.7969,207.3125 Q278.9219,207.3125 278.4375,207.6719 Q277.9688,208.0313 277.9688,208.6875 Q277.9688,209.2031 278.3125,209.5469 Q278.6563,209.875 279.75,210.2813 L280.8125,210.6875 Q282.2969,211.2344 283,212.1406 Q283.7188,213.0469 283.7188,214.4219 Q283.7188,216.2969 282.6094,217.2188 Q281.5,218.1406 279.25,218.1406 Q278.3281,218.1406 277.4063,217.9219 Q276.4844,217.7031 275.625,217.2813 L275.625,214.75 Q276.5938,215.4375 277.5156,215.7813 Q278.4375,216.125 279.3281,216.125 Q280.2344,216.125 280.7344,215.7188 Q281.2344,215.2969 281.2344,214.5625 Q281.2344,214 280.8906,213.5938 Q280.5625,213.1719 279.9375,212.9219 L278.7344,212.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="299.75" y="216.0605">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="23" x2="623" y1="227.9063" y2="227.9063"/><ellipse cx="33" cy="238.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="42" y="242.1167">next : urt_service_t*</text><ellipse cx="33" cy="251.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="42" y="254.9214">id : urt_serviceid_t</text><ellipse cx="33" cy="264.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="42" y="267.7261">lock : urt_osMutex_t</text><ellipse cx="33" cy="277.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="160" x="42" y="280.5308">callback : urt_servicefunc_t*</text><ellipse cx="33" cy="306.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="137" x="42" y="310.1401">sumDurations : uint64_t</text><ellipse cx="33" cy="319.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="110" x="42" y="322.9448">numCalls : uint64_t</text><ellipse cx="33" cy="332.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="135" x="42" y="335.7495">numTimeouts : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="23" x2="228.5" y1="293.5273" y2="293.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="228.5" y="296.8354">URT_CFG_RPC_PROFLING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="417.5" x2="623" y1="293.5273" y2="293.5273"/><ellipse cx="33" cy="362.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="143" x="42" y="365.3589">minDuration : urt_delay_t</text><ellipse cx="33" cy="374.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="146" x="42" y="378.1636">maxDuration : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="23" x2="90" y1="348.7461" y2="348.7461"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="466" x="90" y="352.0542">URT_CFG_RPC_PROFILING == true &amp;&amp; URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="556" x2="623" y1="348.7461" y2="348.7461"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="23" x2="623" y1="384.7578" y2="384.7578"/><ellipse cx="33" cy="395.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="576" x="42" y="398.9683">urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t</text><ellipse cx="33" cy="408.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="557" x="42" y="411.7729">urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[c49c66e54807645986bdfbce830f97dc]
5
class urt_rpc_t--><rect fill="#FEFECE" filter="url(#fh228s0d9ux2n)" height="86.4141" id="urt_rpc_t" style="stroke: #A80036; stroke-width: 1.5;" width="358" x="144" y="49.9063"/><ellipse cx="291.25" cy="65.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M290.7344,66.4688 Q288.875,65.7656 288.2188,65 Q287.5781,64.2188 287.5781,62.9063 Q287.5781,61.2188 288.6563,60.25 Q289.7344,59.2813 291.6094,59.2813 Q292.4688,59.2813 293.3125,59.4844 Q294.1719,59.6719 295.0156,60.0625 L295.0156,62.4531 Q294.2344,61.8906 293.4063,61.6094 Q292.5938,61.3125 291.7969,61.3125 Q290.9219,61.3125 290.4375,61.6719 Q289.9688,62.0313 289.9688,62.6875 Q289.9688,63.2031 290.3125,63.5469 Q290.6563,63.875 291.75,64.2813 L292.8125,64.6875 Q294.2969,65.2344 295,66.1406 Q295.7188,67.0469 295.7188,68.4219 Q295.7188,70.2969 294.6094,71.2188 Q293.5,72.1406 291.25,72.1406 Q290.3281,72.1406 289.4063,71.9219 Q288.4844,71.7031 287.625,71.2813 L287.625,68.75 Q288.5938,69.4375 289.5156,69.7813 Q290.4375,70.125 291.3281,70.125 Q292.2344,70.125 292.7344,69.7188 Q293.2344,69.2969 293.2344,68.5625 Q293.2344,68 292.8906,67.5938 Q292.5625,67.1719 291.9375,66.9219 L290.7344,66.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="311.75" y="70.0605">urt_rpc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="145" x2="501" y1="81.9063" y2="81.9063"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="152" y="89.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="145" x="164" y="96.1167">_services : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="145" x2="501" y1="102.7109" y2="102.7109"/><ellipse cx="155" cy="113.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="164" y="116.9214">urtRpcInit (void) : urt_status_t</text><ellipse cx="155" cy="126.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="332" x="164" y="129.7261">urtRpcRetrieveService (id : urt_serviceid_t) : urt_service_t*</text><!--MD5=[05f2c35569573d3273c65d3342945557]
6
reverse link urt_service_t to urt_service_t--><path d="M636.6339,283.6478 C650.7535,289.5599 659,297.3127 659,306.9063 C659,319.0644 645.7552,328.2663 624.0965,334.5116 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="624.0965,279.301,628.4551,285.0457,635.4344,283.2319,631.0758,277.4872,624.0965,279.301" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="632.2006" y="275.431">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="632.4131" y="332.1081">0..1</text><!--MD5=[586e61fedafd54ae7ea71cebd9f9032a]
7
reverse link urt_service_t to urt_servicefunc_t--><path d="M323,431.053 C323,448.3835 323,464.7364 323,477.9027 " fill="none" id="urt_service_t&lt;-urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="323,417.971,319,423.971,323,429.971,327,423.971,323,417.971" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="314.7188" y="438.3629">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="296.375" y="466.6923">0..1</text><!--MD5=[44e85a81cd85acd5638164304275c8f6]
8
reverse link urt_rpc_t to urt_service_t--><path d="M323,149.2193 C323,163.6126 323,179.5972 323,195.709 " fill="none" id="urt_rpc_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="323,135.955,319,141.955,323,147.955,327,141.955,323,135.955" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="314.3375" y="156.3707">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="298.1938" y="184.7898">0..1</text><!--MD5=[d55314fac70b0ef172f327e6a48316f4]
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="403px" preserveAspectRatio="none" style="width:655px;height:403px;" version="1.1" viewBox="0 0 655 403" width="655px" zoomAndPan="magnify"><defs><filter height="300%" id="f1647pblyzesul" 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="286" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="277" x="192" y="37.6611">Remote Procedure Call System</text><!--MD5=[3226071078d8aeaa18fbafa5359ddee6]
2
class urt_servicefunc_t--><rect fill="#FEFECE" filter="url(#f1647pblyzesul)" height="60.8047" id="urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="81.5" y="331.9063"/><ellipse cx="249.75" cy="347.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M253.9844,343.6719 L248.7031,343.6719 L248.7031,346.3438 L253.5,346.3438 L253.5,348.5 L248.7031,348.5 L248.7031,353.9063 L246.2656,353.9063 L246.2656,341.5156 L253.9844,341.5156 L253.9844,343.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="270.25" y="352.0605">urt_servicefunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="82.5" x2="531.5" y1="363.9063" y2="363.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="82.5" x2="531.5" y1="371.9063" y2="371.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="439" x="87.5" y="386.1167">urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
3
class urt_service_t--><rect fill="#FEFECE" filter="url(#f1647pblyzesul)" height="222.4609" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="602" x="6" y="49.9063"/><ellipse cx="263.25" cy="65.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M262.7344,66.4688 Q260.875,65.7656 260.2188,65 Q259.5781,64.2188 259.5781,62.9063 Q259.5781,61.2188 260.6563,60.25 Q261.7344,59.2813 263.6094,59.2813 Q264.4688,59.2813 265.3125,59.4844 Q266.1719,59.6719 267.0156,60.0625 L267.0156,62.4531 Q266.2344,61.8906 265.4063,61.6094 Q264.5938,61.3125 263.7969,61.3125 Q262.9219,61.3125 262.4375,61.6719 Q261.9688,62.0313 261.9688,62.6875 Q261.9688,63.2031 262.3125,63.5469 Q262.6563,63.875 263.75,64.2813 L264.8125,64.6875 Q266.2969,65.2344 267,66.1406 Q267.7188,67.0469 267.7188,68.4219 Q267.7188,70.2969 266.6094,71.2188 Q265.5,72.1406 263.25,72.1406 Q262.3281,72.1406 261.4063,71.9219 Q260.4844,71.7031 259.625,71.2813 L259.625,68.75 Q260.5938,69.4375 261.5156,69.7813 Q262.4375,70.125 263.3281,70.125 Q264.2344,70.125 264.7344,69.7188 Q265.2344,69.2969 265.2344,68.5625 Q265.2344,68 264.8906,67.5938 Q264.5625,67.1719 263.9375,66.9219 L262.7344,66.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="283.75" y="70.0605">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="607" y1="81.9063" y2="81.9063"/><ellipse cx="17" cy="92.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="26" y="96.1167">next : urt_service_t*</text><ellipse cx="17" cy="105.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="26" y="108.9214">id : urt_serviceid_t</text><ellipse cx="17" cy="118.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="26" y="121.7261">lock : urt_osMutex_t</text><ellipse cx="17" cy="131.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="160" x="26" y="134.5308">callback : urt_servicefunc_t*</text><ellipse cx="17" cy="160.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="137" x="26" y="164.1401">sumDurations : uint64_t</text><ellipse cx="17" cy="173.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="110" x="26" y="176.9448">numCalls : uint64_t</text><ellipse cx="17" cy="186.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="135" x="26" y="189.7495">numTimeouts : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="212.5" y1="147.5273" y2="147.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="212.5" y="150.8354">URT_CFG_RPC_PROFLING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="401.5" x2="607" y1="147.5273" y2="147.5273"/><ellipse cx="17" cy="216.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="143" x="26" y="219.3589">minDuration : urt_delay_t</text><ellipse cx="17" cy="228.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="146" x="26" y="232.1636">maxDuration : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="80" y1="202.7461" y2="202.7461"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="454" x="80" y="206.0542">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="534" x2="607" y1="202.7461" y2="202.7461"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="607" y1="238.7578" y2="238.7578"/><ellipse cx="17" cy="249.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="576" x="26" y="252.9683">urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t</text><ellipse cx="17" cy="262.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="557" x="26" y="265.7729">urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[05f2c35569573d3273c65d3342945557]
4
reverse link urt_service_t to urt_service_t--><path d="M620.6339,137.6478 C634.7535,143.5599 643,151.3127 643,160.9063 C643,173.0645 629.7552,182.2663 608.0965,188.5116 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="608.0965,133.301,612.4551,139.0457,619.4344,137.2319,615.0758,131.4872,608.0965,133.301" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="616.2006" y="129.431">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="616.4131" y="186.1081">0..1</text><!--MD5=[586e61fedafd54ae7ea71cebd9f9032a]
5
reverse link urt_service_t to urt_servicefunc_t--><path d="M307,285.053 C307,302.3835 307,318.7364 307,331.9027 " fill="none" id="urt_service_t&lt;-urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="307,271.971,303,277.971,307,283.971,311,277.971,307,271.971" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="298.7188" y="292.3629">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="280.375" y="320.6923">0..1</text><!--MD5=[59be54564a027488cb1cee1676c8d625]
9 6
@startuml
10 7

  
11 8
title **µRtWare**\nRemote Procedure Call System
......
22 19

  
23 20

  
24 21

  
25
  package "service" <<Rectangle>> {
26
    class urt_servicefunc_t <<F,E0E0E0>> {
27
    urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t
28
  }
29

  
30
    class urt_service_t <<S,BFAFFF>> {
31
    + {field} next : urt_service_t*
32
    + {field} id : urt_serviceid_t
33
    + {field} lock : urt_osMutex_t
34
    + {field} callback : urt_servicefunc_t*
35
    .. URT_CFG_RPC_PROFLING == true ..
36
    + {field} sumDurations : uint64_t
37
    + {field} numCalls : uint64_t
38
    + {field} numTimeouts : uint64_t
39
    .. URT_CFG_RPC_PROFILING == true && URT_CFG_RPC_QOS_JITTERCHECKS == true ..
40
    + {field} minDuration : urt_delay_t
41
    + {field} maxDuration : urt_delay_t
42
    __
43
    + {method} urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t
44
    + {method} urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t
45
  }
22
  class urt_servicefunc_t <<F,E0E0E0>> {
23
  urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t
46 24
}
47 25

  
48
  class urt_rpc_t <<S,BFAFFF>> {
49
  - {field} {static} _services : urt_service_t*
26
  class urt_service_t <<S,BFAFFF>> {
27
  + {field} next : urt_service_t*
28
  + {field} id : urt_serviceid_t
29
  + {field} lock : urt_osMutex_t
30
  + {field} callback : urt_servicefunc_t*
31
  .. URT_CFG_RPC_PROFLING == true ..
32
  + {field} sumDurations : uint64_t
33
  + {field} numCalls : uint64_t
34
  + {field} numTimeouts : uint64_t
35
  .. URT_CFG_RPC_PROFILING == true || URT_CFG_RPC_QOS_JITTERCHECKS == true ..
36
  + {field} minDuration : urt_delay_t
37
  + {field} maxDuration : urt_delay_t
50 38
  __
51
  + {method} urtRpcInit (void) : urt_status_t
52
  + {method} urtRpcRetrieveService (id : urt_serviceid_t) : urt_service_t*
39
  + {method} urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t
40
  + {method} urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t
53 41
}
54 42

  
55 43

  
......
58 46
urt_service_t "1" o- - "0..1" urt_service_t
59 47
urt_service_t "1" o- - "0..1" urt_servicefunc_t
60 48

  
61
urt_rpc_t "1" o- - "0..1" urt_service_t
62

  
63 49

  
64 50

  
65 51
@enduml

Also available in: Unified diff