Statistics
| Branch: | Revision:

urtware / doc / activitydiagrams / subscriber / urtSubscriberSubscribeFrt.svg @ c22d21ad

History | View | Annotate | Download (27.058 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="1131px" preserveAspectRatio="none" style="width:1766px;height:1131px;" version="1.1" viewBox="0 0 1766 1131" width="1766px" zoomAndPan="magnify"><defs><filter height="300%" id="f1dgqi4y7e2l0d" 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="837.875" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="158" x="803.375" y="47.6611">urtSubscriberFrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="885.375" 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(#f1dgqi4y7e2l0d)" 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(#f1dgqi4y7e2l0d)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" 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(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="270.75" y="424.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="280.75" y="445.5215">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="323.75" y="445.5215">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="230" x="1006.75" y="424.3828"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="1020.75" y="450.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="1030.75" y="471.5215">set FRT data</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1147.75" y="450.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1157.75" y="471.5215">set topic</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="230" x="1006.75" y="504.3516"/><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="465.75" y="530.3516"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="959.25" y="556.3516"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="969.25" y="577.4902">lock topic</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="479.75" y="610.3203"/><rect fill="#FFFFFF" filter="url(#f1dgqi4y7e2l0d)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="638" x="503.75" y="682.8325"/><path d="M660.75,683.8325 L660.75,692.1294 L650.75,702.1294 L503.75,702.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="506.75" y="696.8276">contribute messages</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="585.75" y="719.1294"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="595.75" y="740.2681">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="513.75" y="788.0981"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="523.75" y="809.2368">set next pointer of last message to contribute to the message after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" points="752.75,636.3203,892.75,636.3203,904.75,648.3203,892.75,660.3203,752.75,660.3203,740.75,648.3203,752.75,636.3203" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="826.75" y="670.5308">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="752.75" y="652.1284">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="904.75" y="645.7261">no</text><polygon fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" points="822.75,854.0669,834.75,866.0669,822.75,878.0669,810.75,866.0669,822.75,854.0669" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1191.75" y="745.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1201.75" y="766.604">set message pointer to topic's latest message</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="479.75" y="898.0669"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="951.25" y="924.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="961.25" y="945.2056">unlock topic</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1526.75" y="745.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1536.75" y="766.604">register to topic's event source</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="465.75" y="978.0356"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="1044.75" y="1004.0356"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="1054.75" y="1025.1743">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="1097.75" y="1025.1743">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" points="740,1044.0044,752,1056.0044,740,1068.0044,728,1056.0044,740,1044.0044" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M181,1078.8716 L181,1119.1372 A0,0 0 0 0 181,1119.1372 L709,1119.1372 A0,0 0 0 0 709,1119.1372 L709,1103.0044 L729,1099.0044 L709,1095.0044 L709,1088.8716 L699,1078.8716 L181,1078.8716 A0,0 0 0 0 181,1078.8716 " fill="#FBFB77" filter="url(#f1dgqi4y7e2l0d)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M699,1078.8716 L699,1088.8716 L709,1088.8716 L699,1078.8716 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="181" x2="368.5" y1="1091.438" y2="1091.438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="372.5" y="1095.4385"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="372.5" y="1095.4385">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="421.5" y="1095.4385"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="421.5" y="1095.4385">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="521.5" y="1095.4385"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="521.5" x2="709" y1="1091.438" y2="1091.438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="187" y="1111.0713">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="240" y="1111.0713">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="372" y="1111.0713">if the subscriber was already associated to a topic.</text><ellipse cx="740" cy="1099.0044" fill="#FFFFFF" filter="url(#f1dgqi4y7e2l0d)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="740" cy="1099.0044" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1070.25" x2="1070.25" y1="430.3828" y2="450.3828"/><polygon fill="#A80036" points="1066.25,440.3828,1070.25,450.3828,1074.25,440.3828,1070.25,444.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1185.25" x2="1185.25" y1="430.3828" y2="450.3828"/><polygon fill="#A80036" points="1181.25,440.3828,1185.25,450.3828,1189.25,440.3828,1185.25,444.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1070.25" x2="1070.25" y1="484.3516" y2="504.3516"/><polygon fill="#A80036" points="1066.25,494.3516,1070.25,504.3516,1074.25,494.3516,1070.25,498.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1185.25" x2="1185.25" y1="484.3516" y2="504.3516"/><polygon fill="#A80036" points="1181.25,494.3516,1185.25,504.3516,1189.25,494.3516,1185.25,498.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="753.0981" y2="788.0981"/><polygon fill="#A80036" points="818.75,778.0981,822.75,788.0981,826.75,778.0981,822.75,782.0981" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="660.3203" y2="719.1294"/><polygon fill="#A80036" points="818.75,709.1294,822.75,719.1294,826.75,709.1294,822.75,713.1294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="904.75" x2="1151.75" y1="648.3203" y2="648.3203"/><polygon fill="#A80036" points="1147.75,752.4497,1151.75,762.4497,1155.75,752.4497,1151.75,756.4497" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1151.75" x2="1151.75" y1="648.3203" y2="866.0669"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1151.75" x2="834.75" y1="866.0669" y2="866.0669"/><polygon fill="#A80036" points="844.75,862.0669,834.75,866.0669,844.75,870.0669,840.75,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="822.0669" y2="854.0669"/><polygon fill="#A80036" points="818.75,844.0669,822.75,854.0669,826.75,844.0669,822.75,848.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="616.3203" y2="636.3203"/><polygon fill="#A80036" points="818.75,626.3203,822.75,636.3203,826.75,626.3203,822.75,630.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1348.25" x2="1348.25" y1="616.3203" y2="745.4653"/><polygon fill="#A80036" points="1344.25,735.4653,1348.25,745.4653,1352.25,735.4653,1348.25,739.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="878.0669" y2="898.0669"/><polygon fill="#A80036" points="818.75,888.0669,822.75,898.0669,826.75,888.0669,822.75,892.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1348.25" x2="1348.25" y1="779.4341" y2="898.0669"/><polygon fill="#A80036" points="1344.25,888.0669,1348.25,898.0669,1352.25,888.0669,1348.25,892.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.25" x2="999.25" y1="590.3203" y2="610.3203"/><polygon fill="#A80036" points="995.25,600.3203,999.25,610.3203,1003.25,600.3203,999.25,604.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.25" x2="999.25" y1="904.0669" y2="924.0669"/><polygon fill="#A80036" points="995.25,914.0669,999.25,924.0669,1003.25,914.0669,999.25,918.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.25" x2="999.25" y1="536.3516" y2="556.3516"/><polygon fill="#A80036" points="995.25,546.3516,999.25,556.3516,1003.25,546.3516,999.25,550.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1635.25" x2="1635.25" y1="536.3516" y2="745.4653"/><polygon fill="#A80036" points="1631.25,735.4653,1635.25,745.4653,1639.25,735.4653,1635.25,739.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.25" x2="999.25" y1="958.0356" y2="978.0356"/><polygon fill="#A80036" points="995.25,968.0356,999.25,978.0356,1003.25,968.0356,999.25,972.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1635.25" x2="1635.25" y1="779.4341" y2="978.0356"/><polygon fill="#A80036" points="1631.25,968.0356,1635.25,978.0356,1639.25,968.0356,1635.25,972.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="1121.75" y1="510.3516" y2="530.3516"/><polygon fill="#A80036" points="1117.75,520.3516,1121.75,530.3516,1125.75,520.3516,1121.75,524.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="1121.75" y1="984.0356" y2="1004.0356"/><polygon fill="#A80036" points="1117.75,994.0356,1121.75,1004.0356,1125.75,994.0356,1121.75,998.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.5" x2="358.25" y1="402.3828" y2="402.3828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="358.25" x2="358.25" y1="402.3828" y2="424.3828"/><polygon fill="#A80036" points="354.25,414.3828,358.25,424.3828,362.25,414.3828,358.25,418.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="809.5" x2="1121.75" y1="402.3828" y2="402.3828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="1121.75" y1="402.3828" y2="424.3828"/><polygon fill="#A80036" points="1117.75,414.3828,1121.75,424.3828,1125.75,414.3828,1121.75,418.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="358.25" x2="358.25" y1="458.3516" y2="1056.0044"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="358.25" x2="728" y1="1056.0044" y2="1056.0044"/><polygon fill="#A80036" points="718,1052.0044,728,1056.0044,718,1060.0044,722,1056.0044" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="1121.75" y1="1038.0044" y2="1056.0044"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="752" y1="1056.0044" y2="1056.0044"/><polygon fill="#A80036" points="762,1052.0044,752,1056.0044,762,1060.0044,758,1056.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="1068.0044" y2="1088.0044"/><polygon fill="#A80036" points="736,1078.0044,740,1088.0044,744,1078.0044,740,1082.0044" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a6d104aca358dff4eeaced4e385ef4b8]
2
@startuml
3

    
4
title **µRtWare**\nurtSubscriberFrt()\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 FRT data;
46
  fork again
47
    :set topic;
48
  endfork
49
  fork
50
    :lock topic;
51
    fork
52
      if (Messages to contribute?) then (yes)
53
        partition "contribute messages" {
54
          :set next pointer of topic's latest message to first message to contribute;
55
          :set next pointer of last message to contribute to the message after the topic's latest message;
56
        }
57
      else (no)
58
      endif
59
    fork again
60
      :set message pointer to topic's latest message;
61
    endfork
62
    :unlock topic;
63
  fork again
64
    :register to topic's event source;
65
  endfork
66
  :return ""URT_STATUS_OK"";
67
endif
68

    
69

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

    
76

    
77
@enduml
78

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