urtware / doc / activitydiagrams / subscriber / frtsubscriber / urtFrtSubscriberSubscribe.svg @ 792f6c74
History | View | Annotate | Download (35.634 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="1193px" preserveAspectRatio="none" style="width:2815px;height:1193px;" version="1.1" viewBox="0 0 2815 1193" width="2815px" zoomAndPan="magnify"><defs><filter height="300%" id="f6hvlvs269tij" 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="243" x="1285" y="47.6611">urtFrtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1409.5" y="68.6143"/><path d="M615.5,72.8594 L615.5,395.5156 L1315.5,395.5156 L1315.5,82.8594 L1305.5,72.8594 L615.5,72.8594 " fill="#FBFB77" filter="url(#f6hvlvs269tij)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1305.5,72.8594 L1305.5,82.8594 L1315.5,82.8594 L1305.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="615.5" x2="854.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="858.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="858.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="940.5" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1076.5" x2="1315.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="324" x="621.5" y="105.0591">The FRT subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="621.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="701.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="733.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="615.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="1315.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="621.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="621.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="701.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="733.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="615.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="1315.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="621.5" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="657.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="621.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="621.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="621.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="671.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="707.5" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="615.5" x2="888" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="892" y="255.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="892" y="255.8872">deadline</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="960" y="255.8872">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1043" x2="1315.5" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="621.5" y="271.52">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="325" x="621.5" y="286.6528">A value of 0 indicates that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="615.5" x2="902.5" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="906.5" y="301.2856"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="35" x="906.5" y="301.2856">jitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="945.5" y="301.2856">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1028.5" x2="1315.5" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="621.5" y="316.9185">Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="621.5" y="332.0513">A value of 0 indicates that jitter is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="615.5" x2="1315.5" y1="340.1172" y2="340.1172"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="615.5" x2="1315.5" y1="342.1172" y2="342.1172"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="615.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="1315.5" y1="352.6836" y2="352.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="621.5" y="372.3169">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="674.5" y="372.3169">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="782.5" y="372.3169">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="621.5" y="387.4497">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="232" x="674.5" y="387.4497">URT_STATUS_SUBSCRIBE_TOPICSET</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="910.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(#f6hvlvs269tij)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f6hvlvs269tij)" 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(#f6hvlvs269tij)" 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(#f6hvlvs269tij)" 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(#f6hvlvs269tij)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="884" x="1160" y="489.5156"/><rect fill="#FEFECE" filter="url(#f6hvlvs269tij)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1174" y="594.3281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1184" y="615.4668">set topic</text><path d="M1277,515.5156 L1277,707.1094 A0,0 0 0 0 1277,707.1094 L1879,707.1094 A0,0 0 0 0 1879,707.1094 L1879,615.3125 L1899,611.3125 L1879,607.3125 L1879,525.5156 L1869,515.5156 L1277,515.5156 A0,0 0 0 0 1277,515.5156 " fill="#EEEEEE" filter="url(#f6hvlvs269tij)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1869,515.5156 L1869,525.5156 L1879,525.5156 L1869,515.5156 " fill="#EEEEEE" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1277" x2="1507" y1="528.082" y2="528.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="1511" y="532.0825">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1649" x2="1879" y1="528.082" y2="528.082"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1277" x2="1449.5" y1="543.2148" y2="543.2148"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="1453.5" y="547.2153">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1706.5" x2="1879" y1="543.2148" y2="543.2148"/><ellipse cx="1288.5" 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="1294" y="562.8481">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="1399" y="562.8481">← 0</text><ellipse cx="1288.5" 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="1294" y="577.981">numMessagesReceived</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="1471" y="577.981">← 0</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1277" x2="1515.5" y1="588.6133" y2="588.6133"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="117" x="1519.5" y="592.6138">urt_frtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1640.5" x2="1879" y1="588.6133" y2="588.6133"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1277" x2="1405.5" y1="603.7461" y2="603.7461"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="337" x="1409.5" y="607.7466">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1750.5" x2="1879" y1="603.7461" y2="603.7461"/><ellipse cx="1288.5" 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="110" x="1294" y="623.3794">deadlineOffset</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="1408" y="623.3794">← deadline</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1277" x2="1420" y1="634.0117" y2="634.0117"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="1424" y="638.0122">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1736" x2="1879" y1="634.0117" y2="634.0117"/><ellipse cx="1288.5" cy="649.2109" 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="66" x="1294" y="653.645">maxJitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="44" x="1364" y="653.645">← jitter</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1277" x2="1287.5" y1="664.2773" y2="664.2773"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="573" x="1291.5" y="668.2778">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1868.5" x2="1879" y1="664.2773" y2="664.2773"/><ellipse cx="1288.5" cy="679.4766" 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="1294" y="683.9106">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="1382" y="683.9106">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="144" x="1397" y="683.9106">URT_DELAY_INFINITE</text><ellipse cx="1288.5" cy="694.6094" 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="1294" y="699.0435">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="1386" y="699.0435">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="1401" y="699.0435">URT_DELAY_IMMEDIATE</text><rect fill="#EEEEEE" filter="url(#f6hvlvs269tij)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="1899" y="594.3281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="1909" y="615.4668">initialize members</text><rect fill="#000000" filter="url(#f6hvlvs269tij)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="884" x="1160" y="727.1094"/><rect fill="#FEFECE" filter="url(#f6hvlvs269tij)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1562" y="753.1094"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1572" y="774.248">lock topic</text><rect fill="#000000" filter="url(#f6hvlvs269tij)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2432" x="372" y="807.0781"/><rect fill="#FFFFFF" filter="url(#f6hvlvs269tij)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1170" x="384" y="879.5903"/><path d="M541,880.5903 L541,888.8872 L531,898.8872 L384,898.8872 " 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="893.5854">contribute messages</text><rect fill="#000000" filter="url(#f6hvlvs269tij)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1150" x="394" y="915.8872"/><rect fill="#FEFECE" filter="url(#f6hvlvs269tij)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="619" x="408" y="941.8872"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="418" y="963.0259">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="442" y="963.0259">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="543" x="474" y="963.0259">pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#FEFECE" filter="url(#f6hvlvs269tij)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="475" x="1055" y="941.8872"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="1065" y="963.0259">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="1089" y="963.0259">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="399" x="1121" y="963.0259">pointer of topic's latest message to first message to contribute</text><rect fill="#000000" filter="url(#f6hvlvs269tij)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1150" x="394" y="995.856"/><polygon fill="#FEFECE" filter="url(#f6hvlvs269tij)" points="899,833.0781,1039,833.0781,1051,845.0781,1039,857.0781,899,857.0781,887,845.0781,899,833.0781" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="973" y="867.2886">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="899" y="848.8862">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1051" y="842.4839">no</text><polygon fill="#FEFECE" filter="url(#f6hvlvs269tij)" points="969,1033.856,981,1045.856,969,1057.856,957,1045.856,969,1033.856" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f6hvlvs269tij)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="664" x="1604" y="907.7388"/><rect fill="#FEFECE" filter="url(#f6hvlvs269tij)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1618" y="933.7388"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1628" y="954.8774">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#f6hvlvs269tij)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="297" x="1959" y="933.7388"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="277" x="1969" y="954.8774">copy timestamp from topic's latest message</text><rect fill="#000000" filter="url(#f6hvlvs269tij)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="664" x="1604" y="987.7075"/><rect fill="#FEFECE" filter="url(#f6hvlvs269tij)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="2278" y="933.7388"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="2288" y="954.8774">register to topic's event source</text><rect fill="#EEEEEE" filter="url(#f6hvlvs269tij)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="287" x="2505" y="926.7544"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2505" x2="2532.5" y1="943.7388" y2="943.7388"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="2532.5" y="947.3931">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="943.7388" y2="943.7388"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="2515" y="961.8618">increment counter of subscribers (@topic)</text><rect fill="#000000" filter="url(#f6hvlvs269tij)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2432" x="372" y="1077.856"/><rect fill="#FEFECE" filter="url(#f6hvlvs269tij)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1554" y="1103.856"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1564" y="1124.9946">unlock topic</text><path d="M1389,1156.2583 L1389,1181.3911 A0,0 0 0 0 1389,1181.3911 L1571,1181.3911 A0,0 0 0 0 1571,1181.3911 L1571,1174.2583 L1591,1168.8247 L1571,1166.2583 L1571,1166.2583 L1561,1156.2583 L1389,1156.2583 A0,0 0 0 0 1389,1156.2583 " fill="#FBFB77" filter="url(#f6hvlvs269tij)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1561,1156.2583 L1561,1166.2583 L1571,1166.2583 L1561,1156.2583 " 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="1173.3252">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1448" y="1173.3252">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1552" y="1173.3252">.</text><ellipse cx="1602" cy="1168.8247" fill="#FFFFFF" filter="url(#f6hvlvs269tij)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1602" cy="1168.8247" 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="1211.5" x2="1211.5" y1="495.5156" y2="594.3281"/><polygon fill="#A80036" points="1207.5,584.3281,1211.5,594.3281,1215.5,584.3281,1211.5,588.3281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1964.5" x2="1964.5" y1="495.5156" y2="594.3281"/><polygon fill="#A80036" points="1960.5,584.3281,1964.5,594.3281,1968.5,584.3281,1964.5,588.3281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.5" x2="1211.5" y1="628.2969" y2="727.1094"/><polygon fill="#A80036" points="1207.5,717.1094,1211.5,727.1094,1215.5,717.1094,1211.5,721.1094" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1964.5" x2="1964.5" y1="628.2969" y2="727.1094"/><polygon fill="#A80036" points="1960.5,717.1094,1964.5,727.1094,1968.5,717.1094,1964.5,721.1094" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="733.1094" y2="753.1094"/><polygon fill="#A80036" points="1598,743.1094,1602,753.1094,1606,743.1094,1602,747.1094" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="717.5" x2="717.5" y1="921.8872" y2="941.8872"/><polygon fill="#A80036" points="713.5,931.8872,717.5,941.8872,721.5,931.8872,717.5,935.8872" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1292.5" x2="1292.5" y1="921.8872" y2="941.8872"/><polygon fill="#A80036" points="1288.5,931.8872,1292.5,941.8872,1296.5,931.8872,1292.5,935.8872" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="717.5" x2="717.5" y1="975.856" y2="995.856"/><polygon fill="#A80036" points="713.5,985.856,717.5,995.856,721.5,985.856,717.5,989.856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1292.5" x2="1292.5" y1="975.856" y2="995.856"/><polygon fill="#A80036" points="1288.5,985.856,1292.5,995.856,1296.5,985.856,1292.5,989.856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="969" x2="969" y1="857.0781" y2="915.8872"/><polygon fill="#A80036" points="965,905.8872,969,915.8872,973,905.8872,969,909.8872" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1051" x2="1564" y1="845.0781" y2="845.0781"/><polygon fill="#A80036" points="1560,940.7231,1564,950.7231,1568,940.7231,1564,944.7231" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1564" x2="1564" y1="845.0781" y2="1045.856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1564" x2="981" y1="1045.856" y2="1045.856"/><polygon fill="#A80036" points="991,1041.856,981,1045.856,991,1049.856,987,1045.856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="969" x2="969" y1="1001.856" y2="1033.856"/><polygon fill="#A80036" points="965,1023.856,969,1033.856,973,1023.856,969,1027.856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1774.5" x2="1774.5" y1="913.7388" y2="933.7388"/><polygon fill="#A80036" points="1770.5,923.7388,1774.5,933.7388,1778.5,923.7388,1774.5,927.7388" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2107.5" x2="2107.5" y1="913.7388" y2="933.7388"/><polygon fill="#A80036" points="2103.5,923.7388,2107.5,933.7388,2111.5,923.7388,2107.5,927.7388" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1774.5" x2="1774.5" y1="967.7075" y2="987.7075"/><polygon fill="#A80036" points="1770.5,977.7075,1774.5,987.7075,1778.5,977.7075,1774.5,981.7075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2107.5" x2="2107.5" y1="967.7075" y2="987.7075"/><polygon fill="#A80036" points="2103.5,977.7075,2107.5,987.7075,2111.5,977.7075,2107.5,981.7075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="969" x2="969" y1="813.0781" y2="833.0781"/><polygon fill="#A80036" points="965,823.0781,969,833.0781,973,823.0781,969,827.0781" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1937" x2="1937" y1="813.0781" y2="907.7388"/><polygon fill="#A80036" points="1933,897.7388,1937,907.7388,1941,897.7388,1937,901.7388" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2386.5" x2="2386.5" y1="813.0781" y2="933.7388"/><polygon fill="#A80036" points="2382.5,923.7388,2386.5,933.7388,2390.5,923.7388,2386.5,927.7388" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2648.5" x2="2648.5" y1="813.0781" y2="926.7544"/><polygon fill="#A80036" points="2644.5,916.7544,2648.5,926.7544,2652.5,916.7544,2648.5,920.7544" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="969" x2="969" y1="1057.856" y2="1077.856"/><polygon fill="#A80036" points="965,1067.856,969,1077.856,973,1067.856,969,1071.856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1937" x2="1937" y1="993.7075" y2="1077.856"/><polygon fill="#A80036" points="1933,1067.856,1937,1077.856,1941,1067.856,1937,1071.856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2386.5" x2="2386.5" y1="967.7075" y2="1077.856"/><polygon fill="#A80036" points="2382.5,1067.856,2386.5,1077.856,2390.5,1067.856,2386.5,1071.856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2648.5" x2="2648.5" y1="974.6919" y2="1077.856"/><polygon fill="#A80036" points="2644.5,1067.856,2648.5,1077.856,2652.5,1067.856,2648.5,1071.856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="787.0781" y2="807.0781"/><polygon fill="#A80036" points="1598,797.0781,1602,807.0781,1606,797.0781,1602,801.0781" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="1083.856" y2="1103.856"/><polygon fill="#A80036" points="1598,1093.856,1602,1103.856,1606,1093.856,1602,1097.856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1602" y1="1137.8247" y2="1157.8247"/><polygon fill="#A80036" points="1598,1147.8247,1602,1157.8247,1606,1147.8247,1602,1151.8247" 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=[36bf4e6f8972114902df9b45592c5719] |
---|---|
2 |
@startuml |
3 |
|
4 |
title **µRtWare**\nurtFrtSubscriberSubscribe()\n |
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
note |
11 |
- - **subscriber** : urt_frtsubscriber_t* - - |
12 |
The FRT 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 |
- - **deadline** : urt_delay_t - - |
23 |
Maximum latency to consume messages. |
24 |
A value of 0 indicates that latency is of no concern. |
25 |
- - **jitter** : urt_delay_t - - |
26 |
Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages. |
27 |
A value of 0 indicates that jitter is of no concern. |
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 |
#EEEEEE:initialize members; |
46 |
note #EEEEEE |
47 |
- - urt_basesubscriber_t - - |
48 |
.. URT_CFG_PUBSUB_PROFILING == true .. |
49 |
* **sumLatencies** ← 0 |
50 |
* **numMessagesReceived** ← 0 |
51 |
- - urt_frtsubscriber_t - - |
52 |
.. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true .. |
53 |
* **deadlineOffset** ← deadline |
54 |
.. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true .. |
55 |
* **maxJitter** ← jitter |
56 |
.. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true .. |
57 |
* **minLatency** ← ""URT_DELAY_INFINITE"" |
58 |
* **maxLatency** ← ""URT_DELAY_IMMEDIATE"" |
59 |
endnote |
60 |
endfork |
61 |
:lock topic; |
62 |
fork |
63 |
if (Messages to contribute?) then (yes) |
64 |
partition "contribute messages" { |
65 |
fork |
66 |
:set ""next"" pointer of last message to contribute to the message after the topic's latest message; |
67 |
fork again |
68 |
:set ""next"" pointer of topic's latest message to first message to contribute; |
69 |
endfork |
70 |
} |
71 |
else (no) |
72 |
endif |
73 |
fork again |
74 |
fork |
75 |
:set message pointer to topic's latest message; |
76 |
fork again |
77 |
:copy timestamp from topic's latest message; |
78 |
endfork |
79 |
fork again |
80 |
:register to topic's event source; |
81 |
fork again |
82 |
#EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of subscribers (@topic); |
83 |
endfork |
84 |
:unlock topic; |
85 |
stop |
86 |
note |
87 |
Returns ""URT_STATUS_OK"". |
88 |
endnote |
89 |
endif |
90 |
|
91 |
|
92 |
@enduml |
93 |
|
94 |
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020) |
95 |
(GPL source distribution) |
96 |
Java Runtime: OpenJDK Runtime Environment |
97 |
JVM: OpenJDK 64-Bit Server VM |
98 |
Java Version: 11.0.7+10-post-Ubuntu-2ubuntu218.04 |
99 |
Operating System: Linux |
100 |
Default Encoding: UTF-8 |
101 |
Language: en |
102 |
Country: US |
103 |
--></g></svg> |