Revision c22d21ad doc/activitydiagrams/subscriber/urtSubscriberFetchLatestMessage.svg
doc/activitydiagrams/subscriber/urtSubscriberFetchLatestMessage.svg | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="2036px" preserveAspectRatio="none" style="width:1846px;height:2036px;" version="1.1" viewBox="0 0 1846 2036" width="1846px" zoomAndPan="magnify"><defs><filter height="300%" id="f1gna4y7n2gv27" 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="877.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="309" x="767.5" y="47.6611">urtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="925" y="68.6143"/><path d="M582.5,72.8594 L582.5,249.3203 A0,0 0 0 0 582.5,249.3203 L887.5,249.3203 A0,0 0 0 0 887.5,249.3203 L887.5,165.0898 L907.5,161.0898 L887.5,157.0898 L887.5,82.8594 L877.5,72.8594 L582.5,72.8594 A0,0 0 0 0 582.5,72.8594 " fill="#FBFB77" filter="url(#f1gna4y7n2gv27)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M877.5,72.8594 L877.5,82.8594 L887.5,82.8594 L877.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="611" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="615" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="615" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="703" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="859" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="859" x2="887.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="284" x="588.5" y="105.0591">The subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="588.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="668.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="700.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="671" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="675" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="675" y="134.8247">payload</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="739" y="134.8247">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="799" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="799" x2="887.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="588.5" 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="588.5" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="674.5" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="675" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="679" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="679" y="180.2231">bytes</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="727" y="180.2231">: size_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="795" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="795" x2="887.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="588.5" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="643" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="647" y="210.4888"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="647" y="210.4888">latency</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="711" y="210.4888">: urt_delay_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="827" y="210.4888"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="827" x2="887.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="588.5" 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="588.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="670.5" y="241.2544">.</text><ellipse cx="917.5" cy="161.0898" fill="#000000" filter="url(#f1gna4y7n2gv27)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="877.5" y="269.3203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="887.5" y="290.459">lock topic</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="864,323.2891,971,323.2891,983,335.2891,971,347.2891,864,347.2891,852,335.2891,864,323.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="864" y="339.0972">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="832" y="332.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="983" y="332.6948">no</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="529.875" y="357.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="539.875" y="378.4277">lock next message</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1137.125,357.2891,1336.125,357.2891,1348.125,369.2891,1336.125,381.2891,1137.125,381.2891,1125.125,369.2891,1137.125,357.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="1137.125" y="373.0972">Has a message been read before?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1105.125" y="366.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1348.125" y="366.6948">no</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="166" x="932.375" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="146" x="942.375" y="412.4277">lock last read message</text><rect fill="#FFFFFF" filter="url(#f1gna4y7n2gv27)" height="319.9136" style="stroke: #000000; stroke-width: 2.0;" width="566" x="706.875" y="491.77"/><path d="M890.875,492.77 L890.875,501.0669 L880.875,511.0669 L706.875,511.0669 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="709.875" y="505.7651">find oldest valid message</text><path d="M716.875,532.4849 L716.875,557.6177 A0,0 0 0 0 716.875,557.6177 L926.875,557.6177 A0,0 0 0 0 926.875,557.6177 L926.875,550.4849 L946.875,545.0513 L926.875,542.4849 L926.875,542.4849 L916.875,532.4849 L716.875,532.4849 A0,0 0 0 0 716.875,532.4849 " fill="#FBFB77" filter="url(#f1gna4y7n2gv27)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M916.875,532.4849 L916.875,542.4849 L926.875,542.4849 L916.875,532.4849 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="189" x="722.875" y="549.5518">Locked two messages ahead.</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="946.875" y="528.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="956.875" y="549.2056">lock next message</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="453" x="788.875" y="637.7461"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="802.875" y="663.7461"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="152" x="812.875" y="684.8848">unlock current message</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="1002.875" y="663.7461"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="205" x="1012.875" y="684.8848">lock one message further ahead</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="453" x="788.875" y="717.7148"/><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="882.375,582.0356,1148.375,582.0356,1160.375,594.0356,1148.375,606.0356,882.375,606.0356,870.375,594.0356,882.375,582.0356" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1019.375" y="616.2461">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="266" x="882.375" y="597.8438">Timestamp of next is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="856.375" y="591.4414">no</text><path d="M734.875,770.1328 L734.875,795.2656 A0,0 0 0 0 734.875,795.2656 L918.875,795.2656 A0,0 0 0 0 918.875,795.2656 L918.875,788.1328 L938.875,782.6992 L918.875,780.1328 L918.875,780.1328 L908.875,770.1328 L734.875,770.1328 A0,0 0 0 0 734.875,770.1328 " fill="#FBFB77" filter="url(#f1gna4y7n2gv27)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M908.875,770.1328 L908.875,780.1328 L918.875,780.1328 L908.875,770.1328 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="163" x="740.875" y="787.1997">One message still locked.</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="938.875" y="765.7148"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="133" x="948.875" y="786.8535">unlock next message</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="903.375,445.2578,1127.375,445.2578,1139.375,457.2578,1127.375,469.2578,903.375,469.2578,891.375,457.2578,903.375,445.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1019.375" y="479.4683">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="903.375" y="461.0659">Message timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1139.375" y="454.6636">yes</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1015.375,831.6836,1027.375,843.6836,1015.375,855.6836,1003.375,843.6836,1015.375,831.6836" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="1314.875" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="1324.875" y="412.4277">lock message after topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1236.625,861.6836,1248.625,873.6836,1236.625,885.6836,1224.625,873.6836,1236.625,861.6836" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="917.5,891.6836,929.5,903.6836,917.5,915.6836,905.5,903.6836,917.5,891.6836" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f1gna4y7n2gv27)" height="522.687" style="stroke: #000000; stroke-width: 2.0;" width="990" x="421" y="926.4854"/><path d="M535,927.4854 L535,935.7822 L525,945.7822 L421,945.7822 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="424" y="940.4805">iterate to latest</text><path d="M575,967.2002 L575,992.333 A0,0 0 0 0 575,992.333 L785,992.333 A0,0 0 0 0 785,992.333 L785,985.2002 L805,979.7666 L785,977.2002 L785,977.2002 L775,967.2002 L575,967.2002 A0,0 0 0 0 575,967.2002 " fill="#FBFB77" filter="url(#f1gna4y7n2gv27)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M775,967.2002 L775,977.2002 L785,977.2002 L775,967.2002 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="189" x="581" y="984.2671">Locked two messages ahead.</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="805" y="962.7822"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="205" x="815" y="983.9209">lock one message further ahead</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="925" x="455" y="1072.4614"/><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="612" x="479" y="1146.8638"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="493" y="1172.8638"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="503" y="1194.0024">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="817" y="1172.8638"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="827" y="1194.0024">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="612" x="479" y="1226.8325"/><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="731.5,1098.4614,838.5,1098.4614,850.5,1110.4614,838.5,1122.4614,731.5,1122.4614,719.5,1110.4614,731.5,1098.4614" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="789" y="1132.6719">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="731.5" y="1114.2695">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="850.5" y="1107.8672">no</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="785,1257.2349,797,1269.2349,785,1281.2349,773,1269.2349,785,1257.2349" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="699" y="1301.2349"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="152" x="709" y="1322.3735">unlock current message</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="1141" y="1207.3481"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="205" x="1151" y="1228.4868">lock one message further ahead</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="925" x="455" y="1355.2036"/><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="756,1016.751,1079,1016.751,1091,1028.751,1079,1040.751,756,1040.751,744,1028.751,756,1016.751" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="921.5" y="1050.9614">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="323" x="756" y="1032.5591">Timestamp of next message is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="730" y="1026.1567">no</text><path d="M637,1407.6216 L637,1432.7544 A0,0 0 0 0 637,1432.7544 L821,1432.7544 A0,0 0 0 0 821,1432.7544 L821,1425.6216 L841,1420.188 L821,1417.6216 L821,1417.6216 L811,1407.6216 L637,1407.6216 A0,0 0 0 0 637,1407.6216 " fill="#FBFB77" filter="url(#f1gna4y7n2gv27)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M811,1407.6216 L811,1417.6216 L821,1417.6216 L811,1407.6216 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="163" x="643" y="1424.6885">One message still locked.</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="841" y="1403.2036"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="133" x="851" y="1424.3423">unlock next message</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1469.1724"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="22" y="1652.4614"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="332" x="32" y="1673.6001">set last fetched message pointer to locked message</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1578.0591"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="396" y="1652.4614"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="406" y="1673.6001">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="304" x="630" y="1652.4614"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="284" x="640" y="1673.6001">set latency value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="662,1604.0591,902,1604.0591,914,1616.0591,902,1628.0591,662,1628.0591,650,1616.0591,662,1604.0591" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="786" y="1638.2695">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="662" y="1619.8672">Optional output argument "latency" given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="914" y="1613.4648">no</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="782,1710.8325,794,1722.8325,782,1734.8325,770,1722.8325,782,1710.8325" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1754.8325"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="998" y="1652.4614"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="1008" y="1673.6001">copy message payload</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1543.5747"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="1213" y="1569.5747"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="1223" y="1590.7134">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1252.5" y="1686.9458"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1262.5" y="1708.0845">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1257.5,1638.5435,1464.5,1638.5435,1476.5,1650.5435,1464.5,1662.5435,1257.5,1662.5435,1245.5,1650.5435,1257.5,1638.5435" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1365" y="1672.7539">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="207" x="1257.5" y="1654.3516">At least one HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1476.5" y="1647.9492">no</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1361,1745.3169,1373,1757.3169,1361,1769.3169,1349,1757.3169,1361,1745.3169" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="1537" y="1652.4614"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="1547" y="1673.6001">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1789.3169"/><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1451.5,1495.1724,1558.5,1495.1724,1570.5,1507.1724,1558.5,1519.1724,1451.5,1519.1724,1439.5,1507.1724,1451.5,1495.1724" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1509" y="1529.3828">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="1451.5" y="1510.9805">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1570.5" y="1504.5781">no</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1505,1815.3169,1517,1827.3169,1505,1839.3169,1493,1827.3169,1505,1815.3169" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1859.3169"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="856.5" y="1885.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="866.5" y="1906.4556">unlock message</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="869.5" y="1939.2856"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="879.5" y="1960.4243">unlock topic</text><path d="M704.5,1984.1216 L704.5,2024.3872 A0,0 0 0 0 704.5,2024.3872 L886.5,2024.3872 A0,0 0 0 0 886.5,2024.3872 L886.5,2008.2544 L906.5,2004.2544 L886.5,2000.2544 L886.5,1994.1216 L876.5,1984.1216 L704.5,1984.1216 A0,0 0 0 0 704.5,1984.1216 " fill="#FBFB77" filter="url(#f1gna4y7n2gv27)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876.5,1984.1216 L876.5,1994.1216 L886.5,1994.1216 L876.5,1984.1216 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="704.5" x2="719" y1="1996.688" y2="1996.688"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723" y="2000.6885"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="723" y="2000.6885">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="772" y="2000.6885"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="772" y="2000.6885">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="872" y="2000.6885"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="872" x2="886.5" y1="1996.688" y2="1996.688"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="710.5" y="2016.3213">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="763.5" y="2016.3213">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="867.5" y="2016.3213">.</text><ellipse cx="917.5" cy="2004.2544" fill="#FFFFFF" filter="url(#f1gna4y7n2gv27)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="917.5" cy="2004.2544" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="171.0898" y2="269.3203"/><polygon fill="#A80036" points="913.5,259.3203,917.5,269.3203,921.5,259.3203,917.5,263.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="888.875" x2="888.875" y1="643.7461" y2="663.7461"/><polygon fill="#A80036" points="884.875,653.7461,888.875,663.7461,892.875,653.7461,888.875,657.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115.375" x2="1115.375" y1="643.7461" y2="663.7461"/><polygon fill="#A80036" points="1111.375,653.7461,1115.375,663.7461,1119.375,653.7461,1115.375,657.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="888.875" x2="888.875" y1="697.7148" y2="717.7148"/><polygon fill="#A80036" points="884.875,707.7148,888.875,717.7148,892.875,707.7148,888.875,711.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115.375" x2="1115.375" y1="697.7148" y2="717.7148"/><polygon fill="#A80036" points="1111.375,707.7148,1115.375,717.7148,1119.375,707.7148,1115.375,711.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="606.0356" y2="637.7461"/><polygon fill="#A80036" points="1011.375,627.7461,1015.375,637.7461,1019.375,627.7461,1015.375,631.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="723.7148" y2="733.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1253.875" y1="733.7148" y2="733.7148"/><polygon fill="#A80036" points="1249.875,672.3281,1253.875,662.3281,1257.875,672.3281,1253.875,668.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.875" x2="1253.875" y1="594.0356" y2="733.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.875" x2="1160.375" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="1170.375,590.0356,1160.375,594.0356,1170.375,598.0356,1166.375,594.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="870.375" x2="776.875" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="772.875,658.3281,776.875,668.3281,780.875,658.3281,776.875,662.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="776.875" x2="776.875" y1="594.0356" y2="745.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="776.875" x2="1015.375" y1="745.7148" y2="745.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="745.7148" y2="765.7148"/><polygon fill="#A80036" points="1011.375,755.7148,1015.375,765.7148,1019.375,755.7148,1015.375,759.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="562.0356" y2="582.0356"/><polygon fill="#A80036" points="1011.375,572.0356,1015.375,582.0356,1019.375,572.0356,1015.375,576.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="469.2578" y2="528.0669"/><polygon fill="#A80036" points="1011.375,518.0669,1015.375,528.0669,1019.375,518.0669,1015.375,522.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1139.375" x2="1282.875" y1="457.2578" y2="457.2578"/><polygon fill="#A80036" points="1278.875,644.1797,1282.875,654.1797,1286.875,644.1797,1282.875,648.1797" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1282.875" x2="1282.875" y1="457.2578" y2="843.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1282.875" x2="1027.375" y1="843.6836" y2="843.6836"/><polygon fill="#A80036" points="1037.375,839.6836,1027.375,843.6836,1037.375,847.6836,1033.375,843.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="799.6836" y2="831.6836"/><polygon fill="#A80036" points="1011.375,821.6836,1015.375,831.6836,1019.375,821.6836,1015.375,825.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="425.2578" y2="445.2578"/><polygon fill="#A80036" points="1011.375,435.2578,1015.375,445.2578,1019.375,435.2578,1015.375,439.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1125.125" x2="1015.375" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="1011.375,381.2891,1015.375,391.2891,1019.375,381.2891,1015.375,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1348.125" x2="1457.875" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1457.875" x2="1457.875" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="1453.875,381.2891,1457.875,391.2891,1461.875,381.2891,1457.875,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="855.6836" y2="873.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1224.625" y1="873.6836" y2="873.6836"/><polygon fill="#A80036" points="1214.625,869.6836,1224.625,873.6836,1214.625,877.6836,1218.625,873.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1457.875" x2="1457.875" y1="425.2578" y2="873.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1457.875" x2="1248.625" y1="873.6836" y2="873.6836"/><polygon fill="#A80036" points="1258.625,869.6836,1248.625,873.6836,1258.625,877.6836,1254.625,873.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852" x2="598.375" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="598.375" x2="598.375" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="594.375,347.2891,598.375,357.2891,602.375,347.2891,598.375,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983" x2="1236.625" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1236.625" x2="1236.625" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="1232.625,347.2891,1236.625,357.2891,1240.625,347.2891,1236.625,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="598.375" x2="598.375" y1="391.2578" y2="903.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="598.375" x2="905.5" y1="903.6836" y2="903.6836"/><polygon fill="#A80036" points="895.5,899.6836,905.5,903.6836,895.5,907.6836,899.5,903.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1236.625" x2="1236.625" y1="885.6836" y2="903.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1236.625" x2="929.5" y1="903.6836" y2="903.6836"/><polygon fill="#A80036" points="939.5,899.6836,929.5,903.6836,939.5,907.6836,935.5,903.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="303.2891" y2="323.2891"/><polygon fill="#A80036" points="913.5,313.2891,917.5,323.2891,921.5,313.2891,917.5,317.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="641" x2="641" y1="1152.8638" y2="1172.8638"/><polygon fill="#A80036" points="637,1162.8638,641,1172.8638,645,1162.8638,641,1166.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="947" x2="947" y1="1152.8638" y2="1172.8638"/><polygon fill="#A80036" points="943,1162.8638,947,1172.8638,951,1162.8638,947,1166.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="641" x2="641" y1="1206.8325" y2="1226.8325"/><polygon fill="#A80036" points="637,1216.8325,641,1226.8325,645,1216.8325,641,1220.8325" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="947" x2="947" y1="1206.8325" y2="1226.8325"/><polygon fill="#A80036" points="943,1216.8325,947,1226.8325,951,1216.8325,947,1220.8325" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785" x2="785" y1="1122.4614" y2="1146.8638"/><polygon fill="#A80036" points="781,1136.8638,785,1146.8638,789,1136.8638,785,1140.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="850.5" x2="1101" y1="1110.4614" y2="1110.4614"/><polygon fill="#A80036" points="1097,1179.8481,1101,1189.8481,1105,1179.8481,1101,1183.8481" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1101" x2="1101" y1="1110.4614" y2="1269.2349"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1101" x2="797" y1="1269.2349" y2="1269.2349"/><polygon fill="#A80036" points="807,1265.2349,797,1269.2349,807,1273.2349,803,1269.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785" x2="785" y1="1232.8325" y2="1257.2349"/><polygon fill="#A80036" points="781,1247.2349,785,1257.2349,789,1247.2349,785,1251.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785" x2="785" y1="1281.2349" y2="1301.2349"/><polygon fill="#A80036" points="781,1291.2349,785,1301.2349,789,1291.2349,785,1295.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785" x2="785" y1="1078.4614" y2="1098.4614"/><polygon fill="#A80036" points="781,1088.4614,785,1098.4614,789,1088.4614,785,1092.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.5" x2="1253.5" y1="1078.4614" y2="1207.3481"/><polygon fill="#A80036" points="1249.5,1197.3481,1253.5,1207.3481,1257.5,1197.3481,1253.5,1201.3481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785" x2="785" y1="1335.2036" y2="1355.2036"/><polygon fill="#A80036" points="781,1345.2036,785,1355.2036,789,1345.2036,785,1349.2036" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.5" x2="1253.5" y1="1241.3169" y2="1355.2036"/><polygon fill="#A80036" points="1249.5,1345.2036,1253.5,1355.2036,1257.5,1345.2036,1253.5,1349.2036" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1040.751" y2="1072.4614"/><polygon fill="#A80036" points="913.5,1062.4614,917.5,1072.4614,921.5,1062.4614,917.5,1066.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1361.2036" y2="1371.2036"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="1392" y1="1371.2036" y2="1371.2036"/><polygon fill="#A80036" points="1388,1215.9302,1392,1205.9302,1396,1215.9302,1392,1211.9302" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1392" x2="1392" y1="1028.751" y2="1371.2036"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1392" x2="1091" y1="1028.751" y2="1028.751"/><polygon fill="#A80036" points="1101,1024.751,1091,1028.751,1101,1032.751,1097,1028.751" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="744" x2="443" y1="1028.751" y2="1028.751"/><polygon fill="#A80036" points="439,1201.9302,443,1211.9302,447,1201.9302,443,1205.9302" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="443" x2="443" y1="1028.751" y2="1383.2036"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="443" x2="917.5" y1="1383.2036" y2="1383.2036"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1383.2036" y2="1403.2036"/><polygon fill="#A80036" points="913.5,1393.2036,917.5,1403.2036,921.5,1393.2036,917.5,1397.2036" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="996.751" y2="1016.751"/><polygon fill="#A80036" points="913.5,1006.751,917.5,1016.751,921.5,1006.751,917.5,1010.751" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="915.6836" y2="962.7822"/><polygon fill="#A80036" points="913.5,952.7822,917.5,962.7822,921.5,952.7822,917.5,956.7822" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1628.0591" y2="1652.4614"/><polygon fill="#A80036" points="778,1642.4614,782,1652.4614,786,1642.4614,782,1646.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="914" x2="944" y1="1616.0591" y2="1616.0591"/><polygon fill="#A80036" points="940,1659.4458,944,1669.4458,948,1659.4458,944,1663.4458" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="944" y1="1616.0591" y2="1722.8325"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="794" y1="1722.8325" y2="1722.8325"/><polygon fill="#A80036" points="804,1718.8325,794,1722.8325,804,1726.8325,800,1722.8325" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1686.4302" y2="1710.8325"/><polygon fill="#A80036" points="778,1700.8325,782,1710.8325,786,1700.8325,782,1704.8325" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1584.0591" y2="1652.4614"/><polygon fill="#A80036" points="490,1642.4614,494,1652.4614,498,1642.4614,494,1646.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1584.0591" y2="1604.0591"/><polygon fill="#A80036" points="778,1594.0591,782,1604.0591,786,1594.0591,782,1598.0591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1686.4302" y2="1754.8325"/><polygon fill="#A80036" points="490,1744.8325,494,1754.8325,498,1744.8325,494,1748.8325" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1734.8325" y2="1754.8325"/><polygon fill="#A80036" points="778,1744.8325,782,1754.8325,786,1744.8325,782,1748.8325" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1662.5435" y2="1686.9458"/><polygon fill="#A80036" points="1357,1676.9458,1361,1686.9458,1365,1676.9458,1361,1680.9458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1476.5" x2="1488.5" y1="1650.5435" y2="1650.5435"/><polygon fill="#A80036" points="1484.5,1693.9302,1488.5,1703.9302,1492.5,1693.9302,1488.5,1697.9302" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1488.5" x2="1488.5" y1="1650.5435" y2="1757.3169"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1488.5" x2="1373" y1="1757.3169" y2="1757.3169"/><polygon fill="#A80036" points="1383,1753.3169,1373,1757.3169,1383,1761.3169,1379,1757.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1720.9146" y2="1745.3169"/><polygon fill="#A80036" points="1357,1735.3169,1361,1745.3169,1365,1735.3169,1361,1739.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1603.5435" y2="1638.5435"/><polygon fill="#A80036" points="1357,1628.5435,1361,1638.5435,1365,1628.5435,1361,1632.5435" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1549.5747" y2="1569.5747"/><polygon fill="#A80036" points="1357,1559.5747,1361,1569.5747,1365,1559.5747,1361,1563.5747" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1549.5747" y2="1652.4614"/><polygon fill="#A80036" points="1663,1642.4614,1667,1652.4614,1671,1642.4614,1667,1646.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1769.3169" y2="1789.3169"/><polygon fill="#A80036" points="1357,1779.3169,1361,1789.3169,1365,1779.3169,1361,1783.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1686.4302" y2="1789.3169"/><polygon fill="#A80036" points="1663,1779.3169,1667,1789.3169,1671,1779.3169,1667,1783.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1519.1724" y2="1543.5747"/><polygon fill="#A80036" points="1501,1533.5747,1505,1543.5747,1509,1533.5747,1505,1537.5747" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1570.5" x2="1819" y1="1507.1724" y2="1507.1724"/><polygon fill="#A80036" points="1815,1659.4458,1819,1669.4458,1823,1659.4458,1819,1663.4458" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1819" y1="1507.1724" y2="1827.3169"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1517" y1="1827.3169" y2="1827.3169"/><polygon fill="#A80036" points="1527,1823.3169,1517,1827.3169,1527,1831.3169,1523,1827.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1795.3169" y2="1815.3169"/><polygon fill="#A80036" points="1501,1805.3169,1505,1815.3169,1509,1805.3169,1505,1809.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1475.1724" y2="1652.4614"/><polygon fill="#A80036" points="194,1642.4614,198,1652.4614,202,1642.4614,198,1646.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1475.1724" y2="1578.0591"/><polygon fill="#A80036" points="672,1568.0591,676,1578.0591,680,1568.0591,676,1572.0591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1475.1724" y2="1652.4614"/><polygon fill="#A80036" points="1075.5,1642.4614,1079.5,1652.4614,1083.5,1642.4614,1079.5,1646.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1475.1724" y2="1495.1724"/><polygon fill="#A80036" points="1501,1485.1724,1505,1495.1724,1509,1485.1724,1505,1489.1724" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1686.4302" y2="1859.3169"/><polygon fill="#A80036" points="194,1849.3169,198,1859.3169,202,1849.3169,198,1853.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1760.8325" y2="1859.3169"/><polygon fill="#A80036" points="672,1849.3169,676,1859.3169,680,1849.3169,676,1853.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1686.4302" y2="1859.3169"/><polygon fill="#A80036" points="1075.5,1849.3169,1079.5,1859.3169,1083.5,1849.3169,1079.5,1853.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1839.3169" y2="1859.3169"/><polygon fill="#A80036" points="1501,1849.3169,1505,1859.3169,1509,1849.3169,1505,1853.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1437.1724" y2="1469.1724"/><polygon fill="#A80036" points="913.5,1459.1724,917.5,1469.1724,921.5,1459.1724,917.5,1463.1724" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1865.3169" y2="1885.3169"/><polygon fill="#A80036" points="913.5,1875.3169,917.5,1885.3169,921.5,1875.3169,917.5,1879.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1919.2856" y2="1939.2856"/><polygon fill="#A80036" points="913.5,1929.2856,917.5,1939.2856,921.5,1929.2856,917.5,1933.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1973.2544" y2="1993.2544"/><polygon fill="#A80036" points="913.5,1983.2544,917.5,1993.2544,921.5,1983.2544,917.5,1987.2544" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[182a4b501eba656a340bd6dd5b9ad214]
|
|
1 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1712px" preserveAspectRatio="none" style="width:1846px;height:1712px;" version="1.1" viewBox="0 0 1846 1712" width="1846px" zoomAndPan="magnify"><defs><filter height="300%" id="f1n5j7g2wxnm1t" 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="877.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="309" x="767.5" y="47.6611">urtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="925" y="68.6143"/><path d="M582.5,72.8594 L582.5,249.3203 A0,0 0 0 0 582.5,249.3203 L887.5,249.3203 A0,0 0 0 0 887.5,249.3203 L887.5,165.0898 L907.5,161.0898 L887.5,157.0898 L887.5,82.8594 L877.5,72.8594 L582.5,72.8594 A0,0 0 0 0 582.5,72.8594 " fill="#FBFB77" filter="url(#f1n5j7g2wxnm1t)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M877.5,72.8594 L877.5,82.8594 L887.5,82.8594 L877.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="611" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="615" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="615" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="703" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="859" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="859" x2="887.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="284" x="588.5" y="105.0591">The subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="588.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="668.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="700.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="671" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="675" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="675" y="134.8247">payload</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="739" y="134.8247">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="799" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="799" x2="887.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="588.5" 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="588.5" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="674.5" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="675" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="679" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="679" y="180.2231">bytes</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="727" y="180.2231">: size_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="795" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="795" x2="887.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="588.5" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="643" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="647" y="210.4888"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="647" y="210.4888">latency</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="711" y="210.4888">: urt_delay_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="827" y="210.4888"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="827" x2="887.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="588.5" 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="588.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="670.5" y="241.2544">.</text><ellipse cx="917.5" cy="161.0898" fill="#000000" filter="url(#f1n5j7g2wxnm1t)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="877.5" y="269.3203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="887.5" y="290.459">lock topic</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="864,323.2891,971,323.2891,983,335.2891,971,347.2891,864,347.2891,852,335.2891,864,323.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="864" y="339.0972">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="832" y="332.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="983" y="332.6948">no</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="598.375" y="357.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="608.375" y="378.4277">access next message</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1059.125,357.2891,1258.125,357.2891,1270.125,369.2891,1258.125,381.2891,1059.125,381.2891,1047.125,369.2891,1059.125,357.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="1059.125" y="373.0972">Has a message been read before?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1027.125" y="366.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1270.125" y="366.6948">no</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="880.875" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="890.875" y="412.4277">access last read message</text><rect fill="#FFFFFF" filter="url(#f1n5j7g2wxnm1t)" height="213.9448" style="stroke: #000000; stroke-width: 2.0;" width="355" x="794.375" y="491.77"/><path d="M978.375,492.77 L978.375,501.0669 L968.375,511.0669 L794.375,511.0669 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="797.375" y="505.7651">find oldest valid message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="895.375" y="528.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="905.375" y="549.2056">access next message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="888.875" y="637.7461"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="898.875" y="658.8848">iterate by one message</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="840.375,582.0356,1106.375,582.0356,1118.375,594.0356,1106.375,606.0356,840.375,606.0356,828.375,594.0356,840.375,582.0356" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="977.375" y="616.2461">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="266" x="840.375" y="597.8438">Timestamp of next is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="814.375" y="591.4414">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="861.375,445.2578,1085.375,445.2578,1097.375,457.2578,1085.375,469.2578,861.375,469.2578,849.375,457.2578,861.375,445.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="977.375" y="479.4683">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="861.375" y="461.0659">Message timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1097.375" y="454.6636">yes</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="973.375,725.7148,985.375,737.7148,973.375,749.7148,961.375,737.7148,973.375,725.7148" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="305" x="1191.375" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="285" x="1201.375" y="412.4277">access message after topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1158.625,755.7148,1170.625,767.7148,1158.625,779.7148,1146.625,767.7148,1158.625,755.7148" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="917.5,785.7148,929.5,797.7148,917.5,809.7148,905.5,797.7148,917.5,785.7148" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f1n5j7g2wxnm1t)" height="358.3472" style="stroke: #000000; stroke-width: 2.0;" width="709" x="567.5" y="820.5166"/><path d="M681.5,821.5166 L681.5,829.8135 L671.5,839.8135 L567.5,839.8135 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="570.5" y="834.5117">iterate to latest</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="612" x="611.5" y="960.9263"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="625.5" y="986.9263"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="635.5" y="1008.0649">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="949.5" y="986.9263"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="959.5" y="1008.0649">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="612" x="611.5" y="1040.895"/><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="864,912.5239,971,912.5239,983,924.5239,971,936.5239,864,936.5239,852,924.5239,864,912.5239" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="921.5" y="946.7344">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="864" y="928.332">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="983" y="921.9297">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="917.5,1066.895,929.5,1078.895,917.5,1090.895,905.5,1078.895,917.5,1066.895" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="833" y="1110.895"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="843" y="1132.0337">iterate by one message</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="756,856.8135,1079,856.8135,1091,868.8135,1079,880.8135,756,880.8135,744,868.8135,756,856.8135" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="921.5" y="891.0239">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="323" x="756" y="872.6216">Timestamp of next message is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="730" y="866.2192">no</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1198.8638"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="22" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="332" x="32" y="1403.2915">set last fetched message pointer to locked message</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1307.7505"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="396" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="406" y="1403.2915">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="304" x="630" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="284" x="640" y="1403.2915">set latency value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="662,1333.7505,902,1333.7505,914,1345.7505,902,1357.7505,662,1357.7505,650,1345.7505,662,1333.7505" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="786" y="1367.9609">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="662" y="1349.5586">Optional output argument "latency" given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="914" y="1343.1563">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="782,1440.5239,794,1452.5239,782,1464.5239,770,1452.5239,782,1440.5239" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1484.5239"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="998" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="1008" y="1403.2915">copy message payload</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1273.2661"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="1213" y="1299.2661"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="1223" y="1320.4048">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1252.5" y="1416.6372"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1262.5" y="1437.7759">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1257.5,1368.2349,1464.5,1368.2349,1476.5,1380.2349,1464.5,1392.2349,1257.5,1392.2349,1245.5,1380.2349,1257.5,1368.2349" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1365" y="1402.4453">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="207" x="1257.5" y="1384.043">At least one HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1476.5" y="1377.6406">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1361,1475.0083,1373,1487.0083,1361,1499.0083,1349,1487.0083,1361,1475.0083" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="1537" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="1547" y="1403.2915">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1519.0083"/><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1451.5,1224.8638,1558.5,1224.8638,1570.5,1236.8638,1558.5,1248.8638,1451.5,1248.8638,1439.5,1236.8638,1451.5,1224.8638" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1509" y="1259.0742">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="1451.5" y="1240.6719">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1570.5" y="1234.2695">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1505,1545.0083,1517,1557.0083,1505,1569.0083,1493,1557.0083,1505,1545.0083" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1589.0083"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="869.5" y="1615.0083"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="879.5" y="1636.147">unlock topic</text><path d="M704.5,1659.8442 L704.5,1700.1099 A0,0 0 0 0 704.5,1700.1099 L886.5,1700.1099 A0,0 0 0 0 886.5,1700.1099 L886.5,1683.9771 L906.5,1679.9771 L886.5,1675.9771 L886.5,1669.8442 L876.5,1659.8442 L704.5,1659.8442 A0,0 0 0 0 704.5,1659.8442 " fill="#FBFB77" filter="url(#f1n5j7g2wxnm1t)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876.5,1659.8442 L876.5,1669.8442 L886.5,1669.8442 L876.5,1659.8442 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="704.5" x2="719" y1="1672.4106" y2="1672.4106"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723" y="1676.4111"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="723" y="1676.4111">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="772" y="1676.4111"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="772" y="1676.4111">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="872" y="1676.4111"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="872" x2="886.5" y1="1672.4106" y2="1672.4106"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="710.5" y="1692.0439">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="763.5" y="1692.0439">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="867.5" y="1692.0439">.</text><ellipse cx="917.5" cy="1679.9771" fill="#FFFFFF" filter="url(#f1n5j7g2wxnm1t)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="917.5" cy="1679.9771" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="171.0898" y2="269.3203"/><polygon fill="#A80036" points="913.5,259.3203,917.5,269.3203,921.5,259.3203,917.5,263.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="606.0356" y2="637.7461"/><polygon fill="#A80036" points="969.375,627.7461,973.375,637.7461,977.375,627.7461,973.375,631.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="671.7148" y2="681.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="1130.375" y1="681.7148" y2="681.7148"/><polygon fill="#A80036" points="1126.375,646.3281,1130.375,636.3281,1134.375,646.3281,1130.375,642.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1130.375" x2="1130.375" y1="594.0356" y2="681.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1130.375" x2="1118.375" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="1128.375,590.0356,1118.375,594.0356,1128.375,598.0356,1124.375,594.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="828.375" x2="816.375" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="812.375,632.3281,816.375,642.3281,820.375,632.3281,816.375,636.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="816.375" x2="816.375" y1="594.0356" y2="693.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="816.375" x2="973.375" y1="693.7148" y2="693.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="693.7148" y2="725.7148"/><polygon fill="#A80036" points="969.375,715.7148,973.375,725.7148,977.375,715.7148,973.375,719.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="562.0356" y2="582.0356"/><polygon fill="#A80036" points="969.375,572.0356,973.375,582.0356,977.375,572.0356,973.375,576.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="469.2578" y2="528.0669"/><polygon fill="#A80036" points="969.375,518.0669,973.375,528.0669,977.375,518.0669,973.375,522.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1097.375" x2="1159.375" y1="457.2578" y2="457.2578"/><polygon fill="#A80036" points="1155.375,588.7896,1159.375,598.7896,1163.375,588.7896,1159.375,592.7896" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1159.375" x2="1159.375" y1="457.2578" y2="737.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1159.375" x2="985.375" y1="737.7148" y2="737.7148"/><polygon fill="#A80036" points="995.375,733.7148,985.375,737.7148,995.375,741.7148,991.375,737.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="425.2578" y2="445.2578"/><polygon fill="#A80036" points="969.375,435.2578,973.375,445.2578,977.375,435.2578,973.375,439.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1047.125" x2="973.375" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="969.375,381.2891,973.375,391.2891,977.375,381.2891,973.375,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1270.125" x2="1343.875" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343.875" x2="1343.875" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="1339.875,381.2891,1343.875,391.2891,1347.875,381.2891,1343.875,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="749.7148" y2="767.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="1146.625" y1="767.7148" y2="767.7148"/><polygon fill="#A80036" points="1136.625,763.7148,1146.625,767.7148,1136.625,771.7148,1140.625,767.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343.875" x2="1343.875" y1="425.2578" y2="767.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343.875" x2="1170.625" y1="767.7148" y2="767.7148"/><polygon fill="#A80036" points="1180.625,763.7148,1170.625,767.7148,1180.625,771.7148,1176.625,767.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852" x2="676.375" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676.375" x2="676.375" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="672.375,347.2891,676.375,357.2891,680.375,347.2891,676.375,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983" x2="1158.625" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.625" x2="1158.625" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="1154.625,347.2891,1158.625,357.2891,1162.625,347.2891,1158.625,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676.375" x2="676.375" y1="391.2578" y2="797.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676.375" x2="905.5" y1="797.7148" y2="797.7148"/><polygon fill="#A80036" points="895.5,793.7148,905.5,797.7148,895.5,801.7148,899.5,797.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.625" x2="1158.625" y1="779.7148" y2="797.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.625" x2="929.5" y1="797.7148" y2="797.7148"/><polygon fill="#A80036" points="939.5,793.7148,929.5,797.7148,939.5,801.7148,935.5,797.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="303.2891" y2="323.2891"/><polygon fill="#A80036" points="913.5,313.2891,917.5,323.2891,921.5,313.2891,917.5,317.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="773.5" x2="773.5" y1="966.9263" y2="986.9263"/><polygon fill="#A80036" points="769.5,976.9263,773.5,986.9263,777.5,976.9263,773.5,980.9263" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="966.9263" y2="986.9263"/><polygon fill="#A80036" points="1075.5,976.9263,1079.5,986.9263,1083.5,976.9263,1079.5,980.9263" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="773.5" x2="773.5" y1="1020.895" y2="1040.895"/><polygon fill="#A80036" points="769.5,1030.895,773.5,1040.895,777.5,1030.895,773.5,1034.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1020.895" y2="1040.895"/><polygon fill="#A80036" points="1075.5,1030.895,1079.5,1040.895,1083.5,1030.895,1079.5,1034.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="936.5239" y2="960.9263"/><polygon fill="#A80036" points="913.5,950.9263,917.5,960.9263,921.5,950.9263,917.5,954.9263" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983" x2="1233.5" y1="924.5239" y2="924.5239"/><polygon fill="#A80036" points="1229.5,993.9106,1233.5,1003.9106,1237.5,993.9106,1233.5,997.9106" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1233.5" x2="1233.5" y1="924.5239" y2="1078.895"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1233.5" x2="929.5" y1="1078.895" y2="1078.895"/><polygon fill="#A80036" points="939.5,1074.895,929.5,1078.895,939.5,1082.895,935.5,1078.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1046.895" y2="1066.895"/><polygon fill="#A80036" points="913.5,1056.895,917.5,1066.895,921.5,1056.895,917.5,1060.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1090.895" y2="1110.895"/><polygon fill="#A80036" points="913.5,1100.895,917.5,1110.895,921.5,1100.895,917.5,1104.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="880.8135" y2="912.5239"/><polygon fill="#A80036" points="913.5,902.5239,917.5,912.5239,921.5,902.5239,917.5,906.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1144.8638" y2="1154.8638"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="1257.5" y1="1154.8638" y2="1154.8638"/><polygon fill="#A80036" points="1253.5,1029.9927,1257.5,1019.9927,1261.5,1029.9927,1257.5,1025.9927" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1257.5" x2="1257.5" y1="868.8135" y2="1154.8638"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1257.5" x2="1091" y1="868.8135" y2="868.8135"/><polygon fill="#A80036" points="1101,864.8135,1091,868.8135,1101,872.8135,1097,868.8135" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="744" x2="589.5" y1="868.8135" y2="868.8135"/><polygon fill="#A80036" points="585.5,1015.9927,589.5,1025.9927,593.5,1015.9927,589.5,1019.9927" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="589.5" x2="589.5" y1="868.8135" y2="1166.8638"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="589.5" x2="917.5" y1="1166.8638" y2="1166.8638"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1166.8638" y2="1198.8638"/><polygon fill="#A80036" points="913.5,1188.8638,917.5,1198.8638,921.5,1188.8638,917.5,1192.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="809.7148" y2="856.8135"/><polygon fill="#A80036" points="913.5,846.8135,917.5,856.8135,921.5,846.8135,917.5,850.8135" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1357.7505" y2="1382.1528"/><polygon fill="#A80036" points="778,1372.1528,782,1382.1528,786,1372.1528,782,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="914" x2="944" y1="1345.7505" y2="1345.7505"/><polygon fill="#A80036" points="940,1389.1372,944,1399.1372,948,1389.1372,944,1393.1372" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="944" y1="1345.7505" y2="1452.5239"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="794" y1="1452.5239" y2="1452.5239"/><polygon fill="#A80036" points="804,1448.5239,794,1452.5239,804,1456.5239,800,1452.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1416.1216" y2="1440.5239"/><polygon fill="#A80036" points="778,1430.5239,782,1440.5239,786,1430.5239,782,1434.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1313.7505" y2="1382.1528"/><polygon fill="#A80036" points="490,1372.1528,494,1382.1528,498,1372.1528,494,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1313.7505" y2="1333.7505"/><polygon fill="#A80036" points="778,1323.7505,782,1333.7505,786,1323.7505,782,1327.7505" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1416.1216" y2="1484.5239"/><polygon fill="#A80036" points="490,1474.5239,494,1484.5239,498,1474.5239,494,1478.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1464.5239" y2="1484.5239"/><polygon fill="#A80036" points="778,1474.5239,782,1484.5239,786,1474.5239,782,1478.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1392.2349" y2="1416.6372"/><polygon fill="#A80036" points="1357,1406.6372,1361,1416.6372,1365,1406.6372,1361,1410.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1476.5" x2="1488.5" y1="1380.2349" y2="1380.2349"/><polygon fill="#A80036" points="1484.5,1423.6216,1488.5,1433.6216,1492.5,1423.6216,1488.5,1427.6216" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1488.5" x2="1488.5" y1="1380.2349" y2="1487.0083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1488.5" x2="1373" y1="1487.0083" y2="1487.0083"/><polygon fill="#A80036" points="1383,1483.0083,1373,1487.0083,1383,1491.0083,1379,1487.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1450.606" y2="1475.0083"/><polygon fill="#A80036" points="1357,1465.0083,1361,1475.0083,1365,1465.0083,1361,1469.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1333.2349" y2="1368.2349"/><polygon fill="#A80036" points="1357,1358.2349,1361,1368.2349,1365,1358.2349,1361,1362.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1279.2661" y2="1299.2661"/><polygon fill="#A80036" points="1357,1289.2661,1361,1299.2661,1365,1289.2661,1361,1293.2661" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1279.2661" y2="1382.1528"/><polygon fill="#A80036" points="1663,1372.1528,1667,1382.1528,1671,1372.1528,1667,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1499.0083" y2="1519.0083"/><polygon fill="#A80036" points="1357,1509.0083,1361,1519.0083,1365,1509.0083,1361,1513.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1416.1216" y2="1519.0083"/><polygon fill="#A80036" points="1663,1509.0083,1667,1519.0083,1671,1509.0083,1667,1513.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1248.8638" y2="1273.2661"/><polygon fill="#A80036" points="1501,1263.2661,1505,1273.2661,1509,1263.2661,1505,1267.2661" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1570.5" x2="1819" y1="1236.8638" y2="1236.8638"/><polygon fill="#A80036" points="1815,1389.1372,1819,1399.1372,1823,1389.1372,1819,1393.1372" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1819" y1="1236.8638" y2="1557.0083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1517" y1="1557.0083" y2="1557.0083"/><polygon fill="#A80036" points="1527,1553.0083,1517,1557.0083,1527,1561.0083,1523,1557.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1525.0083" y2="1545.0083"/><polygon fill="#A80036" points="1501,1535.0083,1505,1545.0083,1509,1535.0083,1505,1539.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1204.8638" y2="1382.1528"/><polygon fill="#A80036" points="194,1372.1528,198,1382.1528,202,1372.1528,198,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1204.8638" y2="1307.7505"/><polygon fill="#A80036" points="672,1297.7505,676,1307.7505,680,1297.7505,676,1301.7505" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1204.8638" y2="1382.1528"/><polygon fill="#A80036" points="1075.5,1372.1528,1079.5,1382.1528,1083.5,1372.1528,1079.5,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1204.8638" y2="1224.8638"/><polygon fill="#A80036" points="1501,1214.8638,1505,1224.8638,1509,1214.8638,1505,1218.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1416.1216" y2="1589.0083"/><polygon fill="#A80036" points="194,1579.0083,198,1589.0083,202,1579.0083,198,1583.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1490.5239" y2="1589.0083"/><polygon fill="#A80036" points="672,1579.0083,676,1589.0083,680,1579.0083,676,1583.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1416.1216" y2="1589.0083"/><polygon fill="#A80036" points="1075.5,1579.0083,1079.5,1589.0083,1083.5,1579.0083,1079.5,1583.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1569.0083" y2="1589.0083"/><polygon fill="#A80036" points="1501,1579.0083,1505,1589.0083,1509,1579.0083,1505,1583.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1595.0083" y2="1615.0083"/><polygon fill="#A80036" points="913.5,1605.0083,917.5,1615.0083,921.5,1605.0083,917.5,1609.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1648.9771" y2="1668.9771"/><polygon fill="#A80036" points="913.5,1658.9771,917.5,1668.9771,921.5,1658.9771,917.5,1662.9771" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[167292abbdf09640a655e5720c8b3dc1]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtSubscriberFetchLatestMessage()\n |
... | ... | |
32 | 32 |
|
33 | 33 |
:lock topic; |
34 | 34 |
if (Is HRT subscriber?) then (yes) |
35 |
:lock next message;
|
|
35 |
:access next message;
|
|
36 | 36 |
else (no) |
37 | 37 |
if (Has a message been read before?) then (yes) |
38 |
:lock last read message;
|
|
38 |
:access last read message;
|
|
39 | 39 |
if (Message timestamp equals local copy?) then (yes) |
40 | 40 |
else (no) |
41 | 41 |
partition "find oldest valid message" { |
42 |
:lock next message; |
|
43 |
note: Locked two messages ahead. |
|
42 |
:access next message; |
|
44 | 43 |
while (Timestamp of next is younger than of current?) is (yes) |
45 |
fork |
|
46 |
:unlock current message; |
|
47 |
fork again |
|
48 |
:lock one message further ahead; |
|
49 |
endfork |
|
44 |
:iterate by one message; |
|
50 | 45 |
endwhile (no) |
51 |
:unlock next message; |
|
52 |
note: One message still locked. |
|
53 | 46 |
} |
54 | 47 |
endif |
55 | 48 |
else (no) |
56 |
:lock message after topic's latest message;
|
|
49 |
:access message after topic's latest message;
|
|
57 | 50 |
endif |
58 | 51 |
endif |
59 | 52 |
partition "iterate to latest" { |
60 |
:lock one message further ahead; |
|
61 |
note: Locked two messages ahead. |
|
62 | 53 |
while (Timestamp of next message is younger than of current?) is (yes) |
63 |
fork |
|
64 |
if (Is HRT subscriber?) then (yes) |
|
65 |
fork |
|
66 |
:decrement HRT counter of current message; |
|
67 |
fork again |
|
68 |
:update QoS delay timer (@subscriber); |
|
69 |
endfork |
|
70 |
else (no) |
|
71 |
endif |
|
72 |
:unlock current message; |
|
73 |
fork again |
|
74 |
:lock one message further ahead; |
|
75 |
endfork |
|
54 |
if (Is HRT subscriber?) then (yes) |
|
55 |
fork |
|
56 |
:decrement HRT counter of current message; |
|
57 |
fork again |
|
58 |
:update QoS delay timer (@subscriber); |
|
59 |
endfork |
|
60 |
else (no) |
|
61 |
endif |
|
62 |
:iterate by one message; |
|
76 | 63 |
endwhile (no) |
77 |
:unlock next message; |
|
78 |
note: One message still locked. |
|
79 | 64 |
} |
80 | 65 |
fork |
81 | 66 |
:set last fetched message pointer to locked message; |
... | ... | |
104 | 89 |
else (no) |
105 | 90 |
endif |
106 | 91 |
endfork |
107 |
:unlock message; |
|
108 | 92 |
:unlock topic; |
109 | 93 |
|
110 | 94 |
|
Also available in: Unified diff