Statistics
| Branch: | Revision:

urtware / doc / activitydiagrams / subscriber / urtHrtSubscriberSubscribe.svg @ ee83a495

History | View | Annotate | Download (32.565 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="1081px" preserveAspectRatio="none" style="width:3055px;height:1081px;" version="1.1" viewBox="0 0 3055 1081" width="3055px" zoomAndPan="magnify"><defs><filter height="300%" id="fnkdh20ze193k" 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="1482.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="247" x="1403.25" y="47.6611">urtHrtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1529.75" y="68.6143"/><path d="M600.5,72.8594 L600.5,440.9141 L1300.5,440.9141 L1300.5,82.8594 L1290.5,72.8594 L600.5,72.8594 " fill="#FBFB77" filter="url(#fnkdh20ze193k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1290.5,72.8594 L1290.5,82.8594 L1300.5,82.8594 L1290.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="837.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="841.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="841.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="923.5" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1063.5" x2="1300.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="327" x="606.5" y="105.0591">The HRT subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="606.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="686.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="718.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="884.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="888.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="888.5" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="929.5" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1016.5" x2="1300.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="606.5" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="606.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="686.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="718.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="851.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="855.5" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="855.5" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="934.5" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1049.5" x2="1300.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="606.5" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="642.5" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="606.5" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="606.5" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="606.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="656.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="692.5" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="873" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="877" y="255.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="877" y="255.8872">deadline</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="945" y="255.8872">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1028" x2="1300.5" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="606.5" y="271.52">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="325" x="606.5" y="286.6528">A value of 0 indicates that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="887.5" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="891.5" y="301.2856"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="35" x="891.5" y="301.2856">jitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="930.5" y="301.2856">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1013.5" x2="1300.5" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="606.5" y="316.9185">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="308" x="606.5" y="332.0513">A value of 0 indicates that jitter is of no concern.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="10" x="606.5" y="347.1841">--</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="620.5" y="347.1841">rate</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="77" x="654.5" y="347.1841">: urt-delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="621" x="606.5" y="362.3169">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="606.5" y="377.4497">A value of 0 indicates, that rate is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="1300.5" y1="385.5156" y2="385.5156"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="1300.5" y1="387.5156" y2="387.5156"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="879.5" y1="398.082" y2="398.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="883.5" y="402.0825"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="883.5" y="402.0825">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="932.5" y="402.0825">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1021.5" x2="1300.5" y1="398.082" y2="398.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="606.5" y="417.7153">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="659.5" y="417.7153">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="767.5" y="417.7153">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="606.5" y="432.8481">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="659.5" y="432.8481">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="791.5" y="432.8481">if the subscriber is already associated to a topic.</text><ellipse cx="950.5" cy="470.9141" fill="#000000" filter="url(#fnkdh20ze193k)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fnkdh20ze193k)" points="893,500.9141,1008,500.9141,1020,512.9141,1008,524.9141,893,524.9141,881,512.9141,893,500.9141" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="893" y="516.7222">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="861" y="510.3198">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1020" y="510.3198">no</text><path d="M10,534.9141 L10,560.0469 A0,0 0 0 0 10,560.0469 L216,560.0469 A0,0 0 0 0 216,560.0469 L216,552.9141 L236,547.4805 L216,544.9141 L216,544.9141 L206,534.9141 L10,534.9141 A0,0 0 0 0 10,534.9141 " fill="#FBFB77" filter="url(#fnkdh20ze193k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M206,534.9141 L206,544.9141 L216,544.9141 L206,534.9141 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="551.981">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="69" y="551.981">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="197" y="551.981">.</text><ellipse cx="247" cy="547.4805" fill="#FFFFFF" filter="url(#fnkdh20ze193k)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="247" cy="547.4805" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="592" x="1380" y="534.9141"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1394" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1404" y="582.0527">set topic</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="1497" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1507" y="582.0527">set deadline offset</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="135" x="1663" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="1673" y="582.0527">set maximum jitter</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="1826" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1836" y="582.0527">set expected rate</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="592" x="1380" y="614.8828"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1636" y="640.8828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1646" y="662.0215">lock topic</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2776.5" x="268" y="694.8516"/><rect fill="#FFFFFF" filter="url(#fnkdh20ze193k)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1168" x="280" y="767.3638"/><path d="M437,768.3638 L437,776.6606 L427,786.6606 L280,786.6606 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="283" y="781.3589">contribute messages</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="803.6606"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="304" y="829.6606"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="314" y="850.7993">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="806" y="829.6606"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="816" y="850.7993">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="883.6294"/><polygon fill="#FEFECE" filter="url(#fnkdh20ze193k)" points="794,720.8516,934,720.8516,946,732.8516,934,744.8516,794,744.8516,782,732.8516,794,720.8516" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="868" y="755.062">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="794" y="736.6597">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="946" y="730.2573">no</text><polygon fill="#FEFECE" filter="url(#fnkdh20ze193k)" points="864,921.6294,876,933.6294,864,945.6294,852,933.6294,864,921.6294" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="664" x="1498" y="795.5122"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1512" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1522" y="842.6509">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="297" x="1853" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="277" x="1863" y="842.6509">copy timestamp from topic's latest message</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="664" x="1498" y="875.481"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="2172" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="2182" y="842.6509">register to topic's event source</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="633.5" x="2399" y="795.5122"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="287" x="2411" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="2421" y="842.6509">insert self to topic's list of HRT subscribers</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="302" x="2718.5" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="282" x="2728.5" y="842.6509">increment topic's counter of HRT subscribers</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="633.5" x="2399" y="875.481"/><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2776.5" x="268" y="965.6294"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1628" y="991.6294"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1638" y="1012.7681">unlock topic</text><path d="M1463,1044.0317 L1463,1069.1646 A0,0 0 0 0 1463,1069.1646 L1645,1069.1646 A0,0 0 0 0 1645,1069.1646 L1645,1062.0317 L1665,1056.5981 L1645,1054.0317 L1645,1054.0317 L1635,1044.0317 L1463,1044.0317 A0,0 0 0 0 1463,1044.0317 " fill="#FBFB77" filter="url(#fnkdh20ze193k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1635,1044.0317 L1635,1054.0317 L1645,1054.0317 L1635,1044.0317 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1469" y="1061.0986">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1522" y="1061.0986">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1626" y="1061.0986">.</text><ellipse cx="1676" cy="1056.5981" fill="#FFFFFF" filter="url(#fnkdh20ze193k)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1676" cy="1056.5981" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="950.5" x2="950.5" y1="440.9141" y2="460.9141"/><polygon fill="#A80036" points="946.5,450.9141,950.5,460.9141,954.5,450.9141,950.5,454.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.5" x2="1431.5" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1427.5,550.9141,1431.5,560.9141,1435.5,550.9141,1431.5,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1566" x2="1566" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1562,550.9141,1566,560.9141,1570,550.9141,1566,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1730.5" x2="1730.5" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1726.5,550.9141,1730.5,560.9141,1734.5,550.9141,1730.5,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1892" x2="1892" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1888,550.9141,1892,560.9141,1896,550.9141,1892,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.5" x2="1431.5" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1427.5,604.8828,1431.5,614.8828,1435.5,604.8828,1431.5,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1566" x2="1566" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1562,604.8828,1566,614.8828,1570,604.8828,1566,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1730.5" x2="1730.5" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1726.5,604.8828,1730.5,614.8828,1734.5,604.8828,1730.5,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1892" x2="1892" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1888,604.8828,1892,614.8828,1896,604.8828,1892,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="620.8828" y2="640.8828"/><polygon fill="#A80036" points="1672,630.8828,1676,640.8828,1680,630.8828,1676,634.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="809.6606" y2="829.6606"/><polygon fill="#A80036" points="537,819.6606,541,829.6606,545,819.6606,541,823.6606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="809.6606" y2="829.6606"/><polygon fill="#A80036" points="1111,819.6606,1115,829.6606,1119,819.6606,1115,823.6606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="863.6294" y2="883.6294"/><polygon fill="#A80036" points="537,873.6294,541,883.6294,545,873.6294,541,877.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="863.6294" y2="883.6294"/><polygon fill="#A80036" points="1111,873.6294,1115,883.6294,1119,873.6294,1115,877.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="744.8516" y2="803.6606"/><polygon fill="#A80036" points="860,793.6606,864,803.6606,868,793.6606,864,797.6606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="946" x2="1458" y1="732.8516" y2="732.8516"/><polygon fill="#A80036" points="1454,828.4966,1458,838.4966,1462,828.4966,1458,832.4966" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="1458" y1="732.8516" y2="933.6294"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="876" y1="933.6294" y2="933.6294"/><polygon fill="#A80036" points="886,929.6294,876,933.6294,886,937.6294,882,933.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="889.6294" y2="921.6294"/><polygon fill="#A80036" points="860,911.6294,864,921.6294,868,911.6294,864,915.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="1664.5,811.5122,1668.5,821.5122,1672.5,811.5122,1668.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2001.5" x2="2001.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="1997.5,811.5122,2001.5,821.5122,2005.5,811.5122,2001.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="1664.5,865.481,1668.5,875.481,1672.5,865.481,1668.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2001.5" x2="2001.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="1997.5,865.481,2001.5,875.481,2005.5,865.481,2001.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2554.5" x2="2554.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="2550.5,811.5122,2554.5,821.5122,2558.5,811.5122,2554.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2869.5" x2="2869.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="2865.5,811.5122,2869.5,821.5122,2873.5,811.5122,2869.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2554.5" x2="2554.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="2550.5,865.481,2554.5,875.481,2558.5,865.481,2554.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2869.5" x2="2869.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="2865.5,865.481,2869.5,875.481,2873.5,865.481,2869.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="700.8516" y2="720.8516"/><polygon fill="#A80036" points="860,710.8516,864,720.8516,868,710.8516,864,714.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="700.8516" y2="795.5122"/><polygon fill="#A80036" points="1827,785.5122,1831,795.5122,1835,785.5122,1831,789.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2280.5" x2="2280.5" y1="700.8516" y2="821.5122"/><polygon fill="#A80036" points="2276.5,811.5122,2280.5,821.5122,2284.5,811.5122,2280.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2712" x2="2712" y1="700.8516" y2="795.5122"/><polygon fill="#A80036" points="2708,785.5122,2712,795.5122,2716,785.5122,2712,789.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="945.6294" y2="965.6294"/><polygon fill="#A80036" points="860,955.6294,864,965.6294,868,955.6294,864,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="881.481" y2="965.6294"/><polygon fill="#A80036" points="1827,955.6294,1831,965.6294,1835,955.6294,1831,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2280.5" x2="2280.5" y1="855.481" y2="965.6294"/><polygon fill="#A80036" points="2276.5,955.6294,2280.5,965.6294,2284.5,955.6294,2280.5,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2712" x2="2712" y1="881.481" y2="965.6294"/><polygon fill="#A80036" points="2708,955.6294,2712,965.6294,2716,955.6294,2712,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="674.8516" y2="694.8516"/><polygon fill="#A80036" points="1672,684.8516,1676,694.8516,1680,684.8516,1676,688.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="971.6294" y2="991.6294"/><polygon fill="#A80036" points="1672,981.6294,1676,991.6294,1680,981.6294,1676,985.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="1025.5981" y2="1045.5981"/><polygon fill="#A80036" points="1672,1035.5981,1676,1045.5981,1680,1035.5981,1676,1039.5981" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="881" x2="247" y1="512.9141" y2="512.9141"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247" x2="247" y1="512.9141" y2="536.4805"/><polygon fill="#A80036" points="243,526.4805,247,536.4805,251,526.4805,247,530.4805" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1020" x2="1676" y1="512.9141" y2="512.9141"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="512.9141" y2="534.9141"/><polygon fill="#A80036" points="1672,524.9141,1676,534.9141,1680,524.9141,1676,528.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="950.5" x2="950.5" y1="480.9141" y2="500.9141"/><polygon fill="#A80036" points="946.5,490.9141,950.5,500.9141,954.5,490.9141,950.5,494.9141" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[05ea0b8d1b8acbc1342e2094f7f7a925]
2
@startuml
3

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

    
6

    
7
note
8
  - - **subscriber** : urt_hrtsubscriber_t* - -
9
  The HRT subscriber which shall subscribe to a topic.
10
  Must not be ""NULL"".
11
  - - **topic** : urt_topic_t* - -
12
  The topic to subscribe to.
13
  Must not be ""NULL"".
14
  - - **messages** : urt_message_t* - -
15
  ""NULL"" terminated list of messages to contribute to the topic.
16
  Messages must not be associated to another topic.
17
  Once a message has been contributed, it cannot be removed later.
18
  May be ""NULL"" (no messages to contribute).
19
  - - **deadline** : urt_delay_t - -
20
  Maximum latency to consume messages.
21
  A value of 0 indicates that latency is of no concern.
22
  - - **jitter** : urt_delay_t - -
23
  Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.
24
  A value of 0 indicates that jitter is of no concern.
25
  - - **rate** : urt-delay_t
26
  Expected minimum rate of new messages (= mamximum time between consecutive messages).
27
  A value of 0 indicates, that rate is of no concern.
28
  ====
29
  - - **return** : urt_status_t - -
30
  Returns ""URT_STATUS_OK"" on success.
31
  Returns ""URT_STATUS_ERROR"" if the subscriber is already associated to a topic.
32
endnote
33

    
34

    
35
start
36
if (Is topic already set?) then (yes)
37
  stop
38
  note
39
    Returns ""URT_STATUS_ERROR"".
40
  endnote
41
else (no)
42
  fork
43
    :set topic;
44
  fork again
45
    :set deadline offset;
46
  fork again
47
    :set maximum jitter;
48
  fork again
49
    :set expected rate;
50
  endfork
51
  :lock topic;
52
  fork
53
    if (Messages to contribute?) then (yes)
54

    
55
partition "contribute messages" {
56
  fork
57
    :set next pointer of topic's latest message to first message to contribute;
58
  fork again
59
    :set next pointer of last message to contribute to the message after the topic's latest message;
60
  endfork
61
}
62

    
63
    else (no)
64
    endif
65
  fork again
66
    fork
67
      :set message pointer to topic's latest message;
68
    fork again
69
      :copy timestamp from topic's latest message;
70
    endfork
71
  fork again
72
    :register to topic's event source;
73
  fork again
74
    fork
75
      :insert self to topic's list of HRT subscribers;
76
    fork again
77
      :increment topic's counter of HRT subscribers;
78
    endfork
79
  endfork
80
  :unlock topic;
81
  stop
82
  note
83
    Returns ""URT_STATUS_OK"".
84
  endnote
85
endif
86

    
87

    
88
@enduml
89

    
90
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
91
(GPL source distribution)
92
Java Runtime: OpenJDK Runtime Environment
93
JVM: OpenJDK 64-Bit Server VM
94
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
95
Operating System: Linux
96
Default Encoding: UTF-8
97
Language: en
98
Country: US
99
--></g></svg>