Revision c22d21ad doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.svg
doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.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="1502px" preserveAspectRatio="none" style="width:1846px;height:1502px;" version="1.1" viewBox="0 0 1846 1502" width="1846px" zoomAndPan="magnify"><defs><filter height="300%" id="fxzoig5nbtsvt" 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="299" x="772.5" y="47.6611">urtSubscriberFetchNextMessage()</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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" points="853.875,582.0356,1176.875,582.0356,1188.875,594.0356,1176.875,606.0356,853.875,606.0356,841.875,594.0356,853.875,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="323" x="853.875" y="597.8438">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="827.875" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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(#fxzoig5nbtsvt)" 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="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="935.6836"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="22" y="1118.9727"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="332" x="32" y="1140.1113">set last fetched message pointer to locked message</text><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1044.5703"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="396" y="1118.9727"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="406" y="1140.1113">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="304" x="630" y="1118.9727"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="284" x="640" y="1140.1113">set latency value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="662,1070.5703,902,1070.5703,914,1082.5703,902,1094.5703,662,1094.5703,650,1082.5703,662,1070.5703" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="786" y="1104.7808">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="662" y="1086.3784">Optional output argument "latency" given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="914" y="1079.9761">no</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="782,1177.3438,794,1189.3438,782,1201.3438,770,1189.3438,782,1177.3438" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1221.3438"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="998" y="1118.9727"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="1008" y="1140.1113">copy message payload</text><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1010.0859"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="1213" y="1036.0859"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="1223" y="1057.2246">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1252.5" y="1153.457"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1262.5" y="1174.5957">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="1293.5,1105.0547,1428.5,1105.0547,1440.5,1117.0547,1428.5,1129.0547,1293.5,1129.0547,1281.5,1117.0547,1293.5,1105.0547" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1365" y="1139.2651">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1293.5" y="1120.8628">HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1440.5" y="1114.4604">no</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="1361,1211.8281,1373,1223.8281,1361,1235.8281,1349,1223.8281,1361,1211.8281" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="1537" y="1118.9727"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="1547" y="1140.1113">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1255.8281"/><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="1451.5,961.6836,1558.5,961.6836,1570.5,973.6836,1558.5,985.6836,1451.5,985.6836,1439.5,973.6836,1451.5,961.6836" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1509" y="995.894">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="1451.5" y="977.4917">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1570.5" y="971.0894">no</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="1505,1281.8281,1517,1293.8281,1505,1305.8281,1493,1293.8281,1505,1281.8281" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1325.8281"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="856.5" y="1351.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="866.5" y="1372.9668">unlock message</text><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="869.5" y="1405.7969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="879.5" y="1426.9355">unlock topic</text><path d="M704.5,1450.6328 L704.5,1490.8984 A0,0 0 0 0 704.5,1490.8984 L886.5,1490.8984 A0,0 0 0 0 886.5,1490.8984 L886.5,1474.7656 L906.5,1470.7656 L886.5,1466.7656 L886.5,1460.6328 L876.5,1450.6328 L704.5,1450.6328 A0,0 0 0 0 704.5,1450.6328 " fill="#FBFB77" filter="url(#fxzoig5nbtsvt)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876.5,1450.6328 L876.5,1460.6328 L886.5,1460.6328 L876.5,1450.6328 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="704.5" x2="719" y1="1463.1992" y2="1463.1992"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723" y="1467.1997"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="723" y="1467.1997">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="772" y="1467.1997"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="772" y="1467.1997">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="872" y="1467.1997"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="872" x2="886.5" y1="1463.1992" y2="1463.1992"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="710.5" y="1482.8325">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="763.5" y="1482.8325">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="867.5" y="1482.8325">.</text><ellipse cx="917.5" cy="1470.7656" fill="#FFFFFF" filter="url(#fxzoig5nbtsvt)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="917.5" cy="1470.7656" 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="1188.875" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="1198.875,590.0356,1188.875,594.0356,1198.875,598.0356,1194.875,594.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="841.875" 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="782" x2="782" y1="1094.5703" y2="1118.9727"/><polygon fill="#A80036" points="778,1108.9727,782,1118.9727,786,1108.9727,782,1112.9727" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="914" x2="944" y1="1082.5703" y2="1082.5703"/><polygon fill="#A80036" points="940,1125.957,944,1135.957,948,1125.957,944,1129.957" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="944" y1="1082.5703" y2="1189.3438"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="794" y1="1189.3438" y2="1189.3438"/><polygon fill="#A80036" points="804,1185.3438,794,1189.3438,804,1193.3438,800,1189.3438" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1152.9414" y2="1177.3438"/><polygon fill="#A80036" points="778,1167.3438,782,1177.3438,786,1167.3438,782,1171.3438" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1050.5703" y2="1118.9727"/><polygon fill="#A80036" points="490,1108.9727,494,1118.9727,498,1108.9727,494,1112.9727" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1050.5703" y2="1070.5703"/><polygon fill="#A80036" points="778,1060.5703,782,1070.5703,786,1060.5703,782,1064.5703" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1152.9414" y2="1221.3438"/><polygon fill="#A80036" points="490,1211.3438,494,1221.3438,498,1211.3438,494,1215.3438" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1201.3438" y2="1221.3438"/><polygon fill="#A80036" points="778,1211.3438,782,1221.3438,786,1211.3438,782,1215.3438" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1129.0547" y2="1153.457"/><polygon fill="#A80036" points="1357,1143.457,1361,1153.457,1365,1143.457,1361,1147.457" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1440.5" x2="1479.5" y1="1117.0547" y2="1117.0547"/><polygon fill="#A80036" points="1475.5,1160.4414,1479.5,1170.4414,1483.5,1160.4414,1479.5,1164.4414" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1479.5" x2="1479.5" y1="1117.0547" y2="1223.8281"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1479.5" x2="1373" y1="1223.8281" y2="1223.8281"/><polygon fill="#A80036" points="1383,1219.8281,1373,1223.8281,1383,1227.8281,1379,1223.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1187.4258" y2="1211.8281"/><polygon fill="#A80036" points="1357,1201.8281,1361,1211.8281,1365,1201.8281,1361,1205.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1070.0547" y2="1105.0547"/><polygon fill="#A80036" points="1357,1095.0547,1361,1105.0547,1365,1095.0547,1361,1099.0547" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1016.0859" y2="1036.0859"/><polygon fill="#A80036" points="1357,1026.0859,1361,1036.0859,1365,1026.0859,1361,1030.0859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1016.0859" y2="1118.9727"/><polygon fill="#A80036" points="1663,1108.9727,1667,1118.9727,1671,1108.9727,1667,1112.9727" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1235.8281" y2="1255.8281"/><polygon fill="#A80036" points="1357,1245.8281,1361,1255.8281,1365,1245.8281,1361,1249.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1152.9414" y2="1255.8281"/><polygon fill="#A80036" points="1663,1245.8281,1667,1255.8281,1671,1245.8281,1667,1249.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="985.6836" y2="1010.0859"/><polygon fill="#A80036" points="1501,1000.0859,1505,1010.0859,1509,1000.0859,1505,1004.0859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1570.5" x2="1819" y1="973.6836" y2="973.6836"/><polygon fill="#A80036" points="1815,1125.957,1819,1135.957,1823,1125.957,1819,1129.957" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1819" y1="973.6836" y2="1293.8281"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1517" y1="1293.8281" y2="1293.8281"/><polygon fill="#A80036" points="1527,1289.8281,1517,1293.8281,1527,1297.8281,1523,1293.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1261.8281" y2="1281.8281"/><polygon fill="#A80036" points="1501,1271.8281,1505,1281.8281,1509,1271.8281,1505,1275.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="941.6836" y2="1118.9727"/><polygon fill="#A80036" points="194,1108.9727,198,1118.9727,202,1108.9727,198,1112.9727" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="941.6836" y2="1044.5703"/><polygon fill="#A80036" points="672,1034.5703,676,1044.5703,680,1034.5703,676,1038.5703" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="941.6836" y2="1118.9727"/><polygon fill="#A80036" points="1075.5,1108.9727,1079.5,1118.9727,1083.5,1108.9727,1079.5,1112.9727" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="941.6836" y2="961.6836"/><polygon fill="#A80036" points="1501,951.6836,1505,961.6836,1509,951.6836,1505,955.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1152.9414" y2="1325.8281"/><polygon fill="#A80036" points="194,1315.8281,198,1325.8281,202,1315.8281,198,1319.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1227.3438" y2="1325.8281"/><polygon fill="#A80036" points="672,1315.8281,676,1325.8281,680,1315.8281,676,1319.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1152.9414" y2="1325.8281"/><polygon fill="#A80036" points="1075.5,1315.8281,1079.5,1325.8281,1083.5,1315.8281,1079.5,1319.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1305.8281" y2="1325.8281"/><polygon fill="#A80036" points="1501,1315.8281,1505,1325.8281,1509,1315.8281,1505,1319.8281" 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="935.6836"/><polygon fill="#A80036" points="913.5,925.6836,917.5,935.6836,921.5,925.6836,917.5,929.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1331.8281" y2="1351.8281"/><polygon fill="#A80036" points="913.5,1341.8281,917.5,1351.8281,921.5,1341.8281,917.5,1345.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1385.7969" y2="1405.7969"/><polygon fill="#A80036" points="913.5,1395.7969,917.5,1405.7969,921.5,1395.7969,917.5,1399.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1439.7656" y2="1459.7656"/><polygon fill="#A80036" points="913.5,1449.7656,917.5,1459.7656,921.5,1449.7656,917.5,1453.7656" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[804dba0a3dfc14e378c76df0975152bd]
|
|
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="1342px" preserveAspectRatio="none" style="width:1846px;height:1342px;" version="1.1" viewBox="0 0 1846 1342" width="1846px" zoomAndPan="magnify"><defs><filter height="300%" id="f1ebgccyfx45cb" 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="299" x="772.5" y="47.6611">urtSubscriberFetchNextMessage()</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(#f1ebgccyfx45cb)" 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(#f1ebgccyfx45cb)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" 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(#f1ebgccyfx45cb)" 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(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="577" y="357.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="587" y="378.4277">access next message</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1080.5,357.2891,1279.5,357.2891,1291.5,369.2891,1279.5,381.2891,1080.5,381.2891,1068.5,369.2891,1080.5,357.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="1080.5" 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="1048.5" y="366.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1291.5" y="366.6948">no</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="888" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="898" y="412.4277">access last read message</text><rect fill="#FFFFFF" filter="url(#f1ebgccyfx45cb)" height="213.9448" style="stroke: #000000; stroke-width: 2.0;" width="412" x="773" y="491.77"/><path d="M957,492.77 L957,501.0669 L947,511.0669 L773,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="776" y="505.7651">find oldest valid message</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="902.5" y="528.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="912.5" y="549.2056">access next message</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="896" y="637.7461"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="906" y="658.8848">iterate by one message</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="819,582.0356,1142,582.0356,1154,594.0356,1142,606.0356,819,606.0356,807,594.0356,819,582.0356" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="984.5" y="616.2461">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="323" x="819" y="597.8438">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="793" y="591.4414">no</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="868.5,445.2578,1092.5,445.2578,1104.5,457.2578,1092.5,469.2578,868.5,469.2578,856.5,457.2578,868.5,445.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="984.5" y="479.4683">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="868.5" y="461.0659">Message timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1104.5" y="454.6636">yes</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="980.5,725.7148,992.5,737.7148,980.5,749.7148,968.5,737.7148,980.5,725.7148" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="305" x="1227" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="285" x="1237" y="412.4277">access message after topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1180,755.7148,1192,767.7148,1180,779.7148,1168,767.7148,1180,755.7148" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" 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="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="829.7148"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="22" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="332" x="32" y="1034.1426">set last fetched message pointer to locked message</text><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="938.6016"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="396" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="406" y="1034.1426">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="304" x="630" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="284" x="640" y="1034.1426">set latency value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="662,964.6016,902,964.6016,914,976.6016,902,988.6016,662,988.6016,650,976.6016,662,964.6016" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="786" y="998.812">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="662" y="980.4097">Optional output argument "latency" given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="914" y="974.0073">no</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="782,1071.375,794,1083.375,782,1095.375,770,1083.375,782,1071.375" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1115.375"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="998" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="1008" y="1034.1426">copy message payload</text><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="904.1172"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="1213" y="930.1172"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="1223" y="951.2559">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1252.5" y="1047.4883"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1262.5" y="1068.627">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1293.5,999.0859,1428.5,999.0859,1440.5,1011.0859,1428.5,1023.0859,1293.5,1023.0859,1281.5,1011.0859,1293.5,999.0859" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1365" y="1033.2964">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1293.5" y="1014.894">HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1440.5" y="1008.4917">no</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1361,1105.8594,1373,1117.8594,1361,1129.8594,1349,1117.8594,1361,1105.8594" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="1537" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="1547" y="1034.1426">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1149.8594"/><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1451.5,855.7148,1558.5,855.7148,1570.5,867.7148,1558.5,879.7148,1451.5,879.7148,1439.5,867.7148,1451.5,855.7148" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1509" y="889.9253">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="1451.5" y="871.5229">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1570.5" y="865.1206">no</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1505,1175.8594,1517,1187.8594,1505,1199.8594,1493,1187.8594,1505,1175.8594" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1219.8594"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="869.5" y="1245.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="879.5" y="1266.998">unlock topic</text><path d="M704.5,1290.6953 L704.5,1330.9609 A0,0 0 0 0 704.5,1330.9609 L886.5,1330.9609 A0,0 0 0 0 886.5,1330.9609 L886.5,1314.8281 L906.5,1310.8281 L886.5,1306.8281 L886.5,1300.6953 L876.5,1290.6953 L704.5,1290.6953 A0,0 0 0 0 704.5,1290.6953 " fill="#FBFB77" filter="url(#f1ebgccyfx45cb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876.5,1290.6953 L876.5,1300.6953 L886.5,1300.6953 L876.5,1290.6953 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="704.5" x2="719" y1="1303.2617" y2="1303.2617"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723" y="1307.2622"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="723" y="1307.2622">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="772" y="1307.2622"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="772" y="1307.2622">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="872" y="1307.2622"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="872" x2="886.5" y1="1303.2617" y2="1303.2617"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="710.5" y="1322.895">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="763.5" y="1322.895">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="867.5" y="1322.895">.</text><ellipse cx="917.5" cy="1310.8281" fill="#FFFFFF" filter="url(#f1ebgccyfx45cb)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="917.5" cy="1310.8281" 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="980.5" x2="980.5" y1="606.0356" y2="637.7461"/><polygon fill="#A80036" points="976.5,627.7461,980.5,637.7461,984.5,627.7461,980.5,631.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="671.7148" y2="681.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="1166" y1="681.7148" y2="681.7148"/><polygon fill="#A80036" points="1162,646.3281,1166,636.3281,1170,646.3281,1166,642.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1166" x2="1166" y1="594.0356" y2="681.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1166" x2="1154" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="1164,590.0356,1154,594.0356,1164,598.0356,1160,594.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="807" x2="795" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="791,632.3281,795,642.3281,799,632.3281,795,636.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="795" x2="795" y1="594.0356" y2="693.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="795" x2="980.5" y1="693.7148" y2="693.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="693.7148" y2="725.7148"/><polygon fill="#A80036" points="976.5,715.7148,980.5,725.7148,984.5,715.7148,980.5,719.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="562.0356" y2="582.0356"/><polygon fill="#A80036" points="976.5,572.0356,980.5,582.0356,984.5,572.0356,980.5,576.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="469.2578" y2="528.0669"/><polygon fill="#A80036" points="976.5,518.0669,980.5,528.0669,984.5,518.0669,980.5,522.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1104.5" x2="1195" y1="457.2578" y2="457.2578"/><polygon fill="#A80036" points="1191,588.7896,1195,598.7896,1199,588.7896,1195,592.7896" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1195" x2="1195" y1="457.2578" y2="737.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1195" x2="992.5" y1="737.7148" y2="737.7148"/><polygon fill="#A80036" points="1002.5,733.7148,992.5,737.7148,1002.5,741.7148,998.5,737.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="425.2578" y2="445.2578"/><polygon fill="#A80036" points="976.5,435.2578,980.5,445.2578,984.5,435.2578,980.5,439.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1068.5" x2="980.5" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="976.5,381.2891,980.5,391.2891,984.5,381.2891,980.5,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1291.5" x2="1379.5" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1379.5" x2="1379.5" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="1375.5,381.2891,1379.5,391.2891,1383.5,381.2891,1379.5,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="749.7148" y2="767.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="1168" y1="767.7148" y2="767.7148"/><polygon fill="#A80036" points="1158,763.7148,1168,767.7148,1158,771.7148,1162,767.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1379.5" x2="1379.5" y1="425.2578" y2="767.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1379.5" x2="1192" y1="767.7148" y2="767.7148"/><polygon fill="#A80036" points="1202,763.7148,1192,767.7148,1202,771.7148,1198,767.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852" x2="655" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="655" x2="655" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="651,347.2891,655,357.2891,659,347.2891,655,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983" x2="1180" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1180" x2="1180" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="1176,347.2891,1180,357.2891,1184,347.2891,1180,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="655" x2="655" y1="391.2578" y2="797.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="655" 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="1180" x2="1180" y1="779.7148" y2="797.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1180" 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="782" x2="782" y1="988.6016" y2="1013.0039"/><polygon fill="#A80036" points="778,1003.0039,782,1013.0039,786,1003.0039,782,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="914" x2="944" y1="976.6016" y2="976.6016"/><polygon fill="#A80036" points="940,1019.9883,944,1029.9883,948,1019.9883,944,1023.9883" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="944" y1="976.6016" y2="1083.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="794" y1="1083.375" y2="1083.375"/><polygon fill="#A80036" points="804,1079.375,794,1083.375,804,1087.375,800,1083.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1046.9727" y2="1071.375"/><polygon fill="#A80036" points="778,1061.375,782,1071.375,786,1061.375,782,1065.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="944.6016" y2="1013.0039"/><polygon fill="#A80036" points="490,1003.0039,494,1013.0039,498,1003.0039,494,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="944.6016" y2="964.6016"/><polygon fill="#A80036" points="778,954.6016,782,964.6016,786,954.6016,782,958.6016" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1046.9727" y2="1115.375"/><polygon fill="#A80036" points="490,1105.375,494,1115.375,498,1105.375,494,1109.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1095.375" y2="1115.375"/><polygon fill="#A80036" points="778,1105.375,782,1115.375,786,1105.375,782,1109.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1023.0859" y2="1047.4883"/><polygon fill="#A80036" points="1357,1037.4883,1361,1047.4883,1365,1037.4883,1361,1041.4883" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1440.5" x2="1479.5" y1="1011.0859" y2="1011.0859"/><polygon fill="#A80036" points="1475.5,1054.4727,1479.5,1064.4727,1483.5,1054.4727,1479.5,1058.4727" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1479.5" x2="1479.5" y1="1011.0859" y2="1117.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1479.5" x2="1373" y1="1117.8594" y2="1117.8594"/><polygon fill="#A80036" points="1383,1113.8594,1373,1117.8594,1383,1121.8594,1379,1117.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1081.457" y2="1105.8594"/><polygon fill="#A80036" points="1357,1095.8594,1361,1105.8594,1365,1095.8594,1361,1099.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="964.0859" y2="999.0859"/><polygon fill="#A80036" points="1357,989.0859,1361,999.0859,1365,989.0859,1361,993.0859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="910.1172" y2="930.1172"/><polygon fill="#A80036" points="1357,920.1172,1361,930.1172,1365,920.1172,1361,924.1172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="910.1172" y2="1013.0039"/><polygon fill="#A80036" points="1663,1003.0039,1667,1013.0039,1671,1003.0039,1667,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1129.8594" y2="1149.8594"/><polygon fill="#A80036" points="1357,1139.8594,1361,1149.8594,1365,1139.8594,1361,1143.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1046.9727" y2="1149.8594"/><polygon fill="#A80036" points="1663,1139.8594,1667,1149.8594,1671,1139.8594,1667,1143.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="879.7148" y2="904.1172"/><polygon fill="#A80036" points="1501,894.1172,1505,904.1172,1509,894.1172,1505,898.1172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1570.5" x2="1819" y1="867.7148" y2="867.7148"/><polygon fill="#A80036" points="1815,1019.9883,1819,1029.9883,1823,1019.9883,1819,1023.9883" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1819" y1="867.7148" y2="1187.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1517" y1="1187.8594" y2="1187.8594"/><polygon fill="#A80036" points="1527,1183.8594,1517,1187.8594,1527,1191.8594,1523,1187.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1155.8594" y2="1175.8594"/><polygon fill="#A80036" points="1501,1165.8594,1505,1175.8594,1509,1165.8594,1505,1169.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="835.7148" y2="1013.0039"/><polygon fill="#A80036" points="194,1003.0039,198,1013.0039,202,1003.0039,198,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="835.7148" y2="938.6016"/><polygon fill="#A80036" points="672,928.6016,676,938.6016,680,928.6016,676,932.6016" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="835.7148" y2="1013.0039"/><polygon fill="#A80036" points="1075.5,1003.0039,1079.5,1013.0039,1083.5,1003.0039,1079.5,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="835.7148" y2="855.7148"/><polygon fill="#A80036" points="1501,845.7148,1505,855.7148,1509,845.7148,1505,849.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1046.9727" y2="1219.8594"/><polygon fill="#A80036" points="194,1209.8594,198,1219.8594,202,1209.8594,198,1213.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1121.375" y2="1219.8594"/><polygon fill="#A80036" points="672,1209.8594,676,1219.8594,680,1209.8594,676,1213.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1046.9727" y2="1219.8594"/><polygon fill="#A80036" points="1075.5,1209.8594,1079.5,1219.8594,1083.5,1209.8594,1079.5,1213.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1199.8594" y2="1219.8594"/><polygon fill="#A80036" points="1501,1209.8594,1505,1219.8594,1509,1209.8594,1505,1213.8594" 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="829.7148"/><polygon fill="#A80036" points="913.5,819.7148,917.5,829.7148,921.5,819.7148,917.5,823.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1225.8594" y2="1245.8594"/><polygon fill="#A80036" points="913.5,1235.8594,917.5,1245.8594,921.5,1235.8594,917.5,1239.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1279.8281" y2="1299.8281"/><polygon fill="#A80036" points="913.5,1289.8281,917.5,1299.8281,921.5,1289.8281,917.5,1293.8281" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e08c7f0874ec9d4be907a4b7beeb2994]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtSubscriberFetchNextMessage()\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 message 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 |
fork |
... | ... | |
83 | 76 |
else (no) |
84 | 77 |
endif |
85 | 78 |
endfork |
86 |
:unlock message; |
|
87 | 79 |
:unlock topic; |
88 | 80 |
|
89 | 81 |
|
Also available in: Unified diff