urtware / doc / activitydiagrams / subscriber / hrtsubscriber / urtHrtSubscriberFetchLatestMessage.svg @ 408b49ce
History | View | Annotate | Download (54.112 KB)
1 | 2d315870 | Thomas Schöpping | <?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="1899px" preserveAspectRatio="none" style="width:1735px;height:1899px;" version="1.1" viewBox="0 0 1735 1899" width="1735px" zoomAndPan="magnify"><defs><filter height="300%" id="fw8r9eje3asw" 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="822" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="338" x="697.5" y="47.6611">urtHrtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="869.5" y="68.6143"/><path d="M876.25,72.8594 L876.25,334.9844 L1565.25,334.9844 L1565.25,82.8594 L1555.25,72.8594 L876.25,72.8594 " fill="#FBFB77" filter="url(#fw8r9eje3asw)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1555.25,72.8594 L1555.25,82.8594 L1565.25,82.8594 L1555.25,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="876.25" x2="1107.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1111.75" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="1111.75" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1193.75" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1333.75" x2="1565.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="882.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="882.25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="962.25" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="994.25" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="876.25" x2="1164.75" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1168.75" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1168.75" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1231.75" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1276.75" x2="1565.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="882.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="882.25" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="932.25" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="968.25" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="876.25" x2="1171.75" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1175.75" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1175.75" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1220.75" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1269.75" x2="1565.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="882.25" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="876.25" x2="1145.25" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1149.25" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="1149.25" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1206.25" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1296.25" x2="1565.25" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="882.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="882.25" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="932.25" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="964.25" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="876.25" x2="1565.25" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="876.25" x2="1565.25" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="876.25" x2="1149.75" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1153.75" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1153.75" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1202.75" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1291.75" x2="1565.25" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="882.25" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="935.25" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1043.25" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="882.25" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="192" x="935.25" y="296.6528">URT_STATUS_FETCH_NOTOPIC</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1131.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="882.25" y="311.7856">Retruns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="935.25" y="311.7856">URT_STATUS_FETCH_NOMESSAGE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="228" x="1147.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="882.25" y="326.9185">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="935.25" y="326.9185">URT_STATUS_JITTERVIOLATION</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="403" x="1147.25" y="326.9185">if the message's latency violated the maximum expected jitter.</text><ellipse cx="1220.75" cy="364.9844" fill="#000000" filter="url(#fw8r9eje3asw)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fw8r9eje3asw)" points="1158.25,394.9844,1283.25,394.9844,1295.25,406.9844,1283.25,418.9844,1158.25,418.9844,1146.25,406.9844,1158.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="1158.25" y="410.7925">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1126.25" y="404.3901">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1295.25" y="404.3901">no</text><rect fill="#FEFECE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="692.5" y="428.9844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="702.5" y="450.123">lock topic</text><rect fill="#FFFFFF" filter="url(#fw8r9eje3asw)" height="540.7378" style="stroke: #000000; stroke-width: 2.0;" width="1442" x="10" y="473.7549"/><path d="M155,474.7549 L155,483.0518 L145,493.0518 L10,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="13" y="487.75">find latest message</text><rect fill="#FEFECE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="660" y="510.0518"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="44" x="670" y="531.1904">access</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="718" y="531.1904">lastMessage</text><rect fill="#000000" filter="url(#fw8r9eje3asw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1377" x="44" y="619.731"/><rect fill="#FEFECE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="489.5" y="645.731"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="499.5" y="666.8696">proceed to next message</text><rect fill="#000000" filter="url(#fw8r9eje3asw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1044" x="58" y="708.1841"/><rect fill="#FEFECE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="329" x="72" y="741.1685"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="309" x="82" y="762.3071">decrement message's counter of HRT consumers</text><rect fill="#EEEEEE" filter="url(#fw8r9eje3asw)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="301" x="429" y="734.1841"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="429" x2="463.5" y1="751.1685" y2="751.1685"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="463.5" y="754.8228">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="695.5" x2="730" y1="751.1685" y2="751.1685"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="281" x="439" y="769.2915">decrement message's counter of consumers</text><rect fill="#EEEEEE" filter="url(#fw8r9eje3asw)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="330" x="758" y="734.1841"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="758" x2="768" y1="751.1685" y2="751.1685"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="310" x="768" y="754.8228">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1078" x2="1088" y1="751.1685" y2="751.1685"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="768" y="769.2915">reset QoS deadline timer</text><rect fill="#000000" filter="url(#fw8r9eje3asw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1044" x="58" y="802.1216"/><rect fill="#EEEEEE" filter="url(#fw8r9eje3asw)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="277" x="1130" y="699.6997"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1130" x2="1153.5" y1="716.6841" y2="716.6841"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="230" x="1153.5" y="720.3384">URT_CFG:PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1383.5" x2="1407" y1="716.6841" y2="716.6841"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="257" x="1140" y="734.8071">increment counter of received messages</text><rect fill="#000000" filter="url(#fw8r9eje3asw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1377" x="44" y="828.1216"/><rect fill="#FEFECE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="624" y="902.5239"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="634" y="923.6626">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#fw8r9eje3asw)" points="623.5,854.1216,841.5,854.1216,853.5,866.1216,841.5,878.1216,623.5,878.1216,611.5,866.1216,623.5,854.1216" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="736.5" y="888.332">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="218" x="623.5" y="869.9297">HRT counter of a message became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="853.5" y="863.5273">no</text><polygon fill="#FEFECE" filter="url(#fw8r9eje3asw)" points="732.5,956.4927,744.5,968.4927,732.5,980.4927,720.5,968.4927,732.5,956.4927" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fw8r9eje3asw)" points="615.5,564.0205,849.5,564.0205,861.5,576.0205,849.5,588.0205,615.5,588.0205,603.5,576.0205,615.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="736.5" y="598.231">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="615.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="589.5" y="573.4263">no</text><polygon fill="#FEFECE" filter="url(#fw8r9eje3asw)" points="646.5,1034.4927,818.5,1034.4927,830.5,1046.4927,818.5,1058.4927,646.5,1058.4927,634.5,1046.4927,646.5,1034.4927" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="172" x="646.5" y="1050.3008">Timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="614.5" y="1043.8984">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="830.5" y="1043.8984">no</text><rect fill="#FEFECE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="505.25" y="1068.4927"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="515.25" y="1089.6313">unlock topic</text><path d="M236.25,1122.4614 L236.25,1147.5942 A0,0 0 0 0 236.25,1147.5942 L522.25,1147.5942 A0,0 0 0 0 522.25,1147.5942 L522.25,1140.4614 L542.25,1135.0278 L522.25,1132.4614 L522.25,1132.4614 L512.25,1122.4614 L236.25,1122.4614 A0,0 0 0 0 236.25,1122.4614 " fill="#FBFB77" filter="url(#fw8r9eje3asw)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M512.25,1122.4614 L512.25,1132.4614 L522.25,1132.4614 L512.25,1122.4614 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="242.25" y="1139.5283">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="295.25" y="1139.5283">URT_STATUS_FETCH_NOMESSAGE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="503.25" y="1139.5283">.</text><ellipse cx="553.25" cy="1135.0278" fill="#FFFFFF" filter="url(#fw8r9eje3asw)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="553.25" cy="1135.0278" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="818.25" y="1068.4927"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="828.25" y="1089.6313">calculate message latency</text><rect fill="#000000" filter="url(#fw8r9eje3asw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="581" x="621.25" y="1122.4614"/><rect fill="#EEEEEE" filter="url(#fw8r9eje3asw)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="250" x="635.25" y="1189.8794"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="635.25" x2="645.25" y1="1206.8638" y2="1206.8638"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="230" x="645.25" y="1210.5181">URT:CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="875.25" x2="885.25" y1="1206.8638" y2="1206.8638"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="645.25" y="1224.9868">accumulate</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="722.25" y="1224.9868">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="810.25" y="1224.9868">value</text><rect fill="#FEFECE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="979.75" y="1196.8638"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="989.75" y="1218.0024">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="1013.75" y="1218.0024">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="1066.75" y="1218.0024">value</text><polygon fill="#FEFECE" filter="url(#fw8r9eje3asw)" points="925.25,1148.4614,1164.25,1148.4614,1176.25,1160.4614,1164.25,1172.4614,925.25,1172.4614,913.25,1160.4614,925.25,1148.4614" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1048.75" y="1182.6719">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="47" x="925.25" y="1164.2695">Optional</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="976.25" y="1164.2695">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1029.25" y="1164.2695">output argument given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1176.25" y="1157.8672">no</text><polygon fill="#FEFECE" filter="url(#fw8r9eje3asw)" points="1044.75,1255.2349,1056.75,1267.2349,1044.75,1279.2349,1032.75,1267.2349,1044.75,1255.2349" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fw8r9eje3asw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="581" x="621.25" y="1299.2349"/><rect fill="#EEEEEE" filter="url(#fw8r9eje3asw)" height="277.0977" style="stroke: #000000; stroke-width: 2.0;" width="1138.5" x="115.25" y="1316.0366"/><path d="M751.25,1317.0366 L751.25,1325.3335 L741.25,1335.3335 L115.25,1335.3335 " 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="118.25" y="1330.0317">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><polygon fill="#FEFECE" filter="url(#fw8r9eje3asw)" points="625.5,1352.3335,839.5,1352.3335,851.5,1364.3335,839.5,1376.3335,625.5,1376.3335,613.5,1364.3335,625.5,1352.3335" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="214" x="625.5" y="1368.1416">Latency is within allowed jitter range?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="593.5" y="1361.7393">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="851.5" y="1361.7393">no</text><polygon fill="#FEFECE" filter="url(#fw8r9eje3asw)" points="147.25,1411.3335,348.25,1411.3335,360.25,1423.3335,348.25,1435.3335,147.25,1435.3335,135.25,1423.3335,147.25,1411.3335" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="251.75" y="1445.5439">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="147.25" y="1427.1416">Latency is lower than</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70" x="272.25" y="1427.1416">minlatency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="342.25" y="1427.1416">?</text><rect fill="#EEEEEE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="176" x="159.75" y="1468.1382"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="45" x="169.75" y="1489.2769">update</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="70" x="218.75" y="1489.2769">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="292.75" y="1489.2769">value</text><polygon fill="#FEFECE" filter="url(#fw8r9eje3asw)" points="392.25,1411.3335,638.25,1411.3335,650.25,1423.3335,638.25,1435.3335,392.25,1435.3335,380.25,1423.3335,392.25,1411.3335" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="519.25" y="1445.5439">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="132" x="392.25" y="1427.1416">Latency is greater than</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70" x="528.25" y="1427.1416">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="602.25" y="1427.1416">value?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="650.25" y="1420.7393">no</text><rect fill="#EEEEEE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="176" x="427.25" y="1468.1382"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="45" x="437.25" y="1489.2769">update</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="70" x="486.25" y="1489.2769">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="560.25" y="1489.2769">value</text><rect fill="#EEEEEE" filter="url(#fw8r9eje3asw)" height="194.8008" style="stroke: #000000; stroke-width: 2.0;" width="513.5" x="720.25" y="1386.3335"/><path d="M1067.25,1387.3335 L1067.25,1395.6304 L1057.25,1405.6304 L720.25,1405.6304 " 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="723.25" y="1400.3286">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><rect fill="#EEEEEE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="999.25" y="1422.6304"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1009.25" y="1443.769">unlock topic</text><rect fill="#EEEEEE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="353" x="870.75" y="1491.5991"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="880.75" y="1512.7378">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="308" x="905.75" y="1512.7378">urtCoreStopNodes(URT_STATUS_JITTERVIOLATION)</text><path d="M730.25,1544.0015 L730.25,1569.1343 A0,0 0 0 0 730.25,1569.1343 L1016.25,1569.1343 A0,0 0 0 0 1016.25,1569.1343 L1016.25,1562.0015 L1036.25,1556.5679 L1016.25,1554.0015 L1016.25,1554.0015 L1006.25,1544.0015 L730.25,1544.0015 A0,0 0 0 0 730.25,1544.0015 " fill="#FBFB77" filter="url(#fw8r9eje3asw)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1006.25,1544.0015 L1006.25,1554.0015 L1016.25,1554.0015 L1006.25,1544.0015 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="736.25" y="1561.0684">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="789.25" y="1561.0684">URT_STATUS_JITTERVIOLATION</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="997.25" y="1561.0684">.</text><ellipse cx="1047.25" cy="1556.5679" fill="#FFFFFF" filter="url(#fw8r9eje3asw)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1047.25" cy="1556.5679" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#fw8r9eje3asw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1008" x="228.5" y="1613.1343"/><rect fill="#FFFFFF" filter="url(#fw8r9eje3asw)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="622" x="242.5" y="1629.936"/><path d="M355.5,1630.936 L355.5,1639.2329 L345.5,1649.2329 L242.5,1649.2329 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="245.5" y="1643.9312">fetch message</text><rect fill="#000000" filter="url(#fw8r9eje3asw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="602" x="252.5" y="1666.2329"/><rect fill="#FEFECE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="266.5" y="1692.2329"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="276.5" y="1713.3716">update message pointer</text><rect fill="#FEFECE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="469.5" y="1692.2329"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="479.5" y="1713.3716">copy message origin time</text><rect fill="#FEFECE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="677.5" y="1692.2329"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="687.5" y="1713.3716">copy message payload</text><rect fill="#000000" filter="url(#fw8r9eje3asw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="602" x="252.5" y="1746.2017"/><rect fill="#EEEEEE" filter="url(#fw8r9eje3asw)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="330" x="892.5" y="1677.1001"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="892.5" x2="902.5" y1="1694.0845" y2="1694.0845"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="310" x="902.5" y="1697.7388">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1212.5" x2="1222.5" y1="1694.0845" y2="1694.0845"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="902.5" y="1712.2075">reset QoS deadline timer</text><rect fill="#000000" filter="url(#fw8r9eje3asw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1008" x="228.5" y="1784.2017"/><rect fill="#FEFECE" filter="url(#fw8r9eje3asw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="684.5" y="1810.2017"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="694.5" y="1831.3403">unlock topic</text><path d="M519.5,1862.604 L519.5,1887.7368 A0,0 0 0 0 519.5,1887.7368 L701.5,1887.7368 A0,0 0 0 0 701.5,1887.7368 L701.5,1880.604 L721.5,1875.1704 L701.5,1872.604 L701.5,1872.604 L691.5,1862.604 L519.5,1862.604 A0,0 0 0 0 519.5,1862.604 " fill="#FBFB77" filter="url(#fw8r9eje3asw)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M691.5,1862.604 L691.5,1872.604 L701.5,1872.604 L691.5,1862.604 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="525.5" y="1879.6709">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="578.5" y="1879.6709">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="682.5" y="1879.6709">.</text><ellipse cx="732.5" cy="1875.1704" fill="#FFFFFF" filter="url(#fw8r9eje3asw)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="732.5" cy="1875.1704" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1472,428.9844 L1472,454.1172 A0,0 0 0 0 1472,454.1172 L1678,454.1172 A0,0 0 0 0 1678,454.1172 L1678,446.9844 L1698,441.5508 L1678,438.9844 L1678,438.9844 L1668,428.9844 L1472,428.9844 A0,0 0 0 0 1472,428.9844 " fill="#FBFB77" filter="url(#fw8r9eje3asw)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1668,428.9844 L1668,438.9844 L1678,438.9844 L1668,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="1478" y="446.0513">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1531" y="446.0513">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1659" y="446.0513">.</text><ellipse cx="1709" cy="441.5508" fill="#FFFFFF" filter="url(#fw8r9eje3asw)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1709" 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="1220.75" x2="1220.75" y1="334.9844" y2="354.9844"/><polygon fill="#A80036" points="1216.75,344.9844,1220.75,354.9844,1224.75,344.9844,1220.75,348.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="236.5" x2="236.5" y1="714.1841" y2="741.1685"/><polygon fill="#A80036" points="232.5,731.1685,236.5,741.1685,240.5,731.1685,236.5,735.1685" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="579.5" x2="579.5" y1="714.1841" y2="734.1841"/><polygon fill="#A80036" points="575.5,724.1841,579.5,734.1841,583.5,724.1841,579.5,728.1841" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="923" x2="923" y1="714.1841" y2="734.1841"/><polygon fill="#A80036" points="919,724.1841,923,734.1841,927,724.1841,923,728.1841" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="236.5" x2="236.5" y1="775.1372" y2="802.1216"/><polygon fill="#A80036" points="232.5,792.1216,236.5,802.1216,240.5,792.1216,236.5,796.1216" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="579.5" x2="579.5" y1="782.1216" y2="802.1216"/><polygon fill="#A80036" points="575.5,792.1216,579.5,802.1216,583.5,792.1216,579.5,796.1216" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="923" x2="923" y1="782.1216" y2="802.1216"/><polygon fill="#A80036" points="919,792.1216,923,802.1216,927,792.1216,923,796.1216" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="580" x2="580" y1="679.6997" y2="708.1841"/><polygon fill="#A80036" points="576,698.1841,580,708.1841,584,698.1841,580,702.1841" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="580" x2="580" y1="625.731" y2="645.731"/><polygon fill="#A80036" points="576,635.731,580,645.731,584,635.731,580,639.731" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1268.5" x2="1268.5" y1="625.731" y2="699.6997"/><polygon fill="#A80036" points="1264.5,689.6997,1268.5,699.6997,1272.5,689.6997,1268.5,693.6997" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="580" x2="580" y1="808.1216" y2="828.1216"/><polygon fill="#A80036" points="576,818.1216,580,828.1216,584,818.1216,580,822.1216" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1268.5" x2="1268.5" y1="747.6372" y2="828.1216"/><polygon fill="#A80036" points="1264.5,818.1216,1268.5,828.1216,1272.5,818.1216,1268.5,822.1216" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="878.1216" y2="902.5239"/><polygon fill="#A80036" points="728.5,892.5239,732.5,902.5239,736.5,892.5239,732.5,896.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="853.5" x2="865.5" y1="866.1216" y2="866.1216"/><polygon fill="#A80036" points="861.5,909.5083,865.5,919.5083,869.5,909.5083,865.5,913.5083" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="865.5" x2="865.5" y1="866.1216" y2="968.4927"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="865.5" x2="744.5" y1="968.4927" y2="968.4927"/><polygon fill="#A80036" points="754.5,964.4927,744.5,968.4927,754.5,972.4927,750.5,968.4927" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="936.4927" y2="956.4927"/><polygon fill="#A80036" points="728.5,946.4927,732.5,956.4927,736.5,946.4927,732.5,950.4927" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="834.1216" y2="854.1216"/><polygon fill="#A80036" points="728.5,844.1216,732.5,854.1216,736.5,844.1216,732.5,848.1216" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="588.0205" y2="619.731"/><polygon fill="#A80036" points="728.5,609.731,732.5,619.731,736.5,609.731,732.5,613.731" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="980.4927" y2="990.4927"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="1433" y1="990.4927" y2="990.4927"/><polygon fill="#A80036" points="1429,798.1528,1433,788.1528,1437,798.1528,1433,794.1528" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1433" x2="1433" y1="576.0205" y2="990.4927"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1433" x2="861.5" y1="576.0205" y2="576.0205"/><polygon fill="#A80036" points="871.5,572.0205,861.5,576.0205,871.5,580.0205,867.5,576.0205" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="603.5" x2="32" y1="576.0205" y2="576.0205"/><polygon fill="#A80036" points="28,784.1528,32,794.1528,36,784.1528,32,788.1528" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="32" x2="32" y1="576.0205" y2="1002.4927"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="32" x2="732.5" y1="1002.4927" y2="1002.4927"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="1002.4927" y2="1034.4927"/><polygon fill="#A80036" points="728.5,1024.4927,732.5,1034.4927,736.5,1024.4927,732.5,1028.4927" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="544.0205" y2="564.0205"/><polygon fill="#A80036" points="728.5,554.0205,732.5,564.0205,736.5,554.0205,732.5,558.0205" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="462.9531" y2="510.0518"/><polygon fill="#A80036" points="728.5,500.0518,732.5,510.0518,736.5,500.0518,732.5,504.0518" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="553.25" x2="553.25" y1="1102.4614" y2="1124.0278"/><polygon fill="#A80036" points="549.25,1114.0278,553.25,1124.0278,557.25,1114.0278,553.25,1118.0278" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1044.75" x2="1044.75" y1="1172.4614" y2="1196.8638"/><polygon fill="#A80036" points="1040.75,1186.8638,1044.75,1196.8638,1048.75,1186.8638,1044.75,1190.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1176.25" x2="1188.25" y1="1160.4614" y2="1160.4614"/><polygon fill="#A80036" points="1184.25,1203.8481,1188.25,1213.8481,1192.25,1203.8481,1188.25,1207.8481" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1188.25" x2="1188.25" y1="1160.4614" y2="1267.2349"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1188.25" x2="1056.75" y1="1267.2349" y2="1267.2349"/><polygon fill="#A80036" points="1066.75,1263.2349,1056.75,1267.2349,1066.75,1271.2349,1062.75,1267.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1044.75" x2="1044.75" y1="1230.8325" y2="1255.2349"/><polygon fill="#A80036" points="1040.75,1245.2349,1044.75,1255.2349,1048.75,1245.2349,1044.75,1249.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="760.25" x2="760.25" y1="1128.4614" y2="1189.8794"/><polygon fill="#A80036" points="756.25,1179.8794,760.25,1189.8794,764.25,1179.8794,760.25,1183.8794" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1044.75" x2="1044.75" y1="1128.4614" y2="1148.4614"/><polygon fill="#A80036" points="1040.75,1138.4614,1044.75,1148.4614,1048.75,1138.4614,1044.75,1142.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="760.25" x2="760.25" y1="1237.8169" y2="1299.2349"/><polygon fill="#A80036" points="756.25,1289.2349,760.25,1299.2349,764.25,1289.2349,760.25,1293.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1044.75" x2="1044.75" y1="1279.2349" y2="1299.2349"/><polygon fill="#A80036" points="1040.75,1289.2349,1044.75,1299.2349,1048.75,1289.2349,1044.75,1293.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="911.75" x2="911.75" y1="1102.4614" y2="1122.4614"/><polygon fill="#A80036" points="907.75,1112.4614,911.75,1122.4614,915.75,1112.4614,911.75,1116.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="634.5" x2="553.25" y1="1046.4927" y2="1046.4927"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="553.25" x2="553.25" y1="1046.4927" y2="1068.4927"/><polygon fill="#A80036" points="549.25,1058.4927,553.25,1068.4927,557.25,1058.4927,553.25,1062.4927" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="830.5" x2="911.75" y1="1046.4927" y2="1046.4927"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="911.75" x2="911.75" y1="1046.4927" y2="1068.4927"/><polygon fill="#A80036" points="907.75,1058.4927,911.75,1068.4927,915.75,1058.4927,911.75,1062.4927" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="911.75" x2="911.75" y1="1305.2349" y2="1310.2349"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="911.75" x2="732.5" y1="1310.2349" y2="1310.2349"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="1310.2349" y2="1352.3335"/><polygon fill="#A80036" points="728.5,1342.3335,732.5,1352.3335,736.5,1342.3335,732.5,1346.3335" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247.75" x2="247.75" y1="1435.3335" y2="1468.1382"/><polygon fill="#A80036" points="243.75,1458.1382,247.75,1468.1382,251.75,1458.1382,247.75,1462.1382" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247.75" x2="247.75" y1="1502.1069" y2="1560.5405"/><polygon fill="#A80036" points="243.75,1550.5405,247.75,1560.5405,251.75,1550.5405,247.75,1554.5405" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="515.25" x2="515.25" y1="1435.3335" y2="1468.1382"/><polygon fill="#A80036" points="511.25,1458.1382,515.25,1468.1382,519.25,1458.1382,515.25,1462.1382" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="515.25" x2="515.25" y1="1502.1069" y2="1560.5405"/><polygon fill="#A80036" points="511.25,1550.5405,515.25,1560.5405,519.25,1550.5405,515.25,1554.5405" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="360.25" x2="380.25" y1="1423.3335" y2="1423.3335"/><polygon fill="#A80036" points="370.25,1419.3335,380.25,1423.3335,370.25,1427.3335,374.25,1423.3335" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="613.5" x2="247.75" y1="1364.3335" y2="1364.3335"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247.75" x2="247.75" y1="1364.3335" y2="1411.3335"/><polygon fill="#A80036" points="243.75,1401.3335,247.75,1411.3335,251.75,1401.3335,247.75,1405.3335" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="650.25" x2="685.25" y1="1423.3335" y2="1423.3335"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="685.25" x2="685.25" y1="1423.3335" y2="1560.5405"/><polygon fill="#A80036" points="681.25,1550.5405,685.25,1560.5405,689.25,1550.5405,685.25,1554.5405" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247.75" x2="685.25" y1="1560.5405" y2="1560.5405"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1047.25" x2="1047.25" y1="1456.5991" y2="1491.5991"/><polygon fill="#A80036" points="1043.25,1481.5991,1047.25,1491.5991,1051.25,1481.5991,1047.25,1485.5991" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1047.25" x2="1047.25" y1="1525.5679" y2="1545.5679"/><polygon fill="#A80036" points="1043.25,1535.5679,1047.25,1545.5679,1051.25,1535.5679,1047.25,1539.5679" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="851.5" x2="1047.25" y1="1364.3335" y2="1364.3335"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1047.25" x2="1047.25" y1="1364.3335" y2="1422.6304"/><polygon fill="#A80036" points="1043.25,1412.6304,1047.25,1422.6304,1051.25,1412.6304,1047.25,1416.6304" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="417.75" x2="417.75" y1="1560.5405" y2="1586.1343"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="417.75" x2="732.5" y1="1586.1343" y2="1586.1343"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="1586.1343" y2="1613.1343"/><polygon fill="#A80036" points="728.5,1603.1343,732.5,1613.1343,736.5,1603.1343,732.5,1607.1343" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="1672.2329" y2="1692.2329"/><polygon fill="#A80036" points="350,1682.2329,354,1692.2329,358,1682.2329,354,1686.2329" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="559.5" x2="559.5" y1="1672.2329" y2="1692.2329"/><polygon fill="#A80036" points="555.5,1682.2329,559.5,1692.2329,563.5,1682.2329,559.5,1686.2329" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="759" x2="759" y1="1672.2329" y2="1692.2329"/><polygon fill="#A80036" points="755,1682.2329,759,1692.2329,763,1682.2329,759,1686.2329" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="1726.2017" y2="1746.2017"/><polygon fill="#A80036" points="350,1736.2017,354,1746.2017,358,1736.2017,354,1740.2017" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="559.5" x2="559.5" y1="1726.2017" y2="1746.2017"/><polygon fill="#A80036" points="555.5,1736.2017,559.5,1746.2017,563.5,1736.2017,559.5,1740.2017" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="759" x2="759" y1="1726.2017" y2="1746.2017"/><polygon fill="#A80036" points="755,1736.2017,759,1746.2017,763,1736.2017,759,1740.2017" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="553.5" x2="553.5" y1="1619.1343" y2="1666.2329"/><polygon fill="#A80036" points="549.5,1656.2329,553.5,1666.2329,557.5,1656.2329,553.5,1660.2329" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1057.5" x2="1057.5" y1="1619.1343" y2="1677.1001"/><polygon fill="#A80036" points="1053.5,1667.1001,1057.5,1677.1001,1061.5,1667.1001,1057.5,1671.1001" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="553.5" x2="553.5" y1="1752.2017" y2="1784.2017"/><polygon fill="#A80036" points="549.5,1774.2017,553.5,1784.2017,557.5,1774.2017,553.5,1778.2017" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1057.5" x2="1057.5" y1="1725.0376" y2="1784.2017"/><polygon fill="#A80036" points="1053.5,1774.2017,1057.5,1784.2017,1061.5,1774.2017,1057.5,1778.2017" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="1790.2017" y2="1810.2017"/><polygon fill="#A80036" points="728.5,1800.2017,732.5,1810.2017,736.5,1800.2017,732.5,1804.2017" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="1844.1704" y2="1864.1704"/><polygon fill="#A80036" points="728.5,1854.1704,732.5,1864.1704,736.5,1854.1704,732.5,1858.1704" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1146.25" x2="732.5" y1="406.9844" y2="406.9844"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="732.5" x2="732.5" y1="406.9844" y2="428.9844"/><polygon fill="#A80036" points="728.5,418.9844,732.5,428.9844,736.5,418.9844,732.5,422.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1295.25" x2="1709" y1="406.9844" y2="406.9844"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1709" x2="1709" y1="406.9844" y2="430.5508"/><polygon fill="#A80036" points="1705,420.5508,1709,430.5508,1713,420.5508,1709,424.5508" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1220.75" x2="1220.75" y1="374.9844" y2="394.9844"/><polygon fill="#A80036" points="1216.75,384.9844,1220.75,394.9844,1224.75,384.9844,1220.75,388.9844" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2da61c5b3f4d94a323e8036c3ad15402] |
---|---|---|---|
2 | dd31cb03 | Thomas Schöpping | @startuml |
3 | |||
4 | title **µRtWare**\nurtHrtSubscriberFetchLatestMessage()\n |
||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | |||
11 | |||
12 | note |
||
13 | - - **subscriber** : urt_hrtsubscriber_t* - - |
||
14 | The HRT subscriber that shall fetch the 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 | fork |
||
42 | :decrement message's counter of HRT consumers; |
||
43 | fork again |
||
44 | #EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\ndecrement message's counter of consumers; |
||
45 | fork again |
||
46 | #EEEEEE:..//URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true//..\nreset QoS deadline timer; |
||
47 | endfork |
||
48 | fork again |
||
49 | #EEEEEE:..//URT_CFG:PUBSUB_PROFILING == true//..\nincrement counter of received messages; |
||
50 | endfork |
||
51 | if (HRT counter of a message became 0?) then (yes) |
||
52 | :signal topic's condition variable; |
||
53 | else (no) |
||
54 | endif |
||
55 | endwhile (no) |
||
56 | } |
||
57 | if (Timestamp equals local copy?) then (yes) |
||
58 | :unlock topic; |
||
59 | stop |
||
60 | note |
||
61 | Returns ""URT_STATUS_FETCH_NOMESSAGE"". |
||
62 | endnote |
||
63 | else (no) |
||
64 | :calculate message latency; |
||
65 | fork |
||
66 | #EEEEEE:..//URT:CFG_PUBSUB_PROFILING == true//..\naccumulate ""sumLatencies"" value; |
||
67 | fork again |
||
68 | if (Optional ""latency"" output argument given?) then (yes) |
||
69 | :set ""latency"" value; |
||
70 | else (no) |
||
71 | endif |
||
72 | endfork |
||
73 | endif |
||
74 | partition "//URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true//" #EEEEEE { |
||
75 | if (Latency is within allowed jitter range?) then (yes) |
||
76 | if (Latency is lower than ""minlatency""?) then (yes) |
||
77 | #EEEEEE:update ""minLatency"" value; |
||
78 | elseif (Latency is greater than ""maxLatency"" value?) then (yes) |
||
79 | #EEEEEE:update ""maxLatency"" value; |
||
80 | else (no) |
||
81 | endif |
||
82 | else (no) |
||
83 | partition "//URT_CFG_PUBSUB_QOS_JITTERCHECKS == true//" #EEEEEE { |
||
84 | #EEEEEE:unlock topic; |
||
85 | #EEEEEE:call ""urtCoreStopNodes(URT_STATUS_JITTERVIOLATION)""; |
||
86 | stop |
||
87 | note |
||
88 | Returns ""URT_STATUS_JITTERVIOLATION"". |
||
89 | endnote |
||
90 | } |
||
91 | endif |
||
92 | } |
||
93 | fork |
||
94 | partition "fetch message" { |
||
95 | fork |
||
96 | :update message pointer; |
||
97 | fork again |
||
98 | :copy message origin time; |
||
99 | fork again |
||
100 | :copy message payload; |
||
101 | endfork |
||
102 | } |
||
103 | fork again |
||
104 | #EEEEEE:..//URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true//..\nreset QoS deadline timer; |
||
105 | endfork |
||
106 | :unlock topic; |
||
107 | stop |
||
108 | note |
||
109 | Returns ""URT_STATUS_OK"". |
||
110 | endnote |
||
111 | else (no) |
||
112 | stop |
||
113 | note |
||
114 | Returns ""URT_STATUS_ERROR"". |
||
115 | endnote |
||
116 | endif |
||
117 | |||
118 | |||
119 | @enduml |
||
120 | |||
121 | PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020) |
||
122 | (GPL source distribution) |
||
123 | Java Runtime: OpenJDK Runtime Environment |
||
124 | JVM: OpenJDK 64-Bit Server VM |
||
125 | 2d315870 | Thomas Schöpping | Java Version: 11.0.7+10-post-Ubuntu-2ubuntu218.04 |
126 | dd31cb03 | Thomas Schöpping | Operating System: Linux |
127 | Default Encoding: UTF-8 |
||
128 | Language: en |
||
129 | Country: US |
||
130 | --></g></svg> |