Statistics
| Branch: | Revision:

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

History | View | Annotate | Download (26.037 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="1085px" preserveAspectRatio="none" style="width:1604px;height:1085px;" version="1.1" viewBox="0 0 1604 1085" width="1604px" zoomAndPan="magnify"><defs><filter height="300%" id="f1miq1q8f5q9kf" 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="756.875" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="159" x="721.875" y="47.6611">urtSubscriberSrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="804.375" y="68.6143"/><path d="M10,72.8594 L10,324.9844 A0,0 0 0 0 10,324.9844 L548,324.9844 A0,0 0 0 0 548,324.9844 L548,202.9219 L568,198.9219 L548,194.9219 L548,82.8594 L538,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#f1miq1q8f5q9kf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M538,72.8594 L538,82.8594 L548,82.8594 L538,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="155" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="159" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="159" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="247" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="403" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="403" x2="548" 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="195" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="199" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="199" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="247" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="363" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="363" x2="548" 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="175" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="179" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="179" y="180.2231">messages</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="251" y="180.2231">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="383" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="383" x2="548" 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="119" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="123" y="240.7544"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="96" x="123" y="240.7544">usefulnesscb</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="227" y="240.7544">: urt_srtusefulnessfunc_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="439" y="240.7544"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="439" x2="548" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="374" x="16" y="256.3872">Pointer to a function to calculate usefulness of a message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="271.52">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="271.52">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="271.52">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="211" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="215" y="286.1528"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="215" y="286.1528">cbparams</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="287" y="286.1528">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="347" y="286.1528"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="347" x2="548" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="309" x="16" y="301.7856">Optional parameters for the usefulness callback.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="16" y="316.9185">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="66" y="316.9185">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="102" y="316.9185">if the callback expects no parameters.</text><ellipse cx="578" cy="198.9219" fill="#000000" filter="url(#f1miq1q8f5q9kf)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" points="520.5,344.9844,635.5,344.9844,647.5,356.9844,635.5,368.9844,520.5,368.9844,508.5,356.9844,520.5,344.9844" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="520.5" y="360.7925">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="488.5" y="354.3901">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="647.5" y="354.3901">no</text><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="108.75" y="378.9844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="118.75" y="400.123">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="161.75" y="400.123">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f1miq1q8f5q9kf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="231" x="844.25" y="378.9844"/><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="858.25" y="404.9844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="80" x="868.25" y="426.123">set SRT data</text><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="986.25" y="404.9844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="996.25" y="426.123">set topic</text><rect fill="#000000" filter="url(#f1miq1q8f5q9kf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="231" x="844.25" y="458.9531"/><rect fill="#000000" filter="url(#f1miq1q8f5q9kf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="303.75" y="484.9531"/><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="797.25" y="510.9531"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="807.25" y="532.0918">lock topic</text><rect fill="#000000" filter="url(#f1miq1q8f5q9kf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="317.75" y="564.9219"/><rect fill="#FFFFFF" filter="url(#f1miq1q8f5q9kf)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="638" x="341.75" y="637.4341"/><path d="M498.75,638.4341 L498.75,646.731 L488.75,656.731 L341.75,656.731 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="344.75" y="651.4292">contribute messages</text><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="423.75" y="673.731"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="433.75" y="694.8696">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="351.75" y="742.6997"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="361.75" y="763.8384">set next pointer of last message to contribute to the message after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" points="590.75,590.9219,730.75,590.9219,742.75,602.9219,730.75,614.9219,590.75,614.9219,578.75,602.9219,590.75,590.9219" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="664.75" y="625.1323">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="590.75" y="606.73">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="742.75" y="600.3276">no</text><polygon fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" points="660.75,808.6685,672.75,820.6685,660.75,832.6685,648.75,820.6685,660.75,808.6685" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1029.75" y="700.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1039.75" y="721.2056">set message pointer to topic's latest message</text><rect fill="#000000" filter="url(#f1miq1q8f5q9kf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="317.75" y="852.6685"/><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="789.25" y="878.6685"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="799.25" y="899.8071">unlock topic</text><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1364.75" y="700.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1374.75" y="721.2056">register to topic's event source</text><rect fill="#000000" filter="url(#f1miq1q8f5q9kf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="303.75" y="932.6372"/><rect fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="882.75" y="958.6372"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="892.75" y="979.7759">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="935.75" y="979.7759">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f1miq1q8f5q9kf)" points="578,998.606,590,1010.606,578,1022.606,566,1010.606,578,998.606" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M19,1033.4731 L19,1073.7388 A0,0 0 0 0 19,1073.7388 L547,1073.7388 A0,0 0 0 0 547,1073.7388 L547,1057.606 L567,1053.606 L547,1049.606 L547,1043.4731 L537,1033.4731 L19,1033.4731 A0,0 0 0 0 19,1033.4731 " fill="#FBFB77" filter="url(#f1miq1q8f5q9kf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M537,1033.4731 L537,1043.4731 L547,1043.4731 L537,1033.4731 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="206.5" y1="1046.0396" y2="1046.0396"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="210.5" y="1050.04"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="210.5" y="1050.04">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="259.5" y="1050.04"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="259.5" y="1050.04">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="359.5" y="1050.04"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="359.5" x2="547" y1="1046.0396" y2="1046.0396"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="25" y="1065.6729">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="78" y="1065.6729">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="210" y="1065.6729">if the subscriber was already associated to a topic.</text><ellipse cx="578" cy="1053.606" fill="#FFFFFF" filter="url(#f1miq1q8f5q9kf)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="578" cy="1053.606" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="908.25" x2="908.25" y1="384.9844" y2="404.9844"/><polygon fill="#A80036" points="904.25,394.9844,908.25,404.9844,912.25,394.9844,908.25,398.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1023.75" x2="1023.75" y1="384.9844" y2="404.9844"/><polygon fill="#A80036" points="1019.75,394.9844,1023.75,404.9844,1027.75,394.9844,1023.75,398.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="908.25" x2="908.25" y1="438.9531" y2="458.9531"/><polygon fill="#A80036" points="904.25,448.9531,908.25,458.9531,912.25,448.9531,908.25,452.9531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1023.75" x2="1023.75" y1="438.9531" y2="458.9531"/><polygon fill="#A80036" points="1019.75,448.9531,1023.75,458.9531,1027.75,448.9531,1023.75,452.9531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="707.6997" y2="742.6997"/><polygon fill="#A80036" points="656.75,732.6997,660.75,742.6997,664.75,732.6997,660.75,736.6997" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="614.9219" y2="673.731"/><polygon fill="#A80036" points="656.75,663.731,660.75,673.731,664.75,663.731,660.75,667.731" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="742.75" x2="989.75" y1="602.9219" y2="602.9219"/><polygon fill="#A80036" points="985.75,707.0513,989.75,717.0513,993.75,707.0513,989.75,711.0513" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="989.75" x2="989.75" y1="602.9219" y2="820.6685"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="989.75" x2="672.75" y1="820.6685" y2="820.6685"/><polygon fill="#A80036" points="682.75,816.6685,672.75,820.6685,682.75,824.6685,678.75,820.6685" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="776.6685" y2="808.6685"/><polygon fill="#A80036" points="656.75,798.6685,660.75,808.6685,664.75,798.6685,660.75,802.6685" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="570.9219" y2="590.9219"/><polygon fill="#A80036" points="656.75,580.9219,660.75,590.9219,664.75,580.9219,660.75,584.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186.25" x2="1186.25" y1="570.9219" y2="700.0669"/><polygon fill="#A80036" points="1182.25,690.0669,1186.25,700.0669,1190.25,690.0669,1186.25,694.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="832.6685" y2="852.6685"/><polygon fill="#A80036" points="656.75,842.6685,660.75,852.6685,664.75,842.6685,660.75,846.6685" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186.25" x2="1186.25" y1="734.0356" y2="852.6685"/><polygon fill="#A80036" points="1182.25,842.6685,1186.25,852.6685,1190.25,842.6685,1186.25,846.6685" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="544.9219" y2="564.9219"/><polygon fill="#A80036" points="833.25,554.9219,837.25,564.9219,841.25,554.9219,837.25,558.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="858.6685" y2="878.6685"/><polygon fill="#A80036" points="833.25,868.6685,837.25,878.6685,841.25,868.6685,837.25,872.6685" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="490.9531" y2="510.9531"/><polygon fill="#A80036" points="833.25,500.9531,837.25,510.9531,841.25,500.9531,837.25,504.9531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1473.25" x2="1473.25" y1="490.9531" y2="700.0669"/><polygon fill="#A80036" points="1469.25,690.0669,1473.25,700.0669,1477.25,690.0669,1473.25,694.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="912.6372" y2="932.6372"/><polygon fill="#A80036" points="833.25,922.6372,837.25,932.6372,841.25,922.6372,837.25,926.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1473.25" x2="1473.25" y1="734.0356" y2="932.6372"/><polygon fill="#A80036" points="1469.25,922.6372,1473.25,932.6372,1477.25,922.6372,1473.25,926.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="464.9531" y2="484.9531"/><polygon fill="#A80036" points="955.75,474.9531,959.75,484.9531,963.75,474.9531,959.75,478.9531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="938.6372" y2="958.6372"/><polygon fill="#A80036" points="955.75,948.6372,959.75,958.6372,963.75,948.6372,959.75,952.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="508.5" x2="196.25" y1="356.9844" y2="356.9844"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="196.25" x2="196.25" y1="356.9844" y2="378.9844"/><polygon fill="#A80036" points="192.25,368.9844,196.25,378.9844,200.25,368.9844,196.25,372.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="647.5" x2="959.75" y1="356.9844" y2="356.9844"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="356.9844" y2="378.9844"/><polygon fill="#A80036" points="955.75,368.9844,959.75,378.9844,963.75,368.9844,959.75,372.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="196.25" x2="196.25" y1="412.9531" y2="1010.606"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="196.25" x2="566" y1="1010.606" y2="1010.606"/><polygon fill="#A80036" points="556,1006.606,566,1010.606,556,1014.606,560,1010.606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="992.606" y2="1010.606"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="590" y1="1010.606" y2="1010.606"/><polygon fill="#A80036" points="600,1006.606,590,1010.606,600,1014.606,596,1010.606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="578" y1="208.9219" y2="344.9844"/><polygon fill="#A80036" points="574,334.9844,578,344.9844,582,334.9844,578,338.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="578" y1="1022.606" y2="1042.606"/><polygon fill="#A80036" points="574,1032.606,578,1042.606,582,1032.606,578,1036.606" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[3006daf8e172fefe467b3d1c67bc119c]
2
@startuml
3

    
4
title **µRtWare**\nurtSubscriberSrt()\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
  - - ""**usefulnesscb** : urt_srtusefulnessfunc_t*"" - -
30
  Pointer to a function to calculate usefulness of a message.
31
  Must not be ""NULL"".
32
  - - ""**cbparams** : void*"" - -
33
  Optional parameters for the usefulness callback.
34
  May be ""NULL"" if the callback expects no parameters.
35
end note
36

    
37

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

    
66

    
67
stop
68
note
69
  - - **return** ""urt_status_t"" - -
70
  Returns ""URT_STATUS_ERROR"" if the subscriber was already associated to a topic.
71
end note
72

    
73

    
74
@enduml
75

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