urtware / doc / activitydiagrams / subscriber / nrtsubscriber / urtNrtSubscriberSubscribe.svg @ f86427e8
History | View | Annotate | Download (31.291 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="1042px" preserveAspectRatio="none" style="width:2807px;height:1042px;" version="1.1" viewBox="0 0 2807 1042" width="2807px" zoomAndPan="magnify"><defs><filter height="300%" id="ftpgamlj05dqf" 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="1358" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="247" x="1279" y="47.6611">urtNrtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1405.5" y="68.6143"/><path d="M656.5,72.8594 L656.5,304.7188 L1274.5,304.7188 L1274.5,82.8594 L1264.5,72.8594 L656.5,72.8594 " fill="#FBFB77" filter="url(#ftpgamlj05dqf)" 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="852.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="856.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="856.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="938.5" y="89.4263">: urt_nrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1078.5" x2="1274.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="327" x="662.5" y="105.0591">The NRT 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="1274.5" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="656.5" x2="1274.5" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="656.5" x2="894.5" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="898.5" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="898.5" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="947.5" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1036.5" x2="1274.5" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="662.5" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="715.5" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="823.5" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="662.5" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="232" x="715.5" y="296.6528">URT_STATUS_SUBSCRIBE_TOPICSET</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="951.5" y="296.6528">if the subscriber is already associated to a topic.</text><ellipse cx="965.5" cy="334.7188" fill="#000000" filter="url(#ftpgamlj05dqf)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#ftpgamlj05dqf)" points="908,364.7188,1023,364.7188,1035,376.7188,1023,388.7188,908,388.7188,896,376.7188,908,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="908" y="380.5269">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="876" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1035" y="374.1245">no</text><path d="M10,398.7188 L10,423.8516 A0,0 0 0 0 10,423.8516 L320,423.8516 A0,0 0 0 0 320,423.8516 L320,416.7188 L340,411.2852 L320,408.7188 L320,408.7188 L310,398.7188 L10,398.7188 A0,0 0 0 0 10,398.7188 " fill="#FBFB77" filter="url(#ftpgamlj05dqf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M310,398.7188 L310,408.7188 L320,408.7188 L310,398.7188 " 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="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="232" x="69" y="415.7856">URT_STATUS_SUBSCRIBE_TOPICSET</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="301" y="415.7856">.</text><ellipse cx="351" cy="411.2852" fill="#FFFFFF" filter="url(#ftpgamlj05dqf)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="351" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#ftpgamlj05dqf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="573" x="1315.5" y="398.7188"/><rect fill="#FEFECE" filter="url(#ftpgamlj05dqf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1329.5" y="473.2656"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1339.5" y="494.4043">set topic</text><path d="M1432.5,424.7188 L1432.5,555.7813 A0,0 0 0 0 1432.5,555.7813 L1723.5,555.7813 A0,0 0 0 0 1723.5,555.7813 L1723.5,494.25 L1743.5,490.25 L1723.5,486.25 L1723.5,434.7188 L1713.5,424.7188 L1432.5,424.7188 A0,0 0 0 0 1432.5,424.7188 " fill="#EEEEEE" filter="url(#ftpgamlj05dqf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1713.5,424.7188 L1713.5,434.7188 L1723.5,434.7188 L1713.5,424.7188 " fill="#EEEEEE" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1432.5" x2="1507" y1="437.2852" y2="437.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="1511" y="441.2856">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1649" x2="1723.5" y1="437.2852" y2="437.2852"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1432.5" x2="1449.5" y1="452.418" y2="452.418"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="1453.5" y="456.4185">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1706.5" x2="1723.5" y1="452.418" y2="452.418"/><ellipse cx="1444" cy="467.6172" 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="1449.5" y="472.0513">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="1554.5" y="472.0513">← 0</text><ellipse cx="1444" cy="482.75" 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="1449.5" y="487.1841">numMessagesReceived</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="1626.5" y="487.1841">← 0</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1432.5" x2="1513.5" y1="497.8164" y2="497.8164"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="1517.5" y="501.8169">urt_nrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1642.5" x2="1723.5" y1="497.8164" y2="497.8164"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1432.5" x2="1449.5" y1="512.9492" y2="512.9492"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="1453.5" y="516.9497">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1706.5" x2="1723.5" y1="512.9492" y2="512.9492"/><ellipse cx="1444" cy="528.1484" 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="1449.5" y="532.5825">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="1537.5" y="532.5825">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="144" x="1552.5" y="532.5825">URT_DELAY_INFINITE</text><ellipse cx="1444" cy="543.2813" 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="1449.5" y="547.7153">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="1541.5" y="547.7153">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="1556.5" y="547.7153">URT_DELAY_IMMEDIATE</text><rect fill="#EEEEEE" filter="url(#ftpgamlj05dqf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="1743.5" y="473.2656"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="1753.5" y="494.4043">initialize members</text><rect fill="#000000" filter="url(#ftpgamlj05dqf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="573" x="1315.5" y="575.7813"/><rect fill="#FEFECE" filter="url(#ftpgamlj05dqf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1562" y="601.7813"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1572" y="622.9199">lock topic</text><rect fill="#000000" filter="url(#ftpgamlj05dqf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2424" x="372" y="655.75"/><rect fill="#FFFFFF" filter="url(#ftpgamlj05dqf)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1170" x="384" y="728.2622"/><path d="M541,729.2622 L541,737.5591 L531,747.5591 L384,747.5591 " 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="742.2573">contribute messages</text><rect fill="#000000" filter="url(#ftpgamlj05dqf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1150" x="394" y="764.5591"/><rect fill="#FEFECE" filter="url(#ftpgamlj05dqf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="619" x="408" y="790.5591"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="418" y="811.6978">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="442" y="811.6978">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="543" x="474" y="811.6978">pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#FEFECE" filter="url(#ftpgamlj05dqf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="475" x="1055" y="790.5591"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="1065" y="811.6978">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="1089" y="811.6978">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="399" x="1121" y="811.6978">pointer of topic's latest message to first message to contribute</text><rect fill="#000000" filter="url(#ftpgamlj05dqf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1150" x="394" y="844.5278"/><polygon fill="#FEFECE" filter="url(#ftpgamlj05dqf)" points="899,681.75,1039,681.75,1051,693.75,1039,705.75,899,705.75,887,693.75,899,681.75" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="973" y="715.9604">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="899" y="697.5581">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1051" y="691.1558">no</text><polygon fill="#FEFECE" filter="url(#ftpgamlj05dqf)" points="969,882.5278,981,894.5278,969,906.5278,957,894.5278,969,882.5278" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#ftpgamlj05dqf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="656" x="1604" y="756.4106"/><rect fill="#FEFECE" filter="url(#ftpgamlj05dqf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1618" y="782.4106"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1628" y="803.5493">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#ftpgamlj05dqf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="297" x="1951" y="782.4106"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="277" x="1961" y="803.5493">copy timestamp from topic's latest message</text><rect fill="#000000" filter="url(#ftpgamlj05dqf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="656" x="1604" y="836.3794"/><rect fill="#FEFECE" filter="url(#ftpgamlj05dqf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="2270" y="782.4106"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="2280" y="803.5493">register to topic's event source</text><rect fill="#EEEEEE" filter="url(#ftpgamlj05dqf)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="287" x="2497" y="775.4263"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2497" x2="2524.5" y1="792.4106" y2="792.4106"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="2524.5" y="796.0649">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2756.5" x2="2784" y1="792.4106" y2="792.4106"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="2507" y="810.5337">increment counter of subscribers (@topic)</text><rect fill="#000000" filter="url(#ftpgamlj05dqf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2424" x="372" y="926.5278"/><rect fill="#FEFECE" filter="url(#ftpgamlj05dqf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1554" y="952.5278"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1564" y="973.6665">unlock topic</text><path d="M1389,1004.9302 L1389,1030.063 A0,0 0 0 0 1389,1030.063 L1571,1030.063 A0,0 0 0 0 1571,1030.063 L1571,1022.9302 L1591,1017.4966 L1571,1014.9302 L1571,1014.9302 L1561,1004.9302 L1389,1004.9302 A0,0 0 0 0 1389,1004.9302 " fill="#FBFB77" filter="url(#ftpgamlj05dqf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1561,1004.9302 L1561,1014.9302 L1571,1014.9302 L1561,1004.9302 " 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="1021.9971">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1448" y="1021.9971">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1552" y="1021.9971">.</text><ellipse cx="1602" cy="1017.4966" fill="#FFFFFF" filter="url(#ftpgamlj05dqf)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1602" cy="1017.4966" 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="304.7188" y2="324.7188"/><polygon fill="#A80036" points="961.5,314.7188,965.5,324.7188,969.5,314.7188,965.5,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1367" x2="1367" y1="404.7188" y2="473.2656"/><polygon fill="#A80036" points="1363,463.2656,1367,473.2656,1371,463.2656,1367,467.2656" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1809" x2="1809" y1="404.7188" y2="473.2656"/><polygon fill="#A80036" points="1805,463.2656,1809,473.2656,1813,463.2656,1809,467.2656" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1367" x2="1367" y1="507.2344" y2="575.7813"/><polygon fill="#A80036" points="1363,565.7813,1367,575.7813,1371,565.7813,1367,569.7813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1809" x2="1809" y1="507.2344" y2="575.7813"/><polygon fill="#A80036" points="1805,565.7813,1809,575.7813,1813,565.7813,1809,569.7813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="581.7813" y2="601.7813"/><polygon fill="#A80036" points="1598,591.7813,1602,601.7813,1606,591.7813,1602,595.7813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="717.5" x2="717.5" y1="770.5591" y2="790.5591"/><polygon fill="#A80036" points="713.5,780.5591,717.5,790.5591,721.5,780.5591,717.5,784.5591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1292.5" x2="1292.5" y1="770.5591" y2="790.5591"/><polygon fill="#A80036" points="1288.5,780.5591,1292.5,790.5591,1296.5,780.5591,1292.5,784.5591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="717.5" x2="717.5" y1="824.5278" y2="844.5278"/><polygon fill="#A80036" points="713.5,834.5278,717.5,844.5278,721.5,834.5278,717.5,838.5278" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1292.5" x2="1292.5" y1="824.5278" y2="844.5278"/><polygon fill="#A80036" points="1288.5,834.5278,1292.5,844.5278,1296.5,834.5278,1292.5,838.5278" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="969" x2="969" y1="705.75" y2="764.5591"/><polygon fill="#A80036" points="965,754.5591,969,764.5591,973,754.5591,969,758.5591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1051" x2="1564" y1="693.75" y2="693.75"/><polygon fill="#A80036" points="1560,789.395,1564,799.395,1568,789.395,1564,793.395" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1564" x2="1564" y1="693.75" y2="894.5278"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1564" x2="981" y1="894.5278" y2="894.5278"/><polygon fill="#A80036" points="991,890.5278,981,894.5278,991,898.5278,987,894.5278" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="969" x2="969" y1="850.5278" y2="882.5278"/><polygon fill="#A80036" points="965,872.5278,969,882.5278,973,872.5278,969,876.5278" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1774.5" x2="1774.5" y1="762.4106" y2="782.4106"/><polygon fill="#A80036" points="1770.5,772.4106,1774.5,782.4106,1778.5,772.4106,1774.5,776.4106" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2099.5" x2="2099.5" y1="762.4106" y2="782.4106"/><polygon fill="#A80036" points="2095.5,772.4106,2099.5,782.4106,2103.5,772.4106,2099.5,776.4106" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1774.5" x2="1774.5" y1="816.3794" y2="836.3794"/><polygon fill="#A80036" points="1770.5,826.3794,1774.5,836.3794,1778.5,826.3794,1774.5,830.3794" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2099.5" x2="2099.5" y1="816.3794" y2="836.3794"/><polygon fill="#A80036" points="2095.5,826.3794,2099.5,836.3794,2103.5,826.3794,2099.5,830.3794" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="969" x2="969" y1="661.75" y2="681.75"/><polygon fill="#A80036" points="965,671.75,969,681.75,973,671.75,969,675.75" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1937" x2="1937" y1="661.75" y2="756.4106"/><polygon fill="#A80036" points="1933,746.4106,1937,756.4106,1941,746.4106,1937,750.4106" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2378.5" x2="2378.5" y1="661.75" y2="782.4106"/><polygon fill="#A80036" points="2374.5,772.4106,2378.5,782.4106,2382.5,772.4106,2378.5,776.4106" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2640.5" x2="2640.5" y1="661.75" y2="775.4263"/><polygon fill="#A80036" points="2636.5,765.4263,2640.5,775.4263,2644.5,765.4263,2640.5,769.4263" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="969" x2="969" y1="906.5278" y2="926.5278"/><polygon fill="#A80036" points="965,916.5278,969,926.5278,973,916.5278,969,920.5278" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1937" x2="1937" y1="842.3794" y2="926.5278"/><polygon fill="#A80036" points="1933,916.5278,1937,926.5278,1941,916.5278,1937,920.5278" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2378.5" x2="2378.5" y1="816.3794" y2="926.5278"/><polygon fill="#A80036" points="2374.5,916.5278,2378.5,926.5278,2382.5,916.5278,2378.5,920.5278" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2640.5" x2="2640.5" y1="823.3638" y2="926.5278"/><polygon fill="#A80036" points="2636.5,916.5278,2640.5,926.5278,2644.5,916.5278,2640.5,920.5278" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="635.75" y2="655.75"/><polygon fill="#A80036" points="1598,645.75,1602,655.75,1606,645.75,1602,649.75" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="932.5278" y2="952.5278"/><polygon fill="#A80036" points="1598,942.5278,1602,952.5278,1606,942.5278,1602,946.5278" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="986.4966" y2="1006.4966"/><polygon fill="#A80036" points="1598,996.4966,1602,1006.4966,1606,996.4966,1602,1000.4966" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="896" x2="351" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="351" x2="351" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="347,390.2852,351,400.2852,355,390.2852,351,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1035" x2="1602" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="1598,388.7188,1602,398.7188,1606,388.7188,1602,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="965.5" x2="965.5" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="961.5,354.7188,965.5,364.7188,969.5,354.7188,965.5,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[1991c09f3f21645cd405dda8a6265467] |
---|---|
2 |
@startuml |
3 |
|
4 |
title **µRtWare**\nurtNrtSubscriberSubscribe()\n |
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
note |
11 |
- - **subscriber** : urt_nrtsubscriber_t* - - |
12 |
The NRT 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 |
==== |
23 |
- - **return** : urt_status_t - - |
24 |
Returns ""URT_STATUS_OK"" on success. |
25 |
Returns ""URT_STATUS_SUBSCRIBE_TOPICSET"" if the subscriber is already associated to a topic. |
26 |
endnote |
27 |
|
28 |
|
29 |
start |
30 |
if (Is topic already set?) then (yes) |
31 |
stop |
32 |
note |
33 |
Returns ""URT_STATUS_SUBSCRIBE_TOPICSET"". |
34 |
endnote |
35 |
else (no) |
36 |
fork |
37 |
:set topic; |
38 |
fork again |
39 |
#EEEEEE:initialize members; |
40 |
note #EEEEEE |
41 |
- - urt_basesubscriber_t - - |
42 |
.. URT_CFG_PUBSUB_PROFILING == true .. |
43 |
* **sumLatencies** ← 0 |
44 |
* **numMessagesReceived** ← 0 |
45 |
- - urt_nrtsubscriber_t - - |
46 |
.. URT_CFG_PUBSUB_PROFILING == true .. |
47 |
* **minLatency** ← ""URT_DELAY_INFINITE"" |
48 |
* **maxLatency** ← ""URT_DELAY_IMMEDIATE"" |
49 |
endnote |
50 |
endfork |
51 |
:lock topic; |
52 |
fork |
53 |
if (Messages to contribute?) then (yes) |
54 |
partition "contribute messages" { |
55 |
fork |
56 |
:set ""next"" pointer of last message to contribute to the message after the topic's latest message; |
57 |
fork again |
58 |
:set ""next"" pointer of topic's latest message to first message to contribute; |
59 |
endfork |
60 |
} |
61 |
else (no) |
62 |
endif |
63 |
fork again |
64 |
fork |
65 |
:set message pointer to topic's latest message; |
66 |
fork again |
67 |
:copy timestamp from topic's latest message; |
68 |
endfork |
69 |
fork again |
70 |
:register to topic's event source; |
71 |
fork again |
72 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of subscribers (@topic); |
73 |
endfork |
74 |
:unlock topic; |
75 |
stop |
76 |
note |
77 |
Returns ""URT_STATUS_OK"". |
78 |
endnote |
79 |
endif |
80 |
|
81 |
|
82 |
@enduml |
83 |
|
84 |
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020) |
85 |
(GPL source distribution) |
86 |
Java Runtime: OpenJDK Runtime Environment |
87 |
JVM: OpenJDK 64-Bit Server VM |
88 |
Java Version: 11.0.7+10-post-Ubuntu-2ubuntu218.04 |
89 |
Operating System: Linux |
90 |
Default Encoding: UTF-8 |
91 |
Language: en |
92 |
Country: US |
93 |
--></g></svg> |