urtware / doc / activitydiagrams / subscriber / srtsubscriber / urtSrtSubscriberSubscribe.svg @ 5198dfae
History | View | Annotate | Download (36.058 KB)
1 | dd31cb03 | Thomas Schöpping | <?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="1132px" preserveAspectRatio="none" style="width:2815px;height:1132px;" version="1.1" viewBox="0 0 2815 1132" width="2815px" zoomAndPan="magnify"><defs><filter height="300%" id="fkibestwwv36w" 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="1362" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="244" x="1284.5" y="47.6611">urtSrtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1409.5" y="68.6143"/><path d="M656.5,72.8594 L656.5,395.5156 L1274.5,395.5156 L1274.5,82.8594 L1264.5,72.8594 L656.5,72.8594 " fill="#FBFB77" filter="url(#fkibestwwv36w)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1264.5,72.8594 L1264.5,82.8594 L1274.5,82.8594 L1264.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="656.5" x2="853" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="857" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="857" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="939" y="89.4263">: urt_srtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1078" x2="1274.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="326" x="662.5" y="105.0591">The SRT subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="662.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="742.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="774.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="656.5" x2="899.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="903.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="903.5" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="944.5" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1031.5" x2="1274.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="662.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="662.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="742.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="774.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="656.5" x2="866.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="870.5" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="870.5" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="949.5" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1064.5" x2="1274.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="662.5" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="698.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="662.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="662.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="662.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="712.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="748.5" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="656.5" x2="829" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="833" y="255.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="97" x="833" y="255.8872">usefulnesscb</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="164" x="934" y="255.8872">: urt_srtusefulnessfunc_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1102" x2="1274.5" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="374" x="662.5" y="271.52">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="662.5" y="286.6528">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="742.5" y="286.6528">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="774.5" y="286.6528">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="656.5" x2="902" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="906" y="301.2856"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="74" x="906" y="301.2856">cbparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="984" y="301.2856">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1029" x2="1274.5" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="309" x="662.5" y="316.9185">Optional parameters for the usefulness callback.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="662.5" y="332.0513">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="712.5" y="332.0513">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="748.5" y="332.0513">if the callback expects no parameters.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="656.5" x2="1274.5" y1="340.1172" y2="340.1172"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="656.5" x2="1274.5" y1="342.1172" y2="342.1172"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="656.5" x2="894.5" y1="352.6836" y2="352.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="898.5" y="356.6841"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="898.5" y="356.6841">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="947.5" y="356.6841">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1036.5" x2="1274.5" y1="352.6836" y2="352.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="662.5" y="372.3169">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="715.5" y="372.3169">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="823.5" y="372.3169">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="662.5" y="387.4497">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="232" x="715.5" y="387.4497">URT_STATUS_SUBSCRIBE_TOPICSET</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="951.5" y="387.4497">if the subscriber is already associated to a topic.</text><ellipse cx="965.5" cy="425.5156" fill="#000000" filter="url(#fkibestwwv36w)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fkibestwwv36w)" points="908,455.5156,1023,455.5156,1035,467.5156,1023,479.5156,908,479.5156,896,467.5156,908,455.5156" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="908" y="471.3237">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="876" y="464.9214">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1035" y="464.9214">no</text><path d="M10,489.5156 L10,514.6484 A0,0 0 0 0 10,514.6484 L320,514.6484 A0,0 0 0 0 320,514.6484 L320,507.5156 L340,502.082 L320,499.5156 L320,499.5156 L310,489.5156 L10,489.5156 A0,0 0 0 0 10,489.5156 " fill="#FBFB77" filter="url(#fkibestwwv36w)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M310,489.5156 L310,499.5156 L320,499.5156 L310,489.5156 " 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="506.5825">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="232" x="69" y="506.5825">URT_STATUS_SUBSCRIBE_TOPICSET</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="301" y="506.5825">.</text><ellipse cx="351" cy="502.082" fill="#FFFFFF" filter="url(#fkibestwwv36w)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="351" cy="502.082" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#fkibestwwv36w)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="963" x="1120.5" y="489.5156"/><rect fill="#FEFECE" filter="url(#fkibestwwv36w)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1134.5" y="564.0625"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1144.5" y="585.2012">set topic</text><path d="M1237.5,560.9141 L1237.5,601.1797 A0,0 0 0 0 1237.5,601.1797 L1468.5,601.1797 A0,0 0 0 0 1468.5,601.1797 L1468.5,585.0469 L1488.5,581.0469 L1468.5,577.0469 L1468.5,570.9141 L1458.5,560.9141 L1237.5,560.9141 A0,0 0 0 0 1237.5,560.9141 " fill="#FBFB77" filter="url(#fkibestwwv36w)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1458.5,560.9141 L1458.5,570.9141 L1468.5,570.9141 L1458.5,560.9141 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="1249" cy="573.5469" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="97" x="1254.5" y="577.981">usefulnesscb</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="98" x="1355.5" y="577.981">← usefulnesscb</text><ellipse cx="1249" cy="588.6797" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="74" x="1254.5" y="593.1138">cbparams</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="1332.5" y="593.1138">← cbparams</text><rect fill="#FEFECE" filter="url(#fkibestwwv36w)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="1488.5" y="564.0625"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="1498.5" y="585.2012">initialize callback</text><path d="M1640.5,515.5156 L1640.5,646.5781 A0,0 0 0 0 1640.5,646.5781 L1918.5,646.5781 A0,0 0 0 0 1918.5,646.5781 L1918.5,585.0469 L1938.5,581.0469 L1918.5,577.0469 L1918.5,525.5156 L1908.5,515.5156 L1640.5,515.5156 A0,0 0 0 0 1640.5,515.5156 " fill="#EEEEEE" filter="url(#fkibestwwv36w)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1908.5,515.5156 L1908.5,525.5156 L1918.5,525.5156 L1908.5,515.5156 " fill="#EEEEEE" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1640.5" x2="1708.5" y1="528.082" y2="528.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="1712.5" y="532.0825">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1850.5" x2="1918.5" y1="528.082" y2="528.082"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1640.5" x2="1651" y1="543.2148" y2="543.2148"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="1655" y="547.2153">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1908" x2="1918.5" y1="543.2148" y2="543.2148"/><ellipse cx="1652" cy="558.4141" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="101" x="1657.5" y="562.8481">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="1762.5" y="562.8481">← 0</text><ellipse cx="1652" cy="573.5469" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="173" x="1657.5" y="577.981">numMessagesReceived</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="1834.5" y="577.981">← 0</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1640.5" x2="1715.5" y1="588.6133" y2="588.6133"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="1719.5" y="592.6138">urt_srtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1843.5" x2="1918.5" y1="588.6133" y2="588.6133"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1640.5" x2="1651" y1="603.7461" y2="603.7461"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="1655" y="607.7466">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1908" x2="1918.5" y1="603.7461" y2="603.7461"/><ellipse cx="1652" cy="618.9453" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="84" x="1657.5" y="623.3794">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="1745.5" y="623.3794">← 0xF..F</text><ellipse cx="1652" cy="634.0781" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="1657.5" y="638.5122">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="1749.5" y="638.5122">← 0</text><rect fill="#EEEEEE" filter="url(#fkibestwwv36w)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="1938.5" y="564.0625"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="1948.5" y="585.2012">initialize members</text><rect fill="#000000" filter="url(#fkibestwwv36w)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="963" x="1120.5" y="666.5781"/><rect fill="#FEFECE" filter="url(#fkibestwwv36w)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1562" y="692.5781"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1572" y="713.7168">lock topic</text><rect fill="#000000" filter="url(#fkibestwwv36w)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2432" x="372" y="746.5469"/><rect fill="#FFFFFF" filter="url(#fkibestwwv36w)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1170" x="384" y="819.0591"/><path d="M541,820.0591 L541,828.356 L531,838.356 L384,838.356 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="387" y="833.0542">contribute messages</text><rect fill="#000000" filter="url(#fkibestwwv36w)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1150" x="394" y="855.356"/><rect fill="#FEFECE" filter="url(#fkibestwwv36w)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="619" x="408" y="881.356"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="418" y="902.4946">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="442" y="902.4946">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="543" x="474" y="902.4946">pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#FEFECE" filter="url(#fkibestwwv36w)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="475" x="1055" y="881.356"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="1065" y="902.4946">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="1089" y="902.4946">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="399" x="1121" y="902.4946">pointer of topic's latest message to first message to contribute</text><rect fill="#000000" filter="url(#fkibestwwv36w)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1150" x="394" y="935.3247"/><polygon fill="#FEFECE" filter="url(#fkibestwwv36w)" points="899,772.5469,1039,772.5469,1051,784.5469,1039,796.5469,899,796.5469,887,784.5469,899,772.5469" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="973" y="806.7573">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="899" y="788.355">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1051" y="781.9526">no</text><polygon fill="#FEFECE" filter="url(#fkibestwwv36w)" points="969,973.3247,981,985.3247,969,997.3247,957,985.3247,969,973.3247" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fkibestwwv36w)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="664" x="1604" y="847.2075"/><rect fill="#FEFECE" filter="url(#fkibestwwv36w)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1618" y="873.2075"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1628" y="894.3462">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#fkibestwwv36w)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="297" x="1959" y="873.2075"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="277" x="1969" y="894.3462">copy timestamp from topic's latest message</text><rect fill="#000000" filter="url(#fkibestwwv36w)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="664" x="1604" y="927.1763"/><rect fill="#FEFECE" filter="url(#fkibestwwv36w)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="2278" y="873.2075"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="2288" y="894.3462">register to topic's event source</text><rect fill="#EEEEEE" filter="url(#fkibestwwv36w)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="287" x="2505" y="866.2231"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2505" x2="2532.5" y1="883.2075" y2="883.2075"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="2532.5" y="886.8618">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2764.5" x2="2792" y1="883.2075" y2="883.2075"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="2515" y="901.3306">increment counter of subscribers (@topic)</text><rect fill="#000000" filter="url(#fkibestwwv36w)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2432" x="372" y="1017.3247"/><rect fill="#FEFECE" filter="url(#fkibestwwv36w)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1554" y="1043.3247"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1564" y="1064.4634">unlock topic</text><path d="M1389,1095.7271 L1389,1120.8599 A0,0 0 0 0 1389,1120.8599 L1571,1120.8599 A0,0 0 0 0 1571,1120.8599 L1571,1113.7271 L1591,1108.2935 L1571,1105.7271 L1571,1105.7271 L1561,1095.7271 L1389,1095.7271 A0,0 0 0 0 1389,1095.7271 " fill="#FBFB77" filter="url(#fkibestwwv36w)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1561,1095.7271 L1561,1105.7271 L1571,1105.7271 L1561,1095.7271 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1395" y="1112.7939">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1448" y="1112.7939">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1552" y="1112.7939">.</text><ellipse cx="1602" cy="1108.2935" fill="#FFFFFF" filter="url(#fkibestwwv36w)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1602" cy="1108.2935" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="965.5" x2="965.5" y1="395.5156" y2="415.5156"/><polygon fill="#A80036" points="961.5,405.5156,965.5,415.5156,969.5,405.5156,965.5,409.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172" x2="1172" y1="495.5156" y2="564.0625"/><polygon fill="#A80036" points="1168,554.0625,1172,564.0625,1176,554.0625,1172,558.0625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1550.5" x2="1550.5" y1="495.5156" y2="564.0625"/><polygon fill="#A80036" points="1546.5,554.0625,1550.5,564.0625,1554.5,554.0625,1550.5,558.0625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2004" x2="2004" y1="495.5156" y2="564.0625"/><polygon fill="#A80036" points="2000,554.0625,2004,564.0625,2008,554.0625,2004,558.0625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172" x2="1172" y1="598.0313" y2="666.5781"/><polygon fill="#A80036" points="1168,656.5781,1172,666.5781,1176,656.5781,1172,660.5781" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1550.5" x2="1550.5" y1="598.0313" y2="666.5781"/><polygon fill="#A80036" points="1546.5,656.5781,1550.5,666.5781,1554.5,656.5781,1550.5,660.5781" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2004" x2="2004" y1="598.0313" y2="666.5781"/><polygon fill="#A80036" points="2000,656.5781,2004,666.5781,2008,656.5781,2004,660.5781" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="672.5781" y2="692.5781"/><polygon fill="#A80036" points="1598,682.5781,1602,692.5781,1606,682.5781,1602,686.5781" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="717.5" x2="717.5" y1="861.356" y2="881.356"/><polygon fill="#A80036" points="713.5,871.356,717.5,881.356,721.5,871.356,717.5,875.356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1292.5" x2="1292.5" y1="861.356" y2="881.356"/><polygon fill="#A80036" points="1288.5,871.356,1292.5,881.356,1296.5,871.356,1292.5,875.356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="717.5" x2="717.5" y1="915.3247" y2="935.3247"/><polygon fill="#A80036" points="713.5,925.3247,717.5,935.3247,721.5,925.3247,717.5,929.3247" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1292.5" x2="1292.5" y1="915.3247" y2="935.3247"/><polygon fill="#A80036" points="1288.5,925.3247,1292.5,935.3247,1296.5,925.3247,1292.5,929.3247" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="969" x2="969" y1="796.5469" y2="855.356"/><polygon fill="#A80036" points="965,845.356,969,855.356,973,845.356,969,849.356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1051" x2="1564" y1="784.5469" y2="784.5469"/><polygon fill="#A80036" points="1560,880.1919,1564,890.1919,1568,880.1919,1564,884.1919" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1564" x2="1564" y1="784.5469" y2="985.3247"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1564" x2="981" y1="985.3247" y2="985.3247"/><polygon fill="#A80036" points="991,981.3247,981,985.3247,991,989.3247,987,985.3247" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="969" x2="969" y1="941.3247" y2="973.3247"/><polygon fill="#A80036" points="965,963.3247,969,973.3247,973,963.3247,969,967.3247" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1774.5" x2="1774.5" y1="853.2075" y2="873.2075"/><polygon fill="#A80036" points="1770.5,863.2075,1774.5,873.2075,1778.5,863.2075,1774.5,867.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2107.5" x2="2107.5" y1="853.2075" y2="873.2075"/><polygon fill="#A80036" points="2103.5,863.2075,2107.5,873.2075,2111.5,863.2075,2107.5,867.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1774.5" x2="1774.5" y1="907.1763" y2="927.1763"/><polygon fill="#A80036" points="1770.5,917.1763,1774.5,927.1763,1778.5,917.1763,1774.5,921.1763" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2107.5" x2="2107.5" y1="907.1763" y2="927.1763"/><polygon fill="#A80036" points="2103.5,917.1763,2107.5,927.1763,2111.5,917.1763,2107.5,921.1763" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="969" x2="969" y1="752.5469" y2="772.5469"/><polygon fill="#A80036" points="965,762.5469,969,772.5469,973,762.5469,969,766.5469" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1937" x2="1937" y1="752.5469" y2="847.2075"/><polygon fill="#A80036" points="1933,837.2075,1937,847.2075,1941,837.2075,1937,841.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2386.5" x2="2386.5" y1="752.5469" y2="873.2075"/><polygon fill="#A80036" points="2382.5,863.2075,2386.5,873.2075,2390.5,863.2075,2386.5,867.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2648.5" x2="2648.5" y1="752.5469" y2="866.2231"/><polygon fill="#A80036" points="2644.5,856.2231,2648.5,866.2231,2652.5,856.2231,2648.5,860.2231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="969" x2="969" y1="997.3247" y2="1017.3247"/><polygon fill="#A80036" points="965,1007.3247,969,1017.3247,973,1007.3247,969,1011.3247" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1937" x2="1937" y1="933.1763" y2="1017.3247"/><polygon fill="#A80036" points="1933,1007.3247,1937,1017.3247,1941,1007.3247,1937,1011.3247" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2386.5" x2="2386.5" y1="907.1763" y2="1017.3247"/><polygon fill="#A80036" points="2382.5,1007.3247,2386.5,1017.3247,2390.5,1007.3247,2386.5,1011.3247" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2648.5" x2="2648.5" y1="914.1606" y2="1017.3247"/><polygon fill="#A80036" points="2644.5,1007.3247,2648.5,1017.3247,2652.5,1007.3247,2648.5,1011.3247" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="726.5469" y2="746.5469"/><polygon fill="#A80036" points="1598,736.5469,1602,746.5469,1606,736.5469,1602,740.5469" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="1023.3247" y2="1043.3247"/><polygon fill="#A80036" points="1598,1033.3247,1602,1043.3247,1606,1033.3247,1602,1037.3247" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="1077.2935" y2="1097.2935"/><polygon fill="#A80036" points="1598,1087.2935,1602,1097.2935,1606,1087.2935,1602,1091.2935" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="896" x2="351" y1="467.5156" y2="467.5156"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="351" x2="351" y1="467.5156" y2="491.082"/><polygon fill="#A80036" points="347,481.082,351,491.082,355,481.082,351,485.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1035" x2="1602" y1="467.5156" y2="467.5156"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="467.5156" y2="489.5156"/><polygon fill="#A80036" points="1598,479.5156,1602,489.5156,1606,479.5156,1602,483.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="965.5" x2="965.5" y1="435.5156" y2="455.5156"/><polygon fill="#A80036" points="961.5,445.5156,965.5,455.5156,969.5,445.5156,965.5,449.5156" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[c39807611be4eb765bb63c941e7d4be7] |
---|---|---|---|
2 | @startuml |
||
3 | |||
4 | title **µRtWare**\nurtSrtSubscriberSubscribe()\n |
||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | note |
||
11 | - - **subscriber** : urt_srtsubscriber_t* - - |
||
12 | The SRT subscriber which shall subscribe to a topic. |
||
13 | Must not be ""NULL"". |
||
14 | - - **topic** : urt_topic_t* - - |
||
15 | The topic to subscribe to. |
||
16 | Must not be ""NULL"". |
||
17 | - - **messages** : urt_message_t* - - |
||
18 | ""NULL"" terminated list of messages to contribute to the topic. |
||
19 | Messages must not be associated to another topic. |
||
20 | Once a message has been contributed, it cannot be removed later. |
||
21 | May be ""NULL"" (no messages to contribute). |
||
22 | - - **usefulnesscb** : urt_srtusefulnessfunc_t* - - |
||
23 | Pointer to a function to calculate usefulness of a message. |
||
24 | Must not be ""NULL"". |
||
25 | - - **cbparams** : void* - - |
||
26 | Optional parameters for the usefulness callback. |
||
27 | May be ""NULL"" if the callback expects no parameters. |
||
28 | ==== |
||
29 | - - **return** : urt_status_t - - |
||
30 | Returns ""URT_STATUS_OK"" on success. |
||
31 | Returns ""URT_STATUS_SUBSCRIBE_TOPICSET"" 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_SUBSCRIBE_TOPICSET"". |
||
40 | endnote |
||
41 | else (no) |
||
42 | fork |
||
43 | :set topic; |
||
44 | fork again |
||
45 | :initialize callback; |
||
46 | note |
||
47 | * **usefulnesscb** ← usefulnesscb |
||
48 | * **cbparams** ← cbparams |
||
49 | endnote |
||
50 | fork again |
||
51 | #EEEEEE:initialize members; |
||
52 | note #EEEEEE |
||
53 | - - urt_basesubscriber_t - - |
||
54 | .. URT_CFG_PUBSUB_PROFILING == true .. |
||
55 | * **sumLatencies** ← 0 |
||
56 | * **numMessagesReceived** ← 0 |
||
57 | - - urt_srtsubscriber_t - - |
||
58 | .. URT_CFG_PUBSUB_PROFILING == true .. |
||
59 | * **minLatency** ← 0xF..F |
||
60 | * **maxLatency** ← 0 |
||
61 | endnote |
||
62 | endfork |
||
63 | :lock topic; |
||
64 | fork |
||
65 | if (Messages to contribute?) then (yes) |
||
66 | partition "contribute messages" { |
||
67 | fork |
||
68 | :set ""next"" pointer of last message to contribute to the message after the topic's latest message; |
||
69 | fork again |
||
70 | :set ""next"" pointer of topic's latest message to first message to contribute; |
||
71 | endfork |
||
72 | } |
||
73 | else (no) |
||
74 | endif |
||
75 | fork again |
||
76 | fork |
||
77 | :set message pointer to topic's latest message; |
||
78 | fork again |
||
79 | :copy timestamp from topic's latest message; |
||
80 | endfork |
||
81 | fork again |
||
82 | :register to topic's event source; |
||
83 | fork again |
||
84 | #EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of subscribers (@topic); |
||
85 | endfork |
||
86 | :unlock topic; |
||
87 | stop |
||
88 | note |
||
89 | Returns ""URT_STATUS_OK"". |
||
90 | endnote |
||
91 | endif |
||
92 | |||
93 | |||
94 | @enduml |
||
95 | |||
96 | PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020) |
||
97 | (GPL source distribution) |
||
98 | Java Runtime: OpenJDK Runtime Environment |
||
99 | JVM: OpenJDK 64-Bit Server VM |
||
100 | Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1 |
||
101 | Operating System: Linux |
||
102 | Default Encoding: UTF-8 |
||
103 | Language: en |
||
104 | Country: US |
||
105 | --></g></svg> |