urtware / doc / activitydiagrams / subscriber / hrtsubscriber / urtHrtSubscriberUnsubscribe.svg @ 017b2ac7
History | View | Annotate | Download (31.213 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="1080px" preserveAspectRatio="none" style="width:2541px;height:1080px;" version="1.1" viewBox="0 0 2541 1080" width="2541px" zoomAndPan="magnify"><defs><filter height="300%" id="f124mp41ppij04" 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="1225" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="269" x="1135" y="47.6611">urtHrtSubscriberUnsubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1272.5" y="68.6143"/><path d="M1498.25,72.8594 L1498.25,183.6563 L2098.25,183.6563 L2098.25,82.8594 L2088.25,72.8594 L1498.25,72.8594 " fill="#FBFB77" filter="url(#f124mp41ppij04)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2088.25,72.8594 L2088.25,82.8594 L2098.25,82.8594 L2088.25,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1498.25" x2="1685.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1689.25" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="1689.25" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1771.25" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1911.25" x2="2098.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="252" x="1504.25" y="105.0591">The HRT subscriber to be unsubscribed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1504.25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1584.25" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1616.25" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1498.25" x2="2098.25" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1498.25" x2="2098.25" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1498.25" x2="1727.25" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1731.25" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1731.25" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1780.25" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1869.25" x2="2098.25" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1504.25" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1557.25" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="68" x="1665.25" y="160.4575">on sucess.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1504.25" y="175.5903">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="240" x="1557.25" y="175.5903">URT_STATUS_UNSUBSCRIBE_NOTOPIC</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1801.25" y="175.5903">if the subscriber is not associated to a topic.</text><ellipse cx="1798.25" cy="213.6563" fill="#000000" filter="url(#f124mp41ppij04)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f124mp41ppij04)" points="1735.75,243.6563,1860.75,243.6563,1872.75,255.6563,1860.75,267.6563,1735.75,267.6563,1723.75,255.6563,1735.75,243.6563" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1735.75" y="259.4644">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1703.75" y="253.062">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1872.75" y="253.062">no</text><rect fill="#FEFECE" filter="url(#f124mp41ppij04)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1030.5" y="277.6563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1040.5" y="298.7949">lock topic</text><rect fill="#000000" filter="url(#f124mp41ppij04)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2146" x="10" y="331.625"/><path d="M22,592.8174 L22,617.9502 A0,0 0 0 0 22,617.9502 L323,617.9502 A0,0 0 0 0 323,617.9502 L323,610.8174 L343,605.3838 L323,602.8174 L323,602.8174 L313,592.8174 L22,592.8174 A0,0 0 0 0 22,592.8174 " fill="#FBFB77" filter="url(#f124mp41ppij04)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M313,592.8174 L313,602.8174 L323,602.8174 L313,592.8174 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="280" x="28" y="609.8843">Must be within lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#f124mp41ppij04)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="343" y="588.3994"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="353" y="609.5381">unregister event</text><rect fill="#FEFECE" filter="url(#f124mp41ppij04)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="214" x="477" y="588.3994"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="194" x="487" y="609.5381">decrement topic's HRT counter</text><rect fill="#EEEEEE" filter="url(#f124mp41ppij04)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="292" x="701" y="581.415"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="701" x2="731" y1="598.3994" y2="598.3994"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="731" y="602.0537">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="963" x2="993" y1="598.3994" y2="598.3994"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="272" x="711" y="616.5225">decrement counter of subscribers (@topic)</text><rect fill="#EEEEEE" filter="url(#f124mp41ppij04)" height="254.2031" style="stroke: #000000; stroke-width: 2.0;" width="469" x="1021" y="477.7822"/><path d="M1361,478.7822 L1361,487.0791 L1351,497.0791 L1021,497.0791 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="330" x="1024" y="491.7773">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><rect fill="#EEEEEE" filter="url(#f124mp41ppij04)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="312" x="1096.5" y="514.0791"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="292" x="1106.5" y="535.2178">remove self from topic's list of HRT subscribers</text><rect fill="#EEEEEE" filter="url(#f124mp41ppij04)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="423" x="1041" y="631.0322"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="403" x="1051" y="652.1709">update QoS rate timer (@topic) wrt. most critical HRT subscriber</text><polygon fill="#FEFECE" filter="url(#f124mp41ppij04)" points="1157.5,582.6299,1347.5,582.6299,1359.5,594.6299,1347.5,606.6299,1157.5,606.6299,1145.5,594.6299,1157.5,582.6299" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1256.5" y="616.8403">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="1157.5" y="598.438">Was the most critical subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1359.5" y="592.0356">no</text><polygon fill="#FEFECE" filter="url(#f124mp41ppij04)" points="1252.5,687.9854,1264.5,699.9854,1252.5,711.9854,1240.5,699.9854,1252.5,687.9854" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f124mp41ppij04)" height="515.5117" style="stroke: #000000; stroke-width: 2.0;" width="626" x="1518" y="348.4268"/><path d="M1700,349.4268 L1700,357.7236 L1690,367.7236 L1518,367.7236 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="172" x="1521" y="362.4219">fetch pending messages</text><rect fill="#FEFECE" filter="url(#f124mp41ppij04)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="1742.5" y="384.7236"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="1752.5" y="405.8623">access last read message</text><rect fill="#FEFECE" filter="url(#f124mp41ppij04)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="1744.5" y="499.4971"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="1754.5" y="520.6357">proceed to next message</text><rect fill="#000000" filter="url(#f124mp41ppij04)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="564" x="1552" y="568.0479"/><rect fill="#FEFECE" filter="url(#f124mp41ppij04)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="1566" y="601.0322"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="220" x="1576" y="622.1709">decrement message's HRT counter</text><rect fill="#EEEEEE" filter="url(#f124mp41ppij04)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="270" x="1834" y="594.0479"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1834" x2="1853" y1="611.0322" y2="611.0322"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="1853" y="614.6865">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2085" x2="2104" y1="611.0322" y2="611.0322"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="250" x="1844" y="629.1553">decremnt message's consumer counter</text><rect fill="#000000" filter="url(#f124mp41ppij04)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="564" x="1552" y="661.9854"/><polygon fill="#FEFECE" filter="url(#f124mp41ppij04)" points="1718,438.6924,1952,438.6924,1964,450.6924,1952,462.6924,1718,462.6924,1706,450.6924,1718,438.6924" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1839" y="472.9028">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="1718" y="454.5005">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1692" y="448.0981">no</text><rect fill="#FEFECE" filter="url(#f124mp41ppij04)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1726.5" y="773.9697"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1736.5" y="795.1084">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f124mp41ppij04)" points="1707,725.5674,1963,725.5674,1975,737.5674,1963,749.5674,1707,749.5674,1695,737.5674,1707,725.5674" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1839" y="759.7778">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="256" x="1707" y="741.3755">The HRT counter of any message became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1975" y="734.9731">no</text><polygon fill="#FEFECE" filter="url(#f124mp41ppij04)" points="1835,827.9385,1847,839.9385,1835,851.9385,1823,839.9385,1835,827.9385" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f124mp41ppij04)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2146" x="10" y="883.9385"/><rect fill="#FEFECE" filter="url(#f124mp41ppij04)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1022.5" y="909.9385"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1032.5" y="931.0771">unlock topic</text><path d="M806,953.9072 L806,1024.4385 A0,0 0 0 0 806,1024.4385 L993,1024.4385 A0,0 0 0 0 993,1024.4385 L993,993.1729 L1013,989.1729 L993,985.1729 L993,963.9072 L983,953.9072 L806,953.9072 A0,0 0 0 0 806,953.9072 " fill="#FBFB77" filter="url(#f124mp41ppij04)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M983,953.9072 L983,963.9072 L993,963.9072 L983,953.9072 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="806" x2="828.5" y1="966.4736" y2="966.4736"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="832.5" y="970.4741">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="970.5" x2="993" y1="966.4736" y2="966.4736"/><ellipse cx="817.5" cy="981.6729" 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="37" x="823" y="986.1069">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="864" y="986.1069">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="879" y="986.1069">NULL</text><ellipse cx="817.5" cy="996.8057" 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="93" x="823" y="1001.2397">lastMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="920" y="1001.2397">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="935" y="1001.2397">NULL</text><ellipse cx="817.5" cy="1011.9385" 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="128" x="823" y="1016.3726">lastMessageTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="955" y="1016.3726">← 0</text><rect fill="#FEFECE" filter="url(#f124mp41ppij04)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="1013" y="972.1885"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="1023" y="993.3271">reset members</text><path d="M857.5,1042.8721 L857.5,1068.0049 A0,0 0 0 0 857.5,1068.0049 L1039.5,1068.0049 A0,0 0 0 0 1039.5,1068.0049 L1039.5,1060.8721 L1059.5,1055.4385 L1039.5,1052.8721 L1039.5,1052.8721 L1029.5,1042.8721 L857.5,1042.8721 A0,0 0 0 0 857.5,1042.8721 " fill="#FBFB77" filter="url(#f124mp41ppij04)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1029.5,1042.8721 L1029.5,1052.8721 L1039.5,1052.8721 L1029.5,1042.8721 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="863.5" y="1059.939">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="916.5" y="1059.939">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1020.5" y="1059.939">.</text><ellipse cx="1070.5" cy="1055.4385" fill="#FFFFFF" filter="url(#f124mp41ppij04)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1070.5" cy="1055.4385" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M2166,277.6563 L2166,302.7891 A0,0 0 0 0 2166,302.7891 L2484,302.7891 A0,0 0 0 0 2484,302.7891 L2484,295.6563 L2504,290.2227 L2484,287.6563 L2484,287.6563 L2474,277.6563 L2166,277.6563 A0,0 0 0 0 2166,277.6563 " fill="#FBFB77" filter="url(#f124mp41ppij04)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2474,277.6563 L2474,287.6563 L2484,287.6563 L2474,277.6563 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="2172" y="294.7231">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="240" x="2225" y="294.7231">URT_STATUS_UNSUBSCRIBE_NOTOPIC</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="2465" y="294.7231">.</text><ellipse cx="2515" cy="290.2227" fill="#FFFFFF" filter="url(#f124mp41ppij04)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="2515" cy="290.2227" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1798.25" x2="1798.25" y1="183.6563" y2="203.6563"/><polygon fill="#A80036" points="1794.25,193.6563,1798.25,203.6563,1802.25,193.6563,1798.25,197.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1252.5" x2="1252.5" y1="606.6299" y2="631.0322"/><polygon fill="#A80036" points="1248.5,621.0322,1252.5,631.0322,1256.5,621.0322,1252.5,625.0322" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1359.5" x2="1474" y1="594.6299" y2="594.6299"/><polygon fill="#A80036" points="1470,638.0166,1474,648.0166,1478,638.0166,1474,642.0166" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1474" x2="1474" y1="594.6299" y2="699.9854"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1474" x2="1264.5" y1="699.9854" y2="699.9854"/><polygon fill="#A80036" points="1274.5,695.9854,1264.5,699.9854,1274.5,703.9854,1270.5,699.9854" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1252.5" x2="1252.5" y1="665.001" y2="687.9854"/><polygon fill="#A80036" points="1248.5,677.9854,1252.5,687.9854,1256.5,677.9854,1252.5,681.9854" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1252.5" x2="1252.5" y1="548.0479" y2="582.6299"/><polygon fill="#A80036" points="1248.5,572.6299,1252.5,582.6299,1256.5,572.6299,1252.5,576.6299" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1686" x2="1686" y1="574.0479" y2="601.0322"/><polygon fill="#A80036" points="1682,591.0322,1686,601.0322,1690,591.0322,1686,595.0322" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1969" x2="1969" y1="574.0479" y2="594.0479"/><polygon fill="#A80036" points="1965,584.0479,1969,594.0479,1973,584.0479,1969,588.0479" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1686" x2="1686" y1="635.001" y2="661.9854"/><polygon fill="#A80036" points="1682,651.9854,1686,661.9854,1690,651.9854,1686,655.9854" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1969" x2="1969" y1="641.9854" y2="661.9854"/><polygon fill="#A80036" points="1965,651.9854,1969,661.9854,1973,651.9854,1969,655.9854" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1835" x2="1835" y1="533.4658" y2="568.0479"/><polygon fill="#A80036" points="1831,558.0479,1835,568.0479,1839,558.0479,1835,562.0479" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1835" x2="1835" y1="462.6924" y2="499.4971"/><polygon fill="#A80036" points="1831,489.4971,1835,499.4971,1839,489.4971,1835,493.4971" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1835" x2="1835" y1="667.9854" y2="678.5674"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1835" x2="2128" y1="678.5674" y2="678.5674"/><polygon fill="#A80036" points="2124,575.1299,2128,565.1299,2132,575.1299,2128,571.1299" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2128" x2="2128" y1="450.6924" y2="678.5674"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2128" x2="1964" y1="450.6924" y2="450.6924"/><polygon fill="#A80036" points="1974,446.6924,1964,450.6924,1974,454.6924,1970,450.6924" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1706" x2="1540" y1="450.6924" y2="450.6924"/><polygon fill="#A80036" points="1536,561.1299,1540,571.1299,1544,561.1299,1540,565.1299" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1540" x2="1540" y1="450.6924" y2="690.5674"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1540" x2="1835" y1="690.5674" y2="690.5674"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1835" x2="1835" y1="690.5674" y2="725.5674"/><polygon fill="#A80036" points="1831,715.5674,1835,725.5674,1839,715.5674,1835,719.5674" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1835" x2="1835" y1="418.6924" y2="438.6924"/><polygon fill="#A80036" points="1831,428.6924,1835,438.6924,1839,428.6924,1835,432.6924" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1835" x2="1835" y1="749.5674" y2="773.9697"/><polygon fill="#A80036" points="1831,763.9697,1835,773.9697,1839,763.9697,1835,767.9697" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1975" x2="1987" y1="737.5674" y2="737.5674"/><polygon fill="#A80036" points="1983,780.9541,1987,790.9541,1991,780.9541,1987,784.9541" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1987" x2="1987" y1="737.5674" y2="839.9385"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1987" x2="1847" y1="839.9385" y2="839.9385"/><polygon fill="#A80036" points="1857,835.9385,1847,839.9385,1857,843.9385,1853,839.9385" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1835" x2="1835" y1="807.9385" y2="827.9385"/><polygon fill="#A80036" points="1831,817.9385,1835,827.9385,1839,817.9385,1835,821.9385" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="337.625" y2="588.3994"/><polygon fill="#A80036" points="401,578.3994,405,588.3994,409,578.3994,405,582.3994" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="584" x2="584" y1="337.625" y2="588.3994"/><polygon fill="#A80036" points="580,578.3994,584,588.3994,588,578.3994,584,582.3994" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="847" x2="847" y1="337.625" y2="581.415"/><polygon fill="#A80036" points="843,571.415,847,581.415,851,571.415,847,575.415" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1252.5" x2="1252.5" y1="337.625" y2="514.0791"/><polygon fill="#A80036" points="1248.5,504.0791,1252.5,514.0791,1256.5,504.0791,1252.5,508.0791" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1835" x2="1835" y1="337.625" y2="384.7236"/><polygon fill="#A80036" points="1831,374.7236,1835,384.7236,1839,374.7236,1835,378.7236" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="622.3682" y2="883.9385"/><polygon fill="#A80036" points="401,873.9385,405,883.9385,409,873.9385,405,877.9385" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="584" x2="584" y1="622.3682" y2="883.9385"/><polygon fill="#A80036" points="580,873.9385,584,883.9385,588,873.9385,584,877.9385" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="847" x2="847" y1="629.3525" y2="883.9385"/><polygon fill="#A80036" points="843,873.9385,847,883.9385,851,873.9385,847,877.9385" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1252.5" x2="1252.5" y1="711.9854" y2="883.9385"/><polygon fill="#A80036" points="1248.5,873.9385,1252.5,883.9385,1256.5,873.9385,1252.5,877.9385" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1835" x2="1835" y1="851.9385" y2="883.9385"/><polygon fill="#A80036" points="1831,873.9385,1835,883.9385,1839,873.9385,1835,877.9385" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1070.5" x2="1070.5" y1="311.625" y2="331.625"/><polygon fill="#A80036" points="1066.5,321.625,1070.5,331.625,1074.5,321.625,1070.5,325.625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1070.5" x2="1070.5" y1="889.9385" y2="909.9385"/><polygon fill="#A80036" points="1066.5,899.9385,1070.5,909.9385,1074.5,899.9385,1070.5,903.9385" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1070.5" x2="1070.5" y1="943.9072" y2="972.1885"/><polygon fill="#A80036" points="1066.5,962.1885,1070.5,972.1885,1074.5,962.1885,1070.5,966.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1070.5" x2="1070.5" y1="1006.1572" y2="1044.4385"/><polygon fill="#A80036" points="1066.5,1034.4385,1070.5,1044.4385,1074.5,1034.4385,1070.5,1038.4385" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1723.75" x2="1070.5" y1="255.6563" y2="255.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1070.5" x2="1070.5" y1="255.6563" y2="277.6563"/><polygon fill="#A80036" points="1066.5,267.6563,1070.5,277.6563,1074.5,267.6563,1070.5,271.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1872.75" x2="2515" y1="255.6563" y2="255.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2515" x2="2515" y1="255.6563" y2="279.2227"/><polygon fill="#A80036" points="2511,269.2227,2515,279.2227,2519,269.2227,2515,273.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1798.25" x2="1798.25" y1="223.6563" y2="243.6563"/><polygon fill="#A80036" points="1794.25,233.6563,1798.25,243.6563,1802.25,233.6563,1798.25,237.6563" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[332728729f56a8e79287ddb3f5f8a86e] |
---|---|---|---|
2 | @startuml |
||
3 | |||
4 | title **µRtWare**\nurtHrtSubscriberUnsubscribe()\n |
||
5 | |||
6 | |||
7 | note |
||
8 | - - **subscriber** : urt_hrtsubscriber_t* - - |
||
9 | The HRT subscriber to be unsubscribed. |
||
10 | Must not be ""NULL"". |
||
11 | ==== |
||
12 | - - **return** : urt_status_t - - |
||
13 | Returns ""URT_STATUS_OK"" on sucess. |
||
14 | Returns ""URT_STATUS_UNSUBSCRIBE_NOTOPIC"" if the subscriber is not associated to a topic. |
||
15 | endnote |
||
16 | |||
17 | |||
18 | start |
||
19 | if (Associated to a topic?) then (yes) |
||
20 | :lock topic; |
||
21 | fork |
||
22 | :unregister event; |
||
23 | note |
||
24 | Must be within lock because of HRT counter. |
||
25 | endnote |
||
26 | fork again |
||
27 | :decrement topic's HRT counter; |
||
28 | fork again |
||
29 | #EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\ndecrement counter of subscribers (@topic); |
||
30 | fork again |
||
31 | partition "//URT_CFG_PUBSUB_QOS_RATECHECKS == true//" #EEEEEE { |
||
32 | #EEEEEE:remove self from topic's list of HRT subscribers; |
||
33 | if (Was the most critical subscriber?) then (yes) |
||
34 | #EEEEEE:update QoS rate timer (@topic) wrt. most critical HRT subscriber; |
||
35 | else (no) |
||
36 | endif |
||
37 | } |
||
38 | fork again |
||
39 | partition "fetch pending messages" { |
||
40 | :access last read message; |
||
41 | while (Timestamp of next message is younger?) is (yes) |
||
42 | :proceed to next message; |
||
43 | fork |
||
44 | :decrement message's HRT counter; |
||
45 | fork again |
||
46 | #EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\ndecremnt message's consumer counter; |
||
47 | endfork |
||
48 | endwhile (no) |
||
49 | if (The HRT counter of any message became 0?) then (yes) |
||
50 | :signal topic's condition variable; |
||
51 | else (no) |
||
52 | endif |
||
53 | } |
||
54 | endfork |
||
55 | :unlock topic; |
||
56 | :reset members; |
||
57 | note |
||
58 | - - urt_basesubscriber_t - - |
||
59 | * **topic** ← ""NULL"" |
||
60 | * **lastMessage** ← ""NULL"" |
||
61 | * **lastMessageTime** ← 0 |
||
62 | endnote |
||
63 | stop |
||
64 | note |
||
65 | Returns ""URT_STATUS_OK"". |
||
66 | endnote |
||
67 | else (no) |
||
68 | stop |
||
69 | note |
||
70 | Returns ""URT_STATUS_UNSUBSCRIBE_NOTOPIC"". |
||
71 | endnote |
||
72 | endif |
||
73 | |||
74 | |||
75 | @enduml |
||
76 | |||
77 | PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020) |
||
78 | (GPL source distribution) |
||
79 | Java Runtime: OpenJDK Runtime Environment |
||
80 | JVM: OpenJDK 64-Bit Server VM |
||
81 | Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1 |
||
82 | Operating System: Linux |
||
83 | Default Encoding: UTF-8 |
||
84 | Language: en |
||
85 | Country: US |
||
86 | --></g></svg> |