Statistics
| Branch: | Revision:

urtware / doc / activitydiagrams / subscriber / urtSubscriberUnsubscribe.svg @ 7491c395

History | View | Annotate | Download (26.489 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="1015px" preserveAspectRatio="none" style="width:1657px;height:1015px;" version="1.1" viewBox="0 0 1657 1015" width="1657px" zoomAndPan="magnify"><defs><filter height="300%" id="f12r66ntz96gh2" 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="783" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="240" x="707.5" y="47.6611">urtSubscriberUnsubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="830.5" y="68.6143"/><path d="M1002.75,72.8594 L1002.75,128.2578 A0,0 0 0 0 1002.75,128.2578 L1271.75,128.2578 A0,0 0 0 0 1271.75,128.2578 L1271.75,104.5586 L1291.75,100.5586 L1271.75,96.5586 L1271.75,82.8594 L1261.75,72.8594 L1002.75,72.8594 A0,0 0 0 0 1002.75,72.8594 " fill="#FBFB77" filter="url(#f12r66ntz96gh2)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1261.75,72.8594 L1261.75,82.8594 L1271.75,82.8594 L1261.75,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1002.75" x2="1013.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1017.25" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="1017.25" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="1105.25" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1261.25" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1261.25" x2="1271.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="223" x="1008.75" y="105.0591">The subscriber to be unsubscribed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1008.75" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1088.75" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1120.75" y="120.1919">.</text><ellipse cx="1301.75" cy="100.5586" fill="#000000" filter="url(#f12r66ntz96gh2)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f12r66ntz96gh2)" points="1239.25,148.2578,1364.25,148.2578,1376.25,160.2578,1364.25,172.2578,1239.25,172.2578,1227.25,160.2578,1239.25,148.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1239.25" y="164.0659">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1207.25" y="157.6636">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1376.25" y="157.6636">no</text><polygon fill="#FEFECE" filter="url(#f12r66ntz96gh2)" points="971.5,182.2578,1078.5,182.2578,1090.5,194.2578,1078.5,206.2578,971.5,206.2578,959.5,194.2578,971.5,182.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="971.5" y="198.0659">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="939.5" y="191.6636">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1090.5" y="191.6636">no</text><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="616" y="216.2578"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="626" y="237.3965">lock topic</text><rect fill="#000000" filter="url(#f12r66ntz96gh2)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1307" x="10" y="270.2266"/><path d="M22,489.8081 L22,514.9409 A0,0 0 0 0 22,514.9409 L323,514.9409 A0,0 0 0 0 323,514.9409 L323,507.8081 L343,502.3745 L323,499.8081 L323,499.8081 L313,489.8081 L22,489.8081 A0,0 0 0 0 22,489.8081 " fill="#FBFB77" filter="url(#f12r66ntz96gh2)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M313,489.8081 L313,499.8081 L323,499.8081 L313,489.8081 " 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="506.875">Must be within lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="343" y="485.3901"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="353" y="506.5288">unregister event</text><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="214" x="477" y="485.3901"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="194" x="487" y="506.5288">decrement topic's HRT counter</text><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="312" x="714" y="402.5034"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="292" x="724" y="423.6421">remove self from topic's list of HRT subscribers</text><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="218" x="761" y="519.8745"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="198" x="771" y="541.0132">update QoS rate timer (@topic)</text><polygon fill="#FEFECE" filter="url(#f12r66ntz96gh2)" points="786,471.4722,954,471.4722,966,483.4722,954,495.4722,786,495.4722,774,483.4722,786,471.4722" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="874" y="505.6826">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="786" y="487.2803">Was most critical subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="966" y="480.8779">no</text><polygon fill="#FEFECE" filter="url(#f12r66ntz96gh2)" points="870,573.8433,882,585.8433,870,597.8433,858,585.8433,870,573.8433" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="1119.5" y="351.937"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="1129.5" y="373.0757">lock message</text><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="1088" y="420.9058"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="1098" y="442.0444">decrement HRT counter</text><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="1111.5" y="489.8745"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="1121.5" y="511.0132">unlock message</text><polygon fill="#FEFECE" filter="url(#f12r66ntz96gh2)" points="1098,296.2266,1247,296.2266,1259,308.2266,1247,320.2266,1098,320.2266,1086,308.2266,1098,296.2266" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1176.5" y="330.437">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="1098" y="312.0347">Unfetched messages left?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1072" y="305.6323">no</text><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1064" y="626.8433"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1074" y="647.9819">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f12r66ntz96gh2)" points="1069,578.4409,1276,578.4409,1288,590.4409,1276,602.4409,1069,602.4409,1057,590.4409,1069,578.4409" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1176.5" y="612.6514">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="207" x="1069" y="594.249">At least one HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1288" y="587.8467">no</text><polygon fill="#FEFECE" filter="url(#f12r66ntz96gh2)" points="1172.5,680.812,1184.5,692.812,1172.5,704.812,1160.5,692.812,1172.5,680.812" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f12r66ntz96gh2)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1307" x="10" y="724.812"/><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="608" y="750.812"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="618" y="771.9507">unlock topic</text><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="1337" y="216.2578"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="1347" y="237.3965">unregister event</text><polygon fill="#FEFECE" filter="url(#f12r66ntz96gh2)" points="1025,790.7808,1037,802.7808,1025,814.7808,1013,802.7808,1025,790.7808" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="967.5" y="834.7808"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="977.5" y="855.9194">reset members</text><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="948" y="888.7495"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="958" y="909.8882">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="1001" y="909.8882">URT_STATUS_OK</text><rect fill="#FEFECE" filter="url(#f12r66ntz96gh2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="1471" y="182.2578"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="1481" y="203.3965">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1524" y="203.3965">URT_STATUS_ERROR</text><polygon fill="#FEFECE" filter="url(#f12r66ntz96gh2)" points="1301.75,928.7183,1313.75,940.7183,1301.75,952.7183,1289.75,940.7183,1301.75,928.7183" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M753.75,963.5854 L753.75,1003.8511 A0,0 0 0 0 753.75,1003.8511 L1270.75,1003.8511 A0,0 0 0 0 1270.75,1003.8511 L1270.75,987.7183 L1290.75,983.7183 L1270.75,979.7183 L1270.75,973.5854 L1260.75,963.5854 L753.75,963.5854 A0,0 0 0 0 753.75,963.5854 " fill="#FBFB77" filter="url(#f12r66ntz96gh2)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1260.75,963.5854 L1260.75,973.5854 L1270.75,973.5854 L1260.75,963.5854 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="753.75" x2="935.75" y1="976.1519" y2="976.1519"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="939.75" y="980.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="939.75" y="980.1523">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="988.75" y="980.1523"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="988.75" y="980.1523">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1088.75" y="980.1523"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1088.75" x2="1270.75" y1="976.1519" y2="976.1519"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="759.75" y="995.7852">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="812.75" y="995.7852">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="311" x="944.75" y="995.7852">if the subscriber was not associated to any topic.</text><ellipse cx="1301.75" cy="983.7183" fill="#FFFFFF" filter="url(#f12r66ntz96gh2)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1301.75" cy="983.7183" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="870" x2="870" y1="495.4722" y2="519.8745"/><polygon fill="#A80036" points="866,509.8745,870,519.8745,874,509.8745,870,513.8745" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="966" x2="989" y1="483.4722" y2="483.4722"/><polygon fill="#A80036" points="985,526.8589,989,536.8589,993,526.8589,989,530.8589" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="989" x2="989" y1="483.4722" y2="585.8433"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="989" x2="882" y1="585.8433" y2="585.8433"/><polygon fill="#A80036" points="892,581.8433,882,585.8433,892,589.8433,888,585.8433" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="870" x2="870" y1="553.8433" y2="573.8433"/><polygon fill="#A80036" points="866,563.8433,870,573.8433,874,563.8433,870,567.8433" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="870" x2="870" y1="436.4722" y2="471.4722"/><polygon fill="#A80036" points="866,461.4722,870,471.4722,874,461.4722,870,465.4722" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="385.9058" y2="420.9058"/><polygon fill="#A80036" points="1168.5,410.9058,1172.5,420.9058,1176.5,410.9058,1172.5,414.9058" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="454.8745" y2="489.8745"/><polygon fill="#A80036" points="1168.5,479.8745,1172.5,489.8745,1176.5,479.8745,1172.5,483.8745" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="320.2266" y2="351.937"/><polygon fill="#A80036" points="1168.5,341.937,1172.5,351.937,1176.5,341.937,1172.5,345.937" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="523.8433" y2="535.8433"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1271" y1="535.8433" y2="535.8433"/><polygon fill="#A80036" points="1267,429.4878,1271,419.4878,1275,429.4878,1271,425.4878" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1271" x2="1271" y1="308.2266" y2="535.8433"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1271" x2="1259" y1="308.2266" y2="308.2266"/><polygon fill="#A80036" points="1269,304.2266,1259,308.2266,1269,312.2266,1265,308.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1086" x2="1074" y1="308.2266" y2="308.2266"/><polygon fill="#A80036" points="1070,415.4878,1074,425.4878,1078,415.4878,1074,419.4878" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1074" x2="1074" y1="308.2266" y2="547.8433"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1074" x2="1172.5" y1="547.8433" y2="547.8433"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="547.8433" y2="578.4409"/><polygon fill="#A80036" points="1168.5,568.4409,1172.5,578.4409,1176.5,568.4409,1172.5,572.4409" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="602.4409" y2="626.8433"/><polygon fill="#A80036" points="1168.5,616.8433,1172.5,626.8433,1176.5,616.8433,1172.5,620.8433" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1288" x2="1300" y1="590.4409" y2="590.4409"/><polygon fill="#A80036" points="1296,633.8276,1300,643.8276,1304,633.8276,1300,637.8276" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1300" y1="590.4409" y2="692.812"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1184.5" y1="692.812" y2="692.812"/><polygon fill="#A80036" points="1194.5,688.812,1184.5,692.812,1194.5,696.812,1190.5,692.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="660.812" y2="680.812"/><polygon fill="#A80036" points="1168.5,670.812,1172.5,680.812,1176.5,670.812,1172.5,674.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="276.2266" y2="485.3901"/><polygon fill="#A80036" points="401,475.3901,405,485.3901,409,475.3901,405,479.3901" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="584" x2="584" y1="276.2266" y2="485.3901"/><polygon fill="#A80036" points="580,475.3901,584,485.3901,588,475.3901,584,479.3901" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="870" x2="870" y1="276.2266" y2="402.5034"/><polygon fill="#A80036" points="866,392.5034,870,402.5034,874,392.5034,870,396.5034" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="276.2266" y2="296.2266"/><polygon fill="#A80036" points="1168.5,286.2266,1172.5,296.2266,1176.5,286.2266,1172.5,290.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="519.3589" y2="724.812"/><polygon fill="#A80036" points="401,714.812,405,724.812,409,714.812,405,718.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="584" x2="584" y1="519.3589" y2="724.812"/><polygon fill="#A80036" points="580,714.812,584,724.812,588,714.812,584,718.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="870" x2="870" y1="597.8433" y2="724.812"/><polygon fill="#A80036" points="866,714.812,870,724.812,874,714.812,870,718.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1172.5" x2="1172.5" y1="704.812" y2="724.812"/><polygon fill="#A80036" points="1168.5,714.812,1172.5,724.812,1176.5,714.812,1172.5,718.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656" x2="656" y1="250.2266" y2="270.2266"/><polygon fill="#A80036" points="652,260.2266,656,270.2266,660,260.2266,656,264.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656" x2="656" y1="730.812" y2="750.812"/><polygon fill="#A80036" points="652,740.812,656,750.812,660,740.812,656,744.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.5" x2="656" y1="194.2578" y2="194.2578"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656" x2="656" y1="194.2578" y2="216.2578"/><polygon fill="#A80036" points="652,206.2578,656,216.2578,660,206.2578,656,210.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1090.5" x2="1399" y1="194.2578" y2="194.2578"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1399" x2="1399" y1="194.2578" y2="216.2578"/><polygon fill="#A80036" points="1395,206.2578,1399,216.2578,1403,206.2578,1399,210.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656" x2="656" y1="784.7808" y2="802.7808"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656" x2="1013" y1="802.7808" y2="802.7808"/><polygon fill="#A80036" points="1003,798.7808,1013,802.7808,1003,806.7808,1007,802.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1399" x2="1399" y1="250.2266" y2="802.7808"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1399" x2="1037" y1="802.7808" y2="802.7808"/><polygon fill="#A80036" points="1047,798.7808,1037,802.7808,1047,806.7808,1043,802.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1025" x2="1025" y1="814.7808" y2="834.7808"/><polygon fill="#A80036" points="1021,824.7808,1025,834.7808,1029,824.7808,1025,828.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1025" x2="1025" y1="868.7495" y2="888.7495"/><polygon fill="#A80036" points="1021,878.7495,1025,888.7495,1029,878.7495,1025,882.7495" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1227.25" x2="1025" y1="160.2578" y2="160.2578"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1025" x2="1025" y1="160.2578" y2="182.2578"/><polygon fill="#A80036" points="1021,172.2578,1025,182.2578,1029,172.2578,1025,176.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1376.25" x2="1558.5" y1="160.2578" y2="160.2578"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1558.5" x2="1558.5" y1="160.2578" y2="182.2578"/><polygon fill="#A80036" points="1554.5,172.2578,1558.5,182.2578,1562.5,172.2578,1558.5,176.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1025" x2="1025" y1="922.7183" y2="940.7183"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1025" x2="1289.75" y1="940.7183" y2="940.7183"/><polygon fill="#A80036" points="1279.75,936.7183,1289.75,940.7183,1279.75,944.7183,1283.75,940.7183" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1558.5" x2="1558.5" y1="216.2266" y2="940.7183"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1558.5" x2="1313.75" y1="940.7183" y2="940.7183"/><polygon fill="#A80036" points="1323.75,936.7183,1313.75,940.7183,1323.75,944.7183,1319.75,940.7183" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1301.75" x2="1301.75" y1="110.5586" y2="148.2578"/><polygon fill="#A80036" points="1297.75,138.2578,1301.75,148.2578,1305.75,138.2578,1301.75,142.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1301.75" x2="1301.75" y1="952.7183" y2="972.7183"/><polygon fill="#A80036" points="1297.75,962.7183,1301.75,972.7183,1305.75,962.7183,1301.75,966.7183" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f3184f55c2d9e028d2406ee3e5d26285]
2
@startuml
3

    
4
title **µRtWare**\nurtSubscriberUnsubscribe()\n
5

    
6

    
7

    
8

    
9

    
10

    
11

    
12

    
13

    
14

    
15

    
16

    
17
start
18
note
19
  - - ""**subscriber** : urt_subscriber_t*"" - -
