Statistics
| Branch: | Revision:

urtware / doc / activitydiagrams / subscriber / urtSubscriberSubscribeHrt.svg @ 7491c395

History | View | Annotate | Download (27.981 KB)

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="1079px" preserveAspectRatio="none" style="width:2149px;height:1079px;" version="1.1" viewBox="0 0 2149 1079" width="2149px" zoomAndPan="magnify"><defs><filter height="300%" id="fuj8ganickisx" 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="1029.375" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="162" x="992.875" y="47.6611">urtSubscriberHrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1076.875" y="68.6143"/><path d="M10,72.8594 L10,370.3828 A0,0 0 0 0 10,370.3828 L710,370.3828 A0,0 0 0 0 710,370.3828 L710,225.6211 L730,221.6211 L710,217.6211 L710,82.8594 L700,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#fuj8ganickisx)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M700,72.8594 L700,82.8594 L710,82.8594 L700,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="236" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="240" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="240" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="328" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="484" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="484" x2="710" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="298" x="16" y="105.0591">The subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="276" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="280" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="280" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="328" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="444" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="444" x2="710" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="16" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="256" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="260" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="260" y="180.2231">messages</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="332" y="180.2231">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="464" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="464" x2="710" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="303" x="16" y="195.856">List of messages to be contributed to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="373" x="16" y="210.9888">Those messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="517" x="16" y="226.1216">Once a message was contributed, it cannot be removed from the topic anymore.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="268" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="272" y="240.7544"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="272" y="240.7544">deadline</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="344" y="240.7544">: urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="452" y="240.7544"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="452" x2="710" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="16" y="256.3872">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="16" y="271.52">A value of 0 indicates, that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="276" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="280" y="286.1528"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="280" y="286.1528">rate</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="320" y="286.1528">: urt_delay_t_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="444" y="286.1528"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="444" x2="710" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="621" x="16" y="301.7856">Expected minimum rate of new messages (= mamximum time between consecutive messages).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="309" x="16" y="316.9185">A value of 0 indicates, that rate is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="268" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="272" y="331.5513"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="48" x="272" y="331.5513">jitter</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="328" y="331.5513">: urt_delay_t_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="452" y="331.5513"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="452" x2="710" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="16" y="347.1841">Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="312" x="16" y="362.3169">A value of 0 indicates, that jitter is of no concern.</text><ellipse cx="740" cy="221.6211" fill="#000000" filter="url(#fuj8ganickisx)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fuj8ganickisx)" points="682.5,390.3828,797.5,390.3828,809.5,402.3828,797.5,414.3828,682.5,414.3828,670.5,402.3828,682.5,390.3828" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="682.5" y="406.1909">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="650.5" y="399.7886">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="809.5" y="399.7886">no</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="128.75" y="424.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="138.75" y="445.5215">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="181.75" y="445.5215">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#fuj8ganickisx)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="231" x="1121.75" y="424.3828"/><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="101" x="1135.75" y="450.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="1145.75" y="471.5215">set HRT data</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1264.75" y="450.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1274.75" y="471.5215">set topic</text><rect fill="#000000" filter="url(#fuj8ganickisx)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="231" x="1121.75" y="504.3516"/><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1197.75" y="530.3516"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1207.75" y="551.4902">lock topic</text><rect fill="#000000" filter="url(#fuj8ganickisx)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1815" x="323.75" y="584.3203"/><rect fill="#FFFFFF" filter="url(#fuj8ganickisx)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="638" x="347.75" y="656.8325"/><path d="M504.75,657.8325 L504.75,666.1294 L494.75,676.1294 L347.75,676.1294 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="350.75" y="670.8276">contribute messages</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="429.75" y="693.1294"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="439.75" y="714.2681">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="357.75" y="762.0981"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="367.75" y="783.2368">set next pointer of last message to contribute to the message after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#fuj8ganickisx)" points="596.75,610.3203,736.75,610.3203,748.75,622.3203,736.75,634.3203,596.75,634.3203,584.75,622.3203,596.75,610.3203" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="670.75" y="644.5308">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="596.75" y="626.1284">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="748.75" y="619.7261">no</text><polygon fill="#FEFECE" filter="url(#fuj8ganickisx)" points="666.75,828.0669,678.75,840.0669,666.75,852.0669,654.75,840.0669,666.75,828.0669" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1009.75" y="719.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1019.75" y="740.604">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1349.75" y="719.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1359.75" y="740.604">register to topic's event source</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="331" x="1576.75" y="719.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="311" x="1586.75" y="740.604">insert subscriber to topic's list of HRT subscribers</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="1917.75" y="719.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="189" x="1927.75" y="740.604">increment topic's HRT counter</text><rect fill="#000000" filter="url(#fuj8ganickisx)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1815" x="323.75" y="872.0669"/><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1189.75" y="898.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1199.75" y="919.2056">unlock topic</text><rect fill="#FEFECE" filter="url(#fuj8ganickisx)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="1160.75" y="952.0356"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="1170.75" y="973.1743">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="1213.75" y="973.1743">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#fuj8ganickisx)" points="740,992.0044,752,1004.0044,740,1016.0044,728,1004.0044,740,992.0044" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M181,1026.8716 L181,1067.1372 A0,0 0 0 0 181,1067.1372 L709,1067.1372 A0,0 0 0 0 709,1067.1372 L709,1051.0044 L729,1047.0044 L709,1043.0044 L709,1036.8716 L699,1026.8716 L181,1026.8716 A0,0 0 0 0 181,1026.8716 " fill="#FBFB77" filter="url(#fuj8ganickisx)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M699,1026.8716 L699,1036.8716 L709,1036.8716 L699,1026.8716 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="181" x2="368.5" y1="1039.438" y2="1039.438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="372.5" y="1043.4385"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="372.5" y="1043.4385">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="421.5" y="1043.4385"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="421.5" y="1043.4385">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="521.5" y="1043.4385"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="521.5" x2="709" y1="1039.438" y2="1039.438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="187" y="1059.0713">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="240" y="1059.0713">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="372" y="1059.0713">if the subscriber was already associated to a topic.</text><ellipse cx="740" cy="1047.0044" fill="#FFFFFF" filter="url(#fuj8ganickisx)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="740" cy="1047.0044" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186.25" x2="1186.25" y1="430.3828" y2="450.3828"/><polygon fill="#A80036" points="1182.25,440.3828,1186.25,450.3828,1190.25,440.3828,1186.25,444.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1302.25" x2="1302.25" y1="430.3828" y2="450.3828"/><polygon fill="#A80036" points="1298.25,440.3828,1302.25,450.3828,1306.25,440.3828,1302.25,444.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186.25" x2="1186.25" y1="484.3516" y2="504.3516"/><polygon fill="#A80036" points="1182.25,494.3516,1186.25,504.3516,1190.25,494.3516,1186.25,498.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1302.25" x2="1302.25" y1="484.3516" y2="504.3516"/><polygon fill="#A80036" points="1298.25,494.3516,1302.25,504.3516,1306.25,494.3516,1302.25,498.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="1237.75" y1="510.3516" y2="530.3516"/><polygon fill="#A80036" points="1233.75,520.3516,1237.75,530.3516,1241.75,520.3516,1237.75,524.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="666.75" x2="666.75" y1="727.0981" y2="762.0981"/><polygon fill="#A80036" points="662.75,752.0981,666.75,762.0981,670.75,752.0981,666.75,756.0981" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="666.75" x2="666.75" y1="634.3203" y2="693.1294"/><polygon fill="#A80036" points="662.75,683.1294,666.75,693.1294,670.75,683.1294,666.75,687.1294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="748.75" x2="995.75" y1="622.3203" y2="622.3203"/><polygon fill="#A80036" points="991.75,726.4497,995.75,736.4497,999.75,726.4497,995.75,730.4497" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="995.75" x2="995.75" y1="622.3203" y2="840.0669"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="995.75" x2="678.75" y1="840.0669" y2="840.0669"/><polygon fill="#A80036" points="688.75,836.0669,678.75,840.0669,688.75,844.0669,684.75,840.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="666.75" x2="666.75" y1="796.0669" y2="828.0669"/><polygon fill="#A80036" points="662.75,818.0669,666.75,828.0669,670.75,818.0669,666.75,822.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="666.75" x2="666.75" y1="590.3203" y2="610.3203"/><polygon fill="#A80036" points="662.75,600.3203,666.75,610.3203,670.75,600.3203,666.75,604.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1166.25" x2="1166.25" y1="590.3203" y2="719.4653"/><polygon fill="#A80036" points="1162.25,709.4653,1166.25,719.4653,1170.25,709.4653,1166.25,713.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458.25" x2="1458.25" y1="590.3203" y2="719.4653"/><polygon fill="#A80036" points="1454.25,709.4653,1458.25,719.4653,1462.25,709.4653,1458.25,713.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1742.25" x2="1742.25" y1="590.3203" y2="719.4653"/><polygon fill="#A80036" points="1738.25,709.4653,1742.25,719.4653,1746.25,709.4653,1742.25,713.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2022.25" x2="2022.25" y1="590.3203" y2="719.4653"/><polygon fill="#A80036" points="2018.25,709.4653,2022.25,719.4653,2026.25,709.4653,2022.25,713.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="666.75" x2="666.75" y1="852.0669" y2="872.0669"/><polygon fill="#A80036" points="662.75,862.0669,666.75,872.0669,670.75,862.0669,666.75,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1166.25" x2="1166.25" y1="753.4341" y2="872.0669"/><polygon fill="#A80036" points="1162.25,862.0669,1166.25,872.0669,1170.25,862.0669,1166.25,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458.25" x2="1458.25" y1="753.4341" y2="872.0669"/><polygon fill="#A80036" points="1454.25,862.0669,1458.25,872.0669,1462.25,862.0669,1458.25,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1742.25" x2="1742.25" y1="753.4341" y2="872.0669"/><polygon fill="#A80036" points="1738.25,862.0669,1742.25,872.0669,1746.25,862.0669,1742.25,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2022.25" x2="2022.25" y1="753.4341" y2="872.0669"/><polygon fill="#A80036" points="2018.25,862.0669,2022.25,872.0669,2026.25,862.0669,2022.25,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="1237.75" y1="564.3203" y2="584.3203"/><polygon fill="#A80036" points="1233.75,574.3203,1237.75,584.3203,1241.75,574.3203,1237.75,578.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="1237.75" y1="878.0669" y2="898.0669"/><polygon fill="#A80036" points="1233.75,888.0669,1237.75,898.0669,1241.75,888.0669,1237.75,892.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="1237.75" y1="932.0356" y2="952.0356"/><polygon fill="#A80036" points="1233.75,942.0356,1237.75,952.0356,1241.75,942.0356,1237.75,946.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.5" x2="216.25" y1="402.3828" y2="402.3828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="216.25" x2="216.25" y1="402.3828" y2="424.3828"/><polygon fill="#A80036" points="212.25,414.3828,216.25,424.3828,220.25,414.3828,216.25,418.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="809.5" x2="1237.75" y1="402.3828" y2="402.3828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="1237.75" y1="402.3828" y2="424.3828"/><polygon fill="#A80036" points="1233.75,414.3828,1237.75,424.3828,1241.75,414.3828,1237.75,418.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="216.25" x2="216.25" y1="458.3516" y2="1004.0044"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="216.25" x2="728" y1="1004.0044" y2="1004.0044"/><polygon fill="#A80036" points="718,1000.0044,728,1004.0044,718,1008.0044,722,1004.0044" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="1237.75" y1="986.0044" y2="1004.0044"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1237.75" x2="752" y1="1004.0044" y2="1004.0044"/><polygon fill="#A80036" points="762,1000.0044,752,1004.0044,762,1008.0044,758,1004.0044" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740" x2="740" y1="231.6211" y2="390.3828"/><polygon fill="#A80036" points="736,380.3828,740,390.3828,744,380.3828,740,384.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740" x2="740" y1="1016.0044" y2="1036.0044"/><polygon fill="#A80036" points="736,1026.0044,740,1036.0044,744,1026.0044,740,1030.0044" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[86f4e621ff1428b72db951ab1c7d8a26]
2
@startuml
3

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

    
6

    
7

    
8

    
9

    
10

    
11

    
12

    
13

    
14

    
15

    
16

    
17
start
18
note
19
  - - ""**subscriber** : urt_subscriber_t*"" - -
