Revision e87bd7c7 doc/activitydiagrams/subscriber/urtHrtSubscriberFetchNextMessage.svg

View differences:

doc/activitydiagrams/subscriber/urtHrtSubscriberFetchNextMessage.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="890px" preserveAspectRatio="none" style="width:1865px;height:890px;" version="1.1" viewBox="0 0 1865 890" width="1865px" zoomAndPan="magnify"><defs><filter height="300%" id="f58ooogjib9ui" 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="887.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="328" x="767.75" y="47.6611">urtHrtSubscriberFetchNextMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="934.75" y="68.6143"/><path d="M1072.375,72.8594 L1072.375,304.7188 L1560.375,304.7188 L1560.375,82.8594 L1550.375,72.8594 L1072.375,72.8594 " fill="#FBFB77" filter="url(#f58ooogjib9ui)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1550.375,72.8594 L1550.375,82.8594 L1560.375,82.8594 L1550.375,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1203.375" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1207.375" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="1207.375" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1289.375" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1429.375" x2="1560.375" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="1078.375" y="105.0591">The HRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1078.375" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1158.375" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1190.375" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1260.375" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1264.375" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1264.375" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1327.375" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1372.375" x2="1560.375" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="1078.375" 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="1078.375" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1128.375" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1164.375" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1267.375" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1271.375" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1271.375" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1316.375" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1365.375" x2="1560.375" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="1078.375" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1240.875" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1244.875" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="1244.875" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1301.875" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1391.875" x2="1560.375" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="1078.375" 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="1078.375" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1128.375" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1160.375" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1560.375" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1560.375" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1245.375" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1249.375" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1249.375" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1298.375" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1387.375" x2="1560.375" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1078.375" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1131.375" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1239.375" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1078.375" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1131.375" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1263.375" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="1316.375" cy="334.7188" fill="#000000" filter="url(#f58ooogjib9ui)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1253.875,364.7188,1378.875,364.7188,1390.875,376.7188,1378.875,388.7188,1253.875,388.7188,1241.875,376.7188,1253.875,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1253.875" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1221.875" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1390.875" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="761.25" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="771.25" y="419.8574">lock topic</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="710.75" y="452.6875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="720.75" y="473.8262">proceed to next message</text><rect fill="#000000" filter="url(#f58ooogjib9ui)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1582.5" x="10" y="506.6563"/><rect fill="#FFFFFF" filter="url(#f58ooogjib9ui)" height="231.4063" style="stroke: #000000; stroke-width: 2.0;" width="960" x="22" y="523.458"/><path d="M135,524.458 L135,532.7549 L125,542.7549 L22,542.7549 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="25" y="537.4531">fetch message</text><rect fill="#000000" filter="url(#f58ooogjib9ui)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="940" x="32" y="559.7549"/><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="46" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="56" y="655.2959">update message pointer</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="231" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="241" y="655.2959">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="437" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="447" y="655.2959">copy message payload</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="638" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="648" y="655.2959">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="672" y="655.2959">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="725" y="655.2959">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="672.5,585.7549,911.5,585.7549,923.5,597.7549,911.5,609.7549,672.5,609.7549,660.5,597.7549,672.5,585.7549" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="796" y="619.9653">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="672.5" y="601.563">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="822.5" y="601.563">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="875.5" y="601.563">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="923.5" y="595.1606">no</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="792,692.5283,804,704.5283,792,716.5283,780,704.5283,792,692.5283" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f58ooogjib9ui)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="940" x="32" y="736.5283"/><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="992" y="543.1221"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="220" x="1002" y="564.2607">decrement message's HRT counter</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1003.5" y="660.4932"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1013.5" y="681.6318">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1044.5,612.0908,1179.5,612.0908,1191.5,624.0908,1179.5,636.0908,1044.5,636.0908,1032.5,624.0908,1044.5,612.0908" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1116" y="646.3013">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1044.5" y="627.8989">HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1191.5" y="621.4966">yes</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1112,718.8643,1124,730.8643,1112,742.8643,1100,730.8643,1112,718.8643" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="1280.5" y="626.0088"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="1290.5" y="647.1475">update QoS delay timer wrt. next message</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1306.5,577.6064,1540.5,577.6064,1552.5,589.6064,1540.5,601.6064,1306.5,601.6064,1294.5,589.6064,1306.5,577.6064" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1427.5" y="611.8169">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="1306.5" y="593.4146">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1552.5" y="587.0122">no</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1423.5,684.3799,1435.5,696.3799,1423.5,708.3799,1411.5,696.3799,1423.5,684.3799" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f58ooogjib9ui)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1582.5" x="10" y="774.8643"/><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="753.25" y="800.8643"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="763.25" y="822.0029">unlock topic</text><path d="M588.25,853.2666 L588.25,878.3994 A0,0 0 0 0 588.25,878.3994 L770.25,878.3994 A0,0 0 0 0 770.25,878.3994 L770.25,871.2666 L790.25,865.833 L770.25,863.2666 L770.25,863.2666 L760.25,853.2666 L588.25,853.2666 A0,0 0 0 0 588.25,853.2666 " fill="#FBFB77" filter="url(#f58ooogjib9ui)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M760.25,853.2666 L760.25,863.2666 L770.25,863.2666 L760.25,853.2666 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="594.25" y="870.3335">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="647.25" y="870.3335">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="751.25" y="870.3335">.</text><ellipse cx="801.25" cy="865.833" fill="#FFFFFF" filter="url(#f58ooogjib9ui)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="801.25" cy="865.833" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1602.5,398.7188 L1602.5,423.8516 A0,0 0 0 0 1602.5,423.8516 L1808.5,423.8516 A0,0 0 0 0 1808.5,423.8516 L1808.5,416.7188 L1828.5,411.2852 L1808.5,408.7188 L1808.5,408.7188 L1798.5,398.7188 L1602.5,398.7188 A0,0 0 0 0 1602.5,398.7188 " fill="#FBFB77" filter="url(#f58ooogjib9ui)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1798.5,398.7188 L1798.5,408.7188 L1808.5,408.7188 L1798.5,398.7188 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1608.5" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1661.5" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1789.5" y="415.7856">.</text><ellipse cx="1839.5" cy="411.2852" fill="#FFFFFF" filter="url(#f58ooogjib9ui)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1839.5" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1316.375" x2="1316.375" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="1312.375,314.7188,1316.375,324.7188,1320.375,314.7188,1316.375,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="432.6875" y2="452.6875"/><polygon fill="#A80036" points="797.25,442.6875,801.25,452.6875,805.25,442.6875,801.25,446.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="609.7549" y2="634.1572"/><polygon fill="#A80036" points="788,624.1572,792,634.1572,796,624.1572,792,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="923.5" x2="956" y1="597.7549" y2="597.7549"/><polygon fill="#A80036" points="952,641.1416,956,651.1416,960,641.1416,956,645.1416" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="956" y1="597.7549" y2="704.5283"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="804" y1="704.5283" y2="704.5283"/><polygon fill="#A80036" points="814,700.5283,804,704.5283,814,708.5283,810,704.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="668.126" y2="692.5283"/><polygon fill="#A80036" points="788,682.5283,792,692.5283,796,682.5283,792,686.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="129.5,624.1572,133.5,634.1572,137.5,624.1572,133.5,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="325,624.1572,329,634.1572,333,624.1572,329,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="514.5,624.1572,518.5,634.1572,522.5,624.1572,518.5,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="565.7549" y2="585.7549"/><polygon fill="#A80036" points="788,575.7549,792,585.7549,796,575.7549,792,579.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="129.5,726.5283,133.5,736.5283,137.5,726.5283,133.5,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="325,726.5283,329,736.5283,333,726.5283,329,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="514.5,726.5283,518.5,736.5283,522.5,726.5283,518.5,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="716.5283" y2="736.5283"/><polygon fill="#A80036" points="788,726.5283,792,736.5283,796,726.5283,792,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="636.0908" y2="660.4932"/><polygon fill="#A80036" points="1108,650.4932,1112,660.4932,1116,650.4932,1112,654.4932" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1191.5" x2="1230.5" y1="624.0908" y2="624.0908"/><polygon fill="#A80036" points="1226.5,667.4775,1230.5,677.4775,1234.5,667.4775,1230.5,671.4775" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1230.5" x2="1230.5" y1="624.0908" y2="730.8643"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1230.5" x2="1124" y1="730.8643" y2="730.8643"/><polygon fill="#A80036" points="1134,726.8643,1124,730.8643,1134,734.8643,1130,730.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="694.4619" y2="718.8643"/><polygon fill="#A80036" points="1108,708.8643,1112,718.8643,1116,708.8643,1112,712.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="577.0908" y2="612.0908"/><polygon fill="#A80036" points="1108,602.0908,1112,612.0908,1116,602.0908,1112,606.0908" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="601.6064" y2="626.0088"/><polygon fill="#A80036" points="1419.5,616.0088,1423.5,626.0088,1427.5,616.0088,1423.5,620.0088" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1552.5" x2="1576.5" y1="589.6064" y2="589.6064"/><polygon fill="#A80036" points="1572.5,632.9932,1576.5,642.9932,1580.5,632.9932,1576.5,636.9932" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1576.5" x2="1576.5" y1="589.6064" y2="696.3799"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1576.5" x2="1435.5" y1="696.3799" y2="696.3799"/><polygon fill="#A80036" points="1445.5,692.3799,1435.5,696.3799,1445.5,700.3799,1441.5,696.3799" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="659.9775" y2="684.3799"/><polygon fill="#A80036" points="1419.5,674.3799,1423.5,684.3799,1427.5,674.3799,1423.5,678.3799" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="512.6563" y2="559.7549"/><polygon fill="#A80036" points="485,549.7549,489,559.7549,493,549.7549,489,553.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="512.6563" y2="543.1221"/><polygon fill="#A80036" points="1108,533.1221,1112,543.1221,1116,533.1221,1112,537.1221" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="512.6563" y2="577.6064"/><polygon fill="#A80036" points="1419.5,567.6064,1423.5,577.6064,1427.5,567.6064,1423.5,571.6064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="742.5283" y2="774.8643"/><polygon fill="#A80036" points="485,764.8643,489,774.8643,493,764.8643,489,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="742.8643" y2="774.8643"/><polygon fill="#A80036" points="1108,764.8643,1112,774.8643,1116,764.8643,1112,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="708.3799" y2="774.8643"/><polygon fill="#A80036" points="1419.5,764.8643,1423.5,774.8643,1427.5,764.8643,1423.5,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="486.6563" y2="506.6563"/><polygon fill="#A80036" points="797.25,496.6563,801.25,506.6563,805.25,496.6563,801.25,500.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="780.8643" y2="800.8643"/><polygon fill="#A80036" points="797.25,790.8643,801.25,800.8643,805.25,790.8643,801.25,794.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="834.833" y2="854.833"/><polygon fill="#A80036" points="797.25,844.833,801.25,854.833,805.25,844.833,801.25,848.833" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1241.875" x2="801.25" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="797.25,388.7188,801.25,398.7188,805.25,388.7188,801.25,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1390.875" x2="1839.5" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1839.5" x2="1839.5" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1835.5,390.2852,1839.5,400.2852,1843.5,390.2852,1839.5,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1316.375" x2="1316.375" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="1312.375,354.7188,1316.375,364.7188,1320.375,354.7188,1316.375,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0cf0d9213faec1a02d649e7da5b2dff1]
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="890px" preserveAspectRatio="none" style="width:1865px;height:890px;" version="1.1" viewBox="0 0 1865 890" width="1865px" zoomAndPan="magnify"><defs><filter height="300%" id="f1utu8khfxyd7p" 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="887.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="328" x="767.75" y="47.6611">urtHrtSubscriberFetchNextMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="934.75" y="68.6143"/><path d="M1072.375,72.8594 L1072.375,304.7188 L1560.375,304.7188 L1560.375,82.8594 L1550.375,72.8594 L1072.375,72.8594 " fill="#FBFB77" filter="url(#f1utu8khfxyd7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1550.375,72.8594 L1550.375,82.8594 L1560.375,82.8594 L1550.375,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1203.375" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1207.375" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="1207.375" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1289.375" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1429.375" x2="1560.375" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="1078.375" y="105.0591">The HRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1078.375" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1158.375" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1190.375" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1260.375" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1264.375" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1264.375" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1327.375" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1372.375" x2="1560.375" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="1078.375" 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="1078.375" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1128.375" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1164.375" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1267.375" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1271.375" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1271.375" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1316.375" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1365.375" x2="1560.375" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="1078.375" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1240.875" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1244.875" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="1244.875" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1301.875" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1391.875" x2="1560.375" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="1078.375" 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="1078.375" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1128.375" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1160.375" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1560.375" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1560.375" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1245.375" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1249.375" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1249.375" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1298.375" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1387.375" x2="1560.375" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1078.375" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1131.375" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1239.375" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1078.375" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1131.375" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1263.375" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="1316.375" cy="334.7188" fill="#000000" filter="url(#f1utu8khfxyd7p)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="1253.875,364.7188,1378.875,364.7188,1390.875,376.7188,1378.875,388.7188,1253.875,388.7188,1241.875,376.7188,1253.875,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1253.875" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1221.875" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1390.875" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="761.25" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="771.25" y="419.8574">lock topic</text><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="710.75" y="452.6875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="720.75" y="473.8262">proceed to next message</text><rect fill="#000000" filter="url(#f1utu8khfxyd7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1582.5" x="10" y="506.6563"/><rect fill="#FFFFFF" filter="url(#f1utu8khfxyd7p)" height="231.4063" style="stroke: #000000; stroke-width: 2.0;" width="960" x="22" y="523.458"/><path d="M135,524.458 L135,532.7549 L125,542.7549 L22,542.7549 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="25" y="537.4531">fetch message</text><rect fill="#000000" filter="url(#f1utu8khfxyd7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="940" x="32" y="559.7549"/><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="46" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="56" y="655.2959">update message pointer</text><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="231" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="241" y="655.2959">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="437" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="447" y="655.2959">copy message payload</text><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="638" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="648" y="655.2959">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="672" y="655.2959">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="725" y="655.2959">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="672.5,585.7549,911.5,585.7549,923.5,597.7549,911.5,609.7549,672.5,609.7549,660.5,597.7549,672.5,585.7549" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="796" y="619.9653">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="672.5" y="601.563">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="822.5" y="601.563">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="875.5" y="601.563">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="923.5" y="595.1606">no</text><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="792,692.5283,804,704.5283,792,716.5283,780,704.5283,792,692.5283" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1utu8khfxyd7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="940" x="32" y="736.5283"/><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="992" y="543.1221"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="220" x="1002" y="564.2607">decrement message's HRT counter</text><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1003.5" y="660.4932"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1013.5" y="681.6318">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="1044.5,612.0908,1179.5,612.0908,1191.5,624.0908,1179.5,636.0908,1044.5,636.0908,1032.5,624.0908,1044.5,612.0908" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1116" y="646.3013">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1044.5" y="627.8989">HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1191.5" y="621.4966">yes</text><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="1112,718.8643,1124,730.8643,1112,742.8643,1100,730.8643,1112,718.8643" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="1280.5" y="626.0088"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="1290.5" y="647.1475">update QoS delay timer wrt. next message</text><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="1306.5,577.6064,1540.5,577.6064,1552.5,589.6064,1540.5,601.6064,1306.5,601.6064,1294.5,589.6064,1306.5,577.6064" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1427.5" y="611.8169">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="1306.5" y="593.4146">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1552.5" y="587.0122">no</text><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="1423.5,684.3799,1435.5,696.3799,1423.5,708.3799,1411.5,696.3799,1423.5,684.3799" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1utu8khfxyd7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1582.5" x="10" y="774.8643"/><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="753.25" y="800.8643"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="763.25" y="822.0029">unlock topic</text><path d="M588.25,853.2666 L588.25,878.3994 A0,0 0 0 0 588.25,878.3994 L770.25,878.3994 A0,0 0 0 0 770.25,878.3994 L770.25,871.2666 L790.25,865.833 L770.25,863.2666 L770.25,863.2666 L760.25,853.2666 L588.25,853.2666 A0,0 0 0 0 588.25,853.2666 " fill="#FBFB77" filter="url(#f1utu8khfxyd7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M760.25,853.2666 L760.25,863.2666 L770.25,863.2666 L760.25,853.2666 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="594.25" y="870.3335">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="647.25" y="870.3335">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="751.25" y="870.3335">.</text><ellipse cx="801.25" cy="865.833" fill="#FFFFFF" filter="url(#f1utu8khfxyd7p)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="801.25" cy="865.833" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1602.5,398.7188 L1602.5,423.8516 A0,0 0 0 0 1602.5,423.8516 L1808.5,423.8516 A0,0 0 0 0 1808.5,423.8516 L1808.5,416.7188 L1828.5,411.2852 L1808.5,408.7188 L1808.5,408.7188 L1798.5,398.7188 L1602.5,398.7188 A0,0 0 0 0 1602.5,398.7188 " fill="#FBFB77" filter="url(#f1utu8khfxyd7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1798.5,398.7188 L1798.5,408.7188 L1808.5,408.7188 L1798.5,398.7188 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1608.5" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1661.5" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1789.5" y="415.7856">.</text><ellipse cx="1839.5" cy="411.2852" fill="#FFFFFF" filter="url(#f1utu8khfxyd7p)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1839.5" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1316.375" x2="1316.375" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="1312.375,314.7188,1316.375,324.7188,1320.375,314.7188,1316.375,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="432.6875" y2="452.6875"/><polygon fill="#A80036" points="797.25,442.6875,801.25,452.6875,805.25,442.6875,801.25,446.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="609.7549" y2="634.1572"/><polygon fill="#A80036" points="788,624.1572,792,634.1572,796,624.1572,792,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="923.5" x2="956" y1="597.7549" y2="597.7549"/><polygon fill="#A80036" points="952,641.1416,956,651.1416,960,641.1416,956,645.1416" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="956" y1="597.7549" y2="704.5283"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="804" y1="704.5283" y2="704.5283"/><polygon fill="#A80036" points="814,700.5283,804,704.5283,814,708.5283,810,704.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="668.126" y2="692.5283"/><polygon fill="#A80036" points="788,682.5283,792,692.5283,796,682.5283,792,686.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="129.5,624.1572,133.5,634.1572,137.5,624.1572,133.5,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="325,624.1572,329,634.1572,333,624.1572,329,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="514.5,624.1572,518.5,634.1572,522.5,624.1572,518.5,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="565.7549" y2="585.7549"/><polygon fill="#A80036" points="788,575.7549,792,585.7549,796,575.7549,792,579.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="129.5,726.5283,133.5,736.5283,137.5,726.5283,133.5,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="325,726.5283,329,736.5283,333,726.5283,329,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="514.5,726.5283,518.5,736.5283,522.5,726.5283,518.5,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="716.5283" y2="736.5283"/><polygon fill="#A80036" points="788,726.5283,792,736.5283,796,726.5283,792,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="636.0908" y2="660.4932"/><polygon fill="#A80036" points="1108,650.4932,1112,660.4932,1116,650.4932,1112,654.4932" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1191.5" x2="1230.5" y1="624.0908" y2="624.0908"/><polygon fill="#A80036" points="1226.5,667.4775,1230.5,677.4775,1234.5,667.4775,1230.5,671.4775" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1230.5" x2="1230.5" y1="624.0908" y2="730.8643"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1230.5" x2="1124" y1="730.8643" y2="730.8643"/><polygon fill="#A80036" points="1134,726.8643,1124,730.8643,1134,734.8643,1130,730.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="694.4619" y2="718.8643"/><polygon fill="#A80036" points="1108,708.8643,1112,718.8643,1116,708.8643,1112,712.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="577.0908" y2="612.0908"/><polygon fill="#A80036" points="1108,602.0908,1112,612.0908,1116,602.0908,1112,606.0908" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="601.6064" y2="626.0088"/><polygon fill="#A80036" points="1419.5,616.0088,1423.5,626.0088,1427.5,616.0088,1423.5,620.0088" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1552.5" x2="1576.5" y1="589.6064" y2="589.6064"/><polygon fill="#A80036" points="1572.5,632.9932,1576.5,642.9932,1580.5,632.9932,1576.5,636.9932" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1576.5" x2="1576.5" y1="589.6064" y2="696.3799"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1576.5" x2="1435.5" y1="696.3799" y2="696.3799"/><polygon fill="#A80036" points="1445.5,692.3799,1435.5,696.3799,1445.5,700.3799,1441.5,696.3799" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="659.9775" y2="684.3799"/><polygon fill="#A80036" points="1419.5,674.3799,1423.5,684.3799,1427.5,674.3799,1423.5,678.3799" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="512.6563" y2="559.7549"/><polygon fill="#A80036" points="485,549.7549,489,559.7549,493,549.7549,489,553.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="512.6563" y2="543.1221"/><polygon fill="#A80036" points="1108,533.1221,1112,543.1221,1116,533.1221,1112,537.1221" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="512.6563" y2="577.6064"/><polygon fill="#A80036" points="1419.5,567.6064,1423.5,577.6064,1427.5,567.6064,1423.5,571.6064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="742.5283" y2="774.8643"/><polygon fill="#A80036" points="485,764.8643,489,774.8643,493,764.8643,489,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="742.8643" y2="774.8643"/><polygon fill="#A80036" points="1108,764.8643,1112,774.8643,1116,764.8643,1112,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="708.3799" y2="774.8643"/><polygon fill="#A80036" points="1419.5,764.8643,1423.5,774.8643,1427.5,764.8643,1423.5,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="486.6563" y2="506.6563"/><polygon fill="#A80036" points="797.25,496.6563,801.25,506.6563,805.25,496.6563,801.25,500.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="780.8643" y2="800.8643"/><polygon fill="#A80036" points="797.25,790.8643,801.25,800.8643,805.25,790.8643,801.25,794.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="834.833" y2="854.833"/><polygon fill="#A80036" points="797.25,844.833,801.25,854.833,805.25,844.833,801.25,848.833" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1241.875" x2="801.25" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="797.25,388.7188,801.25,398.7188,805.25,388.7188,801.25,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1390.875" x2="1839.5" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1839.5" x2="1839.5" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1835.5,390.2852,1839.5,400.2852,1843.5,390.2852,1839.5,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1316.375" x2="1316.375" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="1312.375,354.7188,1316.375,364.7188,1320.375,354.7188,1316.375,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9a32ada93c85a2de37bae5a43857d6cb]
2 2
@startuml
3 3

  
4 4
title **µRtWare**\nurtHrtSubscriberFetchNextMessage()\n
5 5

  
6 6

  
7

  
8

  
9

  
10

  
11

  
7 12
note
8 13
  - - **subscriber** : urt_hrtsubscriber_t* - -
9 14
  The HRT subscriber that shall fetch the message.
......
28 33
  :lock topic;
29 34
  :proceed to next message;
30 35
  fork
31

  
32
partition "fetch message" {
33
  fork
34
    :update message pointer;
35
  fork again
36
      :copy timestamp of message;
37
  fork again
38
    :copy message payload;
39
  fork again
40
    if (Optional output argument ""latency"" given?) then (yes)
41
      :set ""latency"" value (now - message origin time);
42
    else (no)
43
    endif
44
  endfork
45
}
46

  
36
      partition "fetch message" {
37
    fork
38
      :update message pointer;
39
    fork again
40
        :copy timestamp of message;
41
    fork again
42
      :copy message payload;
43
    fork again
44
      if (Optional output argument ""latency"" given?) then (yes)
45
        :set ""latency"" value (now - message origin time);
46
      else (no)
47
      endif
48
    endfork
49
  }
47 50
  fork again
48 51
    :decrement message's HRT counter;
49 52
    if (HRT counter became 0?) then (yes)

Also available in: Unified diff