urtware / doc / activitydiagrams / subscriber / hrtsubscriber / urtHrtSubscriberFetchLatestMessage.svg @ 60da7a2f
History | View | Annotate | Download (57.469 KB)
1 | e7056e1b | skenneweg | <?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="1900px" preserveAspectRatio="none" style="width:1792px;height:1900px;" version="1.1" viewBox="0 0 1792 1900" width="1792px" zoomAndPan="magnify"><defs><filter height="300%" id="f15mjsst8r4upa" 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="850.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="338" x="726" y="47.6611">urtHrtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="898" y="68.6143"/><path d="M899.25,72.8594 L899.25,334.9844 L1588.25,334.9844 L1588.25,82.8594 L1578.25,72.8594 L899.25,72.8594 " fill="#FBFB77" filter="url(#f15mjsst8r4upa)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1578.25,72.8594 L1578.25,82.8594 L1588.25,82.8594 L1578.25,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="899.25" x2="1130.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1134.75" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="1134.75" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1216.75" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1356.75" x2="1588.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="905.25" y="105.0591">The HRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="905.25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="985.25" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1017.25" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="899.25" x2="1187.75" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1191.75" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1191.75" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1254.75" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1299.75" x2="1588.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="905.25" 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="905.25" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="955.25" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="991.25" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="899.25" x2="1194.75" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1198.75" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1198.75" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1243.75" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1292.75" x2="1588.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="905.25" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="899.25" x2="1168.25" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1172.25" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="1172.25" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1229.25" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1319.25" x2="1588.25" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="905.25" 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="905.25" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="955.25" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="987.25" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="899.25" x2="1588.25" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="899.25" x2="1588.25" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="899.25" x2="1172.75" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1176.75" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1176.75" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1225.75" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1314.75" x2="1588.25" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="905.25" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="958.25" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1066.25" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="905.25" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="192" x="958.25" y="296.6528">URT_STATUS_FETCH_NOTOPIC</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1154.25" 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="905.25" y="311.7856">Retruns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="958.25" y="311.7856">URT_STATUS_FETCH_NOMESSAGE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="228" x="1170.25" 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="905.25" y="326.9185">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="958.25" y="326.9185">URT_STATUS_JITTERVIOLATION</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="403" x="1170.25" y="326.9185">if the message's latency violated the maximum expected jitter.</text><ellipse cx="1243.75" cy="364.9844" fill="#000000" filter="url(#f15mjsst8r4upa)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f15mjsst8r4upa)" points="1181.25,394.9844,1306.25,394.9844,1318.25,406.9844,1306.25,418.9844,1181.25,418.9844,1169.25,406.9844,1181.25,394.9844" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1181.25" y="410.7925">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1149.25" y="404.3901">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1318.25" y="404.3901">no</text><rect fill="#FEFECE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="683.5" y="428.9844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="693.5" y="450.123">lock topic</text><rect fill="#FFFFFF" filter="url(#f15mjsst8r4upa)" height="540.7378" style="stroke: #000000; stroke-width: 2.0;" width="1432" x="11" y="472.9531"/><path d="M156,473.9531 L156,482.25 L146,492.25 L11,492.25 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="135" x="14" y="486.9482">find latest message</text><rect fill="#FEFECE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="651" y="509.25"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="44" x="661" y="530.3887">access</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="709" y="530.3887">lastMessage</text><rect fill="#000000" filter="url(#f15mjsst8r4upa)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1373" x="39" y="618.9292"/><rect fill="#FEFECE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="480.5" y="644.9292"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="490.5" y="666.0679">proceed to next message</text><rect fill="#000000" filter="url(#f15mjsst8r4upa)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1042" x="51" y="707.3823"/><rect fill="#FEFECE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="329" x="63" y="740.3667"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="309" x="73" y="761.5054">decrement message's counter of HRT consumers</text><rect fill="#EEEEEE" filter="url(#f15mjsst8r4upa)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="301" x="420" y="733.3823"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="420" x2="454.5" y1="750.3667" y2="750.3667"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="454.5" y="754.021">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="686.5" x2="721" y1="750.3667" y2="750.3667"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="281" x="430" y="768.4897">decrement message's counter of consumers</text><rect fill="#EEEEEE" filter="url(#f15mjsst8r4upa)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="330" x="749" y="733.3823"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="749" x2="759" y1="750.3667" y2="750.3667"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="310" x="759" y="754.021">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1069" x2="1079" y1="750.3667" y2="750.3667"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="759" y="768.4897">reset QoS deadline timer</text><rect fill="#000000" filter="url(#f15mjsst8r4upa)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1042" x="51" y="801.3198"/><rect fill="#EEEEEE" filter="url(#f15mjsst8r4upa)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="277" x="1121" y="698.8979"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1121" x2="1144.5" y1="715.8823" y2="715.8823"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="230" x="1144.5" y="719.5366">URT_CFG:PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1374.5" x2="1398" y1="715.8823" y2="715.8823"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="257" x="1131" y="734.0054">increment counter of received messages</text><rect fill="#000000" filter="url(#f15mjsst8r4upa)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1373" x="39" y="827.3198"/><rect fill="#FEFECE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="615" y="901.7222"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="625" y="922.8608">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f15mjsst8r4upa)" points="614.5,853.3198,832.5,853.3198,844.5,865.3198,832.5,877.3198,614.5,877.3198,602.5,865.3198,614.5,853.3198" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="727.5" y="887.5303">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="218" x="614.5" y="869.1279">HRT counter of a message became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="844.5" y="862.7256">no</text><polygon fill="#FEFECE" filter="url(#f15mjsst8r4upa)" points="723.5,955.6909,735.5,967.6909,723.5,979.6909,711.5,967.6909,723.5,955.6909" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f15mjsst8r4upa)" points="606.5,563.2188,840.5,563.2188,852.5,575.2188,840.5,587.2188,606.5,587.2188,594.5,575.2188,606.5,563.2188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="727.5" y="597.4292">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="606.5" y="579.0269">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="580.5" y="572.6245">no</text><polygon fill="#FEFECE" filter="url(#f15mjsst8r4upa)" points="637.5,1033.6909,809.5,1033.6909,821.5,1045.6909,809.5,1057.6909,637.5,1057.6909,625.5,1045.6909,637.5,1033.6909" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="172" x="637.5" y="1049.499">Timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="605.5" y="1043.0967">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="821.5" y="1043.0967">no</text><rect fill="#FEFECE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="496.25" y="1067.6909"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="506.25" y="1088.8296">unlock topic</text><path d="M227.25,1121.6597 L227.25,1146.7925 A0,0 0 0 0 227.25,1146.7925 L513.25,1146.7925 A0,0 0 0 0 513.25,1146.7925 L513.25,1139.6597 L533.25,1134.2261 L513.25,1131.6597 L513.25,1131.6597 L503.25,1121.6597 L227.25,1121.6597 A0,0 0 0 0 227.25,1121.6597 " fill="#FBFB77" filter="url(#f15mjsst8r4upa)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M503.25,1121.6597 L503.25,1131.6597 L513.25,1131.6597 L503.25,1121.6597 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="233.25" y="1138.7266">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="286.25" y="1138.7266">URT_STATUS_FETCH_NOMESSAGE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="494.25" y="1138.7266">.</text><ellipse cx="544.25" cy="1134.2261" fill="#FFFFFF" filter="url(#f15mjsst8r4upa)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="544.25" cy="1134.2261" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="809.25" y="1067.6909"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="819.25" y="1088.8296">calculate message latency</text><rect fill="#000000" filter="url(#f15mjsst8r4upa)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="581" x="612.25" y="1121.6597"/><rect fill="#EEEEEE" filter="url(#f15mjsst8r4upa)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="250" x="626.25" y="1189.0776"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="626.25" x2="636.25" y1="1206.062" y2="1206.062"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="230" x="636.25" y="1209.7163">URT:CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="866.25" x2="876.25" y1="1206.062" y2="1206.062"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="636.25" y="1224.1851">accumulate</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="713.25" y="1224.1851">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="801.25" y="1224.1851">value</text><rect fill="#FEFECE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="970.75" y="1196.062"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="980.75" y="1217.2007">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="1004.75" y="1217.2007">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="1057.75" y="1217.2007">value</text><polygon fill="#FEFECE" filter="url(#f15mjsst8r4upa)" points="916.25,1147.6597,1155.25,1147.6597,1167.25,1159.6597,1155.25,1171.6597,916.25,1171.6597,904.25,1159.6597,916.25,1147.6597" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1039.75" y="1181.8701">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="47" x="916.25" y="1163.4678">Optional</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="967.25" y="1163.4678">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1020.25" y="1163.4678">output argument given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1167.25" y="1157.0654">no</text><polygon fill="#FEFECE" filter="url(#f15mjsst8r4upa)" points="1035.75,1254.4331,1047.75,1266.4331,1035.75,1278.4331,1023.75,1266.4331,1035.75,1254.4331" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f15mjsst8r4upa)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="581" x="612.25" y="1298.4331"/><rect fill="#EEEEEE" filter="url(#f15mjsst8r4upa)" height="277.0977" style="stroke: #000000; stroke-width: 2.0;" width="1138.5" x="106.25" y="1314.4331"/><path d="M742.25,1315.4331 L742.25,1323.73 L732.25,1333.73 L106.25,1333.73 " 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="109.25" y="1328.4282">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><polygon fill="#FEFECE" filter="url(#f15mjsst8r4upa)" points="616.5,1350.73,830.5,1350.73,842.5,1362.73,830.5,1374.73,616.5,1374.73,604.5,1362.73,616.5,1350.73" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="214" x="616.5" y="1366.5381">Latency is within allowed jitter range?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="584.5" y="1360.1357">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="842.5" y="1360.1357">no</text><polygon fill="#FEFECE" filter="url(#f15mjsst8r4upa)" points="138.25,1409.73,339.25,1409.73,351.25,1421.73,339.25,1433.73,138.25,1433.73,126.25,1421.73,138.25,1409.73" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="242.75" y="1443.9404">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="138.25" y="1425.5381">Latency is lower than</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70" x="263.25" y="1425.5381">minlatency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="333.25" y="1425.5381">?</text><rect fill="#EEEEEE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="176" x="150.75" y="1466.5347"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="45" x="160.75" y="1487.6733">update</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="70" x="209.75" y="1487.6733">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="283.75" y="1487.6733">value</text><polygon fill="#FEFECE" filter="url(#f15mjsst8r4upa)" points="383.25,1409.73,629.25,1409.73,641.25,1421.73,629.25,1433.73,383.25,1433.73,371.25,1421.73,383.25,1409.73" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="510.25" y="1443.9404">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="132" x="383.25" y="1425.5381">Latency is greater than</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70" x="519.25" y="1425.5381">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="593.25" y="1425.5381">value?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="641.25" y="1419.1357">no</text><rect fill="#EEEEEE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="176" x="418.25" y="1466.5347"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="45" x="428.25" y="1487.6733">update</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="70" x="477.25" y="1487.6733">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="551.25" y="1487.6733">value</text><rect fill="#EEEEEE" filter="url(#f15mjsst8r4upa)" height="194.8008" style="stroke: #000000; stroke-width: 2.0;" width="513.5" x="711.25" y="1384.73"/><path d="M1058.25,1385.73 L1058.25,1394.0269 L1048.25,1404.0269 L711.25,1404.0269 " 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="337" x="714.25" y="1398.7251">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><rect fill="#EEEEEE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="990.25" y="1421.0269"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1000.25" y="1442.1655">unlock topic</text><rect fill="#EEEEEE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="353" x="861.75" y="1489.9956"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="871.75" y="1511.1343">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="308" x="896.75" y="1511.1343">urtCoreStopNodes(URT_STATUS_JITTERVIOLATION)</text><path d="M721.25,1542.3979 L721.25,1567.5308 A0,0 0 0 0 721.25,1567.5308 L1007.25,1567.5308 A0,0 0 0 0 1007.25,1567.5308 L1007.25,1560.3979 L1027.25,1554.9644 L1007.25,1552.3979 L1007.25,1552.3979 L997.25,1542.3979 L721.25,1542.3979 A0,0 0 0 0 721.25,1542.3979 " fill="#FBFB77" filter="url(#f15mjsst8r4upa)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M997.25,1542.3979 L997.25,1552.3979 L1007.25,1552.3979 L997.25,1542.3979 " 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.25" y="1559.4648">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="780.25" y="1559.4648">URT_STATUS_JITTERVIOLATION</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="988.25" y="1559.4648">.</text><ellipse cx="1038.25" cy="1554.9644" fill="#FFFFFF" filter="url(#f15mjsst8r4upa)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1038.25" cy="1554.9644" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#f15mjsst8r4upa)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1008" x="219.5" y="1611.5308"/><rect fill="#FFFFFF" filter="url(#f15mjsst8r4upa)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="622" x="233.5" y="1627.5308"/><path d="M346.5,1628.5308 L346.5,1636.8276 L336.5,1646.8276 L233.5,1646.8276 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="236.5" y="1641.5259">fetch message</text><rect fill="#000000" filter="url(#f15mjsst8r4upa)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="602" x="243.5" y="1663.8276"/><rect fill="#FEFECE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="257.5" y="1689.8276"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="267.5" y="1710.9663">update message pointer</text><rect fill="#FEFECE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="460.5" y="1689.8276"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="470.5" y="1710.9663">copy message origin time</text><rect fill="#FEFECE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="668.5" y="1689.8276"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="678.5" y="1710.9663">copy message payload</text><rect fill="#000000" filter="url(#f15mjsst8r4upa)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="602" x="243.5" y="1743.7964"/><rect fill="#EEEEEE" filter="url(#f15mjsst8r4upa)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="330" x="883.5" y="1674.6948"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="883.5" x2="893.5" y1="1691.6792" y2="1691.6792"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="310" x="893.5" y="1695.3335">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1203.5" x2="1213.5" y1="1691.6792" y2="1691.6792"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="893.5" y="1709.8022">reset QoS deadline timer</text><rect fill="#000000" filter="url(#f15mjsst8r4upa)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1008" x="219.5" y="1781.7964"/><rect fill="#FEFECE" filter="url(#f15mjsst8r4upa)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="675.5" y="1807.7964"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="685.5" y="1828.9351">unlock topic</text><path d="M510.5,1860.1987 L510.5,1885.3315 A0,0 0 0 0 510.5,1885.3315 L692.5,1885.3315 A0,0 0 0 0 692.5,1885.3315 L692.5,1878.1987 L712.5,1872.7651 L692.5,1870.1987 L692.5,1870.1987 L682.5,1860.1987 L510.5,1860.1987 A0,0 0 0 0 510.5,1860.1987 " fill="#FBFB77" filter="url(#f15mjsst8r4upa)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M682.5,1860.1987 L682.5,1870.1987 L692.5,1870.1987 L682.5,1860.1987 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="516.5" y="1877.2656">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="569.5" y="1877.2656">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="673.5" y="1877.2656">.</text><ellipse cx="723.5" cy="1872.7651" fill="#FFFFFF" filter="url(#f15mjsst8r4upa)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="723.5" cy="1872.7651" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1463,428.9844 L1463,454.1172 A0,0 0 0 0 1463,454.1172 L1733,454.1172 A0,0 0 0 0 1733,454.1172 L1733,446.9844 L1753,441.5508 L1733,438.9844 L1733,438.9844 L1723,428.9844 L1463,428.9844 A0,0 0 0 0 1463,428.9844 " fill="#FBFB77" filter="url(#f15mjsst8r4upa)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1723,428.9844 L1723,438.9844 L1733,438.9844 L1723,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="1469" y="446.0513">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="192" x="1522" y="446.0513">URT_STATUS_FETCH_NOTOPIC</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1714" y="446.0513">.</text><ellipse cx="1764" cy="441.5508" fill="#FFFFFF" filter="url(#f15mjsst8r4upa)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1764" 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="1243.75" x2="1243.75" y1="334.9844" y2="354.9844"/><polygon fill="#A80036" points="1239.75,344.9844,1243.75,354.9844,1247.75,344.9844,1243.75,348.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="227.5" x2="227.5" y1="713.3823" y2="740.3667"/><polygon fill="#A80036" points="223.5,730.3667,227.5,740.3667,231.5,730.3667,227.5,734.3667" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="570.5" x2="570.5" y1="713.3823" y2="733.3823"/><polygon fill="#A80036" points="566.5,723.3823,570.5,733.3823,574.5,723.3823,570.5,727.3823" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="914" x2="914" y1="713.3823" y2="733.3823"/><polygon fill="#A80036" points="910,723.3823,914,733.3823,918,723.3823,914,727.3823" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="227.5" x2="227.5" y1="774.3354" y2="801.3198"/><polygon fill="#A80036" points="223.5,791.3198,227.5,801.3198,231.5,791.3198,227.5,795.3198" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="570.5" x2="570.5" y1="781.3198" y2="801.3198"/><polygon fill="#A80036" points="566.5,791.3198,570.5,801.3198,574.5,791.3198,570.5,795.3198" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="914" x2="914" y1="781.3198" y2="801.3198"/><polygon fill="#A80036" points="910,791.3198,914,801.3198,918,791.3198,914,795.3198" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="571" x2="571" y1="678.8979" y2="707.3823"/><polygon fill="#A80036" points="567,697.3823,571,707.3823,575,697.3823,571,701.3823" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="571" x2="571" y1="624.9292" y2="644.9292"/><polygon fill="#A80036" points="567,634.9292,571,644.9292,575,634.9292,571,638.9292" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1259.5" x2="1259.5" y1="624.9292" y2="698.8979"/><polygon fill="#A80036" points="1255.5,688.8979,1259.5,698.8979,1263.5,688.8979,1259.5,692.8979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="571" x2="571" y1="807.3198" y2="827.3198"/><polygon fill="#A80036" points="567,817.3198,571,827.3198,575,817.3198,571,821.3198" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1259.5" x2="1259.5" y1="746.8354" y2="827.3198"/><polygon fill="#A80036" points="1255.5,817.3198,1259.5,827.3198,1263.5,817.3198,1259.5,821.3198" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="877.3198" y2="901.7222"/><polygon fill="#A80036" points="719.5,891.7222,723.5,901.7222,727.5,891.7222,723.5,895.7222" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="844.5" x2="856.5" y1="865.3198" y2="865.3198"/><polygon fill="#A80036" points="852.5,908.7065,856.5,918.7065,860.5,908.7065,856.5,912.7065" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="856.5" x2="856.5" y1="865.3198" y2="967.6909"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="856.5" x2="735.5" y1="967.6909" y2="967.6909"/><polygon fill="#A80036" points="745.5,963.6909,735.5,967.6909,745.5,971.6909,741.5,967.6909" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="935.6909" y2="955.6909"/><polygon fill="#A80036" points="719.5,945.6909,723.5,955.6909,727.5,945.6909,723.5,949.6909" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="833.3198" y2="853.3198"/><polygon fill="#A80036" points="719.5,843.3198,723.5,853.3198,727.5,843.3198,723.5,847.3198" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="587.2188" y2="618.9292"/><polygon fill="#A80036" points="719.5,608.9292,723.5,618.9292,727.5,608.9292,723.5,612.9292" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="979.6909" y2="989.6909"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="1424" y1="989.6909" y2="989.6909"/><polygon fill="#A80036" points="1420,797.3511,1424,787.3511,1428,797.3511,1424,793.3511" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1424" x2="1424" y1="575.2188" y2="989.6909"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1424" x2="852.5" y1="575.2188" y2="575.2188"/><polygon fill="#A80036" points="862.5,571.2188,852.5,575.2188,862.5,579.2188,858.5,575.2188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594.5" x2="27" y1="575.2188" y2="575.2188"/><polygon fill="#A80036" points="23,783.3511,27,793.3511,31,783.3511,27,787.3511" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="27" x2="27" y1="575.2188" y2="1001.6909"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="27" x2="723.5" y1="1001.6909" y2="1001.6909"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="1001.6909" y2="1033.6909"/><polygon fill="#A80036" points="719.5,1023.6909,723.5,1033.6909,727.5,1023.6909,723.5,1027.6909" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="543.2188" y2="563.2188"/><polygon fill="#A80036" points="719.5,553.2188,723.5,563.2188,727.5,553.2188,723.5,557.2188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="462.9531" y2="509.25"/><polygon fill="#A80036" points="719.5,499.25,723.5,509.25,727.5,499.25,723.5,503.25" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.25" x2="544.25" y1="1101.6597" y2="1123.2261"/><polygon fill="#A80036" points="540.25,1113.2261,544.25,1123.2261,548.25,1113.2261,544.25,1117.2261" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1035.75" x2="1035.75" y1="1171.6597" y2="1196.062"/><polygon fill="#A80036" points="1031.75,1186.062,1035.75,1196.062,1039.75,1186.062,1035.75,1190.062" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1167.25" x2="1179.25" y1="1159.6597" y2="1159.6597"/><polygon fill="#A80036" points="1175.25,1203.0464,1179.25,1213.0464,1183.25,1203.0464,1179.25,1207.0464" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1179.25" x2="1179.25" y1="1159.6597" y2="1266.4331"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1179.25" x2="1047.75" y1="1266.4331" y2="1266.4331"/><polygon fill="#A80036" points="1057.75,1262.4331,1047.75,1266.4331,1057.75,1270.4331,1053.75,1266.4331" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1035.75" x2="1035.75" y1="1230.0308" y2="1254.4331"/><polygon fill="#A80036" points="1031.75,1244.4331,1035.75,1254.4331,1039.75,1244.4331,1035.75,1248.4331" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="751.25" x2="751.25" y1="1127.6597" y2="1189.0776"/><polygon fill="#A80036" points="747.25,1179.0776,751.25,1189.0776,755.25,1179.0776,751.25,1183.0776" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1035.75" x2="1035.75" y1="1127.6597" y2="1147.6597"/><polygon fill="#A80036" points="1031.75,1137.6597,1035.75,1147.6597,1039.75,1137.6597,1035.75,1141.6597" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="751.25" x2="751.25" y1="1237.0151" y2="1298.4331"/><polygon fill="#A80036" points="747.25,1288.4331,751.25,1298.4331,755.25,1288.4331,751.25,1292.4331" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1035.75" x2="1035.75" y1="1278.4331" y2="1298.4331"/><polygon fill="#A80036" points="1031.75,1288.4331,1035.75,1298.4331,1039.75,1288.4331,1035.75,1292.4331" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="902.75" x2="902.75" y1="1101.6597" y2="1121.6597"/><polygon fill="#A80036" points="898.75,1111.6597,902.75,1121.6597,906.75,1111.6597,902.75,1115.6597" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="625.5" x2="544.25" y1="1045.6909" y2="1045.6909"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.25" x2="544.25" y1="1045.6909" y2="1067.6909"/><polygon fill="#A80036" points="540.25,1057.6909,544.25,1067.6909,548.25,1057.6909,544.25,1061.6909" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="821.5" x2="902.75" y1="1045.6909" y2="1045.6909"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="902.75" x2="902.75" y1="1045.6909" y2="1067.6909"/><polygon fill="#A80036" points="898.75,1057.6909,902.75,1067.6909,906.75,1057.6909,902.75,1061.6909" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="902.75" x2="902.75" y1="1304.4331" y2="1309.4331"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="902.75" x2="723.5" y1="1309.4331" y2="1309.4331"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="1309.4331" y2="1350.73"/><polygon fill="#A80036" points="719.5,1340.73,723.5,1350.73,727.5,1340.73,723.5,1344.73" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="238.75" x2="238.75" y1="1433.73" y2="1466.5347"/><polygon fill="#A80036" points="234.75,1456.5347,238.75,1466.5347,242.75,1456.5347,238.75,1460.5347" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="238.75" x2="238.75" y1="1500.5034" y2="1558.937"/><polygon fill="#A80036" points="234.75,1548.937,238.75,1558.937,242.75,1548.937,238.75,1552.937" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="506.25" x2="506.25" y1="1433.73" y2="1466.5347"/><polygon fill="#A80036" points="502.25,1456.5347,506.25,1466.5347,510.25,1456.5347,506.25,1460.5347" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="506.25" x2="506.25" y1="1500.5034" y2="1558.937"/><polygon fill="#A80036" points="502.25,1548.937,506.25,1558.937,510.25,1548.937,506.25,1552.937" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="351.25" x2="371.25" y1="1421.73" y2="1421.73"/><polygon fill="#A80036" points="361.25,1417.73,371.25,1421.73,361.25,1425.73,365.25,1421.73" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="604.5" x2="238.75" y1="1362.73" y2="1362.73"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="238.75" x2="238.75" y1="1362.73" y2="1409.73"/><polygon fill="#A80036" points="234.75,1399.73,238.75,1409.73,242.75,1399.73,238.75,1403.73" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="641.25" x2="676.25" y1="1421.73" y2="1421.73"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676.25" x2="676.25" y1="1421.73" y2="1558.937"/><polygon fill="#A80036" points="672.25,1548.937,676.25,1558.937,680.25,1548.937,676.25,1552.937" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="238.75" x2="676.25" y1="1558.937" y2="1558.937"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1038.25" x2="1038.25" y1="1454.9956" y2="1489.9956"/><polygon fill="#A80036" points="1034.25,1479.9956,1038.25,1489.9956,1042.25,1479.9956,1038.25,1483.9956" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1038.25" x2="1038.25" y1="1523.9644" y2="1543.9644"/><polygon fill="#A80036" points="1034.25,1533.9644,1038.25,1543.9644,1042.25,1533.9644,1038.25,1537.9644" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="842.5" x2="1038.25" y1="1362.73" y2="1362.73"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1038.25" x2="1038.25" y1="1362.73" y2="1421.0269"/><polygon fill="#A80036" points="1034.25,1411.0269,1038.25,1421.0269,1042.25,1411.0269,1038.25,1415.0269" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="408.75" x2="408.75" y1="1558.937" y2="1584.5308"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="408.75" x2="723.5" y1="1584.5308" y2="1584.5308"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="1584.5308" y2="1611.5308"/><polygon fill="#A80036" points="719.5,1601.5308,723.5,1611.5308,727.5,1601.5308,723.5,1605.5308" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="345" x2="345" y1="1669.8276" y2="1689.8276"/><polygon fill="#A80036" points="341,1679.8276,345,1689.8276,349,1679.8276,345,1683.8276" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="550.5" x2="550.5" y1="1669.8276" y2="1689.8276"/><polygon fill="#A80036" points="546.5,1679.8276,550.5,1689.8276,554.5,1679.8276,550.5,1683.8276" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="750" x2="750" y1="1669.8276" y2="1689.8276"/><polygon fill="#A80036" points="746,1679.8276,750,1689.8276,754,1679.8276,750,1683.8276" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="345" x2="345" y1="1723.7964" y2="1743.7964"/><polygon fill="#A80036" points="341,1733.7964,345,1743.7964,349,1733.7964,345,1737.7964" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="550.5" x2="550.5" y1="1723.7964" y2="1743.7964"/><polygon fill="#A80036" points="546.5,1733.7964,550.5,1743.7964,554.5,1733.7964,550.5,1737.7964" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="750" x2="750" y1="1723.7964" y2="1743.7964"/><polygon fill="#A80036" points="746,1733.7964,750,1743.7964,754,1733.7964,750,1737.7964" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="1617.5308" y2="1663.8276"/><polygon fill="#A80036" points="540.5,1653.8276,544.5,1663.8276,548.5,1653.8276,544.5,1657.8276" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1048.5" x2="1048.5" y1="1617.5308" y2="1674.6948"/><polygon fill="#A80036" points="1044.5,1664.6948,1048.5,1674.6948,1052.5,1664.6948,1048.5,1668.6948" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="1749.7964" y2="1781.7964"/><polygon fill="#A80036" points="540.5,1771.7964,544.5,1781.7964,548.5,1771.7964,544.5,1775.7964" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1048.5" x2="1048.5" y1="1722.6323" y2="1781.7964"/><polygon fill="#A80036" points="1044.5,1771.7964,1048.5,1781.7964,1052.5,1771.7964,1048.5,1775.7964" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="1787.7964" y2="1807.7964"/><polygon fill="#A80036" points="719.5,1797.7964,723.5,1807.7964,727.5,1797.7964,723.5,1801.7964" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="1841.7651" y2="1861.7651"/><polygon fill="#A80036" points="719.5,1851.7651,723.5,1861.7651,727.5,1851.7651,723.5,1855.7651" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1169.25" x2="723.5" y1="406.9844" y2="406.9844"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="723.5" x2="723.5" y1="406.9844" y2="428.9844"/><polygon fill="#A80036" points="719.5,418.9844,723.5,428.9844,727.5,418.9844,723.5,422.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1318.25" x2="1764" y1="406.9844" y2="406.9844"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1764" x2="1764" y1="406.9844" y2="430.5508"/><polygon fill="#A80036" points="1760,420.5508,1764,430.5508,1768,420.5508,1764,424.5508" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1243.75" x2="1243.75" y1="374.9844" y2="394.9844"/><polygon fill="#A80036" points="1239.75,384.9844,1243.75,394.9844,1247.75,384.9844,1243.75,388.9844" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b9307c4e4a138ce85e55f74efcc53d60] |
---|---|---|---|
2 | dd31cb03 | Thomas Schöpping | @startuml |
3 | |||
4 | title **µRtWare**\nurtHrtSubscriberFetchLatestMessage()\n |
||
5 | |||
6 | e7056e1b | skenneweg | !include ../functions.iuml |
7 | |||
8 | /'### PARAMETERS & RETURN ####################################################'/ |
||
9 | |||
10 | note |
||
11 | - - **subscriber** : urt_hrtsubscriber_t* - - |
||
12 | The HRT subscriber that shall fetch the message. |
||
13 | Must not be ""NULL"". |
||
14 | - - **payload** : void* - - |
||
15 | Pointer where to copy the payload to. |
||
16 | May be ""NULL"" for messages without payload. |
||
17 | - - **bytes** : size_t - - |
||
18 | Payload size in bytes. |
||
19 | - - **latency** : urt_delay_t* - - |
||
20 | The latency can be returned by reference. |
||
21 | May be ""NULL"". |
||
22 | ==== |
||
23 | - - **return** : urt_status_t - - |
||
24 | Returns ""URT_STATUS_OK"" on success. |
||
25 | Returns ""URT_STATUS_FETCH_NOTOPIC"" if the subscriber is not associated to a topic. |
||
26 | Retruns ""URT_STATUS_FETCH_NOMESSAGE"" if there is no new message to fetch. |
||
27 | Returns ""URT_STATUS_JITTERVIOLATION"" if the message's latency violated the maximum expected jitter. |
||
28 | endnote |
||
29 | |||
30 | /'### PROCEDURE ##############################################################'/ |
||
31 | |||
32 | start |
||
33 | if (Associated to a topic?) then (yes) |
||
34 | :lock topic; |
||
35 | partition "find latest message" { |
||
36 | :access ""lastMessage""; |
||
37 | while (Timestamp of next message is younger?) is (yes) |
||
38 | fork |
||
39 | :proceed to next message; |
||
40 | fork |
||
41 | :decrement message's counter of HRT consumers; |
||
42 | fork again |
||
43 | #EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\ndecrement message's counter of consumers; |
||
44 | fork again |
||
45 | #EEEEEE:..//URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true//..\nreset QoS deadline timer; |
||
46 | endfork |
||
47 | fork again |
||
48 | #EEEEEE:..//URT_CFG:PUBSUB_PROFILING == true//..\nincrement counter of received messages; |
||
49 | endfork |
||
50 | if (HRT counter of a message became 0?) then (yes) |
||
51 | :signal topic's condition variable; |
||
52 | else (no) |
||
53 | endif |
||
54 | endwhile (no) |
||
55 | } |
||
56 | if (Timestamp equals local copy?) then (yes) |
||
57 | :unlock topic; |
||
58 | stop |
||
59 | note |
||
60 | Returns ""URT_STATUS_FETCH_NOMESSAGE"". |
||
61 | endnote |
||
62 | else (no) |
||
63 | :calculate message latency; |
||
64 | fork |
||
65 | #EEEEEE:..//URT:CFG_PUBSUB_PROFILING == true//..\naccumulate ""sumLatencies"" value; |
||
66 | fork again |
||
67 | if (Optional ""latency"" output argument given?) then (yes) |
||
68 | :set ""latency"" value; |
||
69 | else (no) |
||
70 | endif |
||
71 | endfork |
||
72 | endif |
||
73 | partition "//URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true//" #EEEEEE { |
||
74 | if (Latency is within allowed jitter range?) then (yes) |
||
75 | if (Latency is lower than ""minlatency""?) then (yes) |
||
76 | #EEEEEE:update ""minLatency"" value; |
||
77 | elseif (Latency is greater than ""maxLatency"" value?) then (yes) |
||
78 | #EEEEEE:update ""maxLatency"" value; |
||
79 | else (no) |
||
80 | endif |
||
81 | else (no) |
||
82 | partition "//URT_CFG_PUBSUB_QOS_JITTERCHECKS == true//" #EEEEEE { |
||
83 | #EEEEEE:unlock topic; |
||
84 | #EEEEEE:call ""urtCoreStopNodes(URT_STATUS_JITTERVIOLATION)""; |
||
85 | stop |
||
86 | note |
||
87 | Returns ""URT_STATUS_JITTERVIOLATION"". |
||
88 | endnote |
||
89 | } |
||
90 | endif |
||
91 | } |
||
92 | fork |
||
93 | $fetch_message() |
||
94 | fork again |
||
95 | #EEEEEE:..//URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true//..\nreset QoS deadline timer; |
||
96 | endfork |
||
97 | :unlock topic; |
||
98 | stop |
||
99 | note |
||
100 | Returns ""URT_STATUS_OK"". |
||
101 | endnote |
||
102 | else (no) |
||
103 | stop |
||
104 | note |
||
105 | Returns ""URT_STATUS_FETCH_NOTOPIC"". |
||
106 | endnote |
||
107 | endif |
||
108 | |||
109 | /'### OUTRO ##################################################################'/ |
||
110 | |||
111 | @enduml |
||
112 | |||
113 | @startuml |
||
114 | |||
115 | title **µRtWare**\nurtHrtSubscriberFetchLatestMessage()\n |
||
116 | dd31cb03 | Thomas Schöpping | |
117 | |||
118 | |||
119 | |||
120 | |||
121 | |||
122 | note |
||
123 | - - **subscriber** : urt_hrtsubscriber_t* - - |
||
124 | The HRT subscriber that shall fetch the message. |
||
125 | Must not be ""NULL"". |
||
126 | - - **payload** : void* - - |
||
127 | Pointer where to copy the payload to. |
||
128 | May be ""NULL"" for messages without payload. |
||
129 | - - **bytes** : size_t - - |
||
130 | Payload size in bytes. |
||
131 | - - **latency** : urt_delay_t* - - |
||
132 | The latency can be returned by reference. |
||
133 | May be ""NULL"". |
||
134 | ==== |
||
135 | - - **return** : urt_status_t - - |
||
136 | Returns ""URT_STATUS_OK"" on success. |
||
137 | Returns ""URT_STATUS_FETCH_NOTOPIC"" if the subscriber is not associated to a topic. |
||
138 | Retruns ""URT_STATUS_FETCH_NOMESSAGE"" if there is no new message to fetch. |
||
139 | Returns ""URT_STATUS_JITTERVIOLATION"" if the message's latency violated the maximum expected jitter. |
||
140 | endnote |
||
141 | |||
142 | |||
143 | start |
||
144 | if (Associated to a topic?) then (yes) |
||
145 | :lock topic; |
||
146 | partition "find latest message" { |
||
147 | :access ""lastMessage""; |
||
148 | while (Timestamp of next message is younger?) is (yes) |
||
149 | fork |
||
150 | :proceed to next message; |
||
151 | fork |
||
152 | :decrement message's counter of HRT consumers; |
||
153 | fork again |
||
154 | #EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\ndecrement message's counter of consumers; |
||
155 | fork again |
||
156 | #EEEEEE:..//URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true//..\nreset QoS deadline timer; |
||
157 | endfork |
||
158 | fork again |
||
159 | #EEEEEE:..//URT_CFG:PUBSUB_PROFILING == true//..\nincrement counter of received messages; |
||
160 | endfork |
||
161 | if (HRT counter of a message became 0?) then (yes) |
||
162 | :signal topic's condition variable; |
||
163 | else (no) |
||
164 | endif |
||
165 | endwhile (no) |
||
166 | } |
||
167 | if (Timestamp equals local copy?) then (yes) |
||
168 | :unlock topic; |
||
169 | stop |
||
170 | note |
||
171 | Returns ""URT_STATUS_FETCH_NOMESSAGE"". |
||
172 | endnote |
||
173 | else (no) |
||
174 | :calculate message latency; |
||
175 | fork |
||
176 | #EEEEEE:..//URT:CFG_PUBSUB_PROFILING == true//..\naccumulate ""sumLatencies"" value; |
||
177 | fork again |
||
178 | if (Optional ""latency"" output argument given?) then (yes) |
||
179 | :set ""latency"" value; |
||
180 | else (no) |
||
181 | endif |
||
182 | endfork |
||
183 | endif |
||
184 | partition "//URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true//" #EEEEEE { |
||
185 | if (Latency is within allowed jitter range?) then (yes) |
||
186 | if (Latency is lower than ""minlatency""?) then (yes) |
||
187 | #EEEEEE:update ""minLatency"" value; |
||
188 | elseif (Latency is greater than ""maxLatency"" value?) then (yes) |
||
189 | #EEEEEE:update ""maxLatency"" value; |
||
190 | else (no) |
||
191 | endif |
||
192 | else (no) |
||
193 | partition "//URT_CFG_PUBSUB_QOS_JITTERCHECKS == true//" #EEEEEE { |
||
194 | #EEEEEE:unlock topic; |
||
195 | #EEEEEE:call ""urtCoreStopNodes(URT_STATUS_JITTERVIOLATION)""; |
||
196 | stop |
||
197 | note |
||
198 | Returns ""URT_STATUS_JITTERVIOLATION"". |
||
199 | endnote |
||
200 | } |
||
201 | endif |
||
202 | } |
||
203 | fork |
||
204 | partition "fetch message" { |
||
205 | fork |
||
206 | :update message pointer; |
||
207 | fork again |
||
208 | :copy message origin time; |
||
209 | fork again |
||
210 | :copy message payload; |
||
211 | endfork |
||
212 | } |
||
213 | fork again |
||
214 | #EEEEEE:..//URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true//..\nreset QoS deadline timer; |
||
215 | endfork |
||
216 | :unlock topic; |
||
217 | stop |
||
218 | note |
||
219 | Returns ""URT_STATUS_OK"". |
||
220 | endnote |
||
221 | else (no) |
||
222 | stop |
||
223 | note |
||
224 | e7056e1b | skenneweg | Returns ""URT_STATUS_FETCH_NOTOPIC"". |
225 | dd31cb03 | Thomas Schöpping | endnote |
226 | endif |
||
227 | |||
228 | |||
229 | @enduml |
||
230 | |||
231 | e7056e1b | skenneweg | PlantUML version 1.2020.15(Sun Jun 28 13:39:45 CEST 2020) |
232 | dd31cb03 | Thomas Schöpping | (GPL source distribution) |
233 | Java Runtime: OpenJDK Runtime Environment |
||
234 | JVM: OpenJDK 64-Bit Server VM |
||
235 | Default Encoding: UTF-8 |
||
236 | e7056e1b | skenneweg | Language: de |
237 | Country: DE |
||
238 | dd31cb03 | Thomas Schöpping | --></g></svg> |