20
  The subscriber which shall subscribe to a topic.
21
  Must not be ""NULL"".
22
  - - ""**topic** : urt_topic_t*"" - -
23
  The topic to subscribe to.
24
  Must not be ""NULL"".
25
  - - ""**messages** : urt_message_t*"" - -
26
  List of messages to be contributed to the topic.
27
  Those messages must not be associated to another topic.
28
  Once a message was contributed, it cannot be removed from the topic anymore.
29
  - - ""**deadline** : urt_delay_t"" - -
30
  Maximum latency to consume messages.
31
  A value of 0 indicates, that latency is of no concern.
32
  - - ""**rate** : urt_delay_t_t"" - -
33
  Expected minimum rate of new messages (= mamximum time between consecutive messages).
34
  A value of 0 indicates, that rate is of no concern.
35
  - - ""**jitter** : urt_delay_t_t"" - -
36
  Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.
37
  A value of 0 indicates, that jitter is of no concern.
38
end note
39

    
40

    
41
if (Is topic already set?) then (yes)
42
  :return ""URT_STATUS_ERROR"";
43
else (no)
44
  fork
45
    :set HRT data;
46
  fork again
47
    :set topic;
48
  endfork
49
  :lock topic;
50
  fork
51
    if (Messages to contribute?) then (yes)
52
      partition "contribute messages" {
53
        :set next pointer of topic's latest message to first message to contribute;
54
        :set next pointer of last message to contribute to the message after the topic's latest message;
55
      }
56
    else (no)
57
    endif
58
  fork again
59
    :set message pointer to topic's latest message;
60
  fork again
61
    :register to topic's event source;
62
  fork again
63
    :insert subscriber to topic's list of HRT subscribers;
64
  fork again
65
    :increment topic's HRT counter;
66
  endfork
67
  :unlock topic;
68
  :return ""URT_STATUS_OK"";
69
endif
70

    
71

    
72
stop
73
note
74
  - - **return** ""urt_status_t"" - -
75
  Returns ""URT_STATUS_ERROR"" if the subscriber was already associated to a topic.
76
end note
77

    
78

    
79
@enduml
80

    
81
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
82
(GPL source distribution)
83
Java Runtime: OpenJDK Runtime Environment
84
JVM: OpenJDK 64-Bit Server VM
85
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
86
Operating System: Linux
87
Default Encoding: UTF-8
88
Language: en
89
Country: US
90
--></g></svg>