Revision dd31cb03

View differences:

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

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff