Revision dd31cb03
doc/activitydiagrams/core/urtCoreInit.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="374px" preserveAspectRatio="none" style="width:493px;height:374px;" version="1.1" viewBox="0 0 493 374" width="493px" zoomAndPan="magnify"><defs><filter height="300%" id="f1k9cydo3vbvno" 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="201.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="112" x="189.75" y="47.6611">urtCoreInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="248.75" y="68.6143"/><path d="M255.5,72.8594 L255.5,138.2578 L481.5,138.2578 L481.5,82.8594 L471.5,72.8594 L255.5,72.8594 " fill="#FBFB77" filter="url(#f1k9cydo3vbvno)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M471.5,72.8594 L471.5,82.8594 L481.5,82.8594 L471.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="351" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="355" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="355" y="89.4263">void</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="386" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="386" x2="481.5" y1="85.4258" y2="85.4258"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="481.5" y1="97.9922" y2="97.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="481.5" y1="99.9922" y2="99.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="297.5" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="301.5" y="114.5591"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="301.5" y="114.5591">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="350.5" y="114.5591">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="439.5" x2="481.5" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="261.5" y="130.1919">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="358.5" y="130.1919">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="462.5" y="130.1919">.</text><ellipse cx="368.5" cy="168.2578" fill="#000000" filter="url(#f1k9cydo3vbvno)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,188.2578 L10,319.3203 A0,0 0 0 0 10,319.3203 L283,319.3203 A0,0 0 0 0 283,319.3203 L283,257.7891 L303,253.7891 L283,249.7891 L283,198.2578 L273,188.2578 L10,188.2578 A0,0 0 0 0 10,188.2578 " fill="#FBFB77" filter="url(#f1k9cydo3vbvno)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M273,188.2578 L273,198.2578 L283,198.2578 L273,188.2578 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="16" y="205.3247">_nodes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="72" y="205.3247">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="87" y="205.3247">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="16" y="220.4575">urtEventSourceInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="139" y="220.4575">_evtSource</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="219" y="220.4575">)</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="16" y="235.5903">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="97" y="235.5903">_lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="134" y="235.5903">)</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="16" y="250.7231">_status</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="73" y="250.7231">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="88" y="250.7231">URT_STATUS_OK</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="261.3555" y2="261.3555"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="24.5" y="265.356">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="272.5" x2="283" y1="261.3555" y2="261.3555"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="16" y="280.9888">_topics</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="72" y="280.9888">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="87" y="280.9888">NULL</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="35.5" y1="291.6211" y2="291.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="214" x="39.5" y="295.6216">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="257.5" x2="283" y1="291.6211" y2="291.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="16" y="311.2544">_services</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="87" y="311.2544">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="102" y="311.2544">NULL</text><rect fill="#FEFECE" filter="url(#f1k9cydo3vbvno)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="303" y="236.8047"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="313" y="257.9434">initialize members</text><path d="M155.5,337.7539 L155.5,362.8867 A0,0 0 0 0 155.5,362.8867 L337.5,362.8867 A0,0 0 0 0 337.5,362.8867 L337.5,355.7539 L357.5,350.3203 L337.5,347.7539 L337.5,347.7539 L327.5,337.7539 L155.5,337.7539 A0,0 0 0 0 155.5,337.7539 " fill="#FBFB77" filter="url(#f1k9cydo3vbvno)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M327.5,337.7539 L327.5,347.7539 L337.5,347.7539 L327.5,337.7539 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="161.5" y="354.8208">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="214.5" y="354.8208">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="318.5" y="354.8208">.</text><ellipse cx="368.5" cy="350.3203" fill="#FFFFFF" filter="url(#f1k9cydo3vbvno)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="368.5" cy="350.3203" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="138.2578" y2="158.2578"/><polygon fill="#A80036" points="364.5,148.2578,368.5,158.2578,372.5,148.2578,368.5,152.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="178.2578" y2="236.8047"/><polygon fill="#A80036" points="364.5,226.8047,368.5,236.8047,372.5,226.8047,368.5,230.8047" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="270.7734" y2="339.3203"/><polygon fill="#A80036" points="364.5,329.3203,368.5,339.3203,372.5,329.3203,368.5,333.3203" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[977bc1a05ece2993496dfd98d0c45612]
|
|
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="357px" preserveAspectRatio="none" style="width:445px;height:357px;" version="1.1" viewBox="0 0 445 357" width="445px" zoomAndPan="magnify"><defs><filter height="300%" id="fo2sv7byrug75" 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="177" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="112" x="165.5" y="47.6611">urtCoreInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="224.5" y="68.6143"/><path d="M312.5,72.8594 L312.5,123.125 L424.5,123.125 L424.5,82.8594 L414.5,72.8594 L312.5,72.8594 " fill="#FBFB77" filter="url(#fo2sv7byrug75)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M414.5,72.8594 L414.5,82.8594 L424.5,82.8594 L414.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="312.5" x2="351" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="355" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="355" y="89.4263">void</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="386" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="386" x2="424.5" y1="85.4258" y2="85.4258"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="312.5" x2="424.5" y1="97.9922" y2="97.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="312.5" x2="424.5" y1="99.9922" y2="99.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="312.5" x2="323" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="327" y="114.5591"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="327" y="114.5591">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="376" y="114.5591">: void</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="414" x2="424.5" y1="110.5586" y2="110.5586"/><ellipse cx="368.5" cy="153.125" fill="#000000" filter="url(#fo2sv7byrug75)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,173.125 L10,304.1875 A0,0 0 0 0 10,304.1875 L283,304.1875 A0,0 0 0 0 283,304.1875 L283,242.6563 L303,238.6563 L283,234.6563 L283,183.125 L273,173.125 L10,173.125 A0,0 0 0 0 10,173.125 " fill="#FBFB77" filter="url(#fo2sv7byrug75)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M273,173.125 L273,183.125 L283,183.125 L273,173.125 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="21.5" cy="185.7578" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="27" y="190.1919">_nodes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="83" y="190.1919">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="98" y="190.1919">NULL</text><ellipse cx="21.5" cy="200.8906" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="27" y="205.3247">urtEventSourceInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="150" y="205.3247">_evtSource</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="230" y="205.3247">)</text><ellipse cx="21.5" cy="216.0234" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="27" y="220.4575">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="108" y="220.4575">_lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="145" y="220.4575">)</text><ellipse cx="21.5" cy="231.1563" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="27" y="235.5903">_status</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="84" y="235.5903">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="99" y="235.5903">URT_STATUS_OK</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="246.2227" y2="246.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="24.5" y="250.2231">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="272.5" x2="283" y1="246.2227" y2="246.2227"/><ellipse cx="21.5" cy="261.4219" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="27" y="265.856">_topics</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="83" y="265.856">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="98" y="265.856">NULL</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="35.5" y1="276.4883" y2="276.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="214" x="39.5" y="280.4888">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="257.5" x2="283" y1="276.4883" y2="276.4883"/><ellipse cx="21.5" cy="291.6875" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="27" y="296.1216">_services</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="98" y="296.1216">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="113" y="296.1216">NULL</text><rect fill="#FEFECE" filter="url(#fo2sv7byrug75)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="303" y="221.6719"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="313" y="242.8105">initialize members</text><ellipse cx="368.5" cy="335.1875" fill="#FFFFFF" filter="url(#fo2sv7byrug75)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="368.5" cy="335.1875" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="123.125" y2="143.125"/><polygon fill="#A80036" points="364.5,133.125,368.5,143.125,372.5,133.125,368.5,137.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="163.125" y2="221.6719"/><polygon fill="#A80036" points="364.5,211.6719,368.5,221.6719,372.5,211.6719,368.5,215.6719" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="255.6406" y2="324.1875"/><polygon fill="#A80036" points="364.5,314.1875,368.5,324.1875,372.5,314.1875,368.5,318.1875" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9be517565b964ee274900b7b46a44bbb]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtCoreInit()\n |
... | ... | |
7 | 7 |
note |
8 | 8 |
- - //void// - - |
9 | 9 |
==== |
10 |
- - **return** : urt_status_t - - |
|
11 |
Always returns ""URT_STATUS_OK"". |
|
10 |
- - **return** : void - - |
|
12 | 11 |
endnote |
13 | 12 |
|
14 | 13 |
|
15 | 14 |
start |
16 | 15 |
:initialize members; |
17 | 16 |
note |
18 |
**_nodes** ← ""NULL"" |
|
19 |
urtEventSourceInit(**_evtSource**) |
|
20 |
urtMutexInit(**_lock**) |
|
21 |
**_status** ← ""URT_STATUS_OK"" |
|
17 |
* **_nodes** ← ""NULL""
|
|
18 |
* urtEventSourceInit(**_evtSource**)
|
|
19 |
* urtMutexInit(**_lock**)
|
|
20 |
* **_status** ← ""URT_STATUS_OK""
|
|
22 | 21 |
.. URT_CFG_PUBSUB_ENABLED == true .. |
23 |
**_topics** ← ""NULL"" |
|
22 |
* **_topics** ← ""NULL""
|
|
24 | 23 |
.. URT_CFG_RPC_ENABLED == true .. |
25 |
**_services** ← ""NULL"" |
|
24 |
* **_services** ← ""NULL""
|
|
26 | 25 |
endnote |
27 | 26 |
stop |
28 |
note |
|
29 |
Returns ""URT_STATUS_OK"". |
|
30 |
endnote |
|
31 | 27 |
|
32 | 28 |
|
33 | 29 |
@enduml |
doc/activitydiagrams/core/urtCoreInit.uml | ||
---|---|---|
30 | 30 |
note |
31 | 31 |
-- //void// -- |
32 | 32 |
==== |
33 |
-- **return** : urt_status_t -- |
|
34 |
Always returns ""URT_STATUS_OK"". |
|
33 |
-- **return** : void -- |
|
35 | 34 |
endnote |
36 | 35 |
|
37 | 36 |
/'### PROCEDURE ##############################################################'/ |
... | ... | |
39 | 38 |
start |
40 | 39 |
:initialize members; |
41 | 40 |
note |
42 |
**_nodes** ← ""NULL"" |
|
43 |
urtEventSourceInit(**_evtSource**) |
|
44 |
urtMutexInit(**_lock**) |
|
45 |
**_status** ← ""URT_STATUS_OK"" |
|
41 |
* **_nodes** ← ""NULL""
|
|
42 |
* urtEventSourceInit(**_evtSource**)
|
|
43 |
* urtMutexInit(**_lock**)
|
|
44 |
* **_status** ← ""URT_STATUS_OK""
|
|
46 | 45 |
.. URT_CFG_PUBSUB_ENABLED == true .. |
47 |
**_topics** ← ""NULL"" |
|
46 |
* **_topics** ← ""NULL""
|
|
48 | 47 |
.. URT_CFG_RPC_ENABLED == true .. |
49 |
**_services** ← ""NULL"" |
|
48 |
* **_services** ← ""NULL""
|
|
50 | 49 |
endnote |
51 | 50 |
stop |
52 |
note |
|
53 |
Returns ""URT_STATUS_OK"". |
|
54 |
endnote |
|
55 | 51 |
|
56 | 52 |
/'### OUTRO ##################################################################'/ |
57 | 53 |
|
doc/activitydiagrams/core/urtCoreStartNodes.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="590px" preserveAspectRatio="none" style="width:367px;height:590px;" version="1.1" viewBox="0 0 367 590" width="367px" zoomAndPan="magnify"><defs><filter height="300%" id="f1sbzmrrf1fqrc" 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="138" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="181" x="92" y="47.6611">urtCoreStartNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="185.5" y="68.6143"/><path d="M110,72.8594 L110,138.2578 L336,138.2578 L336,82.8594 L326,72.8594 L110,72.8594 " fill="#FBFB77" filter="url(#f1sbzmrrf1fqrc)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M326,72.8594 L326,82.8594 L336,82.8594 L326,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="110" x2="205.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="209.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="209.5" y="89.4263">void</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="240.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="240.5" x2="336" y1="85.4258" y2="85.4258"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="110" x2="336" y1="97.9922" y2="97.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="110" x2="336" y1="99.9922" y2="99.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="110" x2="152" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="156" y="114.5591"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="156" y="114.5591">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="205" y="114.5591">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="294" x2="336" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="116" y="130.1919">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="213" y="130.1919">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="317" y="130.1919">.</text><ellipse cx="223" cy="168.2578" fill="#000000" filter="url(#f1sbzmrrf1fqrc)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1sbzmrrf1fqrc)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="184.5" y="198.2578"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="194.5" y="219.3965">lock core</text><rect fill="#FEFECE" filter="url(#f1sbzmrrf1fqrc)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="266" x="90" y="252.2266"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="246" x="100" y="273.3652">access first node in core's list of nodes</text><rect fill="#FEFECE" filter="url(#f1sbzmrrf1fqrc)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="157" y="361.9058"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="167" y="383.0444">start node thread</text><rect fill="#FEFECE" filter="url(#f1sbzmrrf1fqrc)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="145" y="424.9722"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="155" y="446.1108">proceed to next node</text><polygon fill="#FEFECE" filter="url(#f1sbzmrrf1fqrc)" points="148.5,306.1953,297.5,306.1953,309.5,318.1953,297.5,330.1953,148.5,330.1953,136.5,318.1953,148.5,306.1953" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="340.4058">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="148.5" y="322.0034">Current node is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="263.5" y="322.0034">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="291.5" y="322.0034">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="122.5" y="315.6011">no</text><rect fill="#FEFECE" filter="url(#f1sbzmrrf1fqrc)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="500.9409"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="522.0796">unlock core</text><path d="M10,553.3433 L10,578.4761 A0,0 0 0 0 10,578.4761 L192,578.4761 A0,0 0 0 0 192,578.4761 L192,571.3433 L212,565.9097 L192,563.3433 L192,563.3433 L182,553.3433 L10,553.3433 A0,0 0 0 0 10,553.3433 " fill="#FBFB77" filter="url(#f1sbzmrrf1fqrc)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,553.3433 L182,563.3433 L192,563.3433 L182,553.3433 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="570.4102">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="570.4102">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="570.4102">.</text><ellipse cx="223" cy="565.9097" fill="#FFFFFF" filter="url(#f1sbzmrrf1fqrc)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="565.9097" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="138.2578" y2="158.2578"/><polygon fill="#A80036" points="219,148.2578,223,158.2578,227,148.2578,223,152.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="178.2578" y2="198.2578"/><polygon fill="#A80036" points="219,188.2578,223,198.2578,227,188.2578,223,192.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="232.2266" y2="252.2266"/><polygon fill="#A80036" points="219,242.2266,223,252.2266,227,242.2266,223,246.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="395.8745" y2="424.9722"/><polygon fill="#A80036" points="219,414.9722,223,424.9722,227,414.9722,223,418.9722" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="330.1953" y2="361.9058"/><polygon fill="#A80036" points="219,351.9058,223,361.9058,227,351.9058,223,355.9058" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="458.9409" y2="468.9409"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="321.5" y1="468.9409" y2="468.9409"/><polygon fill="#A80036" points="317.5,404.9722,321.5,394.9722,325.5,404.9722,321.5,400.9722" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="321.5" x2="321.5" y1="318.1953" y2="468.9409"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="321.5" x2="309.5" y1="318.1953" y2="318.1953"/><polygon fill="#A80036" points="319.5,314.1953,309.5,318.1953,319.5,322.1953,315.5,318.1953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136.5" x2="124.5" y1="318.1953" y2="318.1953"/><polygon fill="#A80036" points="120.5,390.9722,124.5,400.9722,128.5,390.9722,124.5,394.9722" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="124.5" x2="124.5" y1="318.1953" y2="480.9409"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="124.5" x2="223" y1="480.9409" y2="480.9409"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="480.9409" y2="500.9409"/><polygon fill="#A80036" points="219,490.9409,223,500.9409,227,490.9409,223,494.9409" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="286.1953" y2="306.1953"/><polygon fill="#A80036" points="219,296.1953,223,306.1953,227,296.1953,223,300.1953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="534.9097" y2="554.9097"/><polygon fill="#A80036" points="219,544.9097,223,554.9097,227,544.9097,223,548.9097" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[1c41ad4aa94e8cdd407f3b87e1e649b4]
|
|
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="572px" preserveAspectRatio="none" style="width:287px;height:572px;" version="1.1" viewBox="0 0 287 572" width="287px" zoomAndPan="magnify"><defs><filter height="300%" id="fxn4zf5n3gka3" 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="98" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="181" x="52" y="47.6611">urtCoreStartNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="145.5" y="68.6143"/><path d="M87,72.8594 L87,123.125 L199,123.125 L199,82.8594 L189,72.8594 L87,72.8594 " fill="#FBFB77" filter="url(#fxn4zf5n3gka3)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M189,72.8594 L189,82.8594 L199,82.8594 L189,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="87" x2="125.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="129.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="129.5" y="89.4263">void</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="160.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="160.5" x2="199" y1="85.4258" y2="85.4258"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="87" x2="199" y1="97.9922" y2="97.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="87" x2="199" y1="99.9922" y2="99.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="87" x2="97.5" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="101.5" y="114.5591"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="101.5" y="114.5591">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="150.5" y="114.5591">: void</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.5" x2="199" y1="110.5586" y2="110.5586"/><ellipse cx="143" cy="153.125" fill="#000000" filter="url(#fxn4zf5n3gka3)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fxn4zf5n3gka3)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="104.5" y="183.125"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="114.5" y="204.2637">lock core</text><rect fill="#FEFECE" filter="url(#fxn4zf5n3gka3)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="266" x="10" y="237.0938"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="246" x="20" y="258.2324">access first node in core's list of nodes</text><rect fill="#FEFECE" filter="url(#fxn4zf5n3gka3)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="77" y="346.7729"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="87" y="367.9116">start node thread</text><rect fill="#FEFECE" filter="url(#fxn4zf5n3gka3)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="65" y="409.8394"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="75" y="430.978">proceed to next node</text><polygon fill="#FEFECE" filter="url(#fxn4zf5n3gka3)" points="68.5,291.0625,217.5,291.0625,229.5,303.0625,217.5,315.0625,68.5,315.0625,56.5,303.0625,68.5,291.0625" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="147" y="325.2729">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="68.5" y="306.8706">Current node is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="183.5" y="306.8706">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="211.5" y="306.8706">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="42.5" y="300.4683">no</text><rect fill="#FEFECE" filter="url(#fxn4zf5n3gka3)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="96.5" y="485.8081"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="106.5" y="506.9468">unlock core</text><ellipse cx="143" cy="550.7769" fill="#FFFFFF" filter="url(#fxn4zf5n3gka3)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="143" cy="550.7769" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="143" x2="143" y1="123.125" y2="143.125"/><polygon fill="#A80036" points="139,133.125,143,143.125,147,133.125,143,137.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="143" x2="143" y1="163.125" y2="183.125"/><polygon fill="#A80036" points="139,173.125,143,183.125,147,173.125,143,177.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="143" x2="143" y1="217.0938" y2="237.0938"/><polygon fill="#A80036" points="139,227.0938,143,237.0938,147,227.0938,143,231.0938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="143" x2="143" y1="380.7417" y2="409.8394"/><polygon fill="#A80036" points="139,399.8394,143,409.8394,147,399.8394,143,403.8394" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="143" x2="143" y1="315.0625" y2="346.7729"/><polygon fill="#A80036" points="139,336.7729,143,346.7729,147,336.7729,143,340.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="143" x2="143" y1="443.8081" y2="453.8081"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="143" x2="241.5" y1="453.8081" y2="453.8081"/><polygon fill="#A80036" points="237.5,389.8394,241.5,379.8394,245.5,389.8394,241.5,385.8394" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="241.5" x2="241.5" y1="303.0625" y2="453.8081"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="241.5" x2="229.5" y1="303.0625" y2="303.0625"/><polygon fill="#A80036" points="239.5,299.0625,229.5,303.0625,239.5,307.0625,235.5,303.0625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="56.5" x2="44.5" y1="303.0625" y2="303.0625"/><polygon fill="#A80036" points="40.5,375.8394,44.5,385.8394,48.5,375.8394,44.5,379.8394" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="44.5" x2="44.5" y1="303.0625" y2="465.8081"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="44.5" x2="143" y1="465.8081" y2="465.8081"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="143" x2="143" y1="465.8081" y2="485.8081"/><polygon fill="#A80036" points="139,475.8081,143,485.8081,147,475.8081,143,479.8081" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="143" x2="143" y1="271.0625" y2="291.0625"/><polygon fill="#A80036" points="139,281.0625,143,291.0625,147,281.0625,143,285.0625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="143" x2="143" y1="519.7769" y2="539.7769"/><polygon fill="#A80036" points="139,529.7769,143,539.7769,147,529.7769,143,533.7769" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[dfcd08a84323ab3bb83f9503a5ca3bee]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtCoreStartNodes()\n |
... | ... | |
7 | 7 |
note |
8 | 8 |
- - //void// - - |
9 | 9 |
==== |
10 |
- - **return** : urt_status_t - - |
|
11 |
Always returns ""URT_STATUS_OK"". |
|
10 |
- - **return** : void - - |
|
12 | 11 |
endnote |
13 | 12 |
|
14 | 13 |
|
... | ... | |
21 | 20 |
endwhile (no) |
22 | 21 |
:unlock core; |
23 | 22 |
stop |
24 |
note |
|
25 |
Returns ""URT_STATUS_OK"". |
|
26 |
endnote |
|
27 | 23 |
|
28 | 24 |
|
29 | 25 |
@enduml |
doc/activitydiagrams/core/urtCoreStartNodes.uml | ||
---|---|---|
30 | 30 |
note |
31 | 31 |
-- //void// -- |
32 | 32 |
==== |
33 |
-- **return** : urt_status_t -- |
|
34 |
Always returns ""URT_STATUS_OK"". |
|
33 |
-- **return** : void -- |
|
35 | 34 |
endnote |
36 | 35 |
|
37 | 36 |
/'### PROCEDURE ##############################################################'/ |
... | ... | |
45 | 44 |
endwhile (no) |
46 | 45 |
:unlock core; |
47 | 46 |
stop |
48 |
note |
|
49 |
Returns ""URT_STATUS_OK"". |
|
50 |
endnote |
|
51 | 47 |
|
52 | 48 |
/'### OUTRO ##################################################################'/ |
53 | 49 |
|
doc/activitydiagrams/core/urtCoreStopNodes.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="821px" preserveAspectRatio="none" style="width:435px;height:821px;" version="1.1" viewBox="0 0 435 821" width="435px" zoomAndPan="magnify"><defs><filter height="300%" id="f1po4rs4rxe2ur" 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="172.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="178" x="127.75" y="47.6611">urtCoreStopNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="219.75" y="68.6143"/><path d="M39,72.8594 L39,168.5234 L407,168.5234 L407,82.8594 L397,72.8594 L39,72.8594 " fill="#FBFB77" filter="url(#f1po4rs4rxe2ur)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M397,72.8594 L397,82.8594 L407,82.8594 L397,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="39" x2="149.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="153.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="50" x="153.5" y="89.4263">reason</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="207.5" y="89.4263">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="296.5" x2="407" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="252" x="45" y="105.0591">The reason why the function was called.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="45" y="120.1919">For normal shutdown</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="183" y="120.1919">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="101" x="291" y="120.1919">should be used.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="39" x2="407" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="39" x2="407" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="39" x2="152" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="156" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="156" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="205" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="294" x2="407" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="45" y="160.4575">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="142" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="246" y="160.4575">.</text><ellipse cx="223" cy="198.5234" fill="#000000" filter="url(#f1po4rs4rxe2ur)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="184.5" y="228.5234"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="194.5" y="249.6621">lock core</text><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="254" x="96" y="330.8945"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="106" y="352.0332">set core's</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="172" y="352.0332">_status</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="225" y="352.0332">value to argument</text><polygon fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" points="60.5,282.4922,385.5,282.4922,397.5,294.4922,385.5,306.4922,60.5,306.4922,48.5,294.4922,60.5,282.4922" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="316.7026">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="43" x="60.5" y="298.3003">Current</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="107.5" y="298.3003">_status</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="225" x="160.5" y="298.3003">value is smaller than specified reason?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="397.5" y="291.8979">no</text><polygon fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" points="223,384.8633,235,396.8633,223,408.8633,211,396.8633,223,384.8633" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="266" x="90" y="428.8633"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="246" x="100" y="450.002">access first node in core's list of nodes</text><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="129.5" y="538.5425"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="139.5" y="559.6812">request node to terminate</text><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="145" y="601.6089"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="155" y="622.7476">proceed to next node</text><polygon fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" points="148.5,482.832,297.5,482.832,309.5,494.832,297.5,506.832,148.5,506.832,136.5,494.832,148.5,482.832" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="517.0425">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="148.5" y="498.6401">Current node is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="263.5" y="498.6401">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="291.5" y="498.6401">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="122.5" y="492.2378">no</text><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="246" x="100" y="677.5776"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="226" x="110" y="698.7163">broadcast control event (terminate)</text><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="731.5464"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="752.6851">unlock core</text><path d="M10,783.9487 L10,809.0815 A0,0 0 0 0 10,809.0815 L192,809.0815 A0,0 0 0 0 192,809.0815 L192,801.9487 L212,796.5151 L192,793.9487 L192,793.9487 L182,783.9487 L10,783.9487 A0,0 0 0 0 10,783.9487 " fill="#FBFB77" filter="url(#f1po4rs4rxe2ur)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,783.9487 L182,793.9487 L192,793.9487 L182,783.9487 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="801.0156">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="801.0156">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="801.0156">.</text><ellipse cx="223" cy="796.5151" fill="#FFFFFF" filter="url(#f1po4rs4rxe2ur)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="796.5151" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="168.5234" y2="188.5234"/><polygon fill="#A80036" points="219,178.5234,223,188.5234,227,178.5234,223,182.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="208.5234" y2="228.5234"/><polygon fill="#A80036" points="219,218.5234,223,228.5234,227,218.5234,223,222.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="306.4922" y2="330.8945"/><polygon fill="#A80036" points="219,320.8945,223,330.8945,227,320.8945,223,324.8945" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="397.5" x2="409.5" y1="294.4922" y2="294.4922"/><polygon fill="#A80036" points="405.5,337.8789,409.5,347.8789,413.5,337.8789,409.5,341.8789" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.5" x2="409.5" y1="294.4922" y2="396.8633"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.5" x2="235" y1="396.8633" y2="396.8633"/><polygon fill="#A80036" points="245,392.8633,235,396.8633,245,400.8633,241,396.8633" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="364.8633" y2="384.8633"/><polygon fill="#A80036" points="219,374.8633,223,384.8633,227,374.8633,223,378.8633" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="262.4922" y2="282.4922"/><polygon fill="#A80036" points="219,272.4922,223,282.4922,227,272.4922,223,276.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="408.8633" y2="428.8633"/><polygon fill="#A80036" points="219,418.8633,223,428.8633,227,418.8633,223,422.8633" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="572.5112" y2="601.6089"/><polygon fill="#A80036" points="219,591.6089,223,601.6089,227,591.6089,223,595.6089" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="506.832" y2="538.5425"/><polygon fill="#A80036" points="219,528.5425,223,538.5425,227,528.5425,223,532.5425" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="635.5776" y2="645.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="328.5" y1="645.5776" y2="645.5776"/><polygon fill="#A80036" points="324.5,581.6089,328.5,571.6089,332.5,581.6089,328.5,577.6089" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="328.5" x2="328.5" y1="494.832" y2="645.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="328.5" x2="309.5" y1="494.832" y2="494.832"/><polygon fill="#A80036" points="319.5,490.832,309.5,494.832,319.5,498.832,315.5,494.832" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136.5" x2="117.5" y1="494.832" y2="494.832"/><polygon fill="#A80036" points="113.5,567.6089,117.5,577.6089,121.5,567.6089,117.5,571.6089" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="117.5" x2="117.5" y1="494.832" y2="657.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="117.5" x2="223" y1="657.5776" y2="657.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="657.5776" y2="677.5776"/><polygon fill="#A80036" points="219,667.5776,223,677.5776,227,667.5776,223,671.5776" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="462.832" y2="482.832"/><polygon fill="#A80036" points="219,472.832,223,482.832,227,472.832,223,476.832" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="711.5464" y2="731.5464"/><polygon fill="#A80036" points="219,721.5464,223,731.5464,227,721.5464,223,725.5464" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="765.5151" y2="785.5151"/><polygon fill="#A80036" points="219,775.5151,223,785.5151,227,775.5151,223,779.5151" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e791fbcd63d82ee7576d5a83cc605131]
|
|
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="1074px" preserveAspectRatio="none" style="width:814px;height:1074px;" version="1.1" viewBox="0 0 814 1074" width="814px" zoomAndPan="magnify"><defs><filter height="300%" id="f1n6ixpk89zlyl" 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="361.75" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="178" x="317.25" y="47.6611">urtCoreStopNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="409.25" y="68.6143"/><path d="M179.5,72.8594 L179.5,183.6563 L800.5,183.6563 L800.5,82.8594 L790.5,72.8594 L179.5,72.8594 " fill="#FBFB77" filter="url(#f1n6ixpk89zlyl)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M790.5,72.8594 L790.5,82.8594 L800.5,82.8594 L790.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="179.5" x2="416.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="420.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="50" x="420.5" y="89.4263">reason</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="474.5" y="89.4263">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="563.5" x2="800.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="252" x="185.5" y="105.0591">The reason why the function was called.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="185.5" y="120.1919">For normal shutdown</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="323.5" y="120.1919">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="101" x="431.5" y="120.1919">should be used.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="179.5" x2="800.5" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="179.5" x2="800.5" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="179.5" x2="419" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="423" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="423" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="472" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="561" x2="800.5" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="185.5" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="238.5" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="346.5" y="160.4575">if there was no call with another reason than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="632.5" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="740.5" y="160.4575">before.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="541" x="185.5" y="175.5903">If the function has been called before with a different reason, that reason is returned.</text><ellipse cx="490" cy="213.6563" fill="#000000" filter="url(#f1n6ixpk89zlyl)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="451.5" y="243.6563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="461.5" y="264.7949">lock core</text><polygon fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" points="353,297.625,627,297.625,639,309.625,627,321.625,353,321.625,341,309.625,353,297.625" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="72" x="353" y="313.4331">Current core</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="429" y="313.4331">_status</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="44" x="482" y="313.4331">value is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="530" y="313.4331">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="621" y="313.4331">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="321" y="307.0308">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="639" y="307.0308">no</text><rect fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="338" x="54" y="380.0273"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="146" x="64" y="401.166">boost thread priority to</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="168" x="214" y="401.166">URT_THREAD_PRIO_HIGH_MAX</text><polygon fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" points="53,331.625,393,331.625,405,343.625,393,355.625,53,355.625,41,343.625,53,331.625" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="365.8354">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="162" x="53" y="347.4331">Thread priority is lower than</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="219" y="347.4331">URT_THREAD_PRIO_HIGH_MAX</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="387" y="347.4331">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="405" y="341.0308">no</text><polygon fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" points="223,438.3984,235,450.3984,223,462.3984,211,450.3984,223,438.3984" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="270" x="88" y="482.3984"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="98" y="503.5371">set core's</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="164" y="503.5371">_status</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="131" x="217" y="503.5371">variable to argument</text><rect fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="266" x="90" y="536.3672"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="246" x="100" y="557.5059">access first node in core's list of nodes</text><rect fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="129.5" y="646.0464"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="139.5" y="667.1851">request node to terminate</text><rect fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="145" y="709.1128"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="155" y="730.2515">proceed to next node</text><polygon fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" points="148.5,590.3359,297.5,590.3359,309.5,602.3359,297.5,614.3359,148.5,614.3359,136.5,602.3359,148.5,590.3359" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="624.5464">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="148.5" y="606.144">Current node is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="263.5" y="606.144">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="291.5" y="606.144">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="122.5" y="599.7417">no</text><rect fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="246" x="100" y="785.0815"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="226" x="110" y="806.2202">broadcast control event (terminate)</text><rect fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="839.0503"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="860.189">unlock core</text><rect fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="150" y="941.4214"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="126" x="160" y="962.5601">reset thread priority</text><polygon fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" points="144,893.019,302,893.019,314,905.019,302,917.019,144,917.019,132,905.019,144,893.019" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="927.2295">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="158" x="144" y="908.8271">Thread boosted its priority?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="314" y="902.4248">no</text><polygon fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" points="223,995.3901,235,1007.3901,223,1019.3901,211,1007.3901,223,995.3901" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M10,1037.8237 L10,1062.9565 A0,0 0 0 0 10,1062.9565 L192,1062.9565 A0,0 0 0 0 192,1062.9565 L192,1055.8237 L212,1050.3901 L192,1047.8237 L192,1047.8237 L182,1037.8237 L10,1037.8237 A0,0 0 0 0 10,1037.8237 " fill="#FBFB77" filter="url(#f1n6ixpk89zlyl)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,1037.8237 L182,1047.8237 L192,1047.8237 L182,1037.8237 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="1054.8906">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="1054.8906">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="1054.8906">.</text><ellipse cx="223" cy="1050.3901" fill="#FFFFFF" filter="url(#f1n6ixpk89zlyl)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="1050.3901" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1n6ixpk89zlyl)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="710.5" y="331.625"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="720.5" y="352.7637">unlock core</text><path d="M437,400.5938 L437,425.7266 A0,0 0 0 0 437,425.7266 L726,425.7266 A0,0 0 0 0 726,425.7266 L726,418.5938 L746,413.1602 L726,410.5938 L726,410.5938 L716,400.5938 L437,400.5938 A0,0 0 0 0 437,400.5938 " fill="#FBFB77" filter="url(#f1n6ixpk89zlyl)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M716,400.5938 L716,410.5938 L726,410.5938 L716,400.5938 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="166" x="443" y="417.6606">Returns the previously set</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="613" y="417.6606">_status</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="38" x="673" y="417.6606">value.</text><ellipse cx="757" cy="413.1602" fill="#FFFFFF" filter="url(#f1n6ixpk89zlyl)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="757" cy="413.1602" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="183.6563" y2="203.6563"/><polygon fill="#A80036" points="486,193.6563,490,203.6563,494,193.6563,490,197.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="223.6563" y2="243.6563"/><polygon fill="#A80036" points="486,233.6563,490,243.6563,494,233.6563,490,237.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="355.625" y2="380.0273"/><polygon fill="#A80036" points="219,370.0273,223,380.0273,227,370.0273,223,374.0273" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="417" y1="343.625" y2="343.625"/><polygon fill="#A80036" points="413,387.0117,417,397.0117,421,387.0117,417,391.0117" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="417" x2="417" y1="343.625" y2="450.3984"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="417" x2="235" y1="450.3984" y2="450.3984"/><polygon fill="#A80036" points="245,446.3984,235,450.3984,245,454.3984,241,450.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="413.9961" y2="438.3984"/><polygon fill="#A80036" points="219,428.3984,223,438.3984,227,428.3984,223,432.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="462.3984" y2="482.3984"/><polygon fill="#A80036" points="219,472.3984,223,482.3984,227,472.3984,223,476.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="516.3672" y2="536.3672"/><polygon fill="#A80036" points="219,526.3672,223,536.3672,227,526.3672,223,530.3672" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="680.0151" y2="709.1128"/><polygon fill="#A80036" points="219,699.1128,223,709.1128,227,699.1128,223,703.1128" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="614.3359" y2="646.0464"/><polygon fill="#A80036" points="219,636.0464,223,646.0464,227,636.0464,223,640.0464" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="743.0815" y2="753.0815"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="328.5" y1="753.0815" y2="753.0815"/><polygon fill="#A80036" points="324.5,689.1128,328.5,679.1128,332.5,689.1128,328.5,685.1128" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="328.5" x2="328.5" y1="602.3359" y2="753.0815"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="328.5" x2="309.5" y1="602.3359" y2="602.3359"/><polygon fill="#A80036" points="319.5,598.3359,309.5,602.3359,319.5,606.3359,315.5,602.3359" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136.5" x2="117.5" y1="602.3359" y2="602.3359"/><polygon fill="#A80036" points="113.5,675.1128,117.5,685.1128,121.5,675.1128,117.5,679.1128" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="117.5" x2="117.5" y1="602.3359" y2="765.0815"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="117.5" x2="223" y1="765.0815" y2="765.0815"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="765.0815" y2="785.0815"/><polygon fill="#A80036" points="219,775.0815,223,785.0815,227,775.0815,223,779.0815" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="570.3359" y2="590.3359"/><polygon fill="#A80036" points="219,580.3359,223,590.3359,227,580.3359,223,584.3359" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="819.0503" y2="839.0503"/><polygon fill="#A80036" points="219,829.0503,223,839.0503,227,829.0503,223,833.0503" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="917.019" y2="941.4214"/><polygon fill="#A80036" points="219,931.4214,223,941.4214,227,931.4214,223,935.4214" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="314" x2="326" y1="905.019" y2="905.019"/><polygon fill="#A80036" points="322,948.4058,326,958.4058,330,948.4058,326,952.4058" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="326" x2="326" y1="905.019" y2="1007.3901"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="326" x2="235" y1="1007.3901" y2="1007.3901"/><polygon fill="#A80036" points="245,1003.3901,235,1007.3901,245,1011.3901,241,1007.3901" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="975.3901" y2="995.3901"/><polygon fill="#A80036" points="219,985.3901,223,995.3901,227,985.3901,223,989.3901" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="873.019" y2="893.019"/><polygon fill="#A80036" points="219,883.019,223,893.019,227,883.019,223,887.019" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="1019.3901" y2="1039.3901"/><polygon fill="#A80036" points="219,1029.3901,223,1039.3901,227,1029.3901,223,1033.3901" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="757" x2="757" y1="365.5938" y2="402.1602"/><polygon fill="#A80036" points="753,392.1602,757,402.1602,761,392.1602,757,396.1602" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="341" x2="223" y1="309.625" y2="309.625"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="309.625" y2="331.625"/><polygon fill="#A80036" points="219,321.625,223,331.625,227,321.625,223,325.625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="639" x2="757" y1="309.625" y2="309.625"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="757" x2="757" y1="309.625" y2="331.625"/><polygon fill="#A80036" points="753,321.625,757,331.625,761,321.625,757,325.625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="277.625" y2="297.625"/><polygon fill="#A80036" points="486,287.625,490,297.625,494,287.625,490,291.625" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ffcae7d50b357ec14f744781a649cc71]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtCoreStopNodes()\n |
... | ... | |
10 | 10 |
For normal shutdown ""URT_STATUS_OK"" should be used. |
11 | 11 |
==== |
12 | 12 |
- - **return** : urt_status_t - - |
13 |
Always returns ""URT_STATUS_OK"". |
|
13 |
Returns ""URT_STATUS_OK"" if there was no call with another reason than ""URT_STATUS_OK"" before. |
|
14 |
If the function has been called before with a different reason, that reason is returned. |
|
14 | 15 |
endnote |
15 | 16 |
|
16 | 17 |
|
17 | 18 |
start |
18 | 19 |
:lock core; |
19 |
if (Current ""_status"" value is smaller than specified reason?) then (yes) |
|
20 |
:set core's ""_status"" value to argument; |
|
20 |
if (Current core ""_status"" value is ""URT_STATUS_OK""?) then (yes) |
|
21 |
if (Thread priority is lower than ""URT_THREAD_PRIO_HIGH_MAX""?) then (yes) |
|
22 |
:boost thread priority to ""URT_THREAD_PRIO_HIGH_MAX""; |
|
23 |
else (no) |
|
24 |
endif |
|
25 |
:set core's ""_status"" variable to argument; |
|
26 |
:access first node in core's list of nodes; |
|
27 |
while (Current node is not ""NULL""?) is (yes) |
|
28 |
:request node to terminate; |
|
29 |
:proceed to next node; |
|
30 |
endwhile (no) |
|
31 |
:broadcast control event (terminate); |
|
32 |
:unlock core; |
|
33 |
if (Thread boosted its priority?) then (yes) |
|
34 |
:reset thread priority; |
|
35 |
else (no) |
|
36 |
endif |
|
37 |
stop |
|
38 |
note |
|
39 |
Returns ""URT_STATUS_OK"". |
|
40 |
endnote |
|
21 | 41 |
else (no) |
42 |
:unlock core; |
|
43 |
stop |
|
44 |
note |
|
45 |
Returns the previously set ""_status"" value. |
|
46 |
endnote |
|
22 | 47 |
endif |
23 |
:access first node in core's list of nodes; |
|
24 |
while (Current node is not ""NULL""?) is (yes) |
|
25 |
:request node to terminate; |
|
26 |
:proceed to next node; |
|
27 |
endwhile (no) |
|
28 |
:broadcast control event (terminate); |
|
29 |
:unlock core; |
|
30 |
stop |
|
31 |
note |
|
32 |
Returns ""URT_STATUS_OK"". |
|
33 |
endnote |
|
34 | 48 |
|
35 | 49 |
|
36 | 50 |
@enduml |
doc/activitydiagrams/core/urtCoreStopNodes.uml | ||
---|---|---|
33 | 33 |
For normal shutdown ""URT_STATUS_OK"" should be used. |
34 | 34 |
==== |
35 | 35 |
-- **return** : urt_status_t -- |
36 |
Always returns ""URT_STATUS_OK"". |
|
36 |
Returns ""URT_STATUS_OK"" if there was no call with another reason than ""URT_STATUS_OK"" before. |
|
37 |
If the function has been called before with a different reason, that reason is returned. |
|
37 | 38 |
endnote |
38 | 39 |
|
39 | 40 |
/'### PROCEDURE ##############################################################'/ |
40 | 41 |
|
41 | 42 |
start |
42 | 43 |
:lock core; |
43 |
if (Current ""_status"" value is smaller than specified reason?) then (yes) |
|
44 |
:set core's ""_status"" value to argument; |
|
44 |
if (Current core ""_status"" value is ""URT_STATUS_OK""?) then (yes) |
|
45 |
if (Thread priority is lower than ""URT_THREAD_PRIO_HIGH_MAX""?) then (yes) |
|
46 |
:boost thread priority to ""URT_THREAD_PRIO_HIGH_MAX""; |
|
47 |
else (no) |
|
48 |
endif |
|
49 |
:set core's ""_status"" variable to argument; |
|
50 |
:access first node in core's list of nodes; |
|
51 |
while (Current node is not ""NULL""?) is (yes) |
|
52 |
:request node to terminate; |
|
53 |
:proceed to next node; |
|
54 |
endwhile (no) |
|
55 |
:broadcast control event (terminate); |
|
56 |
:unlock core; |
|
57 |
if (Thread boosted its priority?) then (yes) |
|
58 |
:reset thread priority; |
|
59 |
else (no) |
|
60 |
endif |
|
61 |
stop |
|
62 |
note |
|
63 |
Returns ""URT_STATUS_OK"". |
|
64 |
endnote |
|
45 | 65 |
else (no) |
66 |
:unlock core; |
|
67 |
stop |
|
68 |
note |
|
69 |
Returns the previously set ""_status"" value. |
|
70 |
endnote |
|
46 | 71 |
endif |
47 |
:access first node in core's list of nodes; |
|
48 |
while (Current node is not ""NULL""?) is (yes) |
|
49 |
:request node to terminate; |
|
50 |
:proceed to next node; |
|
51 |
endwhile (no) |
|
52 |
:broadcast control event (terminate); |
|
53 |
:unlock core; |
|
54 |
stop |
|
55 |
note |
|
56 |
Returns ""URT_STATUS_OK"". |
|
57 |
endnote |
|
58 | 72 |
|
59 | 73 |
/'### OUTRO ##################################################################'/ |
60 | 74 |
|
doc/activitydiagrams/core/urtCoreSynchronizeNodes.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="968px" preserveAspectRatio="none" style="width:1007px;height:968px;" version="1.1" viewBox="0 0 1007 968" width="1007px" zoomAndPan="magnify"><defs><filter height="300%" id="fz5718sbngl5u" 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="458" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="246" x="379.5" y="47.6611">urtCoreSynchronizeNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="505.5" y="68.6143"/><path d="M188.75,72.8594 L188.75,213.9219 L983.75,213.9219 L983.75,82.8594 L973.75,72.8594 L188.75,72.8594 " fill="#FBFB77" filter="url(#fz5718sbngl5u)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M973.75,72.8594 L973.75,82.8594 L983.75,82.8594 L973.75,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.75" x2="519.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="523.75" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="523.75" y="89.4263">node</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="564.75" y="89.4263">: urt_node_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="652.75" x2="983.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="211" x="194.75" y="105.0591">Pointer to a node to synchronize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="194.75" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="274.75" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="306.75" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.75" x2="983.75" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.75" x2="983.75" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.75" x2="515.25" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="519.25" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="519.25" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="568.25" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="657.25" x2="983.75" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="194.75" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="247.75" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="269" x="355.75" y="160.4575">if all nodes are synchronized and proceed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="194.75" y="175.5903">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="247.75" y="175.5903">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="345" x="379.75" y="175.5903">if an exception occurred (faulty stage value detected).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="183" x="194.75" y="190.7231">Returns a value greater than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="381.75" y="190.7231">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="105" x="489.75" y="190.7231">but smaller than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="598.75" y="190.7231">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="730.75" y="190.7231">if there are nodes left to synchronize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="611" x="194.75" y="205.856">In the latter case, the node thread must still wait for the control event (proceed) to synchronize.</text><ellipse cx="586.25" cy="243.9219" fill="#000000" filter="url(#fz5718sbngl5u)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="547.75" y="273.9219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="557.75" y="295.0605">lock core</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="470.75" y="327.8906"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="480.75" y="349.0293">increment the node's stage value</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="460.75" y="381.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="470.75" y="402.998">access first node core's list of nodes</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="508.25" y="493.1479"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="518.25" y="514.2866">proceed to next node</text><polygon fill="#FEFECE" filter="url(#fz5718sbngl5u)" points="447.25,435.8281,725.25,435.8281,737.25,448.6328,725.25,461.4375,447.25,461.4375,435.25,448.6328,447.25,435.8281" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="590.25" y="471.6479">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="447.25" y="446.0386">Current node is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="562.25" y="446.0386">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="278" x="447.25" y="458.8433">and stage of current node is equal to argument?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="421.25" y="446.0386">no</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="283" x="444.75" y="617.519"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="454.75" y="638.6577">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="479.75" y="638.6577">urtCoreStopNodes(URT_STATUS_ERROR)</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="539.75" y="671.4878"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="549.75" y="692.6265">unlock core</text><path d="M349.25,723.8901 L349.25,749.0229 A0,0 0 0 0 349.25,749.0229 L555.25,749.0229 A0,0 0 0 0 555.25,749.0229 L555.25,741.8901 L575.25,736.4565 L555.25,733.8901 L555.25,733.8901 L545.25,723.8901 L349.25,723.8901 A0,0 0 0 0 349.25,723.8901 " fill="#FBFB77" filter="url(#fz5718sbngl5u)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M545.25,723.8901 L545.25,733.8901 L555.25,733.8901 L545.25,723.8901 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="355.25" y="740.957">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="408.25" y="740.957">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="536.25" y="740.957">.</text><ellipse cx="586.25" cy="736.4565" fill="#FFFFFF" filter="url(#fz5718sbngl5u)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="586.25" cy="736.4565" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fz5718sbngl5u)" points="364.25,569.1167,808.25,569.1167,820.25,581.1167,808.25,593.1167,364.25,593.1167,352.25,581.1167,364.25,569.1167" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="590.25" y="603.3271">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="444" x="364.25" y="584.9248">The stage of a node was equal to the argument or 1 less than the argument?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="820.25" y="578.5225">no</text><polygon fill="#FEFECE" filter="url(#fz5718sbngl5u)" points="461.75,791.0229,710.75,791.0229,722.75,803.0229,710.75,815.0229,461.75,815.0229,449.75,803.0229,461.75,791.0229" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="249" x="461.75" y="806.8311">Stages of all nodes are equal to argument?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="429.75" y="800.4287">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="722.75" y="800.4287">no</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="237" x="104.5" y="825.0229"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="217" x="114.5" y="846.1616">broadcast control event (proceed)</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="878.9917"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="900.1304">unlock core</text><path d="M10,931.394 L10,956.5269 A0,0 0 0 0 10,956.5269 L192,956.5269 A0,0 0 0 0 192,956.5269 L192,949.394 L212,943.9604 L192,941.394 L192,941.394 L182,931.394 L10,931.394 A0,0 0 0 0 10,931.394 " fill="#FBFB77" filter="url(#fz5718sbngl5u)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,931.394 L182,941.394 L192,941.394 L182,931.394 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="948.4609">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="948.4609">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="948.4609">.</text><ellipse cx="223" cy="943.9604" fill="#FFFFFF" filter="url(#fz5718sbngl5u)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="943.9604" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="903" y="825.0229"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="913" y="846.1616">unlock core</text><path d="M361.5,878.9917 L361.5,904.1245 A0,0 0 0 0 361.5,904.1245 L918.5,904.1245 A0,0 0 0 0 918.5,904.1245 L918.5,896.9917 L938.5,891.5581 L918.5,888.9917 L918.5,888.9917 L908.5,878.9917 L361.5,878.9917 A0,0 0 0 0 361.5,878.9917 " fill="#FBFB77" filter="url(#fz5718sbngl5u)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M908.5,878.9917 L908.5,888.9917 L918.5,888.9917 L908.5,878.9917 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="183" x="367.5" y="896.0586">Returns a value greater than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="554.5" y="896.0586">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="105" x="662.5" y="896.0586">but smaller than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="771.5" y="896.0586">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="899.5" y="896.0586">.</text><ellipse cx="949.5" cy="891.5581" fill="#FFFFFF" filter="url(#fz5718sbngl5u)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="949.5" cy="891.5581" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="213.9219" y2="233.9219"/><polygon fill="#A80036" points="582.25,223.9219,586.25,233.9219,590.25,223.9219,586.25,227.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="253.9219" y2="273.9219"/><polygon fill="#A80036" points="582.25,263.9219,586.25,273.9219,590.25,263.9219,586.25,267.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="307.8906" y2="327.8906"/><polygon fill="#A80036" points="582.25,317.8906,586.25,327.8906,590.25,317.8906,586.25,321.8906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="361.8594" y2="381.8594"/><polygon fill="#A80036" points="582.25,371.8594,586.25,381.8594,590.25,371.8594,586.25,375.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="461.4375" y2="493.1479"/><polygon fill="#A80036" points="582.25,483.1479,586.25,493.1479,590.25,483.1479,586.25,487.1479" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="527.1167" y2="537.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="749.25" y1="537.1167" y2="537.1167"/><polygon fill="#A80036" points="745.25,501.3276,749.25,491.3276,753.25,501.3276,749.25,497.3276" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="749.25" x2="749.25" y1="448.6328" y2="537.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="749.25" x2="737.25" y1="448.6328" y2="448.6328"/><polygon fill="#A80036" points="747.25,444.6328,737.25,448.6328,747.25,452.6328,743.25,448.6328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="435.25" x2="423.25" y1="448.6328" y2="448.6328"/><polygon fill="#A80036" points="419.25,487.3276,423.25,497.3276,427.25,487.3276,423.25,491.3276" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="423.25" x2="423.25" y1="448.6328" y2="549.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="423.25" x2="586.25" y1="549.1167" y2="549.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="549.1167" y2="569.1167"/><polygon fill="#A80036" points="582.25,559.1167,586.25,569.1167,590.25,559.1167,586.25,563.1167" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="415.8281" y2="435.8281"/><polygon fill="#A80036" points="582.25,425.8281,586.25,435.8281,590.25,425.8281,586.25,429.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="651.4878" y2="671.4878"/><polygon fill="#A80036" points="582.25,661.4878,586.25,671.4878,590.25,661.4878,586.25,665.4878" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="705.4565" y2="725.4565"/><polygon fill="#A80036" points="582.25,715.4565,586.25,725.4565,590.25,715.4565,586.25,719.4565" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="593.1167" y2="617.519"/><polygon fill="#A80036" points="582.25,607.519,586.25,617.519,590.25,607.519,586.25,611.519" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="820.25" x2="832.25" y1="581.1167" y2="581.1167"/><polygon fill="#A80036" points="828.25,671.0542,832.25,681.0542,836.25,671.0542,832.25,675.0542" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="832.25" x2="832.25" y1="581.1167" y2="771.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="832.25" x2="586.25" y1="771.0229" y2="771.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="771.0229" y2="791.0229"/><polygon fill="#A80036" points="582.25,781.0229,586.25,791.0229,590.25,781.0229,586.25,785.0229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="858.9917" y2="878.9917"/><polygon fill="#A80036" points="219,868.9917,223,878.9917,227,868.9917,223,872.9917" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="912.9604" y2="932.9604"/><polygon fill="#A80036" points="219,922.9604,223,932.9604,227,922.9604,223,926.9604" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="949.5" y1="858.9917" y2="880.5581"/><polygon fill="#A80036" points="945.5,870.5581,949.5,880.5581,953.5,870.5581,949.5,874.5581" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="449.75" x2="223" y1="803.0229" y2="803.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="803.0229" y2="825.0229"/><polygon fill="#A80036" points="219,815.0229,223,825.0229,227,815.0229,223,819.0229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="722.75" x2="949.5" y1="803.0229" y2="803.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="949.5" y1="803.0229" y2="825.0229"/><polygon fill="#A80036" points="945.5,815.0229,949.5,825.0229,953.5,815.0229,949.5,819.0229" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6736767e544a542ba9ec8cfbdd65c55e]
|
|
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="776px" preserveAspectRatio="none" style="width:1340px;height:776px;" version="1.1" viewBox="0 0 1340 776" width="1340px" zoomAndPan="magnify"><defs><filter height="300%" id="f1x4zz6pvjwbbn" 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="624.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="246" x="546" y="47.6611">urtCoreSynchronizeNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="672" y="68.6143"/><path d="M351.5,72.8594 L351.5,213.9219 L983.5,213.9219 L983.5,82.8594 L973.5,72.8594 L351.5,72.8594 " fill="#FBFB77" filter="url(#f1x4zz6pvjwbbn)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M973.5,72.8594 L973.5,82.8594 L983.5,82.8594 L973.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="351.5" x2="601" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="605" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="605" y="89.4263">node</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="646" y="89.4263">: urt_node_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="734" x2="983.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="211" x="357.5" y="105.0591">Pointer to a node to synchronize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="357.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="437.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="469.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351.5" x2="983.5" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="351.5" x2="983.5" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="351.5" x2="596.5" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="600.5" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="600.5" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="649.5" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="738.5" x2="983.5" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="357.5" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="410.5" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="269" x="518.5" y="160.4575">if all nodes are synchronized and proceed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="357.5" y="175.5903">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="168" x="410.5" y="175.5903">URT_STATUS_SYNC_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="345" x="582.5" y="175.5903">if an exception occurred (faulty stage value detected).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="357.5" y="190.7231">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="184" x="410.5" y="190.7231">URT_STATUS_SYNC_PENDING</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="598.5" y="190.7231">if there are nodes left to synchronize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="611" x="357.5" y="205.856">In the latter case, the node thread must still wait for the control event (proceed) to synchronize.</text><ellipse cx="667.5" cy="243.9219" fill="#000000" filter="url(#f1x4zz6pvjwbbn)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="629" y="273.9219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="639" y="295.0605">lock core</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="552" y="327.8906"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="562" y="349.0293">increment the node's stage value</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="542" y="381.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="552" y="402.998">access first node core's list of nodes</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="589.5" y="493.1479"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="599.5" y="514.2866">proceed to next node</text><polygon fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" points="528.5,435.8281,806.5,435.8281,818.5,448.6328,806.5,461.4375,528.5,461.4375,516.5,448.6328,528.5,435.8281" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="671.5" y="471.6479">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="528.5" y="446.0386">Current node is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="643.5" y="446.0386">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="278" x="528.5" y="458.8433">and stage of current node is equal to argument?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="502.5" y="446.0386">no</text><polygon fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" points="128,569.1167,318,569.1167,330,581.1167,318,593.1167,128,593.1167,116,581.1167,128,569.1167" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="603.3271">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="128" y="584.9248">All nodes are at the same stage?</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="237" x="104.5" y="625.9214"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="217" x="114.5" y="647.0601">broadcast control event (proceed)</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="683.2925"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="704.4312">unlock core</text><path d="M10,739.0972 L10,764.23 A0,0 0 0 0 10,764.23 L192,764.23 A0,0 0 0 0 192,764.23 L192,757.0972 L212,751.6636 L192,749.0972 L192,749.0972 L182,739.0972 L10,739.0972 A0,0 0 0 0 10,739.0972 " fill="#FBFB77" filter="url(#f1x4zz6pvjwbbn)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,739.0972 L182,749.0972 L192,749.0972 L182,739.0972 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="756.1641">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="756.1641">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="756.1641">.</text><ellipse cx="223" cy="751.6636" fill="#FFFFFF" filter="url(#f1x4zz6pvjwbbn)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="751.6636" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" points="464,569.1167,861,569.1167,873,581.1167,861,593.1167,464,593.1167,452,581.1167,464,569.1167" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="666.5" y="603.3271">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="397" x="464" y="584.9248">The stage of the last checked node was one less than the argument?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="873" y="578.5225">no</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="616" y="625.9214"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="626" y="647.0601">unlock core</text><path d="M357.5,683.2925 L357.5,708.4253 A0,0 0 0 0 357.5,708.4253 L631.5,708.4253 A0,0 0 0 0 631.5,708.4253 L631.5,701.2925 L651.5,695.8589 L631.5,693.2925 L631.5,693.2925 L621.5,683.2925 L357.5,683.2925 A0,0 0 0 0 357.5,683.2925 " fill="#FBFB77" filter="url(#f1x4zz6pvjwbbn)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M621.5,683.2925 L621.5,693.2925 L631.5,693.2925 L621.5,683.2925 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="363.5" y="700.3594">Returns a</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="184" x="428.5" y="700.3594">URT_STATUS_SYNC_PENDING</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="612.5" y="700.3594">.</text><ellipse cx="662.5" cy="695.8589" fill="#FFFFFF" filter="url(#f1x4zz6pvjwbbn)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="662.5" cy="695.8589" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="318" x="1011" y="622.519"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="1021" y="643.6577">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="273" x="1046" y="643.6577">urtCoreStopNodes(URT_STATUS_SYNC_ERROR)</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="1123.5" y="679.8901"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="1133.5" y="701.0288">unlock core</text><path d="M893,735.6948 L893,760.8276 A0,0 0 0 0 893,760.8276 L1139,760.8276 A0,0 0 0 0 1139,760.8276 L1139,753.6948 L1159,748.2612 L1139,745.6948 L1139,745.6948 L1129,735.6948 L893,735.6948 A0,0 0 0 0 893,735.6948 " fill="#FBFB77" filter="url(#f1x4zz6pvjwbbn)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1129,735.6948 L1129,745.6948 L1139,745.6948 L1129,735.6948 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="899" y="752.7617">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="168" x="952" y="752.7617">URT_STATUS_SYNC_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1120" y="752.7617">.</text><ellipse cx="1170" cy="748.2612" fill="#FFFFFF" filter="url(#f1x4zz6pvjwbbn)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1170" cy="748.2612" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="213.9219" y2="233.9219"/><polygon fill="#A80036" points="663.5,223.9219,667.5,233.9219,671.5,223.9219,667.5,227.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="253.9219" y2="273.9219"/><polygon fill="#A80036" points="663.5,263.9219,667.5,273.9219,671.5,263.9219,667.5,267.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="307.8906" y2="327.8906"/><polygon fill="#A80036" points="663.5,317.8906,667.5,327.8906,671.5,317.8906,667.5,321.8906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="361.8594" y2="381.8594"/><polygon fill="#A80036" points="663.5,371.8594,667.5,381.8594,671.5,371.8594,667.5,375.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="461.4375" y2="493.1479"/><polygon fill="#A80036" points="663.5,483.1479,667.5,493.1479,671.5,483.1479,667.5,487.1479" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="527.1167" y2="537.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="830.5" y1="537.1167" y2="537.1167"/><polygon fill="#A80036" points="826.5,501.3276,830.5,491.3276,834.5,501.3276,830.5,497.3276" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="830.5" x2="830.5" y1="448.6328" y2="537.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="830.5" x2="818.5" y1="448.6328" y2="448.6328"/><polygon fill="#A80036" points="828.5,444.6328,818.5,448.6328,828.5,452.6328,824.5,448.6328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="516.5" x2="504.5" y1="448.6328" y2="448.6328"/><polygon fill="#A80036" points="500.5,487.3276,504.5,497.3276,508.5,487.3276,504.5,491.3276" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="504.5" x2="504.5" y1="448.6328" y2="549.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="504.5" x2="667.5" y1="549.1167" y2="549.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="549.1167" y2="554.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="415.8281" y2="435.8281"/><polygon fill="#A80036" points="663.5,425.8281,667.5,435.8281,671.5,425.8281,667.5,429.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="659.8901" y2="683.2925"/><polygon fill="#A80036" points="219,673.2925,223,683.2925,227,673.2925,223,677.2925" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="717.2612" y2="740.6636"/><polygon fill="#A80036" points="219,730.6636,223,740.6636,227,730.6636,223,734.6636" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="662.5" x2="662.5" y1="659.8901" y2="684.8589"/><polygon fill="#A80036" points="658.5,674.8589,662.5,684.8589,666.5,674.8589,662.5,678.8589" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1170" x2="1170" y1="656.4878" y2="679.8901"/><polygon fill="#A80036" points="1166,669.8901,1170,679.8901,1174,669.8901,1170,673.8901" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1170" x2="1170" y1="713.8589" y2="737.2612"/><polygon fill="#A80036" points="1166,727.2612,1170,737.2612,1174,727.2612,1170,731.2612" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="593.1167" y2="625.9214"/><polygon fill="#A80036" points="219,615.9214,223,625.9214,227,615.9214,223,619.9214" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="662.5" x2="662.5" y1="593.1167" y2="625.9214"/><polygon fill="#A80036" points="658.5,615.9214,662.5,625.9214,666.5,615.9214,662.5,619.9214" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="330" x2="452" y1="581.1167" y2="581.1167"/><polygon fill="#A80036" points="442,577.1167,452,581.1167,442,585.1167,446,581.1167" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="223" y1="554.1167" y2="554.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="554.1167" y2="569.1167"/><polygon fill="#A80036" points="219,559.1167,223,569.1167,227,559.1167,223,563.1167" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="873" x2="1170" y1="581.1167" y2="581.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1170" x2="1170" y1="581.1167" y2="622.519"/><polygon fill="#A80036" points="1166,612.519,1170,622.519,1174,612.519,1170,616.519" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7f69c8272874c8fbc6ababb0005e1f1b]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtCoreSynchronizeNodes()\n |
... | ... | |
11 | 11 |
==== |
12 | 12 |
- - **return** : urt_status_t - - |
13 | 13 |
Returns ""URT_STATUS_OK"" if all nodes are synchronized and proceed. |
14 |
Returns ""URT_STATUS_ERROR"" if an exception occurred (faulty stage value detected). |
|
15 |
Returns a value greater than ""URT_STATUS_OK"" but smaller than ""URT_STATUS_ERROR"" if there are nodes left to synchronize.
|
|
14 |
Returns ""URT_STATUS_SYNC_ERROR"" if an exception occurred (faulty stage value detected).
|
|
15 |
Returns ""URT_STATUS_SYNC_PENDING"" if there are nodes left to synchronize.
|
|
16 | 16 |
In the latter case, the node thread must still wait for the control event (proceed) to synchronize. |
17 | 17 |
endnote |
18 | 18 |
|
... | ... | |
24 | 24 |
while (Current node is not ""NULL""\nand stage of current node is equal to argument?) is (yes) |
25 | 25 |
:proceed to next node; |
26 | 26 |
endwhile (no) |
27 |
if (The stage of a node was equal to the argument or 1 less than the argument?) then (yes)
|
|
28 |
:call ""urtCoreStopNodes(URT_STATUS_ERROR)"";
|
|
27 |
if (All nodes are at the same stage?) then (yes)
|
|
28 |
:broadcast control event (proceed);
|
|
29 | 29 |
:unlock core; |
30 | 30 |
stop |
31 | 31 |
note |
32 |
Returns ""URT_STATUS_ERROR"".
|
|
32 |
Returns ""URT_STATUS_OK"".
|
|
33 | 33 |
endnote |
34 |
else (no) |
|
35 |
endif |
|
36 |
if (Stages of all nodes are equal to argument?) then (yes) |
|
37 |
:broadcast control event (proceed); |
|
34 |
elseif (The stage of the last checked node was one less than the argument?) then (yes) |
|
38 | 35 |
:unlock core; |
39 | 36 |
stop |
40 | 37 |
note |
41 |
Returns ""URT_STATUS_OK"".
|
|
38 |
Returns a ""URT_STATUS_SYNC_PENDING"".
|
|
42 | 39 |
endnote |
43 | 40 |
else (no) |
41 |
:call ""urtCoreStopNodes(URT_STATUS_SYNC_ERROR)""; |
|
44 | 42 |
:unlock core; |
45 | 43 |
stop |
46 | 44 |
note |
47 |
Returns a value greater than ""URT_STATUS_OK"" but smaller than ""URT_STATUS_ERROR"".
|
|
45 |
Returns ""URT_STATUS_SYNC_ERROR"".
|
|
48 | 46 |
endnote |
49 | 47 |
endif |
50 | 48 |
|
doc/activitydiagrams/core/urtCoreSynchronizeNodes.uml | ||
---|---|---|
34 | 34 |
==== |
35 | 35 |
-- **return** : urt_status_t -- |
36 | 36 |
Returns ""URT_STATUS_OK"" if all nodes are synchronized and proceed. |
37 |
Returns ""URT_STATUS_ERROR"" if an exception occurred (faulty stage value detected). |
|
38 |
Returns a value greater than ""URT_STATUS_OK"" but smaller than ""URT_STATUS_ERROR"" if there are nodes left to synchronize.
|
|
37 |
Returns ""URT_STATUS_SYNC_ERROR"" if an exception occurred (faulty stage value detected).
|
|
38 |
Returns ""URT_STATUS_SYNC_PENDING"" if there are nodes left to synchronize.
|
|
39 | 39 |
In the latter case, the node thread must still wait for the control event (proceed) to synchronize. |
40 | 40 |
endnote |
41 | 41 |
|
... | ... | |
48 | 48 |
while (Current node is not ""NULL""\nand stage of current node is equal to argument?) is (yes) |
49 | 49 |
:proceed to next node; |
50 | 50 |
endwhile (no) |
51 |
if (The stage of a node was equal to the argument or 1 less than the argument?) then (yes)
|
|
52 |
:call ""urtCoreStopNodes(URT_STATUS_ERROR)"";
|
|
51 |
if (All nodes are at the same stage?) then (yes)
|
|
52 |
:broadcast control event (proceed);
|
|
53 | 53 |
:unlock core; |
54 | 54 |
stop |
55 | 55 |
note |
56 |
Returns ""URT_STATUS_ERROR"".
|
|
56 |
Returns ""URT_STATUS_OK"".
|
|
57 | 57 |
endnote |
58 |
else (no) |
|
59 |
endif |
|
60 |
if (Stages of all nodes are equal to argument?) then (yes) |
|
61 |
:broadcast control event (proceed); |
|
58 |
elseif (The stage of the last checked node was one less than the argument?) then (yes) |
|
62 | 59 |
:unlock core; |
63 | 60 |
stop |
64 | 61 |
note |
65 |
Returns ""URT_STATUS_OK"".
|
|
62 |
Returns a ""URT_STATUS_SYNC_PENDING"".
|
|
66 | 63 |
endnote |
67 | 64 |
else (no) |
65 |
:call ""urtCoreStopNodes(URT_STATUS_SYNC_ERROR)""; |
|
68 | 66 |
:unlock core; |
69 | 67 |
stop |
70 | 68 |
note |
71 |
Returns a value greater than ""URT_STATUS_OK"" but smaller than ""URT_STATUS_ERROR"".
|
|
69 |
Returns ""URT_STATUS_SYNC_ERROR"".
|
|
72 | 70 |
endnote |
73 | 71 |
endif |
74 | 72 |
|
doc/activitydiagrams/functions.iuml | ||
---|---|---|
23 | 23 |
!function $contribute_messages() |
24 | 24 |
partition "contribute messages" { |
25 | 25 |
fork |
26 |
:set next pointer of topic's latest message to first message to contribute;
|
|
26 |
:set ""next"" pointer of last message to contribute to the message after the topic's latest message;
|
|
27 | 27 |
fork again |
28 |
:set next pointer of last message to contribute to the message after the topic's latest message;
|
|
28 |
:set ""next"" pointer of topic's latest message to first message to contribute;
|
|
29 | 29 |
endfork |
30 | 30 |
} |
31 | 31 |
!endfunction |
doc/activitydiagrams/message/urtMessageInit.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="405px" preserveAspectRatio="none" style="width:536px;height:405px;" version="1.1" viewBox="0 0 536 405" width="536px" zoomAndPan="magnify"><defs><filter height="300%" id="fawtppr2uev6i" 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="222.75" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="144" x="195.25" y="47.6611">urtMessageInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="270.25" y="68.6143"/><path d="M222.5,72.8594 L222.5,198.7891 L524.5,198.7891 L524.5,82.8594 L514.5,72.8594 L222.5,72.8594 " fill="#FBFB77" filter="url(#fawtppr2uev6i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M514.5,72.8594 L514.5,82.8594 L524.5,82.8594 L514.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="278.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="282.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="282.5" y="89.4263">message</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="353.5" y="89.4263">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="468.5" x2="524.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="162" x="228.5" y="105.0591">The message to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="228.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="308.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="340.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="317.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="321.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="321.5" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="384.5" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="429.5" x2="524.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="228.5" y="150.4575">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="278.5" y="150.4575">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="314.5" y="150.4575">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="524.5" y1="158.5234" y2="158.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="524.5" y1="160.5234" y2="160.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="302.5" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="306.5" y="175.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="306.5" y="175.0903">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="355.5" y="175.0903">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="444.5" x2="524.5" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="228.5" y="190.7231">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="325.5" y="190.7231">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="429.5" y="190.7231">.</text><ellipse cx="373.5" cy="228.7891" fill="#000000" filter="url(#fawtppr2uev6i)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,248.7891 L10,349.5859 A0,0 0 0 0 10,349.5859 L288,349.5859 A0,0 0 0 0 288,349.5859 L288,303.1875 L308,299.1875 L288,295.1875 L288,258.7891 L278,248.7891 L10,248.7891 A0,0 0 0 0 10,248.7891 " fill="#FBFB77" filter="url(#fawtppr2uev6i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M278,248.7891 L278,258.7891 L288,258.7891 L278,248.7891 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="16" y="265.856">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="52" y="265.856">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="67" y="265.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="16" y="280.9888">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="65" x="79" y="280.9888">← payload</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="77" x="16" y="296.1216">originTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="97" y="296.1216">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="176" x="16" y="311.2544">numHrtConsumbersLeft</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="196" y="311.2544">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="321.8867" y2="321.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="24.5" y="325.8872">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="277.5" x2="288" y1="321.8867" y2="321.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="143" x="16" y="341.52">numConsumersLeft</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="163" y="341.52">← 0</text><rect fill="#FEFECE" filter="url(#fawtppr2uev6i)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="308" y="282.2031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="318" y="303.3418">initialize members</text><path d="M160.5,368.0195 L160.5,393.1523 A0,0 0 0 0 160.5,393.1523 L342.5,393.1523 A0,0 0 0 0 342.5,393.1523 L342.5,386.0195 L362.5,380.5859 L342.5,378.0195 L342.5,378.0195 L332.5,368.0195 L160.5,368.0195 A0,0 0 0 0 160.5,368.0195 " fill="#FBFB77" filter="url(#fawtppr2uev6i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M332.5,368.0195 L332.5,378.0195 L342.5,378.0195 L332.5,368.0195 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="166.5" y="385.0864">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="219.5" y="385.0864">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="323.5" y="385.0864">.</text><ellipse cx="373.5" cy="380.5859" fill="#FFFFFF" filter="url(#fawtppr2uev6i)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="373.5" cy="380.5859" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="198.7891" y2="218.7891"/><polygon fill="#A80036" points="369.5,208.7891,373.5,218.7891,377.5,208.7891,373.5,212.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="238.7891" y2="282.2031"/><polygon fill="#A80036" points="369.5,272.2031,373.5,282.2031,377.5,272.2031,373.5,276.2031" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="316.1719" y2="369.5859"/><polygon fill="#A80036" points="369.5,359.5859,373.5,369.5859,377.5,359.5859,373.5,363.5859" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[42dceccd0ec0bb4e33e54645d4db1fb5]
|
|
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="387px" preserveAspectRatio="none" style="width:536px;height:387px;" version="1.1" viewBox="0 0 536 387" width="536px" zoomAndPan="magnify"><defs><filter height="300%" id="f10ynr553pczer" 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="222.75" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="144" x="195.25" y="47.6611">urtMessageInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="270.25" y="68.6143"/><path d="M222.5,72.8594 L222.5,183.6563 L524.5,183.6563 L524.5,82.8594 L514.5,72.8594 L222.5,72.8594 " fill="#FBFB77" filter="url(#f10ynr553pczer)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M514.5,72.8594 L514.5,82.8594 L524.5,82.8594 L514.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="278.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="282.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="282.5" y="89.4263">message</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="353.5" y="89.4263">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="468.5" x2="524.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="162" x="228.5" y="105.0591">The message to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="228.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="308.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="340.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="317.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="321.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="321.5" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="384.5" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="429.5" x2="524.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="228.5" y="150.4575">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="278.5" y="150.4575">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="314.5" y="150.4575">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="524.5" y1="158.5234" y2="158.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="524.5" y1="160.5234" y2="160.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="222.5" x2="328" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="332" y="175.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="332" y="175.0903">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="381" y="175.0903">: void</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="419" x2="524.5" y1="171.0898" y2="171.0898"/><ellipse cx="373.5" cy="213.6563" fill="#000000" filter="url(#f10ynr553pczer)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,233.6563 L10,334.4531 A0,0 0 0 0 10,334.4531 L288,334.4531 A0,0 0 0 0 288,334.4531 L288,288.0547 L308,284.0547 L288,280.0547 L288,243.6563 L278,233.6563 L10,233.6563 A0,0 0 0 0 10,233.6563 " fill="#FBFB77" filter="url(#f10ynr553pczer)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M278,233.6563 L278,243.6563 L288,243.6563 L278,233.6563 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="21.5" cy="246.2891" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="27" y="250.7231">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="63" y="250.7231">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="78" y="250.7231">NULL</text><ellipse cx="21.5" cy="261.4219" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="27" y="265.856">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="65" x="90" y="265.856">← payload</text><ellipse cx="21.5" cy="276.5547" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="77" x="27" y="280.9888">originTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="108" y="280.9888">← 0</text><ellipse cx="21.5" cy="291.6875" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="176" x="27" y="296.1216">numHrtConsumbersLeft</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="207" y="296.1216">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="306.7539" y2="306.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="24.5" y="310.7544">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="277.5" x2="288" y1="306.7539" y2="306.7539"/><ellipse cx="21.5" cy="321.9531" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="143" x="27" y="326.3872">numConsumersLeft</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="174" y="326.3872">← 0</text><rect fill="#FEFECE" filter="url(#f10ynr553pczer)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="308" y="267.0703"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="318" y="288.209">initialize members</text><ellipse cx="373.5" cy="365.4531" fill="#FFFFFF" filter="url(#f10ynr553pczer)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="373.5" cy="365.4531" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="183.6563" y2="203.6563"/><polygon fill="#A80036" points="369.5,193.6563,373.5,203.6563,377.5,193.6563,373.5,197.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="223.6563" y2="267.0703"/><polygon fill="#A80036" points="369.5,257.0703,373.5,267.0703,377.5,257.0703,373.5,261.0703" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="373.5" y1="301.0391" y2="354.4531"/><polygon fill="#A80036" points="369.5,344.4531,373.5,354.4531,377.5,344.4531,373.5,348.4531" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[59692c2c9e919e4928bd7a2679772350]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtMessageInit()\n |
... | ... | |
11 | 11 |
- - **payload** : void* - - |
12 | 12 |
May be ""NULL"" for messages without payload. |
13 | 13 |
==== |
14 |
- - **return** : urt_status_t - - |
|
15 |
Always returns ""URT_STATUS_OK"". |
|
14 |
- - **return** : void - - |
|
16 | 15 |
endnote |
17 | 16 |
|
18 | 17 |
|
19 | 18 |
start |
20 | 19 |
:initialize members; |
21 | 20 |
note |
22 |
**next** ← ""NULL"" |
|
23 |
**payload** ← payload |
|
24 |
**originTime** ← 0 |
|
25 |
**numHrtConsumbersLeft** ← 0 |
|
21 |
* **next** ← ""NULL""
|
|
22 |
* **payload** ← payload
|
|
23 |
* **originTime** ← 0
|
|
24 |
* **numHrtConsumbersLeft** ← 0
|
|
26 | 25 |
.. URT_CFG_PUBSUB_PROFILING == true .. |
27 |
**numConsumersLeft** ← 0 |
|
26 |
* **numConsumersLeft** ← 0
|
|
28 | 27 |
endnote |
29 | 28 |
stop |
30 |
note |
|
31 |
Returns ""URT_STATUS_OK"". |
|
32 |
endnote |
|
33 | 29 |
|
34 | 30 |
|
35 | 31 |
@enduml |
doc/activitydiagrams/message/urtMessageInit.uml | ||
---|---|---|
34 | 34 |
-- **payload** : void* -- |
35 | 35 |
May be ""NULL"" for messages without payload. |
36 | 36 |
==== |
37 |
-- **return** : urt_status_t -- |
|
38 |
Always returns ""URT_STATUS_OK"". |
|
37 |
-- **return** : void -- |
|
39 | 38 |
endnote |
40 | 39 |
|
41 | 40 |
/'### PROCEDURE ##############################################################'/ |
... | ... | |
43 | 42 |
start |
44 | 43 |
:initialize members; |
45 | 44 |
note |
46 |
**next** ← ""NULL"" |
|
47 |
**payload** ← payload |
|
48 |
**originTime** ← 0 |
|
49 |
**numHrtConsumbersLeft** ← 0 |
|
45 |
* **next** ← ""NULL""
|
|
46 |
* **payload** ← payload
|
|
47 |
* **originTime** ← 0
|
|
48 |
* **numHrtConsumbersLeft** ← 0
|
|
50 | 49 |
.. URT_CFG_PUBSUB_PROFILING == true .. |
51 |
**numConsumersLeft** ← 0 |
|
50 |
* **numConsumersLeft** ← 0
|
|
52 | 51 |
endnote |
53 | 52 |
stop |
54 |
note |
|
55 |
Returns ""URT_STATUS_OK"". |
|
56 |
endnote |
|
57 | 53 |
|
58 | 54 |
/'### OUTRO ##################################################################'/ |
59 | 55 |
|
doc/activitydiagrams/node/_main.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="1630px" preserveAspectRatio="none" style="width:821px;height:1630px;" version="1.1" viewBox="0 0 821 1630" width="821px" zoomAndPan="magnify"><defs><filter height="300%" id="f18z385qfrf5hk" 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="365" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="66" x="376.5" y="47.6611">_main()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="412.5" y="68.6143"/><path d="M219,72.8594 L219,153.3906 L761,153.3906 L761,82.8594 L751,72.8594 L219,72.8594 " fill="#FBFB77" filter="url(#f18z385qfrf5hk)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M751,72.8594 L751,82.8594 L761,82.8594 L751,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="219" x2="451" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="455" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="25" x="455" y="89.4263">arg</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="484" y="89.4263">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="529" x2="761" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="332" x="225" y="105.0591">Optional Argument to the thread main function (see</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="561" y="105.0591">urt_osThreadFunction_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="9" x="737" y="105.0591">).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="239" x="225" y="120.1919">This functions expects no arguments.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="219" x2="761" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="219" x2="761" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="219" x2="444.5" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="448.5" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="448.5" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="497.5" y="144.8247">: void</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="535.5" x2="761" y1="140.8242" y2="140.8242"/><ellipse cx="490" cy="183.3906" fill="#000000" filter="url(#f18z385qfrf5hk)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FFFFFF" filter="url(#f18z385qfrf5hk)" height="600.9141" style="stroke: #000000; stroke-width: 2.0;" width="800" x="10" y="204.1924"/><path d="M60,205.1924 L60,213.4893 L50,223.4893 L10,223.4893 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="40" x="13" y="218.1875">setup</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="411.5" y="240.4893"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="421.5" y="261.6279">register to core event</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="402,294.458,578,294.458,590,306.458,578,318.458,402,318.458,390,306.458,402,294.458" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="402" y="310.2661">Node's</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="445" y="310.2661">setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="540" y="310.2661">is set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="370" y="303.8638">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="590" y="303.8638">no</text><path d="M30,332.876 L30,358.0088 A0,0 0 0 0 30,358.0088 L201,358.0088 A0,0 0 0 0 201,358.0088 L201,350.876 L221,345.4424 L201,342.876 L201,342.876 L191,332.876 L30,332.876 A0,0 0 0 0 30,332.876 " fill="#FBFB77" filter="url(#f18z385qfrf5hk)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M191,332.876 L191,342.876 L201,342.876 L191,332.876 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="150" x="36" y="349.9429">Callback must not loop.</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="221" y="328.458"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="231" y="349.5967">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="105" x="285" y="349.5967">setupcallback()</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="283" x="169" y="430.8291"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="179" y="451.9678">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="204" y="451.9678">urtCoreStopNodes(URT_STATUS_ERROR)</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="124,382.4268,497,382.4268,509,394.4268,497,406.4268,124,406.4268,112,394.4268,124,382.4268" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="314.5" y="416.6372">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="124" y="398.2349">Event mask returned by</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="264" y="398.2349">setupcallback()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="373" y="398.2349">redefines core event?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="509" y="391.8325">no</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="310.5,484.7979,322.5,496.7979,310.5,508.7979,298.5,496.7979,310.5,484.7979" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="257" x="541" y="328.458"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="551" y="349.5967">act as if</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="605" y="349.5967">stupcallback</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="693" y="349.5967">returned 0xF..F</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,514.7979,502,526.7979,490,538.7979,478,526.7979,490,514.7979" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="361" y="607.2002"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="371" y="628.3389">suspend all child threads (recursively)</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="341" x="319.5" y="661.1689"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="329.5" y="682.3076">synchronize by calling</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="182" x="468.5" y="682.3076">urtCoreSynchronizeNodes(1)</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="364.5" y="715.1377"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="374.5" y="736.2764">resume all child threads (recursively)</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="399,558.7979,581,558.7979,593,570.7979,581,582.7979,399,582.7979,387,570.7979,399,558.7979" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="494" y="593.0083">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="81" x="399" y="574.606">Core status is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="484" y="574.606">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="575" y="574.606">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="593" y="568.2036">no</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,769.1064,502,781.1064,490,793.1064,478,781.1064,490,769.1064" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f18z385qfrf5hk)" height="467.7183" style="stroke: #000000; stroke-width: 2.0;" width="581" x="169" y="815.9082"/><path d="M209,816.9082 L209,825.2051 L199,835.2051 L169,835.2051 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="172" y="829.9033">loop</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="370" y="907.9155"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="220" x="380" y="929.0542">Wait for a specified or a core event</text><path d="M213,1014.7046 L213,1039.8374 A0,0 0 0 0 213,1039.8374 L384,1039.8374 A0,0 0 0 0 384,1039.8374 L384,1032.7046 L404,1027.271 L384,1024.7046 L384,1024.7046 L374,1014.7046 L213,1014.7046 A0,0 0 0 0 213,1014.7046 " fill="#FBFB77" filter="url(#f18z385qfrf5hk)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M374,1014.7046 L374,1024.7046 L384,1024.7046 L374,1014.7046 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="150" x="219" y="1031.7715">Callback must not loop.</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="404" y="1010.2866"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="414" y="1031.4253">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="98" x="468" y="1031.4253">loopcallback()</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="283" x="348.5" y="1127.6577"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="358.5" y="1148.7964">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="383.5" y="1148.7964">urtCoreStopNodes(URT_STATUS_ERROR)</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="307,1079.2554,673,1079.2554,685,1091.2554,673,1103.2554,307,1103.2554,295,1091.2554,307,1079.2554" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="494" y="1113.4658">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="307" y="1095.0635">Event mask returned by</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="447" y="1095.0635">loopcallback()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="549" y="1095.0635">redefines core event?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="685" y="1088.6611">no</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,1181.6265,502,1193.6265,490,1205.6265,478,1193.6265,490,1181.6265" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="430,961.8843,550,961.8843,562,973.8843,550,985.8843,430,985.8843,418,973.8843,430,961.8843" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="494" y="996.0947">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="430" y="977.6924">Core event received?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="562" y="971.29">yes</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,1225.6265,502,1237.6265,490,1249.6265,478,1237.6265,490,1225.6265" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="401.5,852.2051,578.5,852.2051,590.5,864.2051,578.5,876.2051,401.5,876.2051,389.5,864.2051,401.5,852.2051" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="494" y="886.4155">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="177" x="401.5" y="868.0132">Thread termination requested?</text><rect fill="#FFFFFF" filter="url(#f18z385qfrf5hk)" height="282.6055" style="stroke: #000000; stroke-width: 2.0;" width="451" x="270.5" y="1294.4282"/><path d="M317.5,1295.4282 L317.5,1303.7251 L307.5,1313.7251 L270.5,1313.7251 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="37" x="273.5" y="1308.4233">outro</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="399" x="290.5" y="1379.1274"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="300.5" y="1400.2661">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="126" x="354.5" y="1400.2661">shutdowncallback()</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="195" x="484.5" y="1400.2661">with core's status as argument</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="391.5,1330.7251,588.5,1330.7251,600.5,1342.7251,588.5,1354.7251,391.5,1354.7251,379.5,1342.7251,391.5,1330.7251" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="494" y="1364.9355">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="391.5" y="1346.5332">Node's</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="434.5" y="1346.5332">shutdowncallback</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="550.5" y="1346.5332">is set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="600.5" y="1340.1309">no</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,1433.0962,502,1445.0962,490,1457.0962,478,1445.0962,490,1433.0962" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="188" x="396" y="1477.0962"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="168" x="406" y="1498.2349">unregister from core event</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="305" x="337.5" y="1531.0649"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="285" x="347.5" y="1552.2036">terminate node thread (and all child threads)</text><ellipse cx="490" cy="1608.0337" fill="#FFFFFF" filter="url(#f18z385qfrf5hk)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="490" cy="1608.0337" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="153.3906" y2="173.3906"/><polygon fill="#A80036" points="486,163.3906,490,173.3906,494,163.3906,490,167.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="406.4268" y2="430.8291"/><polygon fill="#A80036" points="306.5,420.8291,310.5,430.8291,314.5,420.8291,310.5,424.8291" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="509" x2="521" y1="394.4268" y2="394.4268"/><polygon fill="#A80036" points="517,437.8135,521,447.8135,525,437.8135,521,441.8135" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="521" x2="521" y1="394.4268" y2="496.7979"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="521" x2="322.5" y1="496.7979" y2="496.7979"/><polygon fill="#A80036" points="332.5,492.7979,322.5,496.7979,332.5,500.7979,328.5,496.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="464.7979" y2="484.7979"/><polygon fill="#A80036" points="306.5,474.7979,310.5,484.7979,314.5,474.7979,310.5,478.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="362.4268" y2="382.4268"/><polygon fill="#A80036" points="306.5,372.4268,310.5,382.4268,314.5,372.4268,310.5,376.4268" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="390" x2="310.5" y1="306.458" y2="306.458"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="306.458" y2="328.458"/><polygon fill="#A80036" points="306.5,318.458,310.5,328.458,314.5,318.458,310.5,322.458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="590" x2="669.5" y1="306.458" y2="306.458"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="669.5" x2="669.5" y1="306.458" y2="328.458"/><polygon fill="#A80036" points="665.5,318.458,669.5,328.458,673.5,318.458,669.5,322.458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="508.7979" y2="526.7979"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="478" y1="526.7979" y2="526.7979"/><polygon fill="#A80036" points="468,522.7979,478,526.7979,468,530.7979,472,526.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="669.5" x2="669.5" y1="362.4268" y2="526.7979"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="669.5" x2="502" y1="526.7979" y2="526.7979"/><polygon fill="#A80036" points="512,522.7979,502,526.7979,512,530.7979,508,526.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="274.458" y2="294.458"/><polygon fill="#A80036" points="486,284.458,490,294.458,494,284.458,490,288.458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="641.1689" y2="661.1689"/><polygon fill="#A80036" points="486,651.1689,490,661.1689,494,651.1689,490,655.1689" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="695.1377" y2="715.1377"/><polygon fill="#A80036" points="486,705.1377,490,715.1377,494,705.1377,490,709.1377" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="582.7979" y2="607.2002"/><polygon fill="#A80036" points="486,597.2002,490,607.2002,494,597.2002,490,601.2002" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="593" x2="670.5" y1="570.7979" y2="570.7979"/><polygon fill="#A80036" points="666.5,668.1533,670.5,678.1533,674.5,668.1533,670.5,672.1533" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.5" x2="670.5" y1="570.7979" y2="781.1064"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.5" x2="502" y1="781.1064" y2="781.1064"/><polygon fill="#A80036" points="512,777.1064,502,781.1064,512,785.1064,508,781.1064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="749.1064" y2="769.1064"/><polygon fill="#A80036" points="486,759.1064,490,769.1064,494,759.1064,490,763.1064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="538.7979" y2="558.7979"/><polygon fill="#A80036" points="486,548.7979,490,558.7979,494,548.7979,490,552.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="193.3906" y2="240.4893"/><polygon fill="#A80036" points="486,230.4893,490,240.4893,494,230.4893,490,234.4893" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1103.2554" y2="1127.6577"/><polygon fill="#A80036" points="486,1117.6577,490,1127.6577,494,1117.6577,490,1121.6577" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="685" x2="697" y1="1091.2554" y2="1091.2554"/><polygon fill="#A80036" points="693,1134.6421,697,1144.6421,701,1134.6421,697,1138.6421" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="697" x2="697" y1="1091.2554" y2="1193.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="697" x2="502" y1="1193.6265" y2="1193.6265"/><polygon fill="#A80036" points="512,1189.6265,502,1193.6265,512,1197.6265,508,1193.6265" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1161.6265" y2="1181.6265"/><polygon fill="#A80036" points="486,1171.6265,490,1181.6265,494,1171.6265,490,1175.6265" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1044.2554" y2="1079.2554"/><polygon fill="#A80036" points="486,1069.2554,490,1079.2554,494,1069.2554,490,1073.2554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="985.8843" y2="1010.2866"/><polygon fill="#A80036" points="486,1000.2866,490,1010.2866,494,1000.2866,490,1004.2866" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="562" x2="707" y1="973.8843" y2="973.8843"/><polygon fill="#A80036" points="703,1100.1577,707,1110.1577,711,1100.1577,707,1104.1577" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="707" x2="707" y1="973.8843" y2="1237.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="707" x2="502" y1="1237.6265" y2="1237.6265"/><polygon fill="#A80036" points="512,1233.6265,502,1237.6265,512,1241.6265,508,1237.6265" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1205.6265" y2="1225.6265"/><polygon fill="#A80036" points="486,1215.6265,490,1225.6265,494,1215.6265,490,1219.6265" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="941.8843" y2="961.8843"/><polygon fill="#A80036" points="486,951.8843,490,961.8843,494,951.8843,490,955.8843" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="876.2051" y2="907.9155"/><polygon fill="#A80036" points="486,897.9155,490,907.9155,494,897.9155,490,901.9155" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1249.6265" y2="1259.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="731" y1="1259.6265" y2="1259.6265"/><polygon fill="#A80036" points="727,1067.271,731,1057.271,735,1067.271,731,1063.271" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="731" x2="731" y1="864.2051" y2="1259.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="731" x2="590.5" y1="864.2051" y2="864.2051"/><polygon fill="#A80036" points="600.5,860.2051,590.5,864.2051,600.5,868.2051,596.5,864.2051" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="389.5" x2="191" y1="864.2051" y2="864.2051"/><polygon fill="#A80036" points="187,1053.271,191,1063.271,195,1053.271,191,1057.271" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="191" x2="191" y1="864.2051" y2="1271.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="191" x2="490" y1="1271.6265" y2="1271.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1271.6265" y2="1330.7251"/><polygon fill="#A80036" points="486,1320.7251,490,1330.7251,494,1320.7251,490,1324.7251" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="793.1064" y2="852.2051"/><polygon fill="#A80036" points="486,842.2051,490,852.2051,494,842.2051,490,846.2051" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1354.7251" y2="1379.1274"/><polygon fill="#A80036" points="486,1369.1274,490,1379.1274,494,1369.1274,490,1373.1274" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="600.5" x2="699.5" y1="1342.7251" y2="1342.7251"/><polygon fill="#A80036" points="695.5,1386.1118,699.5,1396.1118,703.5,1386.1118,699.5,1390.1118" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="699.5" x2="699.5" y1="1342.7251" y2="1445.0962"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="699.5" x2="502" y1="1445.0962" y2="1445.0962"/><polygon fill="#A80036" points="512,1441.0962,502,1445.0962,512,1449.0962,508,1445.0962" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1413.0962" y2="1433.0962"/><polygon fill="#A80036" points="486,1423.0962,490,1433.0962,494,1423.0962,490,1427.0962" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1457.0962" y2="1477.0962"/><polygon fill="#A80036" points="486,1467.0962,490,1477.0962,494,1467.0962,490,1471.0962" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1511.0649" y2="1531.0649"/><polygon fill="#A80036" points="486,1521.0649,490,1531.0649,494,1521.0649,490,1525.0649" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1565.0337" y2="1597.0337"/><polygon fill="#A80036" points="486,1587.0337,490,1597.0337,494,1587.0337,490,1591.0337" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[76359ecbe44076e6df4d6c6175398633]
|
|
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="1693px" preserveAspectRatio="none" style="width:828px;height:1693px;" version="1.1" viewBox="0 0 828 1693" width="828px" zoomAndPan="magnify"><defs><filter height="300%" id="f1p8hd1hubp91s" 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="368.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="66" x="380" y="47.6611">_main()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="416" y="68.6143"/><path d="M220.75,72.8594 L220.75,153.3906 L762.75,153.3906 L762.75,82.8594 L752.75,72.8594 L220.75,72.8594 " fill="#FBFB77" filter="url(#f1p8hd1hubp91s)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M752.75,72.8594 L752.75,82.8594 L762.75,82.8594 L752.75,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="220.75" x2="452.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="456.75" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="25" x="456.75" y="89.4263">arg</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="485.75" y="89.4263">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="530.75" x2="762.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="332" x="226.75" y="105.0591">Optional Argument to the thread main function (see</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="562.75" y="105.0591">urt_osThreadFunction_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="9" x="738.75" y="105.0591">).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="226.75" y="120.1919">This function expects</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="364.75" y="120.1919">arg</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="392.75" y="120.1919">to be of type</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="88" x="477.75" y="120.1919">urt_node_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="565.75" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="220.75" x2="762.75" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="220.75" x2="762.75" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="220.75" x2="446.25" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="450.25" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="450.25" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="499.25" y="144.8247">: void</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="537.25" x2="762.75" y1="140.8242" y2="140.8242"/><ellipse cx="491.75" cy="183.3906" fill="#000000" filter="url(#f1p8hd1hubp91s)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FFFFFF" filter="url(#f1p8hd1hubp91s)" height="600.9141" style="stroke: #000000; stroke-width: 2.0;" width="807" x="10" y="204.1924"/><path d="M60,205.1924 L60,213.4893 L50,223.4893 L10,223.4893 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="40" x="13" y="218.1875">setup</text><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="413.25" y="240.4893"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="423.25" y="261.6279">register to core event</text><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="403.75,294.458,579.75,294.458,591.75,306.458,579.75,318.458,403.75,318.458,391.75,306.458,403.75,294.458" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="403.75" y="310.2661">Node's</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="446.75" y="310.2661">setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="541.75" y="310.2661">is set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="371.75" y="303.8638">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="591.75" y="303.8638">no</text><path d="M30,332.876 L30,358.0088 A0,0 0 0 0 30,358.0088 L201,358.0088 A0,0 0 0 0 201,358.0088 L201,350.876 L221,345.4424 L201,342.876 L201,342.876 L191,332.876 L30,332.876 A0,0 0 0 0 30,332.876 " fill="#FBFB77" filter="url(#f1p8hd1hubp91s)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M191,332.876 L191,342.876 L201,342.876 L191,332.876 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="150" x="36" y="349.9429">Callback must not loop.</text><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="221" y="328.458"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="231" y="349.5967">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="105" x="285" y="349.5967">setupcallback()</text><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="367" x="127" y="430.8291"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="137" y="451.9678">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="322" x="162" y="451.9678">urtCoreStopNodes(URT_STATUS_NODE_INVALEVTMASK)</text><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="124,382.4268,497,382.4268,509,394.4268,497,406.4268,124,406.4268,112,394.4268,124,382.4268" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="314.5" y="416.6372">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="124" y="398.2349">Event mask returned by</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="264" y="398.2349">setupcallback()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="373" y="398.2349">redefines core event?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="509" y="391.8325">no</text><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="310.5,484.7979,322.5,496.7979,310.5,508.7979,298.5,496.7979,310.5,484.7979" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="264" x="541" y="328.458"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="551" y="349.5967">act as if</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="605" y="349.5967">setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="700" y="349.5967">returned 0xF..F</text><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="491.75,514.7979,503.75,526.7979,491.75,538.7979,479.75,526.7979,491.75,514.7979" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="362.75" y="607.2002"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="372.75" y="628.3389">suspend all child threads (recursively)</text><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="341" x="321.25" y="661.1689"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="331.25" y="682.3076">synchronize by calling</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="182" x="470.25" y="682.3076">urtCoreSynchronizeNodes(1)</text><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="366.25" y="715.1377"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="376.25" y="736.2764">resume all child threads (recursively)</text><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="400.75,558.7979,582.75,558.7979,594.75,570.7979,582.75,582.7979,400.75,582.7979,388.75,570.7979,400.75,558.7979" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="495.75" y="593.0083">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="81" x="400.75" y="574.606">Core status is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="485.75" y="574.606">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="576.75" y="574.606">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="594.75" y="568.2036">no</text><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="491.75,769.1064,503.75,781.1064,491.75,793.1064,479.75,781.1064,491.75,769.1064" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f1p8hd1hubp91s)" height="531.2222" style="stroke: #000000; stroke-width: 2.0;" width="606" x="170.75" y="815.9082"/><path d="M210.75,816.9082 L210.75,825.2051 L200.75,835.2051 L170.75,835.2051 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="173.75" y="829.9033">loop</text><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="371.75" y="907.9155"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="220" x="381.75" y="929.0542">Wait for a specified or a core event</text><path d="M214.75,1014.7046 L214.75,1039.8374 A0,0 0 0 0 214.75,1039.8374 L385.75,1039.8374 A0,0 0 0 0 385.75,1039.8374 L385.75,1032.7046 L405.75,1027.271 L385.75,1024.7046 L385.75,1024.7046 L375.75,1014.7046 L214.75,1014.7046 A0,0 0 0 0 214.75,1014.7046 " fill="#FBFB77" filter="url(#f1p8hd1hubp91s)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M375.75,1014.7046 L375.75,1024.7046 L385.75,1024.7046 L375.75,1014.7046 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="150" x="220.75" y="1031.7715">Callback must not loop.</text><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="405.75" y="1010.2866"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="415.75" y="1031.4253">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="98" x="469.75" y="1031.4253">loopcallback()</text><rect fill="#EEEEEE" filter="url(#f1p8hd1hubp91s)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="464" x="259.75" y="1064.2554"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="259.75" x2="269.75" y1="1081.2397" y2="1081.2397"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="444" x="269.75" y="1084.894">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="713.75" x2="723.75" y1="1081.2397" y2="1081.2397"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="269.75" y="1099.3628">increment loop counter</text><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="367" x="308.25" y="1191.1616"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="318.25" y="1212.3003">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="322" x="343.25" y="1212.3003">urtCoreStopNodes(URT_STATUS_NODE_INVALEVTMASK)</text><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="308.75,1142.7593,674.75,1142.7593,686.75,1154.7593,674.75,1166.7593,308.75,1166.7593,296.75,1154.7593,308.75,1142.7593" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="495.75" y="1176.9697">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="308.75" y="1158.5674">Event mask returned by</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="448.75" y="1158.5674">loopcallback()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="550.75" y="1158.5674">redefines core event?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="686.75" y="1152.165">no</text><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="491.75,1245.1304,503.75,1257.1304,491.75,1269.1304,479.75,1257.1304,491.75,1245.1304" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="431.75,961.8843,551.75,961.8843,563.75,973.8843,551.75,985.8843,431.75,985.8843,419.75,973.8843,431.75,961.8843" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="495.75" y="996.0947">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="431.75" y="977.6924">Core event received?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="563.75" y="971.29">yes</text><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="491.75,1289.1304,503.75,1301.1304,491.75,1313.1304,479.75,1301.1304,491.75,1289.1304" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="379.75,852.2051,603.75,852.2051,615.75,864.2051,603.75,876.2051,379.75,876.2051,367.75,864.2051,379.75,852.2051" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="495.75" y="886.4155">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="379.75" y="868.0132">Termination of node thread requested?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="347.75" y="861.6108">yes</text><rect fill="#FFFFFF" filter="url(#f1p8hd1hubp91s)" height="282.6055" style="stroke: #000000; stroke-width: 2.0;" width="653" x="70.25" y="1357.9321"/><path d="M117.25,1358.9321 L117.25,1367.229 L107.25,1377.229 L70.25,1377.229 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="37" x="73.25" y="1371.9272">outro</text><path d="M90.25,1447.0493 L90.25,1472.1821 A0,0 0 0 0 90.25,1472.1821 L272.25,1472.1821 A0,0 0 0 0 272.25,1472.1821 L272.25,1465.0493 L292.25,1459.6157 L272.25,1457.0493 L272.25,1457.0493 L262.25,1447.0493 L90.25,1447.0493 A0,0 0 0 0 90.25,1447.0493 " fill="#FBFB77" filter="url(#f1p8hd1hubp91s)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M262.25,1447.0493 L262.25,1457.0493 L272.25,1457.0493 L262.25,1447.0493 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="96.25" y="1464.1162">Callback must terminate.</text><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="399" x="292.25" y="1442.6313"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="302.25" y="1463.77">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="126" x="356.25" y="1463.77">shutdowncallback()</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="195" x="486.25" y="1463.77">with core's status as argument</text><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="393.25,1394.229,590.25,1394.229,602.25,1406.229,590.25,1418.229,393.25,1418.229,381.25,1406.229,393.25,1394.229" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="495.75" y="1428.4395">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="393.25" y="1410.0371">Node's</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="436.25" y="1410.0371">shutdowncallback</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="552.25" y="1410.0371">is set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="602.25" y="1403.6348">no</text><polygon fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" points="491.75,1496.6001,503.75,1508.6001,491.75,1520.6001,479.75,1508.6001,491.75,1496.6001" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="188" x="397.75" y="1540.6001"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="168" x="407.75" y="1561.7388">unregister from core event</text><rect fill="#FEFECE" filter="url(#f1p8hd1hubp91s)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="305" x="339.25" y="1594.5688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="285" x="349.25" y="1615.7075">terminate node thread (and all child threads)</text><ellipse cx="491.75" cy="1671.5376" fill="#FFFFFF" filter="url(#f1p8hd1hubp91s)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="491.75" cy="1671.5376" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="153.3906" y2="173.3906"/><polygon fill="#A80036" points="487.75,163.3906,491.75,173.3906,495.75,163.3906,491.75,167.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="406.4268" y2="430.8291"/><polygon fill="#A80036" points="306.5,420.8291,310.5,430.8291,314.5,420.8291,310.5,424.8291" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="509" x2="521" y1="394.4268" y2="394.4268"/><polygon fill="#A80036" points="517,437.8135,521,447.8135,525,437.8135,521,441.8135" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="521" x2="521" y1="394.4268" y2="496.7979"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="521" x2="322.5" y1="496.7979" y2="496.7979"/><polygon fill="#A80036" points="332.5,492.7979,322.5,496.7979,332.5,500.7979,328.5,496.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="464.7979" y2="484.7979"/><polygon fill="#A80036" points="306.5,474.7979,310.5,484.7979,314.5,474.7979,310.5,478.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="362.4268" y2="382.4268"/><polygon fill="#A80036" points="306.5,372.4268,310.5,382.4268,314.5,372.4268,310.5,376.4268" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="391.75" x2="310.5" y1="306.458" y2="306.458"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="306.458" y2="328.458"/><polygon fill="#A80036" points="306.5,318.458,310.5,328.458,314.5,318.458,310.5,322.458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="591.75" x2="673" y1="306.458" y2="306.458"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="673" x2="673" y1="306.458" y2="328.458"/><polygon fill="#A80036" points="669,318.458,673,328.458,677,318.458,673,322.458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="508.7979" y2="526.7979"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="479.75" y1="526.7979" y2="526.7979"/><polygon fill="#A80036" points="469.75,522.7979,479.75,526.7979,469.75,530.7979,473.75,526.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="673" x2="673" y1="362.4268" y2="526.7979"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="673" x2="503.75" y1="526.7979" y2="526.7979"/><polygon fill="#A80036" points="513.75,522.7979,503.75,526.7979,513.75,530.7979,509.75,526.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="274.458" y2="294.458"/><polygon fill="#A80036" points="487.75,284.458,491.75,294.458,495.75,284.458,491.75,288.458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="641.1689" y2="661.1689"/><polygon fill="#A80036" points="487.75,651.1689,491.75,661.1689,495.75,651.1689,491.75,655.1689" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="695.1377" y2="715.1377"/><polygon fill="#A80036" points="487.75,705.1377,491.75,715.1377,495.75,705.1377,491.75,709.1377" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="582.7979" y2="607.2002"/><polygon fill="#A80036" points="487.75,597.2002,491.75,607.2002,495.75,597.2002,491.75,601.2002" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594.75" x2="672.25" y1="570.7979" y2="570.7979"/><polygon fill="#A80036" points="668.25,668.1533,672.25,678.1533,676.25,668.1533,672.25,672.1533" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="672.25" x2="672.25" y1="570.7979" y2="781.1064"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="672.25" x2="503.75" y1="781.1064" y2="781.1064"/><polygon fill="#A80036" points="513.75,777.1064,503.75,781.1064,513.75,785.1064,509.75,781.1064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="749.1064" y2="769.1064"/><polygon fill="#A80036" points="487.75,759.1064,491.75,769.1064,495.75,759.1064,491.75,763.1064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="538.7979" y2="558.7979"/><polygon fill="#A80036" points="487.75,548.7979,491.75,558.7979,495.75,548.7979,491.75,552.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="193.3906" y2="240.4893"/><polygon fill="#A80036" points="487.75,230.4893,491.75,240.4893,495.75,230.4893,491.75,234.4893" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="1044.2554" y2="1064.2554"/><polygon fill="#A80036" points="487.75,1054.2554,491.75,1064.2554,495.75,1054.2554,491.75,1058.2554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="1166.7593" y2="1191.1616"/><polygon fill="#A80036" points="487.75,1181.1616,491.75,1191.1616,495.75,1181.1616,491.75,1185.1616" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="686.75" x2="698.75" y1="1154.7593" y2="1154.7593"/><polygon fill="#A80036" points="694.75,1198.146,698.75,1208.146,702.75,1198.146,698.75,1202.146" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="698.75" x2="698.75" y1="1154.7593" y2="1257.1304"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="698.75" x2="503.75" y1="1257.1304" y2="1257.1304"/><polygon fill="#A80036" points="513.75,1253.1304,503.75,1257.1304,513.75,1261.1304,509.75,1257.1304" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="1225.1304" y2="1245.1304"/><polygon fill="#A80036" points="487.75,1235.1304,491.75,1245.1304,495.75,1235.1304,491.75,1239.1304" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="1112.1929" y2="1142.7593"/><polygon fill="#A80036" points="487.75,1132.7593,491.75,1142.7593,495.75,1132.7593,491.75,1136.7593" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="985.8843" y2="1010.2866"/><polygon fill="#A80036" points="487.75,1000.2866,491.75,1010.2866,495.75,1000.2866,491.75,1004.2866" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="563.75" x2="733.75" y1="973.8843" y2="973.8843"/><polygon fill="#A80036" points="729.75,1122.1929,733.75,1132.1929,737.75,1122.1929,733.75,1126.1929" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="733.75" x2="733.75" y1="973.8843" y2="1301.1304"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="733.75" x2="503.75" y1="1301.1304" y2="1301.1304"/><polygon fill="#A80036" points="513.75,1297.1304,503.75,1301.1304,513.75,1305.1304,509.75,1301.1304" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="1269.1304" y2="1289.1304"/><polygon fill="#A80036" points="487.75,1279.1304,491.75,1289.1304,495.75,1279.1304,491.75,1283.1304" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="941.8843" y2="961.8843"/><polygon fill="#A80036" points="487.75,951.8843,491.75,961.8843,495.75,951.8843,491.75,955.8843" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="876.2051" y2="907.9155"/><polygon fill="#A80036" points="487.75,897.9155,491.75,907.9155,495.75,897.9155,491.75,901.9155" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="1313.1304" y2="1323.1304"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="757.75" y1="1323.1304" y2="1323.1304"/><polygon fill="#A80036" points="753.75,1093.7397,757.75,1083.7397,761.75,1093.7397,757.75,1089.7397" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="757.75" x2="757.75" y1="864.2051" y2="1323.1304"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="757.75" x2="615.75" y1="864.2051" y2="864.2051"/><polygon fill="#A80036" points="625.75,860.2051,615.75,864.2051,625.75,868.2051,621.75,864.2051" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="367.75" x2="192.75" y1="864.2051" y2="864.2051"/><polygon fill="#A80036" points="188.75,1079.7397,192.75,1089.7397,196.75,1079.7397,192.75,1083.7397" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="192.75" x2="192.75" y1="864.2051" y2="1335.1304"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="192.75" x2="491.75" y1="1335.1304" y2="1335.1304"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="1335.1304" y2="1394.229"/><polygon fill="#A80036" points="487.75,1384.229,491.75,1394.229,495.75,1384.229,491.75,1388.229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="793.1064" y2="852.2051"/><polygon fill="#A80036" points="487.75,842.2051,491.75,852.2051,495.75,842.2051,491.75,846.2051" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="1418.229" y2="1442.6313"/><polygon fill="#A80036" points="487.75,1432.6313,491.75,1442.6313,495.75,1432.6313,491.75,1436.6313" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="602.25" x2="701.25" y1="1406.229" y2="1406.229"/><polygon fill="#A80036" points="697.25,1449.6157,701.25,1459.6157,705.25,1449.6157,701.25,1453.6157" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="701.25" x2="701.25" y1="1406.229" y2="1508.6001"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="701.25" x2="503.75" y1="1508.6001" y2="1508.6001"/><polygon fill="#A80036" points="513.75,1504.6001,503.75,1508.6001,513.75,1512.6001,509.75,1508.6001" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="1476.6001" y2="1496.6001"/><polygon fill="#A80036" points="487.75,1486.6001,491.75,1496.6001,495.75,1486.6001,491.75,1490.6001" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="1520.6001" y2="1540.6001"/><polygon fill="#A80036" points="487.75,1530.6001,491.75,1540.6001,495.75,1530.6001,491.75,1534.6001" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="1574.5688" y2="1594.5688"/><polygon fill="#A80036" points="487.75,1584.5688,491.75,1594.5688,495.75,1584.5688,491.75,1588.5688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="491.75" x2="491.75" y1="1628.5376" y2="1660.5376"/><polygon fill="#A80036" points="487.75,1650.5376,491.75,1660.5376,495.75,1650.5376,491.75,1654.5376" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[755282de1820a8b3b359aedce59a2083]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\n_main()\n |
... | ... | |
7 | 7 |
note |
8 | 8 |
- - **arg** : void* - - |
9 | 9 |
Optional Argument to the thread main function (see ""urt_osThreadFunction_t""). |
10 |
This functions expects no arguments.
|
|
10 |
This function expects ""arg"" to be of type ""urt_node_t*"".
|
|
11 | 11 |
==== |
12 | 12 |
- - **return** : void - - |
13 | 13 |
endnote |
... | ... | |
22 | 22 |
Callback must not loop. |
23 | 23 |
endnote |
24 | 24 |
if (Event mask returned by ""setupcallback()"" redefines core event?) then (yes) |
25 |
:call ""urtCoreStopNodes(URT_STATUS_ERROR)"";
|
|
25 |
:call ""urtCoreStopNodes(URT_STATUS_NODE_INVALEVTMASK)"";
|
|
26 | 26 |
else (no) |
27 | 27 |
endif |
28 | 28 |
else (no) |
29 |
:act as if ""stupcallback"" returned 0xF..F; |
|
29 |
:act as if ""setupcallback"" returned 0xF..F;
|
|
30 | 30 |
endif |
31 | 31 |
if (Core status is ""URT_STATUS_OK""?) then (yes) |
32 | 32 |
:suspend all child threads (recursively); |
... | ... | |
36 | 36 |
endif |
37 | 37 |
} |
38 | 38 |
partition "loop" { |
39 |
while (Thread termination requested?) is (no)
|
|
39 |
while (Termination of node thread requested?) is (no)
|
|
40 | 40 |
:Wait for a specified or a core event; |
41 | 41 |
if (Core event received?) then (yes) |
42 | 42 |
else (no) |
... | ... | |
44 | 44 |
note |
45 | 45 |
Callback must not loop. |
46 | 46 |
endnote |
47 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true//..\nincrement loop counter; |
|
47 | 48 |
if (Event mask returned by ""loopcallback()"" redefines core event?) then (yes) |
48 |
:call ""urtCoreStopNodes(URT_STATUS_ERROR)"";
|
|
49 |
:call ""urtCoreStopNodes(URT_STATUS_NODE_INVALEVTMASK)"";
|
|
49 | 50 |
else (no) |
50 | 51 |
endif |
51 | 52 |
endif |
52 |
endwhile |
|
53 |
endwhile (yes)
|
|
53 | 54 |
} |
54 | 55 |
partition "outro" { |
55 | 56 |
if (Node's ""shutdowncallback"" is set?) then (yes) |
56 | 57 |
:execute ""shutdowncallback()"" with core's status as argument; |
58 |
note |
|
59 |
Callback must terminate. |
|
60 |
endnote |
|
57 | 61 |
else (no) |
58 | 62 |
endif |
59 | 63 |
:unregister from core event; |
doc/activitydiagrams/node/_main.uml | ||
---|---|---|
30 | 30 |
note |
31 | 31 |
-- **arg** : void* -- |
32 | 32 |
Optional Argument to the thread main function (see ""urt_osThreadFunction_t""). |
33 |
This functions expects no arguments.
|
|
33 |
This function expects ""arg"" to be of type ""urt_node_t*"".
|
|
34 | 34 |
==== |
35 | 35 |
-- **return** : void -- |
36 | 36 |
endnote |
... | ... | |
46 | 46 |
Callback must not loop. |
47 | 47 |
endnote |
48 | 48 |
if (Event mask returned by ""setupcallback()"" redefines core event?) then (yes) |
49 |
:call ""urtCoreStopNodes(URT_STATUS_ERROR)"";
|
|
49 |
:call ""urtCoreStopNodes(URT_STATUS_NODE_INVALEVTMASK)"";
|
|
50 | 50 |
else (no) |
51 | 51 |
endif |
52 | 52 |
else (no) |
53 |
:act as if ""stupcallback"" returned 0xF..F; |
|
53 |
:act as if ""setupcallback"" returned 0xF..F;
|
|
54 | 54 |
endif |
55 | 55 |
if (Core status is ""URT_STATUS_OK""?) then (yes) |
56 | 56 |
:suspend all child threads (recursively); |
... | ... | |
60 | 60 |
endif |
61 | 61 |
} |
62 | 62 |
partition "loop" { |
63 |
while (Thread termination requested?) is (no)
|
|
63 |
while (Termination of node thread requested?) is (no)
|
|
64 | 64 |
:Wait for a specified or a core event; |
65 | 65 |
if (Core event received?) then (yes) |
66 | 66 |
else (no) |
... | ... | |
68 | 68 |
note |
69 | 69 |
Callback must not loop. |
70 | 70 |
endnote |
71 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true//..\nincrement loop counter; |
|
71 | 72 |
if (Event mask returned by ""loopcallback()"" redefines core event?) then (yes) |
72 |
:call ""urtCoreStopNodes(URT_STATUS_ERROR)"";
|
|
73 |
:call ""urtCoreStopNodes(URT_STATUS_NODE_INVALEVTMASK)"";
|
|
73 | 74 |
else (no) |
74 | 75 |
endif |
75 | 76 |
endif |
76 |
endwhile |
|
77 |
endwhile (yes)
|
|
77 | 78 |
} |
78 | 79 |
partition "outro" { |
79 | 80 |
if (Node's ""shutdowncallback"" is set?) then (yes) |
80 | 81 |
:execute ""shutdowncallback()"" with core's status as argument; |
82 |
note |
|
83 |
Callback must terminate. |
|
84 |
endnote |
|
81 | 85 |
else (no) |
82 | 86 |
endif |
83 | 87 |
:unregister from core event; |
doc/activitydiagrams/node/urtNodeInit.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="839px" preserveAspectRatio="none" style="width:831px;height:839px;" version="1.1" viewBox="0 0 831 839" width="831px" zoomAndPan="magnify"><defs><filter height="300%" id="faj7sbp20bnbq" 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="370.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="116" x="356.75" y="47.6611">urtNodeInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="417.75" y="68.6143"/><path d="M375.5,72.8594 L375.5,410.6484 L819.5,410.6484 L819.5,82.8594 L809.5,72.8594 L375.5,72.8594 " fill="#FBFB77" filter="url(#faj7sbp20bnbq)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M809.5,72.8594 L809.5,82.8594 L819.5,82.8594 L809.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="531" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="535" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="535" y="89.4263">node</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="576" y="89.4263">: urt_node_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="664" x2="819.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="381.5" y="105.0591">The node to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="381.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="461.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="493.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="511.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="515.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="49" x="515.5" y="134.8247">thread</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="568.5" y="134.8247">: urt_osThread_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="683.5" x2="819.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="335" x="381.5" y="150.4575">The already initialized, exclusive thread for the node.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="381.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="461.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="493.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="452.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="456.5" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="103" x="456.5" y="180.2231">setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="175" x="563.5" y="180.2231">: urt_nodeSetupCallback_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="742.5" x2="819.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="296" x="381.5" y="195.856">Callback function to be executed during setup.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="381.5" y="210.9888">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="431.5" y="210.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="142" x="467.5" y="210.9888">if no setup is required.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="522" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="530" y="225.6216"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="98" x="530" y="225.6216">setupparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="632" y="225.6216">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="673" x2="819.5" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="332" x="381.5" y="241.2544">Optional parameters for the setup callback function.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="51" x="381.5" y="256.3872">Must be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="436.5" y="256.3872">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="160" x="472.5" y="256.3872">if no callback is specified.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="381.5" y="271.52">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="431.5" y="271.52">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="337" x="467.5" y="271.52">if the specified callback does not expect parameters.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="461" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="465" y="286.1528"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="465" y="286.1528">loopcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="168" x="562" y="286.1528">: urt_nodeLoopCallback_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="734" x2="819.5" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="270" x="381.5" y="301.7856">Callback function to be executed in a loop.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="381.5" y="316.9185">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="461.5" y="316.9185">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="493.5" y="316.9185">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="527" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="531" y="331.5513"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="531" y="331.5513">loopparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="623" y="331.5513">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="668" x2="819.5" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="323" x="381.5" y="347.1841">Optional parameters for the loop callback function.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="381.5" y="362.3169">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="431.5" y="362.3169">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="337" x="467.5" y="362.3169">if the specified callback does not expect parameters.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="819.5" y1="370.3828" y2="370.3828"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="819.5" y1="372.3828" y2="372.3828"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="375.5" x2="526.5" y1="382.9492" y2="382.9492"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="530.5" y="386.9497"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="530.5" y="386.9497">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="579.5" y="386.9497">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="668.5" x2="819.5" y1="382.9492" y2="382.9492"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="381.5" y="402.5825">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="478.5" y="402.5825">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="582.5" y="402.5825">.</text><ellipse cx="597.5" cy="440.6484" fill="#000000" filter="url(#faj7sbp20bnbq)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,460.6484 L10,621.9766 A0,0 0 0 0 10,621.9766 L512,621.9766 A0,0 0 0 0 512,621.9766 L512,545.3125 L532,541.3125 L512,537.3125 L512,470.6484 L502,460.6484 L10,460.6484 A0,0 0 0 0 10,460.6484 " fill="#FBFB77" filter="url(#faj7sbp20bnbq)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M502,460.6484 L502,470.6484 L512,470.6484 L502,460.6484 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="16" y="477.7153">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="52" y="477.7153">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="67" y="477.7153">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="492.8481">thread</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="57" x="69" y="492.8481">← thread</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="103" x="16" y="507.981">setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="102" x="123" y="507.981">← setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="98" x="16" y="523.1138">setupparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="100" x="118" y="523.1138">← setupparams</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="16" y="538.2466">loopcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="113" y="538.2466">← loopcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="16" y="553.3794">loopparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="108" y="553.3794">← loopparams</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="42" x="16" y="568.5122">stage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="62" y="568.5122">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="16" y="583.645">urtEventListenerInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="55" x="145" y="583.645">listener</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="200" y="583.645">)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="594.2773" y2="594.2773"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="473" x="24.5" y="598.2778">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="501.5" x2="512" y1="594.2773" y2="594.2773"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="16" y="613.9106">loops</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="60" y="613.9106">← 0</text><rect fill="#FEFECE" filter="url(#faj7sbp20bnbq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="532" y="524.3281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="542" y="545.4668">initialize members</text><rect fill="#FEFECE" filter="url(#faj7sbp20bnbq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="559" y="641.9766"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="569" y="663.1152">lock core</text><path d="M318,700.3633 L318,725.4961 A0,0 0 0 0 318,725.4961 L458,725.4961 A0,0 0 0 0 458,725.4961 L458,718.3633 L478,712.9297 L458,710.3633 L458,710.3633 L448,700.3633 L318,700.3633 A0,0 0 0 0 318,700.3633 " fill="#FBFB77" filter="url(#faj7sbp20bnbq)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M448,700.3633 L448,710.3633 L458,710.3633 L448,700.3633 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="119" x="324" y="717.4302">List is not ordered.</text><rect fill="#FEFECE" filter="url(#faj7sbp20bnbq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="239" x="478" y="695.9453"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="219" x="488" y="717.084">prepend self to core's list of nodes</text><rect fill="#FEFECE" filter="url(#faj7sbp20bnbq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="551" y="749.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="561" y="771.0527">unlock core</text><path d="M384.5,802.3164 L384.5,827.4492 A0,0 0 0 0 384.5,827.4492 L566.5,827.4492 A0,0 0 0 0 566.5,827.4492 L566.5,820.3164 L586.5,814.8828 L566.5,812.3164 L566.5,812.3164 L556.5,802.3164 L384.5,802.3164 A0,0 0 0 0 384.5,802.3164 " fill="#FBFB77" filter="url(#faj7sbp20bnbq)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M556.5,802.3164 L556.5,812.3164 L566.5,812.3164 L556.5,802.3164 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="390.5" y="819.3833">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="443.5" y="819.3833">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="547.5" y="819.3833">.</text><ellipse cx="597.5" cy="814.8828" fill="#FFFFFF" filter="url(#faj7sbp20bnbq)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="597.5" cy="814.8828" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="410.6484" y2="430.6484"/><polygon fill="#A80036" points="593.5,420.6484,597.5,430.6484,601.5,420.6484,597.5,424.6484" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="450.6484" y2="524.3281"/><polygon fill="#A80036" points="593.5,514.3281,597.5,524.3281,601.5,514.3281,597.5,518.3281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="558.2969" y2="641.9766"/><polygon fill="#A80036" points="593.5,631.9766,597.5,641.9766,601.5,631.9766,597.5,635.9766" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="675.9453" y2="695.9453"/><polygon fill="#A80036" points="593.5,685.9453,597.5,695.9453,601.5,685.9453,597.5,689.9453" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="729.9141" y2="749.9141"/><polygon fill="#A80036" points="593.5,739.9141,597.5,749.9141,601.5,739.9141,597.5,743.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="783.8828" y2="803.8828"/><polygon fill="#A80036" points="593.5,793.8828,597.5,803.8828,601.5,793.8828,597.5,797.8828" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8d68c58f868203b2a905cbd3505bf79d]
|
|
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="1049px" preserveAspectRatio="none" style="width:999px;height:1049px;" version="1.1" viewBox="0 0 999 1049" width="999px" zoomAndPan="magnify"><defs><filter height="300%" id="fe99m1kw6ut90" 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="454.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="116" x="440.75" y="47.6611">urtNodeInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="501.75" y="68.6143"/><path d="M343,72.8594 L343,501.4453 L852,501.4453 L852,82.8594 L842,72.8594 L343,72.8594 " fill="#FBFB77" filter="url(#fe99m1kw6ut90)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M842,72.8594 L842,82.8594 L852,82.8594 L842,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="343" x2="531" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="535" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="535" y="89.4263">node</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="576" y="89.4263">: urt_node_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="664" x2="852" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="349" y="105.0591">The node to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="349" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="429" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="461" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="343" x2="511.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="515.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="49" x="515.5" y="134.8247">thread</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="568.5" y="134.8247">: urt_osThread_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="683.5" x2="852" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="335" x="349" y="150.4575">The already initialized, exclusive thread for the node.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="349" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="429" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="461" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="343" x2="452.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="456.5" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="103" x="456.5" y="180.2231">setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="175" x="563.5" y="180.2231">: urt_nodeSetupCallback_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="742.5" x2="852" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="296" x="349" y="195.856">Callback function to be executed during setup.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="349" y="210.9888">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="399" y="210.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="194" x="435" y="210.9888">if no custom setup is required.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="343" x2="522" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="530" y="225.6216"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="98" x="530" y="225.6216">setupparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="632" y="225.6216">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="673" x2="852" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="275" x="349" y="241.2544">Parameters for the setup callback function.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="51" x="349" y="256.3872">Must be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="404" y="256.3872">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="200" x="440" y="256.3872">if no setup callback is specified.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="349" y="271.52">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="399" y="271.52">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="377" x="435" y="271.52">if the specified setup callback does not expect parameters.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="343" x2="461" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="465" y="286.1528"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="465" y="286.1528">loopcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="168" x="562" y="286.1528">: urt_nodeLoopCallback_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="734" x2="852" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="270" x="349" y="301.7856">Callback function to be executed in a loop.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="349" y="316.9185">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="429" y="316.9185">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="461" y="316.9185">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="343" x2="527" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="531" y="331.5513"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="531" y="331.5513">loopparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="623" y="331.5513">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="668" x2="852" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="266" x="349" y="347.1841">Parameters for the loop callback function.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="349" y="362.3169">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="399" y="362.3169">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="368" x="435" y="362.3169">if the specified loop callback does not expect parameters.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="343" x2="425" y1="372.9492" y2="372.9492"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="429" y="376.9497"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="133" x="429" y="376.9497">shutdowncallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="200" x="566" y="376.9497">: urt_nodeShutdownCallback_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="770" x2="852" y1="372.9492" y2="372.9492"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="321" x="349" y="392.5825">Callback function to be executed during shutdown.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="349" y="407.7153">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="399" y="407.7153">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="435" y="407.7153">if no custom shutdown is required.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="343" x2="507" y1="418.3477" y2="418.3477"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="511" y="422.3481"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="128" x="511" y="422.3481">shutdownparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="643" y="422.3481">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="688" x2="852" y1="418.3477" y2="418.3477"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="266" x="349" y="437.981">Parameters for the loop callback function.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="51" x="349" y="453.1138">Must be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="404" y="453.1138">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="225" x="440" y="453.1138">if no shutdown callback is specified.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="349" y="468.2466">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="399" y="468.2466">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="402" x="435" y="468.2466">if the specified shutdown callback does not expect parameters.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="343" x2="852" y1="476.3125" y2="476.3125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="343" x2="852" y1="478.3125" y2="478.3125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="343" x2="552" y1="488.8789" y2="488.8789"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="556" y="492.8794"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="556" y="492.8794">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="605" y="492.8794">: void</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="643" x2="852" y1="488.8789" y2="488.8789"/><ellipse cx="597.5" cy="531.4453" fill="#000000" filter="url(#fe99m1kw6ut90)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,551.4453 L10,743.0391 A0,0 0 0 0 10,743.0391 L512,743.0391 A0,0 0 0 0 512,743.0391 L512,651.2422 L532,647.2422 L512,643.2422 L512,561.4453 L502,551.4453 L10,551.4453 A0,0 0 0 0 10,551.4453 " fill="#FBFB77" filter="url(#fe99m1kw6ut90)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M502,551.4453 L502,561.4453 L512,561.4453 L502,551.4453 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="21.5" cy="564.0781" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="27" y="568.5122">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="63" y="568.5122">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="78" y="568.5122">NULL</text><ellipse cx="21.5" cy="579.2109" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="49" x="27" y="583.645">thread</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="57" x="80" y="583.645">← thread</text><ellipse cx="21.5" cy="594.3438" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="103" x="27" y="598.7778">setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="102" x="134" y="598.7778">← setupcallback</text><ellipse cx="21.5" cy="609.4766" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="98" x="27" y="613.9106">setupparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="100" x="129" y="613.9106">← setupparams</text><ellipse cx="21.5" cy="624.6094" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="27" y="629.0435">loopcallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="124" y="629.0435">← loopcallback</text><ellipse cx="21.5" cy="639.7422" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="27" y="644.1763">loopparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="119" y="644.1763">← loopparams</text><ellipse cx="21.5" cy="654.875" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="133" x="27" y="659.3091">shutdowncallback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="164" y="659.3091">← loopcallback</text><ellipse cx="21.5" cy="670.0078" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="128" x="27" y="674.4419">shutdownparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="159" y="674.4419">← loopparams</text><ellipse cx="21.5" cy="685.1406" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="42" x="27" y="689.5747">stage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="73" y="689.5747">← 0</text><ellipse cx="21.5" cy="700.2734" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="27" y="704.7075">urtEventListenerInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="55" x="156" y="704.7075">listener</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="211" y="704.7075">)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="715.3398" y2="715.3398"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="473" x="24.5" y="719.3403">URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="501.5" x2="512" y1="715.3398" y2="715.3398"/><ellipse cx="21.5" cy="730.5391" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="27" y="734.9731">loops</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="71" y="734.9731">← 0</text><rect fill="#FEFECE" filter="url(#fe99m1kw6ut90)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="532" y="630.2578"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="542" y="651.3965">initialize members</text><rect fill="#FEFECE" filter="url(#fe99m1kw6ut90)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="559" y="763.0391"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="569" y="784.1777">lock core</text><rect fill="#FFFFFF" filter="url(#fe99m1kw6ut90)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="784" x="204.5" y="807.8096"/><path d="M453.5,808.8096 L453.5,817.1064 L443.5,827.1064 L204.5,827.1064 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="239" x="207.5" y="821.8047">prepend self to core's list of nodes</text><rect fill="#000000" filter="url(#fe99m1kw6ut90)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="764" x="214.5" y="844.1064"/><rect fill="#FEFECE" filter="url(#fe99m1kw6ut90)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="463" x="228.5" y="870.1064"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="238.5" y="891.2451">set this node's</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="335.5" y="891.2451">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="314" x="367.5" y="891.2451">pointer to the first node in the core's list of nodes</text><rect fill="#FEFECE" filter="url(#fe99m1kw6ut90)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="247" x="719.5" y="870.1064"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="227" x="729.5" y="891.2451">set core's node pointer to this node</text><rect fill="#000000" filter="url(#fe99m1kw6ut90)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="764" x="214.5" y="924.0752"/><rect fill="#FEFECE" filter="url(#fe99m1kw6ut90)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="551" y="962.0752"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="561" y="983.2139">unlock core</text><ellipse cx="597.5" cy="1027.0439" fill="#FFFFFF" filter="url(#fe99m1kw6ut90)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="597.5" cy="1027.0439" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="501.4453" y2="521.4453"/><polygon fill="#A80036" points="593.5,511.4453,597.5,521.4453,601.5,511.4453,597.5,515.4453" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="541.4453" y2="630.2578"/><polygon fill="#A80036" points="593.5,620.2578,597.5,630.2578,601.5,620.2578,597.5,624.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="664.2266" y2="763.0391"/><polygon fill="#A80036" points="593.5,753.0391,597.5,763.0391,601.5,753.0391,597.5,757.0391" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="460" x2="460" y1="850.1064" y2="870.1064"/><polygon fill="#A80036" points="456,860.1064,460,870.1064,464,860.1064,460,864.1064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="843" x2="843" y1="850.1064" y2="870.1064"/><polygon fill="#A80036" points="839,860.1064,843,870.1064,847,860.1064,843,864.1064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="460" x2="460" y1="904.0752" y2="924.0752"/><polygon fill="#A80036" points="456,914.0752,460,924.0752,464,914.0752,460,918.0752" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="843" x2="843" y1="904.0752" y2="924.0752"/><polygon fill="#A80036" points="839,914.0752,843,924.0752,847,914.0752,843,918.0752" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="797.0078" y2="844.1064"/><polygon fill="#A80036" points="593.5,834.1064,597.5,844.1064,601.5,834.1064,597.5,838.1064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="930.0752" y2="962.0752"/><polygon fill="#A80036" points="593.5,952.0752,597.5,962.0752,601.5,952.0752,597.5,956.0752" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.5" x2="597.5" y1="996.0439" y2="1016.0439"/><polygon fill="#A80036" points="593.5,1006.0439,597.5,1016.0439,601.5,1006.0439,597.5,1010.0439" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[de16bb9876615d6275991dc35d68a8ce]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtNodeInit()\n |
... | ... | |
13 | 13 |
Must not be ""NULL"". |
14 | 14 |
- - **setupcallback** : urt_nodeSetupCallback_t* - - |
15 | 15 |
Callback function to be executed during setup. |
16 |
May be ""NULL"" if no setup is required. |
|
16 |
May be ""NULL"" if no custom setup is required.
|
|
17 | 17 |
- - **setupparams** : void*- - |
18 |
Optional parameters for the setup callback function.
|
|
19 |
Must be ""NULL"" if no callback is specified. |
|
20 |
May be ""NULL"" if the specified callback does not expect parameters. |
|
18 |
Parameters for the setup callback function.
|
|
19 |
Must be ""NULL"" if no setup callback is specified.
|
|
20 |
May be ""NULL"" if the specified setup callback does not expect parameters.
|
|
21 | 21 |
- - **loopcallback** : urt_nodeLoopCallback_t* - - |
22 | 22 |
Callback function to be executed in a loop. |
23 | 23 |
Must not be ""NULL"". |
24 | 24 |
- - **loopparams** : void* - - |
25 |
Optional parameters for the loop callback function. |
|
26 |
May be ""NULL"" if the specified callback does not expect parameters. |
|
25 |
Parameters for the loop callback function. |
|
26 |
May be ""NULL"" if the specified loop callback does not expect parameters. |
|
27 |
- - **shutdowncallback** : urt_nodeShutdownCallback_t* - - |
|
28 |
Callback function to be executed during shutdown. |
|
29 |
May be ""NULL"" if no custom shutdown is required. |
|
30 |
- - **shutdownparams** : void* - - |
|
31 |
Parameters for the loop callback function. |
|
32 |
Must be ""NULL"" if no shutdown callback is specified. |
|
33 |
May be ""NULL"" if the specified shutdown callback does not expect parameters. |
|
27 | 34 |
==== |
28 |
- - **return** : urt_status_t - - |
|
29 |
Always returns ""URT_STATUS_OK"". |
|
35 |
- - **return** : void - - |
|
30 | 36 |
endnote |
31 | 37 |
|
32 | 38 |
|
33 | 39 |
start |
34 | 40 |
:initialize members; |
35 | 41 |
note |
36 |
**next** ← ""NULL"" |
|
37 |
**thread** ← thread |
|
38 |
**setupcallback** ← setupcallback |
|
39 |
**setupparams** ← setupparams |
|
40 |
**loopcallback** ← loopcallback |
|
41 |
**loopparams** ← loopparams |
|
42 |
**stage** ← 0 |
|
43 |
urtEventListenerInit(**listener**) |
|
42 |
* **next** ← ""NULL"" |
|
43 |
* **thread** ← thread |
|
44 |
* **setupcallback** ← setupcallback |
|
45 |
* **setupparams** ← setupparams |
|
46 |
* **loopcallback** ← loopcallback |
|
47 |
* **loopparams** ← loopparams |
|
48 |
* **shutdowncallback** ← loopcallback |
|
49 |
* **shutdownparams** ← loopparams |
|
50 |
* **stage** ← 0 |
|
51 |
* urtEventListenerInit(**listener**) |
|
44 | 52 |
.. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true .. |
45 |
**loops** ← 0 |
|
53 |
* **loops** ← 0
|
|
46 | 54 |
endnote |
47 | 55 |
:lock core; |
48 |
:prepend self to core's list of nodes; |
|
49 |
note |
|
50 |
List is not ordered. |
|
51 |
endnote |
|
56 |
partition "prepend self to core's list of nodes" { |
|
57 |
fork |
|
58 |
:set this node's ""next"" pointer to the first node in the core's list of nodes; |
|
59 |
fork again |
|
60 |
:set core's node pointer to this node; |
|
61 |
endfork |
|
62 |
} |
|
52 | 63 |
:unlock core; |
53 | 64 |
stop |
54 |
note |
|
55 |
Returns ""URT_STATUS_OK"". |
|
56 |
endnote |
|
57 | 65 |
|
58 | 66 |
|
59 | 67 |
@enduml |
doc/activitydiagrams/node/urtNodeInit.uml | ||
---|---|---|
36 | 36 |
Must not be ""NULL"". |
37 | 37 |
-- **setupcallback** : urt_nodeSetupCallback_t* -- |
38 | 38 |
Callback function to be executed during setup. |
39 |
May be ""NULL"" if no setup is required. |
|
39 |
May be ""NULL"" if no custom setup is required.
|
|
40 | 40 |
-- **setupparams** : void*-- |
41 |
Optional parameters for the setup callback function.
|
|
42 |
Must be ""NULL"" if no callback is specified. |
|
43 |
May be ""NULL"" if the specified callback does not expect parameters. |
|
41 |
Parameters for the setup callback function.
|
|
42 |
Must be ""NULL"" if no setup callback is specified.
|
|
43 |
May be ""NULL"" if the specified setup callback does not expect parameters.
|
|
44 | 44 |
-- **loopcallback** : urt_nodeLoopCallback_t* -- |
45 | 45 |
Callback function to be executed in a loop. |
46 | 46 |
Must not be ""NULL"". |
47 | 47 |
-- **loopparams** : void* -- |
48 |
Optional parameters for the loop callback function. |
|
49 |
May be ""NULL"" if the specified callback does not expect parameters. |
|
48 |
Parameters for the loop callback function. |
|
49 |
May be ""NULL"" if the specified loop callback does not expect parameters. |
|
50 |
-- **shutdowncallback** : urt_nodeShutdownCallback_t* -- |
|
51 |
Callback function to be executed during shutdown. |
|
52 |
May be ""NULL"" if no custom shutdown is required. |
|
53 |
-- **shutdownparams** : void* -- |
|
54 |
Parameters for the loop callback function. |
|
55 |
Must be ""NULL"" if no shutdown callback is specified. |
|
56 |
May be ""NULL"" if the specified shutdown callback does not expect parameters. |
|
50 | 57 |
==== |
51 |
-- **return** : urt_status_t -- |
|
52 |
Always returns ""URT_STATUS_OK"". |
|
58 |
-- **return** : void -- |
|
53 | 59 |
endnote |
54 | 60 |
|
55 | 61 |
/'### PROCEDURE ##############################################################'/ |
... | ... | |
57 | 63 |
start |
58 | 64 |
:initialize members; |
59 | 65 |
note |
60 |
**next** ← ""NULL"" |
|
61 |
**thread** ← thread |
|
62 |
**setupcallback** ← setupcallback |
|
63 |
**setupparams** ← setupparams |
|
64 |
**loopcallback** ← loopcallback |
|
65 |
**loopparams** ← loopparams |
|
66 |
**stage** ← 0 |
|
67 |
urtEventListenerInit(**listener**) |
|
66 |
* **next** ← ""NULL"" |
|
67 |
* **thread** ← thread |
|
68 |
* **setupcallback** ← setupcallback |
|
69 |
* **setupparams** ← setupparams |
|
70 |
* **loopcallback** ← loopcallback |
|
71 |
* **loopparams** ← loopparams |
|
72 |
* **shutdowncallback** ← loopcallback |
|
73 |
* **shutdownparams** ← loopparams |
|
74 |
* **stage** ← 0 |
|
75 |
* urtEventListenerInit(**listener**) |
|
68 | 76 |
.. URT_CFG_PUBSUB_PROFILING == true || URT_CFG_RPC_PROFILING = true .. |
69 |
**loops** ← 0 |
|
77 |
* **loops** ← 0
|
|
70 | 78 |
endnote |
71 | 79 |
:lock core; |
72 |
:prepend self to core's list of nodes; |
|
73 |
note |
|
74 |
List is not ordered. |
|
75 |
endnote |
|
80 |
partition "prepend self to core's list of nodes" { |
|
81 |
fork |
|
82 |
:set this node's ""next"" pointer to the first node in the core's list of nodes; |
|
83 |
fork again |
|
84 |
:set core's node pointer to this node; |
|
85 |
endfork |
|
86 |
} |
|
76 | 87 |
:unlock core; |
77 | 88 |
stop |
78 |
note |
|
79 |
Returns ""URT_STATUS_OK"". |
|
80 |
endnote |
|
81 | 89 |
|
82 | 90 |
/'### OUTRO ##################################################################'/ |
83 | 91 |
|
doc/activitydiagrams/publisher/urtPublisherInit.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="811px" preserveAspectRatio="none" style="width:1212px;height:811px;" version="1.1" viewBox="0 0 1212 811" width="1212px" zoomAndPan="magnify"><defs><filter height="300%" id="fp6zrrwdh3uys" 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="560.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="150" x="530" y="47.6611">urtPublisherInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="608" y="68.6143"/><path d="M368.5,72.8594 L368.5,289.5859 L819.5,289.5859 L819.5,82.8594 L809.5,72.8594 L368.5,72.8594 " fill="#FBFB77" filter="url(#fp6zrrwdh3uys)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M809.5,72.8594 L809.5,82.8594 L819.5,82.8594 L809.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="498.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="502.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="502.5" y="89.4263">publisher</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="575.5" y="89.4263">: urt_publisher_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="689.5" x2="819.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="374.5" y="105.0591">The publisher to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="374.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="454.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="486.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="528" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="532" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="532" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="573" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="660" x2="819.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="259" x="374.5" y="150.4575">The topic, this publisher is associated to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="374.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="454.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="486.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="495" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="499" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="499" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="578" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="693" x2="819.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="374.5" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="410.5" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="374.5" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="374.5" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="374.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="424.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="460.5" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="819.5" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="819.5" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="523" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="527" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="527" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="576" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="665" x2="819.5" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="374.5" y="281.52">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="471.5" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="575.5" y="281.52">.</text><ellipse cx="594" cy="319.5859" fill="#000000" filter="url(#fp6zrrwdh3uys)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M230.5,339.5859 L230.5,410.1172 A0,0 0 0 0 230.5,410.1172 L508.5,410.1172 A0,0 0 0 0 508.5,410.1172 L508.5,378.8516 L528.5,374.8516 L508.5,370.8516 L508.5,349.5859 L498.5,339.5859 L230.5,339.5859 A0,0 0 0 0 230.5,339.5859 " fill="#FBFB77" filter="url(#fp6zrrwdh3uys)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M498.5,339.5859 L498.5,349.5859 L508.5,349.5859 L498.5,339.5859 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="236.5" y="356.6528">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="277.5" y="356.6528">← topic</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="230.5" x2="241" y1="367.2852" y2="367.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="245" y="371.2856">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="498" x2="508.5" y1="367.2852" y2="367.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="123" x="236.5" y="386.9185">publishAttempts</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="363.5" y="386.9185">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="236.5" y="402.0513">publishFails</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="328.5" y="402.0513">← 0</text><rect fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="528.5" y="357.8672"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="538.5" y="379.0059">initialize members</text><rect fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="554" y="478.5195"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="564" y="499.6582">lock topic</text><rect fill="#FFFFFF" filter="url(#fp6zrrwdh3uys)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1166" x="10" y="523.29"/><path d="M167,524.29 L167,532.5869 L157,542.5869 L10,542.5869 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="13" y="537.2852">contribute messages</text><rect fill="#000000" filter="url(#fp6zrrwdh3uys)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1146" x="20" y="559.5869"/><rect fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="34" y="585.5869"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="44" y="606.7256">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="536" y="585.5869"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="546" y="606.7256">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#fp6zrrwdh3uys)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1146" x="20" y="639.5557"/><rect fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="546" y="677.5557"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="556" y="698.6943">unlock topic</text><polygon fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" points="524,430.1172,664,430.1172,676,442.1172,664,454.1172,524,454.1172,512,442.1172,524,430.1172" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="598" y="464.3276">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="524" y="445.9253">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="676" y="439.5229">no</text><polygon fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" points="594,731.5244,606,743.5244,594,755.5244,582,743.5244,594,731.5244" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M381,773.958 L381,799.0908 A0,0 0 0 0 381,799.0908 L563,799.0908 A0,0 0 0 0 563,799.0908 L563,791.958 L583,786.5244 L563,783.958 L563,783.958 L553,773.958 L381,773.958 A0,0 0 0 0 381,773.958 " fill="#FBFB77" filter="url(#fp6zrrwdh3uys)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M553,773.958 L553,783.958 L563,783.958 L553,773.958 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="387" y="791.0249">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="440" y="791.0249">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="544" y="791.0249">.</text><ellipse cx="594" cy="786.5244" fill="#FFFFFF" filter="url(#fp6zrrwdh3uys)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="594" cy="786.5244" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="289.5859" y2="309.5859"/><polygon fill="#A80036" points="590,299.5859,594,309.5859,598,299.5859,594,303.5859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="329.5859" y2="357.8672"/><polygon fill="#A80036" points="590,347.8672,594,357.8672,598,347.8672,594,351.8672" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="271" x2="271" y1="565.5869" y2="585.5869"/><polygon fill="#A80036" points="267,575.5869,271,585.5869,275,575.5869,271,579.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="565.5869" y2="585.5869"/><polygon fill="#A80036" points="841,575.5869,845,585.5869,849,575.5869,845,579.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="271" x2="271" y1="619.5557" y2="639.5557"/><polygon fill="#A80036" points="267,629.5557,271,639.5557,275,629.5557,271,633.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="619.5557" y2="639.5557"/><polygon fill="#A80036" points="841,629.5557,845,639.5557,849,629.5557,845,633.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="512.4883" y2="559.5869"/><polygon fill="#A80036" points="590,549.5869,594,559.5869,598,549.5869,594,553.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="645.5557" y2="677.5557"/><polygon fill="#A80036" points="590,667.5557,594,677.5557,598,667.5557,594,671.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="454.1172" y2="478.5195"/><polygon fill="#A80036" points="590,468.5195,594,478.5195,598,468.5195,594,472.5195" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="1186" y1="442.1172" y2="442.1172"/><polygon fill="#A80036" points="1182,584.4229,1186,594.4229,1190,584.4229,1186,588.4229" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186" x2="1186" y1="442.1172" y2="743.5244"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186" x2="606" y1="743.5244" y2="743.5244"/><polygon fill="#A80036" points="616,739.5244,606,743.5244,616,747.5244,612,743.5244" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="711.5244" y2="731.5244"/><polygon fill="#A80036" points="590,721.5244,594,731.5244,598,721.5244,594,725.5244" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="391.8359" y2="430.1172"/><polygon fill="#A80036" points="590,420.1172,594,430.1172,598,420.1172,594,424.1172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="755.5244" y2="775.5244"/><polygon fill="#A80036" points="590,765.5244,594,775.5244,598,765.5244,594,769.5244" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b5d53b61b9ef34bcf4f73737292c91ed]
|
|
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="793px" preserveAspectRatio="none" style="width:1214px;height:793px;" version="1.1" viewBox="0 0 1214 793" width="1214px" zoomAndPan="magnify"><defs><filter height="300%" id="f1cmn83qlc5kyj" 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="561.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="150" x="531" y="47.6611">urtPublisherInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="609" y="68.6143"/><path d="M369.5,72.8594 L369.5,274.4531 L820.5,274.4531 L820.5,82.8594 L810.5,72.8594 L369.5,72.8594 " fill="#FBFB77" filter="url(#f1cmn83qlc5kyj)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M810.5,72.8594 L810.5,82.8594 L820.5,82.8594 L810.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="369.5" x2="499.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="503.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="503.5" y="89.4263">publisher</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="576.5" y="89.4263">: urt_publisher_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="690.5" x2="820.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="375.5" y="105.0591">The publisher to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="375.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="455.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="487.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="369.5" x2="529" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="533" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="533" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="574" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="661" x2="820.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="259" x="375.5" y="150.4575">The topic, this publisher is associated to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="375.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="455.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="487.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="369.5" x2="496" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="500" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="500" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="579" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="694" x2="820.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="375.5" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="411.5" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="375.5" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="375.5" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="375.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="425.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="461.5" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="369.5" x2="820.5" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="369.5" x2="820.5" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="369.5" x2="549.5" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="553.5" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="553.5" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="602.5" y="265.8872">: void</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="640.5" x2="820.5" y1="261.8867" y2="261.8867"/><ellipse cx="595" cy="304.4531" fill="#000000" filter="url(#f1cmn83qlc5kyj)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M231.5,324.4531 L231.5,394.9844 A0,0 0 0 0 231.5,394.9844 L509.5,394.9844 A0,0 0 0 0 509.5,394.9844 L509.5,363.7188 L529.5,359.7188 L509.5,355.7188 L509.5,334.4531 L499.5,324.4531 L231.5,324.4531 A0,0 0 0 0 231.5,324.4531 " fill="#FBFB77" filter="url(#f1cmn83qlc5kyj)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M499.5,324.4531 L499.5,334.4531 L509.5,334.4531 L499.5,324.4531 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="243" cy="337.0859" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="248.5" y="341.52">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="289.5" y="341.52">← topic</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="231.5" x2="242" y1="352.1523" y2="352.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="246" y="356.1528">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="499" x2="509.5" y1="352.1523" y2="352.1523"/><ellipse cx="243" cy="367.3516" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="123" x="248.5" y="371.7856">publishAttempts</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="375.5" y="371.7856">← 0</text><ellipse cx="243" cy="382.4844" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="248.5" y="386.9185">publishFails</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="340.5" y="386.9185">← 0</text><rect fill="#FEFECE" filter="url(#f1cmn83qlc5kyj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="529.5" y="342.7344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="539.5" y="363.873">initialize members</text><rect fill="#FEFECE" filter="url(#f1cmn83qlc5kyj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="555" y="463.3867"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="565" y="484.5254">lock topic</text><rect fill="#FFFFFF" filter="url(#f1cmn83qlc5kyj)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1168" x="10" y="508.1572"/><path d="M167,509.1572 L167,517.4541 L157,527.4541 L10,527.4541 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="13" y="522.1523">contribute messages</text><rect fill="#000000" filter="url(#f1cmn83qlc5kyj)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="20" y="544.4541"/><rect fill="#FEFECE" filter="url(#f1cmn83qlc5kyj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="619" x="34" y="570.4541"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="44" y="591.5928">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="68" y="591.5928">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="543" x="100" y="591.5928">pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#FEFECE" filter="url(#f1cmn83qlc5kyj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="475" x="681" y="570.4541"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="691" y="591.5928">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="715" y="591.5928">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="399" x="747" y="591.5928">pointer of topic's latest message to first message to contribute</text><rect fill="#000000" filter="url(#f1cmn83qlc5kyj)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="20" y="624.4229"/><rect fill="#FEFECE" filter="url(#f1cmn83qlc5kyj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="547" y="662.4229"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="557" y="683.5615">unlock topic</text><polygon fill="#FEFECE" filter="url(#f1cmn83qlc5kyj)" points="525,414.9844,665,414.9844,677,426.9844,665,438.9844,525,438.9844,513,426.9844,525,414.9844" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="599" y="449.1948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="525" y="430.7925">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="677" y="424.3901">no</text><polygon fill="#FEFECE" filter="url(#f1cmn83qlc5kyj)" points="595,716.3916,607,728.3916,595,740.3916,583,728.3916,595,716.3916" style="stroke: #A80036; stroke-width: 1.5;"/><ellipse cx="595" cy="771.3916" fill="#FFFFFF" filter="url(#f1cmn83qlc5kyj)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="595" cy="771.3916" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="595" x2="595" y1="274.4531" y2="294.4531"/><polygon fill="#A80036" points="591,284.4531,595,294.4531,599,284.4531,595,288.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="595" x2="595" y1="314.4531" y2="342.7344"/><polygon fill="#A80036" points="591,332.7344,595,342.7344,599,332.7344,595,336.7344" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="343.5" x2="343.5" y1="550.4541" y2="570.4541"/><polygon fill="#A80036" points="339.5,560.4541,343.5,570.4541,347.5,560.4541,343.5,564.4541" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="918.5" x2="918.5" y1="550.4541" y2="570.4541"/><polygon fill="#A80036" points="914.5,560.4541,918.5,570.4541,922.5,560.4541,918.5,564.4541" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="343.5" x2="343.5" y1="604.4229" y2="624.4229"/><polygon fill="#A80036" points="339.5,614.4229,343.5,624.4229,347.5,614.4229,343.5,618.4229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="918.5" x2="918.5" y1="604.4229" y2="624.4229"/><polygon fill="#A80036" points="914.5,614.4229,918.5,624.4229,922.5,614.4229,918.5,618.4229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="595" x2="595" y1="497.3555" y2="544.4541"/><polygon fill="#A80036" points="591,534.4541,595,544.4541,599,534.4541,595,538.4541" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="595" x2="595" y1="630.4229" y2="662.4229"/><polygon fill="#A80036" points="591,652.4229,595,662.4229,599,652.4229,595,656.4229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="595" x2="595" y1="438.9844" y2="463.3867"/><polygon fill="#A80036" points="591,453.3867,595,463.3867,599,453.3867,595,457.3867" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="677" x2="1188" y1="426.9844" y2="426.9844"/><polygon fill="#A80036" points="1184,569.29,1188,579.29,1192,569.29,1188,573.29" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1188" x2="1188" y1="426.9844" y2="728.3916"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1188" x2="607" y1="728.3916" y2="728.3916"/><polygon fill="#A80036" points="617,724.3916,607,728.3916,617,732.3916,613,728.3916" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="595" x2="595" y1="696.3916" y2="716.3916"/><polygon fill="#A80036" points="591,706.3916,595,716.3916,599,706.3916,595,710.3916" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="595" x2="595" y1="376.7031" y2="414.9844"/><polygon fill="#A80036" points="591,404.9844,595,414.9844,599,404.9844,595,408.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="595" x2="595" y1="740.3916" y2="760.3916"/><polygon fill="#A80036" points="591,750.3916,595,760.3916,599,750.3916,595,754.3916" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[cc6adf1d0441bf5c83751fa056e4110e]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtPublisherInit()\n |
... | ... | |
20 | 20 |
Once a message has been contributed, it cannot be removed later. |
21 | 21 |
May be ""NULL"" (no messages to contribute). |
22 | 22 |
==== |
23 |
- - **return** : urt_status_t - - |
|
24 |
Always returns ""URT_STATUS_OK"". |
|
23 |
- - **return** : void - - |
|
25 | 24 |
endnote |
26 | 25 |
|
27 | 26 |
|
28 | 27 |
start |
29 | 28 |
:initialize members; |
30 | 29 |
note |
31 |
**topic** ← topic |
|
30 |
* **topic** ← topic
|
|
32 | 31 |
.. URT_CFG_PUBSUB_PROFILING == true .. |
33 |
**publishAttempts** ← 0 |
|
34 |
**publishFails** ← 0 |
|
32 |
* **publishAttempts** ← 0
|
|
33 |
* **publishFails** ← 0
|
|
35 | 34 |
endnote |
36 | 35 |
if (Messages to contribute?) then (yes) |
37 | 36 |
:lock topic; |
38 | 37 |
partition "contribute messages" { |
39 | 38 |
fork |
40 |
:set next pointer of topic's latest message to first message to contribute;
|
|
39 |
:set ""next"" pointer of last message to contribute to the message after the topic's latest message;
|
|
41 | 40 |
fork again |
42 |
:set next pointer of last message to contribute to the message after the topic's latest message;
|
|
41 |
:set ""next"" pointer of topic's latest message to first message to contribute;
|
|
43 | 42 |
endfork |
44 | 43 |
} |
45 | 44 |
:unlock topic; |
46 | 45 |
else (no) |
47 | 46 |
endif |
48 | 47 |
stop |
49 |
note |
|
50 |
Returns ""URT_STATUS_OK"". |
|
51 |
endnote |
|
52 | 48 |
|
53 | 49 |
|
54 | 50 |
@enduml |
doc/activitydiagrams/publisher/urtPublisherInit.uml | ||
---|---|---|
42 | 42 |
Once a message has been contributed, it cannot be removed later. |
43 | 43 |
May be ""NULL"" (no messages to contribute). |
44 | 44 |
==== |
45 |
-- **return** : urt_status_t -- |
|
46 |
Always returns ""URT_STATUS_OK"". |
|
45 |
-- **return** : void -- |
|
47 | 46 |
endnote |
48 | 47 |
|
49 | 48 |
/'### PROCEDURE ##############################################################'/ |
... | ... | |
51 | 50 |
start |
52 | 51 |
:initialize members; |
53 | 52 |
note |
54 |
**topic** ← topic |
|
53 |
* **topic** ← topic
|
|
55 | 54 |
.. URT_CFG_PUBSUB_PROFILING == true .. |
56 |
**publishAttempts** ← 0 |
|
57 |
**publishFails** ← 0 |
|
55 |
* **publishAttempts** ← 0
|
|
56 |
* **publishFails** ← 0
|
|
58 | 57 |
endnote |
59 | 58 |
if (Messages to contribute?) then (yes) |
60 | 59 |
:lock topic; |
... | ... | |
63 | 62 |
else (no) |
64 | 63 |
endif |
65 | 64 |
stop |
66 |
note |
|
67 |
Returns ""URT_STATUS_OK"". |
|
68 |
endnote |
|
69 | 65 |
|
70 | 66 |
/'### OUTRO ##################################################################'/ |
71 | 67 |
|
doc/activitydiagrams/publisher/urtPublisherPublish.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="1282px" preserveAspectRatio="none" style="width:2473px;height:1282px;" version="1.1" viewBox="0 0 2473 1282" width="2473px" zoomAndPan="magnify"><defs><filter height="300%" id="fgb6zrwdj1tda" 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="1191" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="183" x="1144" y="47.6611">urtPublisherPublish()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1238.5" y="68.6143"/><path d="M1017,72.8594 L1017,319.8516 L1402,319.8516 L1402,82.8594 L1392,72.8594 L1017,72.8594 " fill="#FBFB77" filter="url(#fgb6zrwdj1tda)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1392,72.8594 L1392,82.8594 L1402,82.8594 L1392,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1114" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1118" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="1118" y="89.4263">publisher</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="1191" y="89.4263">: urt_publisher_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1305" x2="1402" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="197" x="1023" y="105.0591">Pointer to the publisher to use.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1023" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1103" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1135" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1153.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1157.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1157.5" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1220.5" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1265.5" x2="1402" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="226" x="1023" y="150.4575">Pointer to the data to be published.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="1023" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1073" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1109" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1176.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1180.5" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="9" x="1180.5" y="180.2231">n</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1193.5" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1242.5" x2="1402" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="180" x="1023" y="195.856">Size of the payload in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1155" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1159" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="6" x="1159" y="210.4888">t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="1169" y="210.4888">: urt_osTime_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1264" x2="1402" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="246" x="1023" y="226.1216">Timestamp to be set for the message.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1135.5" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1139.5" y="240.7544"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="57" x="1139.5" y="240.7544">timeout</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="1200.5" y="240.7544">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1283.5" x2="1402" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="364" x="1023" y="256.3872">Timeout delay in case the message cannot be published.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1402" y1="264.4531" y2="264.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1402" y1="266.4531" y2="266.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1017" x2="1138.5" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1142.5" y="281.02"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1142.5" y="281.02">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1191.5" y="281.02">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1280.5" x2="1402" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1023" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1076" y="296.6528">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1184" y="296.6528">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1023" y="311.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1076" y="311.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="74" x="1208" y="311.7856">on timeout.</text><ellipse cx="1209.5" cy="349.8516" fill="#000000" filter="url(#fgb6zrwdj1tda)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1169.5" y="379.8516"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1179.5" y="400.9902">lock topic</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="201" x="1109" y="433.8203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="181" x="1119" y="454.959">access topic's next message</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="524" x="947.5" y="543.4995"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="504" x="957.5" y="564.6382">wait for topic's condition variable (using topic's mutex) to be signaled or timeout</text><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="1156.5,597.4683,1262.5,597.4683,1274.5,609.4683,1262.5,621.4683,1156.5,621.4683,1144.5,609.4683,1156.5,597.4683" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="1156.5" y="613.2764">Timeout occurred?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1124.5" y="606.874">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1274.5" y="606.874">no</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1071" y="631.4683"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1081" y="652.6069">unlock topic</text><path d="M882,700.437 L882,725.5698 A0,0 0 0 0 882,725.5698 L1088,725.5698 A0,0 0 0 0 1088,725.5698 L1088,718.437 L1108,713.0034 L1088,710.437 L1088,710.437 L1078,700.437 L882,700.437 A0,0 0 0 0 882,700.437 " fill="#FBFB77" filter="url(#fgb6zrwdj1tda)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1078,700.437 L1078,710.437 L1088,710.437 L1078,700.437 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="888" y="717.5039">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="941" y="717.5039">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1069" y="717.5039">.</text><ellipse cx="1119" cy="713.0034" fill="#FFFFFF" filter="url(#fgb6zrwdj1tda)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1119" cy="713.0034" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="201" x="1199.5" y="679.8706"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="181" x="1209.5" y="701.0093">access topic's next message</text><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="1199,631.4683,1401,631.4683,1413,643.4683,1401,655.4683,1199,655.4683,1187,643.4683,1199,631.4683" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1304" y="665.6787">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="202" x="1199" y="647.2764">Message timestamp was modified?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1413" y="640.874">no</text><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="1300,738.2417,1312,750.2417,1300,762.2417,1288,750.2417,1300,738.2417" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="1101,487.7891,1318,487.7891,1330,499.7891,1318,511.7891,1101,511.7891,1089,499.7891,1101,487.7891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1213.5" y="521.9995">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1101" y="503.5972">HRT consumers left for the message?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1075" y="497.1948">no</text><rect fill="#000000" filter="url(#fgb6zrwdj1tda)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2451" x="10" y="804.2417"/><rect fill="#000000" filter="url(#fgb6zrwdj1tda)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="960" x="22" y="924.4365"/><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="34" y="950.4365"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="44" y="971.5752">iterate topic pointer to this message</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="295" y="950.4365"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="305" y="971.5752">copy payload to message</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="485" y="950.4365"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="495" y="971.5752">set origin time of message</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="682" y="950.4365"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="692" y="971.5752">set number of HRT consumers (from topic)</text><rect fill="#000000" filter="url(#fgb6zrwdj1tda)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="960" x="22" y="1004.4053"/><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="398" x="1010" y="950.4365"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="378" x="1020" y="971.5752">set QoS rate timer (@topic) wrt. most critical HRT subscriber</text><path d="M1470,938.7725 L1470,963.9053 A0,0 0 0 0 1470,963.9053 L1965,963.9053 A0,0 0 0 0 1965,963.9053 L1965,956.7725 L1985,951.3389 L1965,948.7725 L1965,948.7725 L1955,938.7725 L1470,938.7725 A0,0 0 0 0 1470,938.7725 " fill="#FBFB77" filter="url(#fgb6zrwdj1tda)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1955,938.7725 L1955,948.7725 L1965,948.7725 L1955,938.7725 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="474" x="1476" y="955.8394">No lock required since this timer is only accessed when the topic is locked.</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="434" x="1985" y="934.3545"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="414" x="1995" y="955.4932">set QoS delay timer (@subscriber) wrt. origin time of the message</text><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="2072,885.9521,2332,885.9521,2344,897.9521,2332,909.9521,2072,909.9521,2060,897.9521,2072,885.9521" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2206" y="920.1626">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="260" x="2072" y="901.7603">QoS delay timer (@subscriber) is not armed?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2344" y="895.3579">no</text><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="2202,992.7256,2214,1004.7256,2202,1016.7256,2190,1004.7256,2202,992.7256" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="208" x="2098" y="1036.7256"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="188" x="2108" y="1057.8643">iterate to next HRT subscriber</text><polygon fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" points="2141,830.2417,2263,830.2417,2275,842.2417,2263,854.2417,2141,854.2417,2129,842.2417,2141,830.2417" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2206" y="864.4521">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="2141" y="846.0498">HRT subscribers left?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2115" y="839.6475">no</text><rect fill="#000000" filter="url(#fgb6zrwdj1tda)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2451" x="10" y="1112.6943"/><path d="M814,1143.1123 L814,1168.2451 A0,0 0 0 0 814,1168.2451 L1150,1168.2451 A0,0 0 0 0 1150,1168.2451 L1150,1161.1123 L1170,1155.6787 L1150,1153.1123 L1150,1153.1123 L1140,1143.1123 L814,1143.1123 A0,0 0 0 0 814,1143.1123 " fill="#FBFB77" filter="url(#fgb6zrwdj1tda)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1140,1143.1123 L1140,1153.1123 L1150,1153.1123 L1140,1143.1123 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="315" x="820" y="1160.1792">Msut be within topic lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="1170" y="1138.6943"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="1180" y="1159.833">fire event</text><rect fill="#FEFECE" filter="url(#fgb6zrwdj1tda)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1161.5" y="1192.6631"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1171.5" y="1213.8018">unlock topic</text><path d="M996.5,1245.0654 L996.5,1270.1982 A0,0 0 0 0 996.5,1270.1982 L1178.5,1270.1982 A0,0 0 0 0 1178.5,1270.1982 L1178.5,1263.0654 L1198.5,1257.6318 L1178.5,1255.0654 L1178.5,1255.0654 L1168.5,1245.0654 L996.5,1245.0654 A0,0 0 0 0 996.5,1245.0654 " fill="#FBFB77" filter="url(#fgb6zrwdj1tda)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1168.5,1245.0654 L1168.5,1255.0654 L1178.5,1255.0654 L1168.5,1245.0654 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1002.5" y="1262.1323">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1055.5" y="1262.1323">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1159.5" y="1262.1323">.</text><ellipse cx="1209.5" cy="1257.6318" fill="#FFFFFF" filter="url(#fgb6zrwdj1tda)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1209.5" cy="1257.6318" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="319.8516" y2="339.8516"/><polygon fill="#A80036" points="1205.5,329.8516,1209.5,339.8516,1213.5,329.8516,1209.5,333.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="359.8516" y2="379.8516"/><polygon fill="#A80036" points="1205.5,369.8516,1209.5,379.8516,1213.5,369.8516,1209.5,373.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="413.8203" y2="433.8203"/><polygon fill="#A80036" points="1205.5,423.8203,1209.5,433.8203,1213.5,423.8203,1209.5,427.8203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1119" x2="1119" y1="665.437" y2="702.0034"/><polygon fill="#A80036" points="1115,692.0034,1119,702.0034,1123,692.0034,1119,696.0034" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1300" y1="655.4683" y2="679.8706"/><polygon fill="#A80036" points="1296,669.8706,1300,679.8706,1304,669.8706,1300,673.8706" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1413" x2="1425" y1="643.4683" y2="643.4683"/><polygon fill="#A80036" points="1421,686.855,1425,696.855,1429,686.855,1425,690.855" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1425" x2="1425" y1="643.4683" y2="750.2417"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1425" x2="1312" y1="750.2417" y2="750.2417"/><polygon fill="#A80036" points="1322,746.2417,1312,750.2417,1322,754.2417,1318,750.2417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1300" y1="713.8394" y2="738.2417"/><polygon fill="#A80036" points="1296,728.2417,1300,738.2417,1304,728.2417,1300,732.2417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1144.5" x2="1119" y1="609.4683" y2="609.4683"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1119" x2="1119" y1="609.4683" y2="631.4683"/><polygon fill="#A80036" points="1115,621.4683,1119,631.4683,1123,621.4683,1119,625.4683" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1274.5" x2="1300" y1="609.4683" y2="609.4683"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1300" y1="609.4683" y2="631.4683"/><polygon fill="#A80036" points="1296,621.4683,1300,631.4683,1304,621.4683,1300,625.4683" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1300" y1="762.2417" y2="772.2417"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1483.5" y1="772.2417" y2="772.2417"/><polygon fill="#A80036" points="1479.5,639.9683,1483.5,629.9683,1487.5,639.9683,1483.5,635.9683" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1483.5" x2="1483.5" y1="499.7891" y2="772.2417"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1483.5" x2="1330" y1="499.7891" y2="499.7891"/><polygon fill="#A80036" points="1340,495.7891,1330,499.7891,1340,503.7891,1336,499.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="577.4683" y2="597.4683"/><polygon fill="#A80036" points="1205.5,587.4683,1209.5,597.4683,1213.5,587.4683,1209.5,591.4683" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="511.7891" y2="543.4995"/><polygon fill="#A80036" points="1205.5,533.4995,1209.5,543.4995,1213.5,533.4995,1209.5,537.4995" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1089" x2="860" y1="499.7891" y2="499.7891"/><polygon fill="#A80036" points="856,625.9683,860,635.9683,864,625.9683,860,629.9683" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="860" x2="860" y1="499.7891" y2="784.2417"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="860" x2="1209.5" y1="784.2417" y2="784.2417"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="784.2417" y2="804.2417"/><polygon fill="#A80036" points="1205.5,794.2417,1209.5,804.2417,1213.5,794.2417,1209.5,798.2417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="467.7891" y2="487.7891"/><polygon fill="#A80036" points="1205.5,477.7891,1209.5,487.7891,1213.5,477.7891,1209.5,481.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="159.5" x2="159.5" y1="930.4365" y2="950.4365"/><polygon fill="#A80036" points="155.5,940.4365,159.5,950.4365,163.5,940.4365,159.5,944.4365" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="385" x2="385" y1="930.4365" y2="950.4365"/><polygon fill="#A80036" points="381,940.4365,385,950.4365,389,940.4365,385,944.4365" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578.5" x2="578.5" y1="930.4365" y2="950.4365"/><polygon fill="#A80036" points="574.5,940.4365,578.5,950.4365,582.5,940.4365,578.5,944.4365" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="825" x2="825" y1="930.4365" y2="950.4365"/><polygon fill="#A80036" points="821,940.4365,825,950.4365,829,940.4365,825,944.4365" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="159.5" x2="159.5" y1="984.4053" y2="1004.4053"/><polygon fill="#A80036" points="155.5,994.4053,159.5,1004.4053,163.5,994.4053,159.5,998.4053" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="385" x2="385" y1="984.4053" y2="1004.4053"/><polygon fill="#A80036" points="381,994.4053,385,1004.4053,389,994.4053,385,998.4053" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578.5" x2="578.5" y1="984.4053" y2="1004.4053"/><polygon fill="#A80036" points="574.5,994.4053,578.5,1004.4053,582.5,994.4053,578.5,998.4053" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="825" x2="825" y1="984.4053" y2="1004.4053"/><polygon fill="#A80036" points="821,994.4053,825,1004.4053,829,994.4053,825,998.4053" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="909.9521" y2="934.3545"/><polygon fill="#A80036" points="2198,924.3545,2202,934.3545,2206,924.3545,2202,928.3545" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2344" x2="2429" y1="897.9521" y2="897.9521"/><polygon fill="#A80036" points="2425,941.3389,2429,951.3389,2433,941.3389,2429,945.3389" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2429" x2="2429" y1="897.9521" y2="1004.7256"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2429" x2="2214" y1="1004.7256" y2="1004.7256"/><polygon fill="#A80036" points="2224,1000.7256,2214,1004.7256,2224,1008.7256,2220,1004.7256" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="968.3232" y2="992.7256"/><polygon fill="#A80036" points="2198,982.7256,2202,992.7256,2206,982.7256,2202,986.7256" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="1016.7256" y2="1036.7256"/><polygon fill="#A80036" points="2198,1026.7256,2202,1036.7256,2206,1026.7256,2202,1030.7256" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="854.2417" y2="885.9521"/><polygon fill="#A80036" points="2198,875.9521,2202,885.9521,2206,875.9521,2202,879.9521" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="1070.6943" y2="1080.6943"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2447" y1="1080.6943" y2="1080.6943"/><polygon fill="#A80036" points="2443,977.4209,2447,967.4209,2451,977.4209,2447,973.4209" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2447" x2="2447" y1="842.2417" y2="1080.6943"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2447" x2="2275" y1="842.2417" y2="842.2417"/><polygon fill="#A80036" points="2285,838.2417,2275,842.2417,2285,846.2417,2281,842.2417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2129" x2="1448" y1="842.2417" y2="842.2417"/><polygon fill="#A80036" points="1444,963.4209,1448,973.4209,1452,963.4209,1448,967.4209" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448" x2="1448" y1="842.2417" y2="1092.6943"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448" x2="2202" y1="1092.6943" y2="1092.6943"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="1092.6943" y2="1112.6943"/><polygon fill="#A80036" points="2198,1102.6943,2202,1112.6943,2206,1102.6943,2202,1106.6943" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="492" x2="492" y1="810.2417" y2="924.4365"/><polygon fill="#A80036" points="488,914.4365,492,924.4365,496,914.4365,492,918.4365" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209" x2="1209" y1="810.2417" y2="950.4365"/><polygon fill="#A80036" points="1205,940.4365,1209,950.4365,1213,940.4365,1209,944.4365" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2202" x2="2202" y1="810.2417" y2="830.2417"/><polygon fill="#A80036" points="2198,820.2417,2202,830.2417,2206,820.2417,2202,824.2417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="492" x2="492" y1="1010.4053" y2="1112.6943"/><polygon fill="#A80036" points="488,1102.6943,492,1112.6943,496,1102.6943,492,1106.6943" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209" x2="1209" y1="984.4053" y2="1112.6943"/><polygon fill="#A80036" points="1205,1102.6943,1209,1112.6943,1213,1102.6943,1209,1106.6943" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="1118.6943" y2="1138.6943"/><polygon fill="#A80036" points="1205.5,1128.6943,1209.5,1138.6943,1213.5,1128.6943,1209.5,1132.6943" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="1172.6631" y2="1192.6631"/><polygon fill="#A80036" points="1205.5,1182.6631,1209.5,1192.6631,1213.5,1182.6631,1209.5,1186.6631" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1209.5" x2="1209.5" y1="1226.6318" y2="1246.6318"/><polygon fill="#A80036" points="1205.5,1236.6318,1209.5,1246.6318,1213.5,1236.6318,1209.5,1240.6318" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[197988ab9e282192e01c61c5b164982b]
|
|
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="1776px" preserveAspectRatio="none" style="width:3008px;height:1776px;" version="1.1" viewBox="0 0 3008 1776" width="3008px" zoomAndPan="magnify"><defs><filter height="300%" id="fjrexx23r0l7p" 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="1458.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="183" x="1411.5" y="47.6611">urtPublisherPublish()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1506" y="68.6143"/><path d="M1294.5,72.8594 L1294.5,319.8516 L1679.5,319.8516 L1679.5,82.8594 L1669.5,72.8594 L1294.5,72.8594 " fill="#FBFB77" filter="url(#fjrexx23r0l7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1669.5,72.8594 L1669.5,82.8594 L1679.5,82.8594 L1669.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1391.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1395.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="1395.5" y="89.4263">publisher</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="1468.5" y="89.4263">: urt_publisher_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1582.5" x2="1679.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="197" x="1300.5" y="105.0591">Pointer to the publisher to use.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1300.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1380.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1412.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1431" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1435" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1435" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1498" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1543" x2="1679.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="226" x="1300.5" y="150.4575">Pointer to the data to be published.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="1300.5" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1350.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1386.5" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1438" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1442" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1442" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1487" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1536" x2="1679.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="180" x="1300.5" y="195.856">Size of the payload in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1432.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1436.5" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="6" x="1436.5" y="210.4888">t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="1446.5" y="210.4888">: urt_osTime_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1541.5" x2="1679.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="246" x="1300.5" y="226.1216">Timestamp to be set for the message.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1413" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1417" y="240.7544"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="57" x="1417" y="240.7544">timeout</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="1478" y="240.7544">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1561" x2="1679.5" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="364" x="1300.5" y="256.3872">Timeout delay in case the message cannot be published.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1679.5" y1="264.4531" y2="264.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1679.5" y1="266.4531" y2="266.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1416" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1420" y="281.02"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1420" y="281.02">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1469" y="281.02">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1558" x2="1679.5" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1300.5" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1353.5" y="296.6528">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1461.5" y="296.6528">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1300.5" y="311.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="1353.5" y="311.7856">URT_STATUS_PUBLISH_TIMEOUT</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="74" x="1565.5" y="311.7856">on timeout.</text><ellipse cx="1487" cy="349.8516" fill="#000000" filter="url(#fjrexx23r0l7p)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1447" y="379.8516"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1457" y="400.9902">lock topic</text><rect fill="#000000" filter="url(#fjrexx23r0l7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="519" x="1227.5" y="433.8203"/><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="201" x="1241.5" y="466.8047"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="181" x="1251.5" y="487.9434">access topic's next message</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="262" x="1470.5" y="459.8203"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1470.5" x2="1485.5" y1="476.8047" y2="476.8047"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="1485.5" y="480.459">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1717.5" x2="1732.5" y1="476.8047" y2="476.8047"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="242" x="1480.5" y="494.9277">increment counter of publish attempts</text><rect fill="#000000" filter="url(#fjrexx23r0l7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="519" x="1227.5" y="527.7578"/><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="524" x="1225" y="609.4683"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="504" x="1235" y="630.6069">wait for topic's condition variable (using topic's mutex) to be signaled or timeout</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1434,663.437,1540,663.437,1552,675.437,1540,687.437,1434,687.437,1422,675.437,1434,663.437" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="1434" y="679.2451">Timeout occurred?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1402" y="672.8428">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1552" y="672.8428">no</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="1205" y="697.437"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1205" x2="1215" y1="714.4214" y2="714.4214"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="1215" y="718.0757">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1447" x2="1457" y1="714.4214" y2="714.4214"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="210" x="1215" y="732.5444">increment counter of publish fails</text><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1283" y="780.3745"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1293" y="801.5132">unlock topic</text><path d="M1014,849.3433 L1014,874.4761 A0,0 0 0 0 1014,874.4761 L1300,874.4761 A0,0 0 0 0 1300,874.4761 L1300,867.3433 L1320,861.9097 L1300,859.3433 L1300,859.3433 L1290,849.3433 L1014,849.3433 A0,0 0 0 0 1014,849.3433 " fill="#FBFB77" filter="url(#fjrexx23r0l7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1290,849.3433 L1290,859.3433 L1300,859.3433 L1290,849.3433 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1020" y="866.4102">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="1073" y="866.4102">URT_STATUS_PUBLISH_TIMEOUT</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1281" y="866.4102">.</text><ellipse cx="1331" cy="861.9097" fill="#FFFFFF" filter="url(#fjrexx23r0l7p)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1331" cy="861.9097" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="1552.5" y="817.8394"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="1562.5" y="838.978">proceed to next message</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1643,745.8394,1655,757.8394,1643,769.8394,1631,757.8394,1643,745.8394" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1499,894.4761,1787,894.4761,1799,906.4761,1787,918.4761,1499,918.4761,1487,906.4761,1499,894.4761" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="288" x="1499" y="910.2842">Timestamp is younger than of previous message?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1799" y="903.8818">yes</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1542,697.437,1744,697.437,1756,709.437,1744,721.437,1542,721.437,1530,709.437,1542,697.437" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1647" y="731.6475">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="202" x="1542" y="713.2451">Message timestamp was modified?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1756" y="706.8428">no</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1643,942.375,1655,954.375,1643,966.375,1631,954.375,1643,942.375" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1649" y="939.7808">no</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1378.5,553.7578,1595.5,553.7578,1607.5,565.7578,1595.5,577.7578,1378.5,577.7578,1366.5,565.7578,1378.5,553.7578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1491" y="587.9683">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1378.5" y="569.5659">HRT consumers left for the message?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1352.5" y="563.1636">no</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="174.668" style="stroke: #000000; stroke-width: 2.0;" width="396" x="1295" y="999.1768"/><path d="M1576,1000.1768 L1576,1008.4736 L1566,1018.4736 L1295,1018.4736 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="271" x="1298" y="1013.1719">URT_CFG_PUBSUB_PROFILING == true</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="344" x="1315" y="1083.876"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="324" x="1325" y="1105.0146">increment counter of discarded messages (@topic)</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1389,1035.4736,1585,1035.4736,1597,1047.4736,1585,1059.4736,1389,1059.4736,1377,1047.4736,1389,1035.4736" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1491" y="1069.6841">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="1389" y="1051.2817">Consumers left for this message?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1597" y="1044.8794">no</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1487,1137.8447,1499,1149.8447,1487,1161.8447,1475,1149.8447,1487,1137.8447" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fjrexx23r0l7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2987" x="10" y="1193.8447"/><rect fill="#FFFFFF" filter="url(#fjrexx23r0l7p)" height="156.2344" style="stroke: #000000; stroke-width: 2.0;" width="1268" x="22" y="1325.584"/><path d="M140,1326.584 L140,1334.8809 L130,1344.8809 L22,1344.8809 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="108" x="25" y="1339.5791">setup message</text><rect fill="#000000" filter="url(#fjrexx23r0l7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1248" x="32" y="1361.8809"/><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="261" x="46" y="1394.8652"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="241" x="56" y="1416.0039">iterate topic's pointer to this message</text><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="317" y="1394.8652"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="327" y="1416.0039">copy payload to message</text><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="507" y="1394.8652"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="517" y="1416.0039">set origin time of message</text><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="704" y="1394.8652"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="714" y="1416.0039">set number of HRT consumers (from topic)</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="254" x="1012" y="1387.8809"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1012" x2="1023" y1="1404.8652" y2="1404.8652"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="1023" y="1408.5195">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1255" x2="1266" y1="1404.8652" y2="1404.8652"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="230" x="1026" y="1422.9883">set numer of consumers (from topic)</text><rect fill="#000000" filter="url(#fjrexx23r0l7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1248" x="32" y="1455.8184"/><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="398" x="1318" y="1379.7324"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1318" x2="1377.5" y1="1396.7168" y2="1396.7168"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="279" x="1377.5" y="1400.3711">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1656.5" x2="1716" y1="1396.7168" y2="1396.7168"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="378" x="1328" y="1414.8398">set QoS rate timer (@topic) wrt. most critical HRT subscriber</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="376.1094" style="stroke: #000000; stroke-width: 2.0;" width="888" x="1744" y="1210.6465"/><path d="M2119,1211.6465 L2119,1219.9434 L2109,1229.9434 L1744,1229.9434 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="365" x="1747" y="1224.6416">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="241" x="2240" y="1246.9434"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="221" x="2250" y="1268.082">access first HRT subscriber of topic</text><path d="M1788,1410.1191 L1788,1450.3848 A0,0 0 0 0 1788,1450.3848 L2113,1450.3848 A0,0 0 0 0 2113,1450.3848 L2113,1434.252 L2133,1430.252 L2113,1426.252 L2113,1420.1191 L2103,1410.1191 L1788,1410.1191 A0,0 0 0 0 1788,1410.1191 " fill="#FBFB77" filter="url(#fjrexx23r0l7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2103,1410.1191 L2103,1420.1191 L2113,1420.1191 L2103,1410.1191 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="108" x="1794" y="1427.186">No lock required.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="304" x="1794" y="1442.3188">This timer is only accessed while topic is locked.</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="455" x="2133" y="1413.2676"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="435" x="2143" y="1434.4063">set QoS deadline timer (@subscriber) wrt. origin time of the message</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="2221.5,1361.7168,2499.5,1361.7168,2511.5,1373.7168,2499.5,1385.7168,2221.5,1385.7168,2209.5,1373.7168,2221.5,1361.7168" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2364.5" y="1395.9272">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="278" x="2221.5" y="1377.5249">QoS deadline timer (@subscriber) is not armed?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2511.5" y="1371.1226">no</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="2360.5,1474.7871,2372.5,1486.7871,2360.5,1498.7871,2348.5,1486.7871,2360.5,1474.7871" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="218" x="2251.5" y="1518.7871"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="198" x="2261.5" y="1539.9258">proceed to next HRT subscriber</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="2280,1300.9121,2441,1300.9121,2453,1312.9121,2441,1324.9121,2280,1324.9121,2268,1312.9121,2280,1300.9121" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2364.5" y="1335.1226">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="123" x="2280" y="1316.7202">HRT subscriber is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="2407" y="1316.7202">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="2435" y="1316.7202">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2254" y="1310.3179">no</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="343" x="2642" y="1379.7324"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2642" x2="2697.5" y1="1396.7168" y2="1396.7168"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="2697.5" y="1400.3711">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2929.5" x2="2985" y1="1396.7168" y2="1396.7168"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="323" x="2652" y="1414.8398">increment counter of published messages (@topic)</text><rect fill="#000000" filter="url(#fjrexx23r0l7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2987" x="10" y="1606.7559"/><path d="M1091.5,1637.1738 L1091.5,1662.3066 A0,0 0 0 0 1091.5,1662.3066 L1427.5,1662.3066 A0,0 0 0 0 1427.5,1662.3066 L1427.5,1655.1738 L1447.5,1649.7402 L1427.5,1647.1738 L1427.5,1647.1738 L1417.5,1637.1738 L1091.5,1637.1738 A0,0 0 0 0 1091.5,1637.1738 " fill="#FBFB77" filter="url(#fjrexx23r0l7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1417.5,1637.1738 L1417.5,1647.1738 L1427.5,1647.1738 L1417.5,1637.1738 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="315" x="1097.5" y="1654.2407">Msut be within topic lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="1447.5" y="1632.7559"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="1457.5" y="1653.8945">fire event</text><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1439" y="1686.7246"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1449" y="1707.8633">unlock topic</text><path d="M1274,1739.127 L1274,1764.2598 A0,0 0 0 0 1274,1764.2598 L1456,1764.2598 A0,0 0 0 0 1456,1764.2598 L1456,1757.127 L1476,1751.6934 L1456,1749.127 L1456,1749.127 L1446,1739.127 L1274,1739.127 A0,0 0 0 0 1274,1739.127 " fill="#FBFB77" filter="url(#fjrexx23r0l7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1446,1739.127 L1446,1749.127 L1456,1749.127 L1446,1739.127 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1280" y="1756.1938">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1333" y="1756.1938">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1437" y="1756.1938">.</text><ellipse cx="1487" cy="1751.6934" fill="#FFFFFF" filter="url(#fjrexx23r0l7p)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1487" cy="1751.6934" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="319.8516" y2="339.8516"/><polygon fill="#A80036" points="1483,329.8516,1487,339.8516,1491,329.8516,1487,333.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="359.8516" y2="379.8516"/><polygon fill="#A80036" points="1483,369.8516,1487,379.8516,1491,369.8516,1487,373.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1342" x2="1342" y1="439.8203" y2="466.8047"/><polygon fill="#A80036" points="1338,456.8047,1342,466.8047,1346,456.8047,1342,460.8047" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1601.5" x2="1601.5" y1="439.8203" y2="459.8203"/><polygon fill="#A80036" points="1597.5,449.8203,1601.5,459.8203,1605.5,449.8203,1601.5,453.8203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1342" x2="1342" y1="500.7734" y2="527.7578"/><polygon fill="#A80036" points="1338,517.7578,1342,527.7578,1346,517.7578,1342,521.7578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1601.5" x2="1601.5" y1="507.7578" y2="527.7578"/><polygon fill="#A80036" points="1597.5,517.7578,1601.5,527.7578,1605.5,517.7578,1601.5,521.7578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="413.8203" y2="433.8203"/><polygon fill="#A80036" points="1483,423.8203,1487,433.8203,1491,423.8203,1487,427.8203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1331" x2="1331" y1="745.3745" y2="780.3745"/><polygon fill="#A80036" points="1327,770.3745,1331,780.3745,1335,770.3745,1331,774.3745" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1331" x2="1331" y1="814.3433" y2="850.9097"/><polygon fill="#A80036" points="1327,840.9097,1331,850.9097,1335,840.9097,1331,844.9097" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1643" y1="769.8394" y2="817.8394"/><polygon fill="#A80036" points="1639,807.8394,1643,817.8394,1647,807.8394,1643,811.8394" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1799" x2="1811" y1="906.4761" y2="906.4761"/><polygon fill="#A80036" points="1807,844.8237,1811,834.8237,1815,844.8237,1811,840.8237" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1811" x2="1811" y1="757.8394" y2="906.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1811" x2="1655" y1="757.8394" y2="757.8394"/><polygon fill="#A80036" points="1665,753.8394,1655,757.8394,1665,761.8394,1661,757.8394" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1643" y1="851.8081" y2="894.4761"/><polygon fill="#A80036" points="1639,884.4761,1643,894.4761,1647,884.4761,1643,888.4761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1643" y1="721.437" y2="745.8394"/><polygon fill="#A80036" points="1639,735.8394,1643,745.8394,1647,735.8394,1643,739.8394" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1756" x2="1833" y1="709.437" y2="709.437"/><polygon fill="#A80036" points="1829,831.2261,1833,841.2261,1837,831.2261,1833,835.2261" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1833" x2="1833" y1="709.437" y2="954.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1833" x2="1655" y1="954.375" y2="954.375"/><polygon fill="#A80036" points="1665,950.375,1655,954.375,1665,958.375,1661,954.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1643" y1="918.4761" y2="942.375"/><polygon fill="#A80036" points="1639,932.375,1643,942.375,1647,932.375,1643,936.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1422" x2="1331" y1="675.437" y2="675.437"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1331" x2="1331" y1="675.437" y2="697.437"/><polygon fill="#A80036" points="1327,687.437,1331,697.437,1335,687.437,1331,691.437" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1552" x2="1643" y1="675.437" y2="675.437"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1643" y1="675.437" y2="697.437"/><polygon fill="#A80036" points="1639,687.437,1643,697.437,1647,687.437,1643,691.437" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1643" y1="966.375" y2="976.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1867" y1="976.375" y2="976.375"/><polygon fill="#A80036" points="1863,784.3394,1867,774.3394,1871,784.3394,1867,780.3394" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1867" x2="1867" y1="565.7578" y2="976.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1867" x2="1607.5" y1="565.7578" y2="565.7578"/><polygon fill="#A80036" points="1617.5,561.7578,1607.5,565.7578,1617.5,569.7578,1613.5,565.7578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="643.437" y2="663.437"/><polygon fill="#A80036" points="1483,653.437,1487,663.437,1491,653.437,1487,657.437" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="577.7578" y2="609.4683"/><polygon fill="#A80036" points="1483,599.4683,1487,609.4683,1491,599.4683,1487,603.4683" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1366.5" x2="998" y1="565.7578" y2="565.7578"/><polygon fill="#A80036" points="994,770.3394,998,780.3394,1002,770.3394,998,774.3394" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="998" x2="998" y1="565.7578" y2="988.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="998" x2="1487" y1="988.375" y2="988.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="988.375" y2="1035.4736"/><polygon fill="#A80036" points="1483,1025.4736,1487,1035.4736,1491,1025.4736,1487,1029.4736" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="533.7578" y2="553.7578"/><polygon fill="#A80036" points="1483,543.7578,1487,553.7578,1491,543.7578,1487,547.7578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="1059.4736" y2="1083.876"/><polygon fill="#A80036" points="1483,1073.876,1487,1083.876,1491,1073.876,1487,1077.876" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1597" x2="1669" y1="1047.4736" y2="1047.4736"/><polygon fill="#A80036" points="1665,1090.8604,1669,1100.8604,1673,1090.8604,1669,1094.8604" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1669" x2="1669" y1="1047.4736" y2="1149.8447"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1669" x2="1499" y1="1149.8447" y2="1149.8447"/><polygon fill="#A80036" points="1509,1145.8447,1499,1149.8447,1509,1153.8447,1505,1149.8447" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="1117.8447" y2="1137.8447"/><polygon fill="#A80036" points="1483,1127.8447,1487,1137.8447,1491,1127.8447,1487,1131.8447" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="176.5" x2="176.5" y1="1367.8809" y2="1394.8652"/><polygon fill="#A80036" points="172.5,1384.8652,176.5,1394.8652,180.5,1384.8652,176.5,1388.8652" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="407" x2="407" y1="1367.8809" y2="1394.8652"/><polygon fill="#A80036" points="403,1384.8652,407,1394.8652,411,1384.8652,407,1388.8652" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="600.5" x2="600.5" y1="1367.8809" y2="1394.8652"/><polygon fill="#A80036" points="596.5,1384.8652,600.5,1394.8652,604.5,1384.8652,600.5,1388.8652" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="847" x2="847" y1="1367.8809" y2="1394.8652"/><polygon fill="#A80036" points="843,1384.8652,847,1394.8652,851,1384.8652,847,1388.8652" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1139" x2="1139" y1="1367.8809" y2="1387.8809"/><polygon fill="#A80036" points="1135,1377.8809,1139,1387.8809,1143,1377.8809,1139,1381.8809" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="176.5" x2="176.5" y1="1428.834" y2="1455.8184"/><polygon fill="#A80036" points="172.5,1445.8184,176.5,1455.8184,180.5,1445.8184,176.5,1449.8184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="407" x2="407" y1="1428.834" y2="1455.8184"/><polygon fill="#A80036" points="403,1445.8184,407,1455.8184,411,1445.8184,407,1449.8184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="600.5" x2="600.5" y1="1428.834" y2="1455.8184"/><polygon fill="#A80036" points="596.5,1445.8184,600.5,1455.8184,604.5,1445.8184,600.5,1449.8184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="847" x2="847" y1="1428.834" y2="1455.8184"/><polygon fill="#A80036" points="843,1445.8184,847,1455.8184,851,1445.8184,847,1449.8184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1139" x2="1139" y1="1435.8184" y2="1455.8184"/><polygon fill="#A80036" points="1135,1445.8184,1139,1455.8184,1143,1445.8184,1139,1449.8184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1385.7168" y2="1413.2676"/><polygon fill="#A80036" points="2356.5,1403.2676,2360.5,1413.2676,2364.5,1403.2676,2360.5,1407.2676" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2511.5" x2="2598" y1="1373.7168" y2="1373.7168"/><polygon fill="#A80036" points="2594,1420.252,2598,1430.252,2602,1420.252,2598,1424.252" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2598" x2="2598" y1="1373.7168" y2="1486.7871"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2598" x2="2372.5" y1="1486.7871" y2="1486.7871"/><polygon fill="#A80036" points="2382.5,1482.7871,2372.5,1486.7871,2382.5,1490.7871,2378.5,1486.7871" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1447.2363" y2="1474.7871"/><polygon fill="#A80036" points="2356.5,1464.7871,2360.5,1474.7871,2364.5,1464.7871,2360.5,1468.7871" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1498.7871" y2="1518.7871"/><polygon fill="#A80036" points="2356.5,1508.7871,2360.5,1518.7871,2364.5,1508.7871,2360.5,1512.7871" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1324.9121" y2="1361.7168"/><polygon fill="#A80036" points="2356.5,1351.7168,2360.5,1361.7168,2364.5,1351.7168,2360.5,1355.7168" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1552.7559" y2="1562.7559"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2616" y1="1562.7559" y2="1562.7559"/><polygon fill="#A80036" points="2612,1456.334,2616,1446.334,2620,1456.334,2616,1452.334" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2616" x2="2616" y1="1312.9121" y2="1562.7559"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2616" x2="2453" y1="1312.9121" y2="1312.9121"/><polygon fill="#A80036" points="2463,1308.9121,2453,1312.9121,2463,1316.9121,2459,1312.9121" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2268" x2="1766" y1="1312.9121" y2="1312.9121"/><polygon fill="#A80036" points="1762,1442.334,1766,1452.334,1770,1442.334,1766,1446.334" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1766" x2="1766" y1="1312.9121" y2="1574.7559"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1766" x2="2360.5" y1="1574.7559" y2="1574.7559"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1574.7559" y2="1606.7559"/><polygon fill="#A80036" points="2356.5,1596.7559,2360.5,1606.7559,2364.5,1596.7559,2360.5,1600.7559" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1280.9121" y2="1300.9121"/><polygon fill="#A80036" points="2356.5,1290.9121,2360.5,1300.9121,2364.5,1290.9121,2360.5,1294.9121" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="650" x2="650" y1="1199.8447" y2="1361.8809"/><polygon fill="#A80036" points="646,1351.8809,650,1361.8809,654,1351.8809,650,1355.8809" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1517" x2="1517" y1="1199.8447" y2="1379.7324"/><polygon fill="#A80036" points="1513,1369.7324,1517,1379.7324,1521,1369.7324,1517,1373.7324" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1199.8447" y2="1246.9434"/><polygon fill="#A80036" points="2356.5,1236.9434,2360.5,1246.9434,2364.5,1236.9434,2360.5,1240.9434" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2813.5" x2="2813.5" y1="1199.8447" y2="1379.7324"/><polygon fill="#A80036" points="2809.5,1369.7324,2813.5,1379.7324,2817.5,1369.7324,2813.5,1373.7324" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="650" x2="650" y1="1461.8184" y2="1606.7559"/><polygon fill="#A80036" points="646,1596.7559,650,1606.7559,654,1596.7559,650,1600.7559" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1517" x2="1517" y1="1427.6699" y2="1606.7559"/><polygon fill="#A80036" points="1513,1596.7559,1517,1606.7559,1521,1596.7559,1517,1600.7559" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2813.5" x2="2813.5" y1="1427.6699" y2="1606.7559"/><polygon fill="#A80036" points="2809.5,1596.7559,2813.5,1606.7559,2817.5,1596.7559,2813.5,1600.7559" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="1161.8447" y2="1193.8447"/><polygon fill="#A80036" points="1483,1183.8447,1487,1193.8447,1491,1183.8447,1487,1187.8447" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="1612.7559" y2="1632.7559"/><polygon fill="#A80036" points="1483,1622.7559,1487,1632.7559,1491,1622.7559,1487,1626.7559" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="1666.7246" y2="1686.7246"/><polygon fill="#A80036" points="1483,1676.7246,1487,1686.7246,1491,1676.7246,1487,1680.7246" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="1720.6934" y2="1740.6934"/><polygon fill="#A80036" points="1483,1730.6934,1487,1740.6934,1491,1730.6934,1487,1734.6934" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7a15d687b809606f6c1047ce89f2f656]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtPublisherPublish()\n |
... | ... | |
11 | 11 |
- - **payload** : void* - - |
12 | 12 |
Pointer to the data to be published. |
13 | 13 |
May be ""NULL"" for messages without payload. |
14 |
- - **n** : size_t - -
|
|
14 |
- - **bytes** : size_t - -
|
|
15 | 15 |
Size of the payload in bytes. |
16 | 16 |
- - **t** : urt_osTime_t - - |
17 | 17 |
Timestamp to be set for the message. |
... | ... | |
20 | 20 |
==== |
21 | 21 |
- - **return** : urt_status_t - - |
22 | 22 |
Returns ""URT_STATUS_OK"" on success. |
23 |
Returns ""URT_STATUS_ERROR"" on timeout.
|
|
23 |
Returns ""URT_STATUS_PUBLISH_TIMEOUT"" on timeout.
|
|
24 | 24 |
endnote |
25 | 25 |
|
26 | 26 |
|
27 | 27 |
start |
28 | 28 |
:lock topic; |
29 |
:access topic's next message; |
|
29 |
fork |
|
30 |
:access topic's next message; |
|
31 |
fork again |
|
32 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of publish attempts; |
|
33 |
endfork |
|
30 | 34 |
while (HRT consumers left for the message?) is (yes) |
31 | 35 |
:wait for topic's condition variable (using topic's mutex) to be signaled or timeout; |
32 | 36 |
if (Timeout occurred?) then (yes) |
37 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of publish fails; |
|
33 | 38 |
:unlock topic; |
34 | 39 |
stop |
35 | 40 |
note |
36 |
Returns ""URT_STATUS_ERROR"".
|
|
41 |
Returns ""URT_STATUS_PUBLISH_TIMEOUT"".
|
|
37 | 42 |
endnote |
38 | 43 |
else (no) |
39 | 44 |
if (Message timestamp was modified?) then (yes) |
40 |
:access topic's next message; |
|
45 |
repeat |
|
46 |
:proceed to next message; |
|
47 |
repeat while (Timestamp is younger than of previous message?) is (yes) |
|
48 |
->no; |
|
41 | 49 |
else (no) |
42 | 50 |
endif |
43 | 51 |
endif |
44 | 52 |
endwhile (no) |
53 |
partition "//URT_CFG_PUBSUB_PROFILING == true//" #EEEEEE { |
|
54 |
if (Consumers left for this message?) then (yes) |
|
55 |
#EEEEEE:increment counter of discarded messages (@topic); |
|
56 |
else (no) |
|
57 |
endif |
|
58 |
} |
|
45 | 59 |
fork |
46 |
fork |
|
47 |
:iterate topic pointer to this message; |
|
48 |
fork again |
|
49 |
:copy payload to message; |
|
50 |
fork again |
|
51 |
:set origin time of message; |
|
52 |
fork again |
|
53 |
:set number of HRT consumers (from topic); |
|
54 |
endfork |
|
60 |
partition "setup message" { |
|
61 |
fork |
|
62 |
:iterate topic's pointer to this message; |
|
63 |
fork again |
|
64 |
:copy payload to message; |
|
65 |
fork again |
|
66 |
:set origin time of message; |
|
67 |
fork again |
|
68 |
:set number of HRT consumers (from topic); |
|
69 |
fork again |
|
70 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//.. |
|
71 |
set numer of consumers (from topic); |
|
72 |
endfork |
|
73 |
} |
|
55 | 74 |
fork again |
56 |
:set QoS rate timer (@topic) wrt. most critical HRT subscriber;
|
|
75 |
#EEEEEE:..//URT_CFG_PUBSUB_QOS_RATECHECKS == true//..\nset QoS rate timer (@topic) wrt. most critical HRT subscriber;
|
|
57 | 76 |
fork again |
58 |
while (HRT subscribers left?) is (yes) |
|
59 |
if (QoS delay timer (@subscriber) is not armed?) then (yes) |
|
60 |
:set QoS delay timer (@subscriber) wrt. origin time of the message; |
|
61 |
note: No lock required since this timer is only accessed when the topic is locked. |
|
62 |
else (no) |
|
63 |
endif |
|
64 |
:iterate to next HRT subscriber; |
|
65 |
endwhile (no) |
|
77 |
partition "//URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true//" #EEEEEE { |
|
78 |
#EEEEEE:access first HRT subscriber of topic; |
|
79 |
while (HRT subscriber is not ""NULL""?) is (yes) |
|
80 |
if (QoS deadline timer (@subscriber) is not armed?) then (yes) |
|
81 |
#EEEEEE:set QoS deadline timer (@subscriber) wrt. origin time of the message; |
|
82 |
note |
|
83 |
No lock required. |
|
84 |
This timer is only accessed while topic is locked. |
|
85 |
endnote |
|
86 |
else (no) |
|
87 |
endif |
|
88 |
#EEEEEE:proceed to next HRT subscriber; |
|
89 |
endwhile (no) |
|
90 |
} |
|
91 |
fork again |
|
92 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of published messages (@topic); |
|
66 | 93 |
endfork |
67 | 94 |
:fire event; |
68 | 95 |
note: Msut be within topic lock because of HRT counter. |
doc/activitydiagrams/publisher/urtPublisherPublish.uml | ||
---|---|---|
34 | 34 |
-- **payload** : void* -- |
35 | 35 |
Pointer to the data to be published. |
36 | 36 |
May be ""NULL"" for messages without payload. |
37 |
-- **n** : size_t --
|
|
37 |
-- **bytes** : size_t --
|
|
38 | 38 |
Size of the payload in bytes. |
39 | 39 |
-- **t** : urt_osTime_t -- |
40 | 40 |
Timestamp to be set for the message. |
... | ... | |
43 | 43 |
==== |
44 | 44 |
-- **return** : urt_status_t -- |
45 | 45 |
Returns ""URT_STATUS_OK"" on success. |
46 |
Returns ""URT_STATUS_ERROR"" on timeout.
|
|
46 |
Returns ""URT_STATUS_PUBLISH_TIMEOUT"" on timeout.
|
|
47 | 47 |
endnote |
48 | 48 |
|
49 | 49 |
/'### PROCEDURE ##############################################################'/ |
50 | 50 |
|
51 | 51 |
start |
52 | 52 |
:lock topic; |
53 |
:access topic's next message; |
|
53 |
fork |
|
54 |
:access topic's next message; |
|
55 |
fork again |
|
56 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of publish attempts; |
|
57 |
endfork |
|
54 | 58 |
while (HRT consumers left for the message?) is (yes) |
55 | 59 |
:wait for topic's condition variable (using topic's mutex) to be signaled or timeout; |
56 | 60 |
if (Timeout occurred?) then (yes) |
61 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of publish fails; |
|
57 | 62 |
:unlock topic; |
58 | 63 |
stop |
59 | 64 |
note |
60 |
Returns ""URT_STATUS_ERROR"".
|
|
65 |
Returns ""URT_STATUS_PUBLISH_TIMEOUT"".
|
|
61 | 66 |
endnote |
62 | 67 |
else (no) |
63 | 68 |
if (Message timestamp was modified?) then (yes) |
64 |
:access topic's next message; |
|
69 |
repeat |
|
70 |
:proceed to next message; |
|
71 |
repeat while (Timestamp is younger than of previous message?) is (yes) |
|
72 |
->no; |
|
65 | 73 |
else (no) |
66 | 74 |
endif |
67 | 75 |
endif |
68 | 76 |
endwhile (no) |
77 |
partition "//URT_CFG_PUBSUB_PROFILING == true//" #EEEEEE { |
|
78 |
if (Consumers left for this message?) then (yes) |
|
79 |
#EEEEEE:increment counter of discarded messages (@topic); |
|
80 |
else (no) |
|
81 |
endif |
|
82 |
} |
|
69 | 83 |
fork |
70 |
fork |
|
71 |
:iterate topic pointer to this message; |
|
72 |
fork again |
|
73 |
:copy payload to message; |
|
74 |
fork again |
|
75 |
:set origin time of message; |
|
76 |
fork again |
|
77 |
:set number of HRT consumers (from topic); |
|
78 |
endfork |
|
84 |
partition "setup message" { |
|
85 |
fork |
|
86 |
:iterate topic's pointer to this message; |
|
87 |
fork again |
|
88 |
:copy payload to message; |
|
89 |
fork again |
|
90 |
:set origin time of message; |
|
91 |
fork again |
|
92 |
:set number of HRT consumers (from topic); |
|
93 |
fork again |
|
94 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//.. |
|
95 |
set numer of consumers (from topic); |
|
96 |
endfork |
|
97 |
} |
|
79 | 98 |
fork again |
80 |
:set QoS rate timer (@topic) wrt. most critical HRT subscriber;
|
|
99 |
#EEEEEE:..//URT_CFG_PUBSUB_QOS_RATECHECKS == true//..\nset QoS rate timer (@topic) wrt. most critical HRT subscriber;
|
|
81 | 100 |
fork again |
82 |
while (HRT subscribers left?) is (yes) |
|
83 |
if (QoS delay timer (@subscriber) is not armed?) then (yes) |
|
84 |
:set QoS delay timer (@subscriber) wrt. origin time of the message; |
|
85 |
note: No lock required since this timer is only accessed when the topic is locked. |
|
86 |
else (no) |
|
87 |
endif |
|
88 |
:iterate to next HRT subscriber; |
|
89 |
endwhile (no) |
|
101 |
partition "//URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true//" #EEEEEE { |
|
102 |
#EEEEEE:access first HRT subscriber of topic; |
|
103 |
while (HRT subscriber is not ""NULL""?) is (yes) |
|
104 |
if (QoS deadline timer (@subscriber) is not armed?) then (yes) |
|
105 |
#EEEEEE:set QoS deadline timer (@subscriber) wrt. origin time of the message; |
|
106 |
note |
|
107 |
No lock required. |
|
108 |
This timer is only accessed while topic is locked. |
|
109 |
endnote |
|
110 |
else (no) |
|
111 |
endif |
|
112 |
#EEEEEE:proceed to next HRT subscriber; |
|
113 |
endwhile (no) |
|
114 |
} |
|
115 |
fork again |
|
116 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of published messages (@topic); |
|
90 | 117 |
endfork |
91 | 118 |
:fire event; |
92 | 119 |
note: Msut be within topic lock because of HRT counter. |
doc/activitydiagrams/service/urtServiceCall.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="454px" preserveAspectRatio="none" style="width:546px;height:454px;" version="1.1" viewBox="0 0 546 454" width="546px" zoomAndPan="magnify"><defs><filter height="300%" id="f16q4gx290h24v" 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="227.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="139" x="202.5" y="47.6611">urtServiceCall()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="275" y="68.6143"/><path d="M100,72.8594 L100,304.7188 L534,304.7188 L534,82.8594 L524,72.8594 L100,72.8594 " fill="#FBFB77" filter="url(#f16q4gx290h24v)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M524,72.8594 L524,82.8594 L534,82.8594 L524,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="236.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="240.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="240.5" y="89.4263">service</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="296.5" y="89.4263">: urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="397.5" x2="534" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="118" x="106" y="105.0591">The service to call.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="106" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="186" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="218" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="278" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="282" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="25" x="282" y="134.8247">arg</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="311" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="356" x2="534" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="106" y="150.4575">Optional argument for the service call.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="106" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="156" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="233" x="192" y="165.5903">if the service expects no arguments.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="280" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="284" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="284" y="180.2231">ret</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="309" y="180.2231">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="354" x2="534" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="222" x="106" y="195.856">Pointer to an optional return value.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="106" y="210.9888">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="156" y="210.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="188" y="210.9888">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="243" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="247" y="225.6216"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="57" x="247" y="225.6216">timeout</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="308" y="225.6216">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="391" x2="534" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="361" x="106" y="241.2544">Timeout delay to be propagated to the callback function.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="413" x="106" y="256.3872">Whether timeout is considered depends on the callback function.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="534" y1="264.4531" y2="264.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="534" y1="266.4531" y2="266.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="246" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="250" y="281.02"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="250" y="281.02">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="299" y="281.02">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="388" x2="534" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="106" y="296.6528">Returns the exact output status of the service call.</text><ellipse cx="317" cy="334.7188" fill="#000000" filter="url(#f16q4gx290h24v)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f16q4gx290h24v)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="188" y="364.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="123" x="198" y="385.8574">execute the service</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="56" x="325" y="385.8574">callback</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="51" x="385" y="385.8574">function</text><path d="M10,417.1211 L10,442.2539 A0,0 0 0 0 10,442.2539 L286,442.2539 A0,0 0 0 0 286,442.2539 L286,435.1211 L306,429.6875 L286,427.1211 L286,427.1211 L276,417.1211 L10,417.1211 A0,0 0 0 0 10,417.1211 " fill="#FBFB77" filter="url(#f16q4gx290h24v)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M276,417.1211 L276,427.1211 L286,427.1211 L276,417.1211 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="255" x="16" y="434.188">Returns the return value of the callback.</text><ellipse cx="317" cy="429.6875" fill="#FFFFFF" filter="url(#f16q4gx290h24v)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="317" cy="429.6875" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="313,314.7188,317,324.7188,321,314.7188,317,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="313,354.7188,317,364.7188,321,354.7188,317,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="398.6875" y2="418.6875"/><polygon fill="#A80036" points="313,408.6875,317,418.6875,321,408.6875,317,412.6875" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[94e5d863c1a936c9a03c45d8e869c617]
|
|
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="788px" preserveAspectRatio="none" style="width:1219px;height:788px;" version="1.1" viewBox="0 0 1219 788" width="1219px" zoomAndPan="magnify"><defs><filter height="300%" id="f15pkoa3awclp5" 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="564" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="139" x="539" y="47.6611">urtServiceCall()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="611.5" y="68.6143"/><path d="M402,72.8594 L402,304.7188 L836,304.7188 L836,82.8594 L826,72.8594 L402,72.8594 " fill="#FBFB77" filter="url(#f15pkoa3awclp5)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M826,72.8594 L826,82.8594 L836,82.8594 L826,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="402" x2="538.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="542.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="542.5" y="89.4263">service</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="598.5" y="89.4263">: urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="699.5" x2="836" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="118" x="408" y="105.0591">The service to call.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="408" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="488" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="520" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="402" x2="580" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="584" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="25" x="584" y="134.8247">arg</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="613" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="658" x2="836" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="408" y="150.4575">Optional argument for the service call.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="408" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="458" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="233" x="494" y="165.5903">if the service expects no arguments.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="402" x2="582" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="586" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="586" y="180.2231">ret</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="611" y="180.2231">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="656" x2="836" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="225" x="408" y="195.856">Pointer to an optional output value.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="408" y="210.9888">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="458" y="210.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="490" y="210.9888">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="402" x2="545" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="549" y="225.6216"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="57" x="549" y="225.6216">timeout</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="610" y="225.6216">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="693" x2="836" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="361" x="408" y="241.2544">Timeout delay to be propagated to the callback function.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="413" x="408" y="256.3872">Whether timeout is considered depends on the callback function.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="402" x2="836" y1="264.4531" y2="264.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="402" x2="836" y1="266.4531" y2="266.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="402" x2="548" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="552" y="281.02"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="552" y="281.02">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="601" y="281.02">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="690" x2="836" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="408" y="296.6528">Returns the exact output status of the service call.</text><ellipse cx="619" cy="334.7188" fill="#000000" filter="url(#f15pkoa3awclp5)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#EEEEEE" filter="url(#f15pkoa3awclp5)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="506" y="364.7188"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="506" x2="516" y1="381.7031" y2="381.7031"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="206" x="516" y="385.3574">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="722" x2="732" y1="381.7031" y2="381.7031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="141" x="516" y="399.8262">increment call counter</text><rect fill="#FEFECE" filter="url(#f15pkoa3awclp5)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="490" y="432.6563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="123" x="500" y="453.7949">execute the service</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="56" x="627" y="453.7949">callback</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="51" x="687" y="453.7949">function</text><rect fill="#EEEEEE" filter="url(#f15pkoa3awclp5)" height="255.0703" style="stroke: #000000; stroke-width: 2.0;" width="1198" x="10" y="477.4268"/><path d="M262,478.4268 L262,486.7236 L252,496.7236 L10,496.7236 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="242" x="13" y="491.4219">URT_CFG_RPC_PROFILING == true</text><rect fill="#000000" filter="url(#f15pkoa3awclp5)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1178" x="20" y="513.7236"/><rect fill="#EEEEEE" filter="url(#f15pkoa3awclp5)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="203" x="34" y="593.126"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="183" x="44" y="614.2646">accumulate sum of durations</text><rect fill="#EEEEEE" filter="url(#f15pkoa3awclp5)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="188" x="327.5" y="593.126"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="168" x="337.5" y="614.2646">increment timeout counter</text><polygon fill="#FEFECE" filter="url(#f15pkoa3awclp5)" points="277,544.7236,566,544.7236,578,556.7236,566,568.7236,277,568.7236,265,556.7236,277,544.7236" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="425.5" y="578.9341">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="97" x="277" y="560.5317">Calback returned</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="182" x="378" y="560.5317">URT_STATUS_SERVICE_TIMEOUT</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="560" y="560.5317">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="578" y="554.1294">no</text><polygon fill="#FEFECE" filter="url(#f15pkoa3awclp5)" points="421.5,650.4971,433.5,662.4971,421.5,674.4971,409.5,662.4971,421.5,650.4971" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f15pkoa3awclp5)" points="630,539.7236,867,539.7236,879,551.7236,867,563.7236,630,563.7236,618,551.7236,630,539.7236" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="752.5" y="573.9341">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="630" y="555.5317">Duration was shorter than</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="77" x="784" y="555.5317">minDuration</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="861" y="555.5317">?</text><rect fill="#EEEEEE" filter="url(#f15pkoa3awclp5)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="183" x="657" y="596.5283"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="45" x="667" y="617.667">update</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="716" y="617.667">minDuration</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="797" y="617.667">value</text><polygon fill="#FEFECE" filter="url(#f15pkoa3awclp5)" points="911,539.7236,1142,539.7236,1154,551.7236,1142,563.7236,911,563.7236,899,551.7236,911,539.7236" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1030.5" y="573.9341">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="911" y="555.5317">Duration was longer than</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="77" x="1059" y="555.5317">maxDuration</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="1136" y="555.5317">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1154" y="549.1294">no</text><rect fill="#EEEEEE" filter="url(#f15pkoa3awclp5)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="183" x="935" y="596.5283"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="45" x="945" y="617.667">update</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="994" y="617.667">maxDuration</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="1075" y="617.667">value</text><rect fill="#000000" filter="url(#f15pkoa3awclp5)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1178" x="20" y="714.4971"/><path d="M312,750.9307 L312,776.0635 A0,0 0 0 0 312,776.0635 L588,776.0635 A0,0 0 0 0 588,776.0635 L588,768.9307 L608,763.4971 L588,760.9307 L588,760.9307 L578,750.9307 L312,750.9307 A0,0 0 0 0 312,750.9307 " fill="#FBFB77" filter="url(#f15pkoa3awclp5)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M578,750.9307 L578,760.9307 L588,760.9307 L578,750.9307 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="255" x="318" y="767.9976">Returns the return value of the callback.</text><ellipse cx="619" cy="763.4971" fill="#FFFFFF" filter="url(#f15pkoa3awclp5)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="619" cy="763.4971" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619" x2="619" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="615,314.7188,619,324.7188,623,314.7188,619,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619" x2="619" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="615,354.7188,619,364.7188,623,354.7188,619,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619" x2="619" y1="412.6563" y2="432.6563"/><polygon fill="#A80036" points="615,422.6563,619,432.6563,623,422.6563,619,426.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="421.5" x2="421.5" y1="568.7236" y2="593.126"/><polygon fill="#A80036" points="417.5,583.126,421.5,593.126,425.5,583.126,421.5,587.126" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="590" y1="556.7236" y2="556.7236"/><polygon fill="#A80036" points="586,600.1104,590,610.1104,594,600.1104,590,604.1104" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="590" x2="590" y1="556.7236" y2="662.4971"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="590" x2="433.5" y1="662.4971" y2="662.4971"/><polygon fill="#A80036" points="443.5,658.4971,433.5,662.4971,443.5,666.4971,439.5,662.4971" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="421.5" x2="421.5" y1="627.0947" y2="650.4971"/><polygon fill="#A80036" points="417.5,640.4971,421.5,650.4971,425.5,640.4971,421.5,644.4971" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="748.5" x2="748.5" y1="563.7236" y2="596.5283"/><polygon fill="#A80036" points="744.5,586.5283,748.5,596.5283,752.5,586.5283,748.5,590.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="748.5" x2="748.5" y1="630.4971" y2="694.4971"/><polygon fill="#A80036" points="744.5,684.4971,748.5,694.4971,752.5,684.4971,748.5,688.4971" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1026.5" x2="1026.5" y1="563.7236" y2="596.5283"/><polygon fill="#A80036" points="1022.5,586.5283,1026.5,596.5283,1030.5,586.5283,1026.5,590.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1026.5" x2="1026.5" y1="630.4971" y2="694.4971"/><polygon fill="#A80036" points="1022.5,684.4971,1026.5,694.4971,1030.5,684.4971,1026.5,688.4971" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="879" x2="899" y1="551.7236" y2="551.7236"/><polygon fill="#A80036" points="889,547.7236,899,551.7236,889,555.7236,893,551.7236" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="911" x2="911" y1="519.7236" y2="524.7236"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="911" x2="748.5" y1="524.7236" y2="524.7236"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="748.5" x2="748.5" y1="524.7236" y2="539.7236"/><polygon fill="#A80036" points="744.5,529.7236,748.5,539.7236,752.5,529.7236,748.5,533.7236" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1154" x2="1182" y1="551.7236" y2="551.7236"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1182" x2="1182" y1="551.7236" y2="694.4971"/><polygon fill="#A80036" points="1178,684.4971,1182,694.4971,1186,684.4971,1182,688.4971" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="748.5" x2="1182" y1="694.4971" y2="694.4971"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="135.5" x2="135.5" y1="519.7236" y2="593.126"/><polygon fill="#A80036" points="131.5,583.126,135.5,593.126,139.5,583.126,135.5,587.126" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="421.5" x2="421.5" y1="519.7236" y2="544.7236"/><polygon fill="#A80036" points="417.5,534.7236,421.5,544.7236,425.5,534.7236,421.5,538.7236" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="135.5" x2="135.5" y1="627.0947" y2="714.4971"/><polygon fill="#A80036" points="131.5,704.4971,135.5,714.4971,139.5,704.4971,135.5,708.4971" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="421.5" x2="421.5" y1="674.4971" y2="714.4971"/><polygon fill="#A80036" points="417.5,704.4971,421.5,714.4971,425.5,704.4971,421.5,708.4971" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="911" x2="911" y1="694.4971" y2="714.4971"/><polygon fill="#A80036" points="907,704.4971,911,714.4971,915,704.4971,911,708.4971" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619" x2="619" y1="466.625" y2="513.7236"/><polygon fill="#A80036" points="615,503.7236,619,513.7236,623,503.7236,619,507.7236" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619" x2="619" y1="720.4971" y2="752.4971"/><polygon fill="#A80036" points="615,742.4971,619,752.4971,623,742.4971,619,746.4971" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9abbf63e143f272cc34ce6b0745131bf]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtServiceCall()\n |
... | ... | |
12 | 12 |
Optional argument for the service call. |
13 | 13 |
May be ""NULL"" if the service expects no arguments. |
14 | 14 |
- - **ret** : void* - - |
15 |
Pointer to an optional return value.
|
|
15 |
Pointer to an optional output value.
|
|
16 | 16 |
May be ""NULL"". |
17 | 17 |
- - **timeout** : urt_delay_t - - |
18 | 18 |
Timeout delay to be propagated to the callback function. |
... | ... | |
24 | 24 |
|
25 | 25 |
|
26 | 26 |
start |
27 |
#EEEEEE:..//URT_CFG_RPC_PROFILING == true//..\nincrement call counter; |
|
27 | 28 |
:execute the service ""callback"" function; |
29 |
partition "//URT_CFG_RPC_PROFILING == true//" #EEEEEE { |
|
30 |
fork |
|
31 |
#EEEEEE:accumulate sum of durations; |
|
32 |
fork again |
|
33 |
if (Calback returned ""URT_STATUS_SERVICE_TIMEOUT""?) then (yes) |
|
34 |
#EEEEEE:increment timeout counter; |
|
35 |
else (no) |
|
36 |
endif |
|
37 |
fork again |
|
38 |
if (Duration was shorter than ""minDuration""?) then (yes) |
|
39 |
#EEEEEE:update ""minDuration"" value; |
|
40 |
elseif (Duration was longer than ""maxDuration""?) then (yes) |
|
41 |
#EEEEEE:update ""maxDuration"" value; |
|
42 |
else (no) |
|
43 |
endif |
|
44 |
endfork |
|
45 |
} |
|
28 | 46 |
stop |
29 | 47 |
note |
30 | 48 |
Returns the return value of the callback. |
doc/activitydiagrams/service/urtServiceCall.uml | ||
---|---|---|
35 | 35 |
Optional argument for the service call. |
36 | 36 |
May be ""NULL"" if the service expects no arguments. |
37 | 37 |
-- **ret** : void* -- |
38 |
Pointer to an optional return value.
|
|
38 |
Pointer to an optional output value.
|
|
39 | 39 |
May be ""NULL"". |
40 | 40 |
-- **timeout** : urt_delay_t -- |
41 | 41 |
Timeout delay to be propagated to the callback function. |
... | ... | |
48 | 48 |
/'### PROCEDURE ##############################################################'/ |
49 | 49 |
|
50 | 50 |
start |
51 |
#EEEEEE:..//URT_CFG_RPC_PROFILING == true//..\nincrement call counter; |
|
51 | 52 |
:execute the service ""callback"" function; |
53 |
partition "//URT_CFG_RPC_PROFILING == true//" #EEEEEE { |
|
54 |
fork |
|
55 |
#EEEEEE:accumulate sum of durations; |
|
56 |
fork again |
|
57 |
if (Calback returned ""URT_STATUS_SERVICE_TIMEOUT""?) then (yes) |
|
58 |
#EEEEEE:increment timeout counter; |
|
59 |
else (no) |
|
60 |
endif |
|
61 |
fork again |
|
62 |
if (Duration was shorter than ""minDuration""?) then (yes) |
|
63 |
#EEEEEE:update ""minDuration"" value; |
|
64 |
elseif (Duration was longer than ""maxDuration""?) then (yes) |
|
65 |
#EEEEEE:update ""maxDuration"" value; |
|
66 |
else (no) |
|
67 |
endif |
|
68 |
endfork |
|
69 |
} |
|
52 | 70 |
stop |
53 | 71 |
note |
54 | 72 |
Returns the return value of the callback. |
doc/activitydiagrams/service/urtServiceInit.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="977px" preserveAspectRatio="none" style="width:1146px;height:977px;" version="1.1" viewBox="0 0 1146 977" width="1146px" zoomAndPan="magnify"><defs><filter height="300%" id="f1snfj7r7itc1b" 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="527.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="135" x="504.5" y="47.6611">urtServiceInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="575" y="68.6143"/><path d="M355,72.8594 L355,259.3203 L920,259.3203 L920,82.8594 L910,72.8594 L355,72.8594 " fill="#FBFB77" filter="url(#f1snfj7r7itc1b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M910,72.8594 L910,82.8594 L920,82.8594 L910,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="355" x2="557" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="561" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="561" y="89.4263">service</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="617" y="89.4263">: urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="718" x2="920" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="148" x="361" y="105.0591">The service to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="361" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="441" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="473" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="355" x2="574" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="578" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="578" y="134.8247">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="101" x="596" y="134.8247">: urt_serviceid_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="701" x2="920" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="258" x="361" y="150.4575">Unique, numeric identifier of the service.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="355" x2="539" y1="161.0898" y2="161.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="543" y="165.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="61" x="543" y="165.0903">callback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="124" x="608" y="165.0903">: urt_servicefunc_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="736" x2="920" y1="161.0898" y2="161.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="307" x="361" y="180.7231">Callabck function to be executed by this service.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="361" y="195.856">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="441" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="473" y="195.856">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="355" x2="920" y1="203.9219" y2="203.9219"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="355" x2="920" y1="205.9219" y2="205.9219"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="355" x2="566.5" y1="216.4883" y2="216.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="570.5" y="220.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="570.5" y="220.4888">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="619.5" y="220.4888">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="708.5" x2="920" y1="216.4883" y2="216.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="361" y="236.1216">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="414" y="236.1216">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="522" y="236.1216">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="361" y="251.2544">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="414" y="251.2544">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="359" x="546" y="251.2544">if another service with the same identifier already exists.</text><ellipse cx="637.5" cy="289.3203" fill="#000000" filter="url(#f1snfj7r7itc1b)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,309.3203 L10,485.7813 A0,0 0 0 0 10,485.7813 L552,485.7813 A0,0 0 0 0 552,485.7813 L552,401.5508 L572,397.5508 L552,393.5508 L552,319.3203 L542,309.3203 L10,309.3203 A0,0 0 0 0 10,309.3203 " fill="#FBFB77" filter="url(#f1snfj7r7itc1b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M542,309.3203 L542,319.3203 L552,319.3203 L542,309.3203 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="16" y="326.3872">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="52" y="326.3872">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="67" y="326.3872">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="16" y="341.52">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="34" y="341.52">← id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="16" y="356.6528">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="97" y="356.6528">lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="127" y="356.6528">)</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="61" x="16" y="371.7856">callback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="66" x="81" y="371.7856">← callback</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="382.418" y2="382.418"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="513" x="24.5" y="386.4185">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="541.5" x2="552" y1="382.418" y2="382.418"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="90" x="16" y="402.0513">minDuration</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="110" y="402.0513">← 0xF..F</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="94" x="16" y="417.1841">maxDuration</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="114" y="417.1841">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="167.5" y1="427.8164" y2="427.8164"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="171.5" y="431.8169">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="394.5" x2="552" y1="427.8164" y2="427.8164"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="102" x="16" y="447.4497">sumDurations</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="122" y="447.4497">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="16" y="462.5825">numCalls</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="87" y="462.5825">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="16" y="477.7153">numTimeouts</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="119" y="477.7153">← 0</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="572" y="380.5664"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="582" y="401.7051">initialize members</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="599" y="505.7813"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="609" y="526.9199">lock core</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="567.5" y="559.75"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="577.5" y="580.8887">access first service</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="168" x="553.5" y="671.0386"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="563.5" y="692.1772">proceed to next service</text><polygon fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" points="569.5,613.7188,705.5,613.7188,717.5,626.5234,705.5,639.3281,569.5,639.3281,557.5,626.5234,569.5,613.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="641.5" y="649.5386">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="569.5" y="623.9292">Service is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="651.5" y="623.9292">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="569.5" y="636.7339">and service ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="543.5" y="623.9292">no</text><polygon fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" points="283,747.0073,423,747.0073,435,759.0073,423,771.0073,283,771.0073,271,759.0073,283,747.0073" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="357" y="781.2178">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="283" y="762.8154">Current service is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="389" y="762.8154">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="417" y="762.8154">?</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="246" x="230" y="802.7178"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="226" x="240" y="823.8564">append self to core's list of services</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="306.5" y="871.6865"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="316.5" y="892.8252">unlock core</text><path d="M140,940.6553 L140,965.7881 A0,0 0 0 0 140,965.7881 L322,965.7881 A0,0 0 0 0 322,965.7881 L322,958.6553 L342,953.2217 L322,950.6553 L322,950.6553 L312,940.6553 L140,940.6553 A0,0 0 0 0 140,940.6553 " fill="#FBFB77" filter="url(#f1snfj7r7itc1b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M312,940.6553 L312,950.6553 L322,950.6553 L312,940.6553 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="146" y="957.7222">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="199" y="957.7222">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="303" y="957.7222">:</text><ellipse cx="353" cy="953.2217" fill="#FFFFFF" filter="url(#f1snfj7r7itc1b)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="353" cy="953.2217" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" points="624.5,747.0073,793.5,747.0073,805.5,759.0073,793.5,771.0073,624.5,771.0073,612.5,759.0073,624.5,747.0073" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="713" y="781.2178">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="169" x="624.5" y="762.8154">Current service ID is greater?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="805.5" y="756.4131">no</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="586.5" y="802.7178"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="225" x="596.5" y="823.8564">insert self in front of current service</text><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="662.5" y="871.6865"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="672.5" y="892.8252">unlock core</text><path d="M496,940.6553 L496,965.7881 A0,0 0 0 0 496,965.7881 L678,965.7881 A0,0 0 0 0 678,965.7881 L678,958.6553 L698,953.2217 L678,950.6553 L678,950.6553 L668,940.6553 L496,940.6553 A0,0 0 0 0 496,940.6553 " fill="#FBFB77" filter="url(#f1snfj7r7itc1b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M668,940.6553 L668,950.6553 L678,950.6553 L668,940.6553 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="502" y="957.7222">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="555" y="957.7222">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="659" y="957.7222">:</text><ellipse cx="709" cy="953.2217" fill="#FFFFFF" filter="url(#f1snfj7r7itc1b)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="709" cy="953.2217" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1snfj7r7itc1b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="1042" y="833.7998"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="1052" y="854.9385">unlock core</text><path d="M851.5,902.7686 L851.5,927.9014 A0,0 0 0 0 851.5,927.9014 L1057.5,927.9014 A0,0 0 0 0 1057.5,927.9014 L1057.5,920.7686 L1077.5,915.335 L1057.5,912.7686 L1057.5,912.7686 L1047.5,902.7686 L851.5,902.7686 A0,0 0 0 0 851.5,902.7686 " fill="#FBFB77" filter="url(#f1snfj7r7itc1b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1047.5,902.7686 L1047.5,912.7686 L1057.5,912.7686 L1047.5,902.7686 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="857.5" y="919.8354">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="910.5" y="919.8354">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1038.5" y="919.8354">:</text><ellipse cx="1088.5" cy="915.335" fill="#FFFFFF" filter="url(#f1snfj7r7itc1b)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1088.5" cy="915.335" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="259.3203" y2="279.3203"/><polygon fill="#A80036" points="633.5,269.3203,637.5,279.3203,641.5,269.3203,637.5,273.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="299.3203" y2="380.5664"/><polygon fill="#A80036" points="633.5,370.5664,637.5,380.5664,641.5,370.5664,637.5,374.5664" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="414.5352" y2="505.7813"/><polygon fill="#A80036" points="633.5,495.7813,637.5,505.7813,641.5,495.7813,637.5,499.7813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="539.75" y2="559.75"/><polygon fill="#A80036" points="633.5,549.75,637.5,559.75,641.5,549.75,637.5,553.75" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="639.3281" y2="671.0386"/><polygon fill="#A80036" points="633.5,661.0386,637.5,671.0386,641.5,661.0386,637.5,665.0386" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="705.0073" y2="715.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="733.5" y1="715.0073" y2="715.0073"/><polygon fill="#A80036" points="729.5,679.2183,733.5,669.2183,737.5,679.2183,733.5,675.2183" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="733.5" x2="733.5" y1="626.5234" y2="715.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="733.5" x2="717.5" y1="626.5234" y2="626.5234"/><polygon fill="#A80036" points="727.5,622.5234,717.5,626.5234,727.5,630.5234,723.5,626.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="557.5" x2="541.5" y1="626.5234" y2="626.5234"/><polygon fill="#A80036" points="537.5,665.2183,541.5,675.2183,545.5,665.2183,541.5,669.2183" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541.5" x2="541.5" y1="626.5234" y2="727.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541.5" x2="637.5" y1="727.0073" y2="727.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="727.0073" y2="732.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="637.5" y1="593.7188" y2="613.7188"/><polygon fill="#A80036" points="633.5,603.7188,637.5,613.7188,641.5,603.7188,637.5,607.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="353" x2="353" y1="836.6865" y2="871.6865"/><polygon fill="#A80036" points="349,861.6865,353,871.6865,357,861.6865,353,865.6865" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="353" x2="353" y1="905.6553" y2="942.2217"/><polygon fill="#A80036" points="349,932.2217,353,942.2217,357,932.2217,353,936.2217" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="709" x2="709" y1="836.6865" y2="871.6865"/><polygon fill="#A80036" points="705,861.6865,709,871.6865,713,861.6865,709,865.6865" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="709" x2="709" y1="905.6553" y2="942.2217"/><polygon fill="#A80036" points="705,932.2217,709,942.2217,713,932.2217,709,936.2217" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1088.5" x2="1088.5" y1="867.7686" y2="904.335"/><polygon fill="#A80036" points="1084.5,894.335,1088.5,904.335,1092.5,894.335,1088.5,898.335" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="353" x2="353" y1="771.0073" y2="802.7178"/><polygon fill="#A80036" points="349,792.7178,353,802.7178,357,792.7178,353,796.7178" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="709" x2="709" y1="771.0073" y2="802.7178"/><polygon fill="#A80036" points="705,792.7178,709,802.7178,713,792.7178,709,796.7178" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="435" x2="612.5" y1="759.0073" y2="759.0073"/><polygon fill="#A80036" points="602.5,755.0073,612.5,759.0073,602.5,763.0073,606.5,759.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="353" y1="732.0073" y2="732.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="353" x2="353" y1="732.0073" y2="747.0073"/><polygon fill="#A80036" points="349,737.0073,353,747.0073,357,737.0073,353,741.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="805.5" x2="1088.5" y1="759.0073" y2="759.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1088.5" x2="1088.5" y1="759.0073" y2="833.7998"/><polygon fill="#A80036" points="1084.5,823.7998,1088.5,833.7998,1092.5,823.7998,1088.5,827.7998" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e97c440ea6d6ffb95ba2bae466cee68a]
|
|
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="962px" preserveAspectRatio="none" style="width:1112px;height:962px;" version="1.1" viewBox="0 0 1112 962" width="1112px" zoomAndPan="magnify"><defs><filter height="300%" id="f10ia0x871a6j9" 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="510.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="135" x="487.5" y="47.6611">urtServiceInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="558" y="68.6143"/><path d="M225,72.8594 L225,259.3203 L886,259.3203 L886,82.8594 L876,72.8594 L225,72.8594 " fill="#FBFB77" filter="url(#f10ia0x871a6j9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876,72.8594 L876,82.8594 L886,82.8594 L876,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="475" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="479" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="479" y="89.4263">service</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="535" y="89.4263">: urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="636" x2="886" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="148" x="231" y="105.0591">The service to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="231" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="311" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="343" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="492" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="496" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="496" y="134.8247">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="101" x="514" y="134.8247">: urt_serviceid_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="619" x2="886" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="258" x="231" y="150.4575">Unique, numeric identifier of the service.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="457" y1="161.0898" y2="161.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="461" y="165.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="61" x="461" y="165.0903">callback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="124" x="526" y="165.0903">: urt_servicefunc_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="654" x2="886" y1="161.0898" y2="161.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="307" x="231" y="180.7231">Callabck function to be executed by this service.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="231" y="195.856">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="311" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="343" y="195.856">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="886" y1="203.9219" y2="203.9219"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="886" y1="205.9219" y2="205.9219"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="484.5" y1="216.4883" y2="216.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="488.5" y="220.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="488.5" y="220.4888">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="537.5" y="220.4888">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="626.5" x2="886" y1="216.4883" y2="216.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="231" y="236.1216">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="284" y="236.1216">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="392" y="236.1216">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="231" y="251.2544">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="224" x="284" y="251.2544">URT_STATUS_SERVICE_DUPLICATE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="359" x="512" y="251.2544">if another service with the same identifier already exists.</text><ellipse cx="555.5" cy="289.3203" fill="#000000" filter="url(#f10ia0x871a6j9)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M222,309.3203 L222,470.6484 A0,0 0 0 0 222,470.6484 L470,470.6484 A0,0 0 0 0 470,470.6484 L470,393.9844 L490,389.9844 L470,385.9844 L470,319.3203 L460,309.3203 L222,309.3203 A0,0 0 0 0 222,309.3203 " fill="#FBFB77" filter="url(#f10ia0x871a6j9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M460,309.3203 L460,319.3203 L470,319.3203 L460,309.3203 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="233.5" cy="321.9531" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="239" y="326.3872">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="275" y="326.3872">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="290" y="326.3872">NULL</text><ellipse cx="233.5" cy="337.0859" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="239" y="341.52">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="257" y="341.52">← id</text><ellipse cx="233.5" cy="352.2188" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="239" y="356.6528">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="320" y="356.6528">lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="350" y="356.6528">)</text><ellipse cx="233.5" cy="367.3516" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="61" x="239" y="371.7856">callback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="66" x="304" y="371.7856">← callback</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="222" x2="232.5" y1="382.418" y2="382.418"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="236.5" y="386.4185">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="459.5" x2="470" y1="382.418" y2="382.418"/><ellipse cx="233.5" cy="397.6172" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="90" x="239" y="402.0513">minDuration</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="333" y="402.0513">← 0xF..F</text><ellipse cx="233.5" cy="412.75" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="94" x="239" y="417.1841">maxDuration</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="337" y="417.1841">← 0</text><ellipse cx="233.5" cy="427.8828" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="102" x="239" y="432.3169">sumDurations</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="345" y="432.3169">← 0</text><ellipse cx="233.5" cy="443.0156" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="239" y="447.4497">numCalls</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="310" y="447.4497">← 0</text><ellipse cx="233.5" cy="458.1484" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="239" y="462.5825">numTimeouts</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="342" y="462.5825">← 0</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="490" y="373"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="500" y="394.1387">initialize members</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="517" y="490.6484"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="527" y="511.7871">lock core</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="485.5" y="544.6172"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="495.5" y="565.7559">access first service</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="168" x="471.5" y="655.9058"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="481.5" y="677.0444">proceed to next service</text><polygon fill="#FEFECE" filter="url(#f10ia0x871a6j9)" points="487.5,598.5859,623.5,598.5859,635.5,611.3906,623.5,624.1953,487.5,624.1953,475.5,611.3906,487.5,598.5859" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="559.5" y="634.4058">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="487.5" y="608.7964">Service is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="569.5" y="608.7964">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="487.5" y="621.6011">and service ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="461.5" y="608.7964">no</text><polygon fill="#FEFECE" filter="url(#f10ia0x871a6j9)" points="153,731.8745,293,731.8745,305,743.8745,293,755.8745,153,755.8745,141,743.8745,153,731.8745" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="766.085">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="153" y="747.6826">Current service is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="259" y="747.6826">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="287" y="747.6826">?</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="246" x="100" y="787.585"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="226" x="110" y="808.7236">append self to core's list of services</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="856.5537"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="877.6924">unlock core</text><path d="M10,925.5225 L10,950.6553 A0,0 0 0 0 10,950.6553 L192,950.6553 A0,0 0 0 0 192,950.6553 L192,943.5225 L212,938.0889 L192,935.5225 L192,935.5225 L182,925.5225 L10,925.5225 A0,0 0 0 0 10,925.5225 " fill="#FBFB77" filter="url(#f10ia0x871a6j9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,925.5225 L182,935.5225 L192,935.5225 L182,925.5225 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="942.5894">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="942.5894">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="942.5894">:</text><ellipse cx="223" cy="938.0889" fill="#FFFFFF" filter="url(#f10ia0x871a6j9)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="938.0889" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f10ia0x871a6j9)" points="494.5,731.8745,663.5,731.8745,675.5,743.8745,663.5,755.8745,494.5,755.8745,482.5,743.8745,494.5,731.8745" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="583" y="766.085">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="169" x="494.5" y="747.6826">Current service ID is greater?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="675.5" y="741.2803">no</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="456.5" y="787.585"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="225" x="466.5" y="808.7236">insert self in front of current service</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="532.5" y="856.5537"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="542.5" y="877.6924">unlock core</text><path d="M366,925.5225 L366,950.6553 A0,0 0 0 0 366,950.6553 L548,950.6553 A0,0 0 0 0 548,950.6553 L548,943.5225 L568,938.0889 L548,935.5225 L548,935.5225 L538,925.5225 L366,925.5225 A0,0 0 0 0 366,925.5225 " fill="#FBFB77" filter="url(#f10ia0x871a6j9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M538,925.5225 L538,935.5225 L548,935.5225 L538,925.5225 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="372" y="942.5894">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="425" y="942.5894">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="529" y="942.5894">:</text><ellipse cx="579" cy="938.0889" fill="#FFFFFF" filter="url(#f10ia0x871a6j9)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="579" cy="938.0889" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="1008" y="818.667"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="1018" y="839.8057">unlock core</text><path d="M721.5,887.6357 L721.5,912.7686 A0,0 0 0 0 721.5,912.7686 L1023.5,912.7686 A0,0 0 0 0 1023.5,912.7686 L1023.5,905.6357 L1043.5,900.2021 L1023.5,897.6357 L1023.5,897.6357 L1013.5,887.6357 L721.5,887.6357 A0,0 0 0 0 721.5,887.6357 " fill="#FBFB77" filter="url(#f10ia0x871a6j9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1013.5,887.6357 L1013.5,897.6357 L1023.5,897.6357 L1013.5,887.6357 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="727.5" y="904.7026">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="224" x="780.5" y="904.7026">URT_STATUS_SERVICE_DUPLICATE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1004.5" y="904.7026">:</text><ellipse cx="1054.5" cy="900.2021" fill="#FFFFFF" filter="url(#f10ia0x871a6j9)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1054.5" cy="900.2021" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="259.3203" y2="279.3203"/><polygon fill="#A80036" points="551.5,269.3203,555.5,279.3203,559.5,269.3203,555.5,273.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="299.3203" y2="373"/><polygon fill="#A80036" points="551.5,363,555.5,373,559.5,363,555.5,367" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="406.9688" y2="490.6484"/><polygon fill="#A80036" points="551.5,480.6484,555.5,490.6484,559.5,480.6484,555.5,484.6484" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="524.6172" y2="544.6172"/><polygon fill="#A80036" points="551.5,534.6172,555.5,544.6172,559.5,534.6172,555.5,538.6172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="624.1953" y2="655.9058"/><polygon fill="#A80036" points="551.5,645.9058,555.5,655.9058,559.5,645.9058,555.5,649.9058" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="689.8745" y2="699.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="651.5" y1="699.8745" y2="699.8745"/><polygon fill="#A80036" points="647.5,664.0854,651.5,654.0854,655.5,664.0854,651.5,660.0854" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="651.5" x2="651.5" y1="611.3906" y2="699.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="651.5" x2="635.5" y1="611.3906" y2="611.3906"/><polygon fill="#A80036" points="645.5,607.3906,635.5,611.3906,645.5,615.3906,641.5,611.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="475.5" x2="459.5" y1="611.3906" y2="611.3906"/><polygon fill="#A80036" points="455.5,650.0854,459.5,660.0854,463.5,650.0854,459.5,654.0854" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="459.5" x2="459.5" y1="611.3906" y2="711.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="459.5" x2="555.5" y1="711.8745" y2="711.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="711.8745" y2="716.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="578.5859" y2="598.5859"/><polygon fill="#A80036" points="551.5,588.5859,555.5,598.5859,559.5,588.5859,555.5,592.5859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="821.5537" y2="856.5537"/><polygon fill="#A80036" points="219,846.5537,223,856.5537,227,846.5537,223,850.5537" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="890.5225" y2="927.0889"/><polygon fill="#A80036" points="219,917.0889,223,927.0889,227,917.0889,223,921.0889" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="579" x2="579" y1="821.5537" y2="856.5537"/><polygon fill="#A80036" points="575,846.5537,579,856.5537,583,846.5537,579,850.5537" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="579" x2="579" y1="890.5225" y2="927.0889"/><polygon fill="#A80036" points="575,917.0889,579,927.0889,583,917.0889,579,921.0889" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1054.5" x2="1054.5" y1="852.6357" y2="889.2021"/><polygon fill="#A80036" points="1050.5,879.2021,1054.5,889.2021,1058.5,879.2021,1054.5,883.2021" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="755.8745" y2="787.585"/><polygon fill="#A80036" points="219,777.585,223,787.585,227,777.585,223,781.585" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="579" x2="579" y1="755.8745" y2="787.585"/><polygon fill="#A80036" points="575,777.585,579,787.585,583,777.585,579,781.585" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="305" x2="482.5" y1="743.8745" y2="743.8745"/><polygon fill="#A80036" points="472.5,739.8745,482.5,743.8745,472.5,747.8745,476.5,743.8745" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="223" y1="716.8745" y2="716.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="716.8745" y2="731.8745"/><polygon fill="#A80036" points="219,721.8745,223,731.8745,227,721.8745,223,725.8745" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="675.5" x2="1054.5" y1="743.8745" y2="743.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1054.5" x2="1054.5" y1="743.8745" y2="818.667"/><polygon fill="#A80036" points="1050.5,808.667,1054.5,818.667,1058.5,808.667,1054.5,812.667" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b9741ce88a09e48af554c13bb1f6aa1c]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtServiceInit()\n |
... | ... | |
16 | 16 |
==== |
17 | 17 |
- - **return** : urt_status_t - - |
18 | 18 |
Returns ""URT_STATUS_OK"" on success. |
19 |
Returns ""URT_STATUS_ERROR"" if another service with the same identifier already exists.
|
|
19 |
Returns ""URT_STATUS_SERVICE_DUPLICATE"" if another service with the same identifier already exists.
|
|
20 | 20 |
endnote |
21 | 21 |
|
22 | 22 |
|
23 | 23 |
start |
24 | 24 |
:initialize members; |
25 | 25 |
note |
26 |
**next** ← ""NULL"" |
|
27 |
**id** ← id |
|
28 |
urtMutexInit(**lock**) |
|
29 |
**callback** ← callback |
|
30 |
.. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true .. |
|
31 |
**minDuration** ← 0xF..F |
|
32 |
**maxDuration** ← 0 |
|
26 |
* **next** ← ""NULL"" |
|
27 |
* **id** ← id |
|
28 |
* urtMutexInit(**lock**) |
|
29 |
* **callback** ← callback |
|
33 | 30 |
.. URT_CFG_RPC_PROFILING == true .. |
34 |
**sumDurations** ← 0 |
|
35 |
**numCalls** ← 0 |
|
36 |
**numTimeouts** ← 0 |
|
31 |
* **minDuration** ← 0xF..F |
|
32 |
* **maxDuration** ← 0 |
|
33 |
* **sumDurations** ← 0 |
|
34 |
* **numCalls** ← 0 |
|
35 |
* **numTimeouts** ← 0 |
|
37 | 36 |
endnote |
38 | 37 |
:lock core; |
39 | 38 |
:access first service; |
... | ... | |
58 | 57 |
:unlock core; |
59 | 58 |
stop |
60 | 59 |
note |
61 |
Returns ""URT_STATUS_ERROR"":
|
|
60 |
Returns ""URT_STATUS_SERVICE_DUPLICATE"":
|
|
62 | 61 |
endnote |
63 | 62 |
endif |
64 | 63 |
|
doc/activitydiagrams/service/urtServiceInit.uml | ||
---|---|---|
39 | 39 |
==== |
40 | 40 |
-- **return** : urt_status_t -- |
41 | 41 |
Returns ""URT_STATUS_OK"" on success. |
42 |
Returns ""URT_STATUS_ERROR"" if another service with the same identifier already exists.
|
|
42 |
Returns ""URT_STATUS_SERVICE_DUPLICATE"" if another service with the same identifier already exists.
|
|
43 | 43 |
endnote |
44 | 44 |
|
45 | 45 |
/'### PROCEDURE ##############################################################'/ |
... | ... | |
47 | 47 |
start |
48 | 48 |
:initialize members; |
49 | 49 |
note |
50 |
**next** ← ""NULL"" |
|
51 |
**id** ← id |
|
52 |
urtMutexInit(**lock**) |
|
53 |
**callback** ← callback |
|
54 |
.. URT_CFG_RPC_QOS_JITTERCHECKS == true || URT_CFG_RPC_PROFILING == true .. |
|
55 |
**minDuration** ← 0xF..F |
|
56 |
**maxDuration** ← 0 |
|
50 |
* **next** ← ""NULL"" |
|
51 |
* **id** ← id |
|
52 |
* urtMutexInit(**lock**) |
|
53 |
* **callback** ← callback |
|
57 | 54 |
.. URT_CFG_RPC_PROFILING == true .. |
58 |
**sumDurations** ← 0 |
|
59 |
**numCalls** ← 0 |
|
60 |
**numTimeouts** ← 0 |
|
55 |
* **minDuration** ← 0xF..F |
|
56 |
* **maxDuration** ← 0 |
|
57 |
* **sumDurations** ← 0 |
|
58 |
* **numCalls** ← 0 |
|
59 |
* **numTimeouts** ← 0 |
|
61 | 60 |
endnote |
62 | 61 |
:lock core; |
63 | 62 |
:access first service; |
... | ... | |
82 | 81 |
:unlock core; |
83 | 82 |
stop |
84 | 83 |
note |
85 |
Returns ""URT_STATUS_ERROR"":
|
|
84 |
Returns ""URT_STATUS_SERVICE_DUPLICATE"":
|
|
86 | 85 |
endnote |
87 | 86 |
endif |
88 | 87 |
|
doc/activitydiagrams/subscriber/frtsubscriber/urtFrtSubscriberCalculateValidity.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="329px" preserveAspectRatio="none" style="width:598px;height:329px;" version="1.1" viewBox="0 0 598 329" width="598px" zoomAndPan="magnify"><defs><filter height="300%" id="flqx6fh6bygnd" 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="253.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="305" x="145.5" y="47.6611">urtFrtSubscriberCalculateValidity()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="301" y="68.6143"/><path d="M167.5,72.8594 L167.5,198.7891 L555.5,198.7891 L555.5,82.8594 L545.5,72.8594 L167.5,72.8594 " fill="#FBFB77" filter="url(#flqx6fh6bygnd)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M545.5,72.8594 L545.5,82.8594 L555.5,82.8594 L545.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="167.5" x2="250.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="254.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="254.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="336.5" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="472.5" x2="555.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="173.5" y="105.0591">The FRT subscriber to calculate a validity for.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="173.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="253.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="285.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="167.5" x2="289.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="293.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="293.5" y="134.8247">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="350.5" y="134.8247">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="433.5" x2="555.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="367" x="173.5" y="150.4575">Latency (of a message) as argument to calculate validity.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="167.5" x2="555.5" y1="158.5234" y2="158.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="167.5" x2="555.5" y1="160.5234" y2="160.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="167.5" x2="315.5" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="319.5" y="175.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="319.5" y="175.0903">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="368.5" y="175.0903">: bool</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="407.5" x2="555.5" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="350" x="173.5" y="190.7231">Returns a boolean indicator whether the latency is fine.</text><ellipse cx="361.5" cy="228.7891" fill="#000000" filter="url(#flqx6fh6bygnd)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#flqx6fh6bygnd)" points="173,258.7891,550,258.7891,562,270.7891,550,282.7891,173,282.7891,161,270.7891,173,258.7891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="377" x="173" y="274.5972">Latency is lower than the deadline offset and within allowed jitter?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="141" y="268.1948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="562" y="268.1948">no</text><path d="M10,292.7891 L10,317.9219 A0,0 0 0 0 10,317.9219 L120,317.9219 A0,0 0 0 0 120,317.9219 L120,310.7891 L140,305.3555 L120,302.7891 L120,302.7891 L110,292.7891 L10,292.7891 A0,0 0 0 0 10,292.7891 " fill="#FBFB77" filter="url(#flqx6fh6bygnd)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M110,292.7891 L110,302.7891 L120,302.7891 L110,292.7891 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="309.856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="69" y="309.856">true</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="101" y="309.856">.</text><ellipse cx="151" cy="305.3555" fill="#FFFFFF" filter="url(#flqx6fh6bygnd)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="151" cy="305.3555" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M423,292.7891 L423,317.9219 A0,0 0 0 0 423,317.9219 L541,317.9219 A0,0 0 0 0 541,317.9219 L541,310.7891 L561,305.3555 L541,302.7891 L541,302.7891 L531,292.7891 L423,292.7891 A0,0 0 0 0 423,292.7891 " fill="#FBFB77" filter="url(#flqx6fh6bygnd)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M531,292.7891 L531,302.7891 L541,302.7891 L531,292.7891 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="429" y="309.856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="40" x="482" y="309.856">false</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="522" y="309.856">.</text><ellipse cx="572" cy="305.3555" fill="#FFFFFF" filter="url(#flqx6fh6bygnd)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="572" cy="305.3555" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="361.5" x2="361.5" y1="198.7891" y2="218.7891"/><polygon fill="#A80036" points="357.5,208.7891,361.5,218.7891,365.5,208.7891,361.5,212.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="161" x2="151" y1="270.7891" y2="270.7891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="151" x2="151" y1="270.7891" y2="294.3555"/><polygon fill="#A80036" points="147,284.3555,151,294.3555,155,284.3555,151,288.3555" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="562" x2="572" y1="270.7891" y2="270.7891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="572" x2="572" y1="270.7891" y2="294.3555"/><polygon fill="#A80036" points="568,284.3555,572,294.3555,576,284.3555,572,288.3555" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="361.5" x2="361.5" y1="238.7891" y2="258.7891"/><polygon fill="#A80036" points="357.5,248.7891,361.5,258.7891,365.5,248.7891,361.5,252.7891" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f3d4ce71676cac760cc8d6c755b3d358] |
|
2 |
@startuml |
|
3 |
|
|
4 |
title **µRtWare**\nurtFrtSubscriberCalculateValidity()\n |
|
5 |
|
|
6 |
|
|
7 |
note |
|
8 |
- - **subscriber** : urt_frtsubscriber_t* - - |
|
9 |
The FRT subscriber to calculate a validity for. |
|
10 |
Must not be ""NULL"". |
|
11 |
- - **latency** : urt_delay_t - - |
|
12 |
Latency (of a message) as argument to calculate validity. |
|
13 |
==== |
|
14 |
- - **return** : bool - - |
|
15 |
Returns a boolean indicator whether the latency is fine. |
|
16 |
endnote |
|
17 |
|
|
18 |
|
|
19 |
start |
|
20 |
if (Latency is lower than the deadline offset and within allowed jitter?) then (yes) |
|
21 |
stop |
|
22 |
note |
|
23 |
Returns ""true"". |
|
24 |
endnote |
|
25 |
else (no) |
|
26 |
stop |
|
27 |
note |
|
28 |
Returns ""false"". |
|
29 |
endnote |
|
30 |
endif |
|
31 |
|
|
32 |
|
|
33 |
@enduml |
|
34 |
|
|
35 |
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020) |
|
36 |
(GPL source distribution) |
|
37 |
Java Runtime: OpenJDK Runtime Environment |
|
38 |
JVM: OpenJDK 64-Bit Server VM |
|
39 |
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1 |
|
40 |
Operating System: Linux |
|
41 |
Default Encoding: UTF-8 |
|
42 |
Language: en |
|
43 |
Country: US |
|
44 |
--></g></svg> |
doc/activitydiagrams/subscriber/frtsubscriber/urtFrtSubscriberCalculateValidity.uml | ||
---|---|---|
1 |
/' |
|
2 |
µRtWare is a lightweight publish/subscribe middleware for real-time |
|
3 |
applications. It was developed as part of the software habitat for the |
|
4 |
Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well. |
|
5 |
|
|
6 |
Copyright (C) 2018..2020 Thomas Schöpping et al. |
|
7 |
|
|
8 |
This program is free software: you can redistribute it and/or modify |
|
9 |
it under the terms of the GNU General Public License as published by |
|
10 |
the Free Software Foundation, either version 3 of the License, or |
|
11 |
(at your option) any later version. |
|
12 |
|
|
13 |
This program is distributed in the hope that it will be useful, |
|
14 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
15 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
16 |
GNU General Public License for more details. |
|
17 |
|
|
18 |
You should have received a copy of the GNU General Public License |
|
19 |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
20 |
'/ |
|
21 |
|
|
22 |
/'### INTRO ##################################################################'/ |
|
23 |
|
|
24 |
@startuml |
|
25 |
|
|
26 |
title **µRtWare**\nurtFrtSubscriberCalculateValidity()\n |
|
27 |
|
|
28 |
/'### PARAMETERS & RETURN ####################################################'/ |
|
29 |
|
|
30 |
note |
|
31 |
-- **subscriber** : urt_frtsubscriber_t* -- |
|
32 |
The FRT subscriber to calculate a validity for. |
|
33 |
Must not be ""NULL"". |
|
34 |
-- **latency** : urt_delay_t -- |
|
35 |
Latency (of a message) as argument to calculate validity. |
|
36 |
==== |
|
37 |
-- **return** : bool -- |
|
38 |
Returns a boolean indicator whether the latency is fine. |
|
39 |
endnote |
|
40 |
|
|
41 |
/'### PROCEDURE ##############################################################'/ |
|
42 |
|
|
43 |
start |
|
44 |
if (Latency is lower than the deadline offset and within allowed jitter?) then (yes) |
|
45 |
stop |
|
46 |
note |
|
47 |
Returns ""true"". |
|
48 |
endnote |
|
49 |
else (no) |
|
50 |
stop |
|
51 |
note |
|
52 |
Returns ""false"". |
|
53 |
endnote |
|
54 |
endif |
|
55 |
|
|
56 |
/'### OUTRO ##################################################################'/ |
|
57 |
|
|
58 |
@enduml |
doc/activitydiagrams/subscriber/frtsubscriber/urtFrtSubscriberFetchLatestMessage.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="1370px" preserveAspectRatio="none" style="width:2922px;height:1370px;" version="1.1" viewBox="0 0 2922 1370" width="2922px" zoomAndPan="magnify"><defs><filter height="300%" id="f12n62kzuquswy" 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="1415.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="334" x="1293" y="47.6611">urtFrtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1463" y="68.6143"/><path d="M1570.75,72.8594 L1570.75,334.9844 L2259.75,334.9844 L2259.75,82.8594 L2249.75,72.8594 L1570.75,72.8594 " fill="#FBFB77" filter="url(#f12n62kzuquswy)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2249.75,72.8594 L2249.75,82.8594 L2259.75,82.8594 L2249.75,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1570.75" x2="1804.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1808.25" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="1808.25" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="1890.25" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="2026.25" x2="2259.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="350" x="1576.75" y="105.0591">The FRT subscriber that shall fetch the latest message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1576.75" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1656.75" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1688.75" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1570.75" x2="1859.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1863.25" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1863.25" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1926.25" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1971.25" x2="2259.75" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="1576.75" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="1576.75" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1626.75" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1662.75" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1570.75" x2="1866.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1870.25" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1870.25" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1915.25" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1964.25" x2="2259.75" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="1576.75" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1570.75" x2="1839.75" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1843.75" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="1843.75" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1900.75" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1990.75" x2="2259.75" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="1576.75" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="1576.75" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1626.75" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1658.75" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1570.75" x2="2259.75" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1570.75" x2="2259.75" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1570.75" x2="1844.25" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1848.25" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1848.25" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1897.25" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1986.25" x2="2259.75" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1576.75" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1629.75" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1737.75" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1576.75" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="192" x="1629.75" y="296.6528">URT_STATUS_FETCH_NOTOPIC</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1825.75" y="296.6528">if the subscriber is not associated to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1576.75" y="311.7856">Retruns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="1629.75" y="311.7856">URT_STATUS_FETCH_NOMESSAGE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="228" x="1841.75" y="311.7856">if there is no new message to fetch.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1576.75" y="326.9185">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="1629.75" y="326.9185">URT_STATUS_JITTERVIOLATION</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="403" x="1841.75" y="326.9185">if the message's latency violated the maximum expected jitter.</text><ellipse cx="1915.25" cy="364.9844" fill="#000000" filter="url(#f12n62kzuquswy)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f12n62kzuquswy)" points="1852.75,394.9844,1977.75,394.9844,1989.75,406.9844,1977.75,418.9844,1852.75,418.9844,1840.75,406.9844,1852.75,394.9844" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1852.75" y="410.7925">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1820.75" y="404.3901">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1989.75" y="404.3901">no</text><rect fill="#FEFECE" filter="url(#f12n62kzuquswy)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="862.5" y="428.9844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="872.5" y="450.123">lock topic</text><rect fill="#FFFFFF" filter="url(#f12n62kzuquswy)" height="348.8823" style="stroke: #000000; stroke-width: 2.0;" width="736" x="533" y="473.7549"/><path d="M678,474.7549 L678,483.0518 L668,493.0518 L533,493.0518 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="135" x="536" y="487.75">find latest message</text><rect fill="#FEFECE" filter="url(#f12n62kzuquswy)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="830" y="510.0518"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="44" x="840" y="531.1904">access</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="888" y="531.1904">lastMessage</text><rect fill="#000000" filter="url(#f12n62kzuquswy)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="671" x="567" y="619.731"/><rect fill="#FEFECE" filter="url(#f12n62kzuquswy)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="659.5" y="645.731"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="669.5" y="666.8696">proceed to next message</text><rect fill="#EEEEEE" filter="url(#f12n62kzuquswy)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="338" x="581" y="714.6997"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="581" x2="634" y1="731.6841" y2="731.6841"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="634" y="735.3384">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="866" x2="919" y1="731.6841" y2="731.6841"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="318" x="591" y="749.8071">decrement counter of consumers left (@message)</text><rect fill="#EEEEEE" filter="url(#f12n62kzuquswy)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="277" x="947" y="680.2153"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="947" x2="969.5" y1="697.1997" y2="697.1997"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="969.5" y="700.854">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1201.5" x2="1224" y1="697.1997" y2="697.1997"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="257" x="957" y="715.3228">increment counter of received messages</text><rect fill="#000000" filter="url(#f12n62kzuquswy)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="671" x="567" y="782.6372"/><polygon fill="#FEFECE" filter="url(#f12n62kzuquswy)" points="785.5,564.0205,1019.5,564.0205,1031.5,576.0205,1019.5,588.0205,785.5,588.0205,773.5,576.0205,785.5,564.0205" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="906.5" y="598.231">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="785.5" y="579.8286">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="759.5" y="573.4263">no</text><polygon fill="#FEFECE" filter="url(#f12n62kzuquswy)" points="816.5,842.6372,988.5,842.6372,1000.5,854.6372,988.5,866.6372,816.5,866.6372,804.5,854.6372,816.5,842.6372" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="172" x="816.5" y="858.4453">Timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="784.5" y="852.043">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1000.5" y="852.043">no</text><rect fill="#FEFECE" filter="url(#f12n62kzuquswy)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="279" y="876.6372"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="289" y="897.7759">unlock topic</text><path d="M10,945.606 L10,970.7388 A0,0 0 0 0 10,970.7388 L296,970.7388 A0,0 0 0 0 296,970.7388 L296,963.606 L316,958.1724 L296,955.606 L296,955.606 L286,945.606 L10,945.606 A0,0 0 0 0 10,945.606 " fill="#FBFB77" filter="url(#f12n62kzuquswy)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M286,945.606 L286,955.606 L296,955.606 L286,945.606 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="962.6729">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="69" y="962.6729">URT_STATUS_FETCH_NOMESSAGE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="277" y="962.6729">.</text><ellipse cx="327" cy="958.1724" fill="#FFFFFF" filter="url(#f12n62kzuquswy)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="327" cy="958.1724" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#f12n62kzuquswy)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2200" x="385" y="876.6372"/><rect fill="#FFFFFF" filter="url(#f12n62kzuquswy)" height="142.2656" style="stroke: #000000; stroke-width: 2.0;" width="622" x="397" y="1006.3257"/><path d="M510,1007.3257 L510,1015.6226 L500,1025.6226 L397,1025.6226 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="400" y="1020.3208">fetch message</text><rect fill="#000000" filter="url(#f12n62kzuquswy)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="602" x="407" y="1042.6226"/><rect fill="#FEFECE" filter="url(#f12n62kzuquswy)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="421" y="1068.6226"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="431" y="1089.7612">update message pointer</text><rect fill="#FEFECE" filter="url(#f12n62kzuquswy)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="624" y="1068.6226"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="634" y="1089.7612">copy message origin time</text><rect fill="#FEFECE" filter="url(#f12n62kzuquswy)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="832" y="1068.6226"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="842" y="1089.7612">copy message payload</text><rect fill="#000000" filter="url(#f12n62kzuquswy)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="602" x="407" y="1122.5913"/><path d="M1381.5,907.0552 L1381.5,932.188 A0,0 0 0 0 1381.5,932.188 L1701.5,932.188 A0,0 0 0 0 1701.5,932.188 L1701.5,925.0552 L1721.5,919.6216 L1701.5,917.0552 L1701.5,917.0552 L1691.5,907.0552 L1381.5,907.0552 A0,0 0 0 0 1381.5,907.0552 " fill="#FBFB77" filter="url(#f12n62kzuquswy)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1691.5,907.0552 L1691.5,917.0552 L1701.5,917.0552 L1691.5,907.0552 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="299" x="1387.5" y="924.1221">Can be optimized in case all flags are disabled.</text><rect fill="#FEFECE" filter="url(#f12n62kzuquswy)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="1721.5" y="902.6372"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="1731.5" y="923.7759">calculate message latency</text><rect fill="#000000" filter="url(#f12n62kzuquswy)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1526" x="1047" y="971.606"/><rect fill="#EEEEEE" filter="url(#f12n62kzuquswy)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="1061" y="1087.9741"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1061" x2="1071" y1="1104.9585" y2="1104.9585"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="1071" y="1108.6128">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1303" x2="1313" y1="1104.9585" y2="1104.9585"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="1071" y="1123.0815">accumulate</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="1148" y="1123.0815">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="1236" y="1123.0815">value</text><rect fill="#EEEEEE" filter="url(#f12n62kzuquswy)" height="220.9219" style="stroke: #000000; stroke-width: 2.0;" width="897" x="1341" y="988.4077"/><path d="M1977,989.4077 L1977,997.7046 L1967,1007.7046 L1341,1007.7046 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="626" x="1344" y="1002.4028">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><polygon fill="#FEFECE" filter="url(#f12n62kzuquswy)" points="1363,1049.7046,1737,1049.7046,1749,1061.7046,1737,1073.7046,1363,1073.7046,1351,1061.7046,1363,1049.7046" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1554" y="1083.915">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="1363" y="1065.5127">Latency is lower than</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70" x="1488" y="1065.5127">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="1562" y="1065.5127">but within allowed jitter range?</text><rect fill="#EEEEEE" filter="url(#f12n62kzuquswy)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="176" x="1462" y="1106.5093"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="45" x="1472" y="1127.6479">update</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="70" x="1521" y="1127.6479">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="1595" y="1127.6479">value</text><polygon fill="#FEFECE" filter="url(#f12n62kzuquswy)" points="1781,1049.7046,2166,1049.7046,2178,1061.7046,2166,1073.7046,1781,1073.7046,1769,1061.7046,1781,1049.7046" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1977.5" y="1083.915">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="132" x="1781" y="1065.5127">Latency is greater than</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70" x="1917" y="1065.5127">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="1991" y="1065.5127">but within allowed jitter range?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2178" y="1059.1104">no</text><rect fill="#EEEEEE" filter="url(#f12n62kzuquswy)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="176" x="1885.5" y="1106.5093"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="45" x="1895.5" y="1127.6479">update</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="70" x="1944.5" y="1127.6479">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="2018.5" y="1127.6479">value</text><rect fill="#FEFECE" filter="url(#f12n62kzuquswy)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="2332.5" y="1094.9585"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="2342.5" y="1116.0972">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="2366.5" y="1116.0972">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="2419.5" y="1116.0972">value</text><polygon fill="#FEFECE" filter="url(#f12n62kzuquswy)" points="2278,1046.5562,2517,1046.5562,2529,1058.5562,2517,1070.5562,2278,1070.5562,2266,1058.5562,2278,1046.5562" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2401.5" y="1080.7666">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="47" x="2278" y="1062.3643">Optional</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="2329" y="1062.3643">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="2382" y="1062.3643">output argument given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2529" y="1055.9619">no</text><polygon fill="#FEFECE" filter="url(#f12n62kzuquswy)" points="2397.5,1153.3296,2409.5,1165.3296,2397.5,1177.3296,2385.5,1165.3296,2397.5,1153.3296" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f12n62kzuquswy)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1526" x="1047" y="1229.3296"/><rect fill="#000000" filter="url(#f12n62kzuquswy)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2200" x="385" y="1255.3296"/><rect fill="#FEFECE" filter="url(#f12n62kzuquswy)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1442" y="1281.3296"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1452" y="1302.4683">unlock topic</text><path d="M1048,1333.7319 L1048,1358.8647 A0,0 0 0 0 1048,1358.8647 L1459,1358.8647 A0,0 0 0 0 1459,1358.8647 L1459,1351.7319 L1479,1346.2983 L1459,1343.7319 L1459,1343.7319 L1449,1333.7319 L1048,1333.7319 A0,0 0 0 0 1048,1333.7319 " fill="#FBFB77" filter="url(#f12n62kzuquswy)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1449,1333.7319 L1449,1343.7319 L1459,1343.7319 L1449,1333.7319 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1054" y="1350.7988">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1107" y="1350.7988">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="1215" y="1350.7988">or</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="1232" y="1350.7988">URT_STATUS_JITTERVIOLATION</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1440" y="1350.7988">.</text><ellipse cx="1490" cy="1346.2983" fill="#FFFFFF" filter="url(#f12n62kzuquswy)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1490" cy="1346.2983" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M2595,428.9844 L2595,454.1172 A0,0 0 0 0 2595,454.1172 L2865,454.1172 A0,0 0 0 0 2865,454.1172 L2865,446.9844 L2885,441.5508 L2865,438.9844 L2865,438.9844 L2855,428.9844 L2595,428.9844 A0,0 0 0 0 2595,428.9844 " fill="#FBFB77" filter="url(#f12n62kzuquswy)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2855,428.9844 L2855,438.9844 L2865,438.9844 L2855,428.9844 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="2601" y="446.0513">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="192" x="2654" y="446.0513">URT_STATUS_FETCH_NOTOPIC</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="2846" y="446.0513">.</text><ellipse cx="2896" cy="441.5508" fill="#FFFFFF" filter="url(#f12n62kzuquswy)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="2896" cy="441.5508" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1915.25" x2="1915.25" y1="334.9844" y2="354.9844"/><polygon fill="#A80036" points="1911.25,344.9844,1915.25,354.9844,1919.25,344.9844,1915.25,348.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="750" x2="750" y1="679.6997" y2="714.6997"/><polygon fill="#A80036" points="746,704.6997,750,714.6997,754,704.6997,750,708.6997" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="750" x2="750" y1="625.731" y2="645.731"/><polygon fill="#A80036" points="746,635.731,750,645.731,754,635.731,750,639.731" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1085.5" x2="1085.5" y1="625.731" y2="680.2153"/><polygon fill="#A80036" points="1081.5,670.2153,1085.5,680.2153,1089.5,670.2153,1085.5,674.2153" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="750" x2="750" y1="762.6372" y2="782.6372"/><polygon fill="#A80036" points="746,772.6372,750,782.6372,754,772.6372,750,776.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1085.5" x2="1085.5" y1="728.1528" y2="782.6372"/><polygon fill="#A80036" points="1081.5,772.6372,1085.5,782.6372,1089.5,772.6372,1085.5,776.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="902.5" x2="902.5" y1="588.0205" y2="619.731"/><polygon fill="#A80036" points="898.5,609.731,902.5,619.731,906.5,609.731,902.5,613.731" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="902.5" x2="902.5" y1="788.6372" y2="798.6372"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="902.5" x2="1250" y1="798.6372" y2="798.6372"/><polygon fill="#A80036" points="1246,695.7817,1250,685.7817,1254,695.7817,1250,691.7817" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1250" x2="1250" y1="576.0205" y2="798.6372"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1250" x2="1031.5" y1="576.0205" y2="576.0205"/><polygon fill="#A80036" points="1041.5,572.0205,1031.5,576.0205,1041.5,580.0205,1037.5,576.0205" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="773.5" x2="555" y1="576.0205" y2="576.0205"/><polygon fill="#A80036" points="551,681.7817,555,691.7817,559,681.7817,555,685.7817" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555" x2="555" y1="576.0205" y2="810.6372"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555" x2="902.5" y1="810.6372" y2="810.6372"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="902.5" x2="902.5" y1="810.6372" y2="842.6372"/><polygon fill="#A80036" points="898.5,832.6372,902.5,842.6372,906.5,832.6372,902.5,836.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="902.5" x2="902.5" y1="544.0205" y2="564.0205"/><polygon fill="#A80036" points="898.5,554.0205,902.5,564.0205,906.5,554.0205,902.5,558.0205" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="902.5" x2="902.5" y1="462.9531" y2="510.0518"/><polygon fill="#A80036" points="898.5,500.0518,902.5,510.0518,906.5,500.0518,902.5,504.0518" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="327" x2="327" y1="910.606" y2="947.1724"/><polygon fill="#A80036" points="323,937.1724,327,947.1724,331,937.1724,327,941.1724" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="508.5" x2="508.5" y1="1048.6226" y2="1068.6226"/><polygon fill="#A80036" points="504.5,1058.6226,508.5,1068.6226,512.5,1058.6226,508.5,1062.6226" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="714" x2="714" y1="1048.6226" y2="1068.6226"/><polygon fill="#A80036" points="710,1058.6226,714,1068.6226,718,1058.6226,714,1062.6226" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="913.5" x2="913.5" y1="1048.6226" y2="1068.6226"/><polygon fill="#A80036" points="909.5,1058.6226,913.5,1068.6226,917.5,1058.6226,913.5,1062.6226" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="508.5" x2="508.5" y1="1102.5913" y2="1122.5913"/><polygon fill="#A80036" points="504.5,1112.5913,508.5,1122.5913,512.5,1112.5913,508.5,1116.5913" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="714" x2="714" y1="1102.5913" y2="1122.5913"/><polygon fill="#A80036" points="710,1112.5913,714,1122.5913,718,1112.5913,714,1116.5913" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="913.5" x2="913.5" y1="1102.5913" y2="1122.5913"/><polygon fill="#A80036" points="909.5,1112.5913,913.5,1122.5913,917.5,1112.5913,913.5,1116.5913" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1550" x2="1550" y1="1073.7046" y2="1106.5093"/><polygon fill="#A80036" points="1546,1096.5093,1550,1106.5093,1554,1096.5093,1550,1100.5093" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1550" x2="1550" y1="1140.478" y2="1197.3296"/><polygon fill="#A80036" points="1546,1187.3296,1550,1197.3296,1554,1187.3296,1550,1191.3296" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1973.5" x2="1973.5" y1="1073.7046" y2="1106.5093"/><polygon fill="#A80036" points="1969.5,1096.5093,1973.5,1106.5093,1977.5,1096.5093,1973.5,1100.5093" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1973.5" x2="1973.5" y1="1140.478" y2="1197.3296"/><polygon fill="#A80036" points="1969.5,1187.3296,1973.5,1197.3296,1977.5,1187.3296,1973.5,1191.3296" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1749" x2="1769" y1="1061.7046" y2="1061.7046"/><polygon fill="#A80036" points="1759,1057.7046,1769,1061.7046,1759,1065.7046,1763,1061.7046" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1789.5" x2="1789.5" y1="977.606" y2="1024.7046"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1789.5" x2="1550" y1="1024.7046" y2="1024.7046"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1550" x2="1550" y1="1024.7046" y2="1049.7046"/><polygon fill="#A80036" points="1546,1039.7046,1550,1049.7046,1554,1039.7046,1550,1043.7046" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2178" x2="2213" y1="1061.7046" y2="1061.7046"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2213" x2="2213" y1="1061.7046" y2="1197.3296"/><polygon fill="#A80036" points="2209,1187.3296,2213,1197.3296,2217,1187.3296,2213,1191.3296" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1550" x2="2213" y1="1197.3296" y2="1197.3296"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2397.5" x2="2397.5" y1="1070.5562" y2="1094.9585"/><polygon fill="#A80036" points="2393.5,1084.9585,2397.5,1094.9585,2401.5,1084.9585,2397.5,1088.9585" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2529" x2="2541" y1="1058.5562" y2="1058.5562"/><polygon fill="#A80036" points="2537,1101.9429,2541,1111.9429,2545,1101.9429,2541,1105.9429" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2541" x2="2541" y1="1058.5562" y2="1165.3296"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2541" x2="2409.5" y1="1165.3296" y2="1165.3296"/><polygon fill="#A80036" points="2419.5,1161.3296,2409.5,1165.3296,2419.5,1169.3296,2415.5,1165.3296" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2397.5" x2="2397.5" y1="1128.9272" y2="1153.3296"/><polygon fill="#A80036" points="2393.5,1143.3296,2397.5,1153.3296,2401.5,1143.3296,2397.5,1147.3296" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1187" x2="1187" y1="977.606" y2="1087.9741"/><polygon fill="#A80036" points="1183,1077.9741,1187,1087.9741,1191,1077.9741,1187,1081.9741" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2397.5" x2="2397.5" y1="977.606" y2="1046.5562"/><polygon fill="#A80036" points="2393.5,1036.5562,2397.5,1046.5562,2401.5,1036.5562,2397.5,1040.5562" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2559" x2="2559" y1="977.606" y2="1229.3296"/><polygon fill="#A80036" points="2555,1219.3296,2559,1229.3296,2563,1219.3296,2559,1223.3296" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1187" x2="1187" y1="1135.9116" y2="1229.3296"/><polygon fill="#A80036" points="1183,1219.3296,1187,1229.3296,1191,1219.3296,1187,1223.3296" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1789.5" x2="1789.5" y1="1197.3296" y2="1229.3296"/><polygon fill="#A80036" points="1785.5,1219.3296,1789.5,1229.3296,1793.5,1219.3296,1789.5,1223.3296" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2397.5" x2="2397.5" y1="1177.3296" y2="1229.3296"/><polygon fill="#A80036" points="2393.5,1219.3296,2397.5,1229.3296,2401.5,1219.3296,2397.5,1223.3296" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1815" x2="1815" y1="936.606" y2="971.606"/><polygon fill="#A80036" points="1811,961.606,1815,971.606,1819,961.606,1815,965.606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="708" x2="708" y1="882.6372" y2="1042.6226"/><polygon fill="#A80036" points="704,1032.6226,708,1042.6226,712,1032.6226,708,1036.6226" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1815" x2="1815" y1="882.6372" y2="902.6372"/><polygon fill="#A80036" points="1811,892.6372,1815,902.6372,1819,892.6372,1815,896.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="708" x2="708" y1="1128.5913" y2="1255.3296"/><polygon fill="#A80036" points="704,1245.3296,708,1255.3296,712,1245.3296,708,1249.3296" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1815" x2="1815" y1="1235.3296" y2="1255.3296"/><polygon fill="#A80036" points="1811,1245.3296,1815,1255.3296,1819,1245.3296,1815,1249.3296" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1490" x2="1490" y1="1261.3296" y2="1281.3296"/><polygon fill="#A80036" points="1486,1271.3296,1490,1281.3296,1494,1271.3296,1490,1275.3296" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1490" x2="1490" y1="1315.2983" y2="1335.2983"/><polygon fill="#A80036" points="1486,1325.2983,1490,1335.2983,1494,1325.2983,1490,1329.2983" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="804.5" x2="327" y1="854.6372" y2="854.6372"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="327" x2="327" y1="854.6372" y2="876.6372"/><polygon fill="#A80036" points="323,866.6372,327,876.6372,331,866.6372,327,870.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1000.5" x2="1490" y1="854.6372" y2="854.6372"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1490" x2="1490" y1="854.6372" y2="876.6372"/><polygon fill="#A80036" points="1486,866.6372,1490,876.6372,1494,866.6372,1490,870.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1840.75" x2="902.5" y1="406.9844" y2="406.9844"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="902.5" x2="902.5" y1="406.9844" y2="428.9844"/><polygon fill="#A80036" points="898.5,418.9844,902.5,428.9844,906.5,418.9844,902.5,422.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1989.75" x2="2896" y1="406.9844" y2="406.9844"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2896" x2="2896" y1="406.9844" y2="430.5508"/><polygon fill="#A80036" points="2892,420.5508,2896,430.5508,2900,420.5508,2896,424.5508" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1915.25" x2="1915.25" y1="374.9844" y2="394.9844"/><polygon fill="#A80036" points="1911.25,384.9844,1915.25,394.9844,1919.25,384.9844,1915.25,388.9844" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8f5ca97c7ccc4f111f2f032596b6c8c5] |
|
2 |
@startuml |
|
3 |
|
|
4 |
title **µRtWare**\nurtFrtSubscriberFetchLatestMessage()\n |
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
note |
|
13 |
- - **subscriber** : urt_frtsubscriber_t* - - |
|
14 |
The FRT subscriber that shall fetch the latest message. |
|
15 |
Must not be ""NULL"". |
|
16 |
- - **payload** : void* - - |
|
17 |
Pointer where to copy the payload to. |
|
18 |
May be ""NULL"" for messages without payload. |
|
19 |
- - **bytes** : size_t - - |
|
20 |
Payload size in bytes. |
|
21 |
- - **latency** : urt_delay_t* - - |
|
22 |
The latency can be returned by reference. |
|
23 |
May be ""NULL"". |
|
24 |
==== |
|
25 |
- - **return** : urt_status_t - - |
|
26 |
Returns ""URT_STATUS_OK"" on success. |
|
27 |
Returns ""URT_STATUS_FETCH_NOTOPIC"" if the subscriber is not associated to a topic. |
|
28 |
Retruns ""URT_STATUS_FETCH_NOMESSAGE"" if there is no new message to fetch. |
|
29 |
Returns ""URT_STATUS_JITTERVIOLATION"" if the message's latency violated the maximum expected jitter. |
|
30 |
endnote |
|
31 |
|
|
32 |
|
|
33 |
start |
|
34 |
if (Associated to a topic?) then (yes) |
|
35 |
:lock topic; |
|
36 |
partition "find latest message" { |
|
37 |
:access ""lastMessage""; |
|
38 |
while (Timestamp of next message is younger?) is (yes) |
|
39 |
fork |
|
40 |
:proceed to next message; |
|
41 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\ndecrement counter of consumers left (@message); |
|
42 |
fork again |
|
43 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of received messages; |
|
44 |
endfork |
|
45 |
endwhile (no) |
|
46 |
} |
|
47 |
if (Timestamp equals local copy?) then (yes) |
|
48 |
:unlock topic; |
|
49 |
stop |
|
50 |
note |
|
51 |
Returns ""URT_STATUS_FETCH_NOMESSAGE"". |
|
52 |
endnote |
|
53 |
else (no) |
|
54 |
fork |
|
55 |
partition "fetch message" { |
|
56 |
fork |
|
57 |
:update message pointer; |
|
58 |
fork again |
|
59 |
:copy message origin time; |
|
60 |
fork again |
|
61 |
:copy message payload; |
|
62 |
endfork |
|
63 |
} |
|
64 |
fork again |
|
65 |
:calculate message latency; |
|
66 |
note |
|
67 |
Can be optimized in case all flags are disabled. |
|
68 |
endnote |
|
69 |
fork |
|
70 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\naccumulate ""sumLatencies"" value; |
|
71 |
fork again |
|
72 |
partition "//URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true//" #EEEEEE { |
|
73 |
if (Latency is lower than ""minLatency"" but within allowed jitter range?) then (yes) |
|
74 |
#EEEEEE:update ""minLatency"" value; |
|
75 |
elseif (Latency is greater than ""maxLatency"" but within allowed jitter range?) then (yes) |
|
76 |
#EEEEEE:update ""maxLatency"" value; |
|
77 |
else (no) |
|
78 |
endif |
|
79 |
} |
|
80 |
fork again |
|
81 |
if (Optional ""latency"" output argument given?) then (yes) |
|
82 |
:set ""latency"" value; |
|
83 |
else (no) |
|
84 |
endif |
|
85 |
fork again |
|
86 |
endfork |
|
87 |
endfork |
|
88 |
:unlock topic; |
|
89 |
stop |
|
90 |
note |
|
91 |
Returns ""URT_STATUS_OK"" or ""URT_STATUS_JITTERVIOLATION"". |
|
92 |
endnote |
|
93 |
endif |
|
94 |
else (no) |
|
95 |
stop |
|
96 |
note |
|
97 |
Returns ""URT_STATUS_FETCH_NOTOPIC"". |
|
98 |
endnote |
|
99 |
endif |
|
100 |
|
Also available in: Unified diff