20
  The subscriber to be unsubscribed.
21
  Must not be ""NULL"".
22
end note
23

    
24

    
25
if (Associated to a topic?) then (yes)
26
  if (Is HRT subscriber?) then (yes)
27
    :lock topic;
28
    fork
29
      :unregister event;
30
      note: Must be within lock because of HRT counter.
31
    fork again
32
      :decrement topic's HRT counter;
33
    fork again
34
      :remove self from topic's list of HRT subscribers;
35
      if (Was most critical subscriber?) then (yes)
36
        :update QoS rate timer (@topic);
37
      else (no)
38
      endif
39
    fork again
40
      while (Unfetched messages left?) is (yes)
41
        :lock message;
42
        :decrement HRT counter;
43
        :unlock message;
44
      endwhile (no)
45
      if (At least one HRT counter became 0?) then (yes)
46
        :signal topic's condition variable;
47
      else (no)
48
      endif
49
    endfork
50
    :unlock topic;
51
  else (no)
52
    :unregister event;
53
  endif
54
  :reset members;
55
  :return ""URT_STATUS_OK"";
56
else (no)
57
  :return ""URT_STATUS_ERROR"";
58
endif
59

    
60

    
61
stop
62
note
63
  - - **return** ""urt_status_t"" - -
64
  Returns ""URT_STATUS_ERROR"" if the subscriber was not associated to any topic.
65
end note
66

    
67

    
68
@enduml
69

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