Statistics
| Branch: | Revision:

urtware / doc / activitydiagrams / subscriber / urtHrtSubscriberUnsubscribe.svg @ ee83a495

History | View | Annotate | Download (32.123 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="1116px" preserveAspectRatio="none" style="width:1906px;height:1116px;" version="1.1" viewBox="0 0 1906 1116" width="1906px" zoomAndPan="magnify"><defs><filter height="300%" id="f1ai3q21p4d2f8" 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="907.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="269" x="817.5" y="47.6611">urtHrtSubscriberUnsubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="955" y="68.6143"/><path d="M838.75,72.8594 L838.75,183.6563 A0,0 0 0 0 838.75,183.6563 L1326.75,183.6563 A0,0 0 0 0 1326.75,183.6563 L1326.75,132.2578 L1346.75,128.2578 L1326.75,124.2578 L1326.75,82.8594 L1316.75,72.8594 L838.75,72.8594 A0,0 0 0 0 838.75,72.8594 " fill="#FBFB77" filter="url(#f1ai3q21p4d2f8)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1316.75,72.8594 L1316.75,82.8594 L1326.75,82.8594 L1316.75,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="838.75" x2="969.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="973.75" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="973.75" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1055.75" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1195.75" x2="1326.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="252" x="844.75" 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="844.75" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="924.75" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="956.75" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="838.75" x2="1326.75" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="838.75" x2="1326.75" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="838.75" x2="1011.75" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1015.75" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1015.75" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1064.75" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1153.75" x2="1326.75" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="844.75" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="897.75" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="68" x="1005.75" y="160.4575">on sucess.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="844.75" y="175.5903">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="897.75" y="175.5903">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1029.75" y="175.5903">if the subscriber is not associated to a topic.</text><ellipse cx="1356.75" cy="128.2578" fill="#000000" filter="url(#f1ai3q21p4d2f8)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" points="1294.25,203.6563,1419.25,203.6563,1431.25,215.6563,1419.25,227.6563,1294.25,227.6563,1282.25,215.6563,1294.25,203.6563" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1294.25" y="219.4644">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1262.25" y="213.062">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1431.25" y="213.062">no</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="781.5" y="237.6563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="791.5" y="258.7949">lock topic</text><rect fill="#000000" filter="url(#f1ai3q21p4d2f8)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1623" x="10" y="291.625"/><path d="M22,492.8164 L22,517.9492 A0,0 0 0 0 22,517.9492 L323,517.9492 A0,0 0 0 0 323,517.9492 L323,510.8164 L343,505.3828 L323,502.8164 L323,502.8164 L313,492.8164 L22,492.8164 A0,0 0 0 0 22,492.8164 " fill="#FBFB77" filter="url(#f1ai3q21p4d2f8)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M313,492.8164 L313,502.8164 L323,502.8164 L313,492.8164 " 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="509.8833">Must be within lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="343" y="488.3984"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="353" y="509.5371">unregister event</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="214" x="495" y="488.3984"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="194" x="505" y="509.5371">decrement topic's HRT counter</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="312" x="737" y="405.5117"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="292" x="747" y="426.6504">remove self from topic's list of HRT subscribers</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="218" x="784" y="522.8828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="198" x="794" y="544.0215">update QoS rate timer (@topic)</text><polygon fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" points="798,474.4805,988,474.4805,1000,486.4805,988,498.4805,798,498.4805,786,486.4805,798,474.4805" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="897" y="508.6909">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="798" y="490.2886">Was the most critical subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1000" y="483.8862">no</text><polygon fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" points="893,580.7383,905,592.7383,893,604.7383,881,592.7383,893,580.7383" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="1262.5" y="317.625"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="1272.5" y="338.7637">access last read message</text><rect fill="#000000" filter="url(#f1ai3q21p4d2f8)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="506" x="1101" y="432.3984"/><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="1115" y="458.3984"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="1125" y="479.5371">proceed to next message</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="271" x="1324" y="458.3984"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="251" x="1334" y="479.5371">decrement next message's HRT counter</text><rect fill="#000000" filter="url(#f1ai3q21p4d2f8)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="506" x="1101" y="512.3672"/><polygon fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" points="1238,371.5938,1472,371.5938,1484,383.5938,1472,395.5938,1238,395.5938,1226,383.5938,1238,371.5938" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1359" y="405.8042">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="1238" y="387.4019">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1212" y="380.9995">no</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1246.5" y="625.2539"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1256.5" y="646.3926">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" points="1227,576.8516,1483,576.8516,1495,588.8516,1483,600.8516,1227,600.8516,1215,588.8516,1227,576.8516" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1359" y="611.062">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="256" x="1227" y="592.6597">The HRT counter of any message became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1495" y="586.2573">no</text><polygon fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" points="1355,679.2227,1367,691.2227,1355,703.2227,1343,691.2227,1355,679.2227" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1ai3q21p4d2f8)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1623" x="10" y="723.2227"/><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="773.5" y="749.2227"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="783.5" y="770.3613">unlock topic</text><path d="M142,793.1914 L142,1060.4492 A0,0 0 0 0 142,1060.4492 L744,1060.4492 A0,0 0 0 0 744,1060.4492 L744,930.8203 L764,926.8203 L744,922.8203 L744,803.1914 L734,793.1914 L142,793.1914 A0,0 0 0 0 142,793.1914 " fill="#FBFB77" filter="url(#f1ai3q21p4d2f8)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M734,793.1914 L734,803.1914 L744,803.1914 L734,793.1914 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="142" x2="372" y1="805.7578" y2="805.7578"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="376" y="809.7583">urt_basesubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="514" x2="744" y1="805.7578" y2="805.7578"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="148" y="825.3911">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="189" y="825.3911">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="204" y="825.3911">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="148" y="840.5239">lastMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="245" y="840.5239">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="260" y="840.5239">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="128" x="148" y="855.6567">lastMessageTime</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="280" y="855.6567">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="142" x2="314.5" y1="866.2891" y2="866.2891"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="318.5" y="870.2896">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="571.5" x2="744" y1="866.2891" y2="866.2891"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="101" x="148" y="885.9224">sumLatencies</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="253" y="885.9224">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="173" x="148" y="901.0552">numMessagesReceived</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="325" y="901.0552">← 0</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="142" x2="378.5" y1="911.6875" y2="911.6875"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="382.5" y="915.688">urt_hrtsubscriber_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="507.5" x2="744" y1="911.6875" y2="911.6875"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="142" x2="270.5" y1="926.8203" y2="926.8203"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="337" x="274.5" y="930.8208">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="615.5" x2="744" y1="926.8203" y2="926.8203"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="110" x="148" y="946.4536">deadlineOffset</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="262" y="946.4536">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="142" x2="287" y1="957.0859" y2="957.0859"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="304" x="291" y="961.0864">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="599" x2="744" y1="957.0859" y2="957.0859"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="103" x="148" y="976.7192">expectedRate</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="255" y="976.7192">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="142" x2="285" y1="987.3516" y2="987.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="289" y="991.3521">URT_CFG_PUBSUB_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="601" x2="744" y1="987.3516" y2="987.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="66" x="148" y="1006.9849">maxJitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="218" y="1006.9849">← 0</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="142" x2="152.5" y1="1017.6172" y2="1017.6172"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="573" x="156.5" y="1021.6177">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="733.5" x2="744" y1="1017.6172" y2="1017.6172"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="84" x="148" y="1037.2505">minLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="236" y="1037.2505">← 0xF..F</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="148" y="1052.3833">maxLatency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="240" y="1052.3833">← 0</text><rect fill="#FEFECE" filter="url(#f1ai3q21p4d2f8)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="764" y="909.8359"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="774" y="930.9746">reset members</text><path d="M608.5,1078.8828 L608.5,1104.0156 A0,0 0 0 0 608.5,1104.0156 L790.5,1104.0156 A0,0 0 0 0 790.5,1104.0156 L790.5,1096.8828 L810.5,1091.4492 L790.5,1088.8828 L790.5,1088.8828 L780.5,1078.8828 L608.5,1078.8828 A0,0 0 0 0 608.5,1078.8828 " fill="#FBFB77" filter="url(#f1ai3q21p4d2f8)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M780.5,1078.8828 L780.5,1088.8828 L790.5,1088.8828 L780.5,1078.8828 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="614.5" y="1095.9497">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="667.5" y="1095.9497">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="771.5" y="1095.9497">.</text><ellipse cx="821.5" cy="1091.4492" fill="#FFFFFF" filter="url(#f1ai3q21p4d2f8)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="821.5" cy="1091.4492" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1643,237.6563 L1643,262.7891 A0,0 0 0 0 1643,262.7891 L1849,262.7891 A0,0 0 0 0 1849,262.7891 L1849,255.6563 L1869,250.2227 L1849,247.6563 L1849,247.6563 L1839,237.6563 L1643,237.6563 A0,0 0 0 0 1643,237.6563 " fill="#FBFB77" filter="url(#f1ai3q21p4d2f8)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1839,237.6563 L1839,247.6563 L1849,247.6563 L1839,237.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="1649" y="254.7231">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1702" y="254.7231">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1830" y="254.7231">.</text><ellipse cx="1880" cy="250.2227" fill="#FFFFFF" filter="url(#f1ai3q21p4d2f8)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1880" cy="250.2227" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="893" x2="893" y1="498.4805" y2="522.8828"/><polygon fill="#A80036" points="889,512.8828,893,522.8828,897,512.8828,893,516.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1000" x2="1012" y1="486.4805" y2="486.4805"/><polygon fill="#A80036" points="1008,529.8672,1012,539.8672,1016,529.8672,1012,533.8672" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1012" x2="1012" y1="486.4805" y2="592.7383"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1012" x2="905" y1="592.7383" y2="592.7383"/><polygon fill="#A80036" points="915,588.7383,905,592.7383,915,596.7383,911,592.7383" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="893" x2="893" y1="556.8516" y2="580.7383"/><polygon fill="#A80036" points="889,570.7383,893,580.7383,897,570.7383,893,574.7383" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="893" x2="893" y1="439.4805" y2="474.4805"/><polygon fill="#A80036" points="889,464.4805,893,474.4805,897,464.4805,893,468.4805" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1205.5" x2="1205.5" y1="438.3984" y2="458.3984"/><polygon fill="#A80036" points="1201.5,448.3984,1205.5,458.3984,1209.5,448.3984,1205.5,452.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1459.5" x2="1459.5" y1="438.3984" y2="458.3984"/><polygon fill="#A80036" points="1455.5,448.3984,1459.5,458.3984,1463.5,448.3984,1459.5,452.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1205.5" x2="1205.5" y1="492.3672" y2="512.3672"/><polygon fill="#A80036" points="1201.5,502.3672,1205.5,512.3672,1209.5,502.3672,1205.5,506.3672" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1459.5" x2="1459.5" y1="492.3672" y2="512.3672"/><polygon fill="#A80036" points="1455.5,502.3672,1459.5,512.3672,1463.5,502.3672,1459.5,506.3672" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="395.5938" y2="432.3984"/><polygon fill="#A80036" points="1351,422.3984,1355,432.3984,1359,422.3984,1355,426.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="518.3672" y2="530.3672"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1619" y1="530.3672" y2="530.3672"/><polygon fill="#A80036" points="1615,466.9805,1619,456.9805,1623,466.9805,1619,462.9805" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1619" x2="1619" y1="383.5938" y2="530.3672"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1619" x2="1484" y1="383.5938" y2="383.5938"/><polygon fill="#A80036" points="1494,379.5938,1484,383.5938,1494,387.5938,1490,383.5938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1226" x2="1089" y1="383.5938" y2="383.5938"/><polygon fill="#A80036" points="1085,452.9805,1089,462.9805,1093,452.9805,1089,456.9805" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1089" x2="1089" y1="383.5938" y2="542.3672"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1089" x2="1355" y1="542.3672" y2="542.3672"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="542.3672" y2="576.8516"/><polygon fill="#A80036" points="1351,566.8516,1355,576.8516,1359,566.8516,1355,570.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="351.5938" y2="371.5938"/><polygon fill="#A80036" points="1351,361.5938,1355,371.5938,1359,361.5938,1355,365.5938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="600.8516" y2="625.2539"/><polygon fill="#A80036" points="1351,615.2539,1355,625.2539,1359,615.2539,1355,619.2539" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1495" x2="1507" y1="588.8516" y2="588.8516"/><polygon fill="#A80036" points="1503,632.2383,1507,642.2383,1511,632.2383,1507,636.2383" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1507" x2="1507" y1="588.8516" y2="691.2227"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1507" x2="1367" y1="691.2227" y2="691.2227"/><polygon fill="#A80036" points="1377,687.2227,1367,691.2227,1377,695.2227,1373,691.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="659.2227" y2="679.2227"/><polygon fill="#A80036" points="1351,669.2227,1355,679.2227,1359,669.2227,1355,673.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="297.625" y2="488.3984"/><polygon fill="#A80036" points="401,478.3984,405,488.3984,409,478.3984,405,482.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="602" x2="602" y1="297.625" y2="488.3984"/><polygon fill="#A80036" points="598,478.3984,602,488.3984,606,478.3984,602,482.3984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="893" x2="893" y1="297.625" y2="405.5117"/><polygon fill="#A80036" points="889,395.5117,893,405.5117,897,395.5117,893,399.5117" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="297.625" y2="317.625"/><polygon fill="#A80036" points="1351,307.625,1355,317.625,1359,307.625,1355,311.625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="522.3672" y2="723.2227"/><polygon fill="#A80036" points="401,713.2227,405,723.2227,409,713.2227,405,717.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="602" x2="602" y1="522.3672" y2="723.2227"/><polygon fill="#A80036" points="598,713.2227,602,723.2227,606,713.2227,602,717.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="893" x2="893" y1="604.7383" y2="723.2227"/><polygon fill="#A80036" points="889,713.2227,893,723.2227,897,713.2227,893,717.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1355" x2="1355" y1="703.2227" y2="723.2227"/><polygon fill="#A80036" points="1351,713.2227,1355,723.2227,1359,713.2227,1355,717.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="821.5" x2="821.5" y1="271.625" y2="291.625"/><polygon fill="#A80036" points="817.5,281.625,821.5,291.625,825.5,281.625,821.5,285.625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="821.5" x2="821.5" y1="729.2227" y2="749.2227"/><polygon fill="#A80036" points="817.5,739.2227,821.5,749.2227,825.5,739.2227,821.5,743.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="821.5" x2="821.5" y1="783.1914" y2="909.8359"/><polygon fill="#A80036" points="817.5,899.8359,821.5,909.8359,825.5,899.8359,821.5,903.8359" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="821.5" x2="821.5" y1="943.8047" y2="1080.4492"/><polygon fill="#A80036" points="817.5,1070.4492,821.5,1080.4492,825.5,1070.4492,821.5,1074.4492" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1282.25" x2="821.5" y1="215.6563" y2="215.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="821.5" x2="821.5" y1="215.6563" y2="237.6563"/><polygon fill="#A80036" points="817.5,227.6563,821.5,237.6563,825.5,227.6563,821.5,231.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.25" x2="1880" y1="215.6563" y2="215.6563"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1880" x2="1880" y1="215.6563" y2="239.2227"/><polygon fill="#A80036" points="1876,229.2227,1880,239.2227,1884,229.2227,1880,233.2227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1356.75" x2="1356.75" y1="138.2578" y2="203.6563"/><polygon fill="#A80036" points="1352.75,193.6563,1356.75,203.6563,1360.75,193.6563,1356.75,197.6563" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[facd8ed9e760b69dfe28e85dcd745b96]
2
@startuml
3

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

    
6

    
7
start
8
note
9
  - - **subscriber** : urt_hrtsubscriber_t* - -
10
  The HRT subscriber to be unsubscribed.
11
  Must not be ""NULL"".
12
  ====
13
  - - **return** : urt_status_t - -
14
  Returns ""URT_STATUS_OK"" on sucess.
15
  Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic.
16
endnote
17

    
18

    
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
    :remove self from topic's list of HRT subscribers;
30
    if (Was the most critical subscriber?) then (yes)
31
      :update QoS rate timer (@topic);
32
    else (no)
33
    endif
34
  fork again
35
    :access last read message;
36
    while (Timestamp of next message is younger?) is (yes)
37
      fork
38
        :proceed to next message;
39
      fork again
40
        :decrement next message's HRT counter;
41
      endfork
42
    endwhile (no)
43
    if (The HRT counter of any message became 0?) then (yes)
44
      :signal topic's condition variable;
45
    else (no)
46
    endif
47
  endfork
48
  :unlock topic;
49
  :reset members;
50
  note
51
    - - urt_basesubscriber_t - -
52
    **topic** ← ""NULL""
53
    **lastMessage** ← ""NULL""
54
    **lastMessageTime** ← 0
55
    .. URT_CFG_PUBSUB_PROFILING == true ..
56
    **sumLatencies** ← 0
57
    **numMessagesReceived** ← 0
58
    - - urt_hrtsubscriber_t - -
59
    .. URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true ..
60
    **deadlineOffset** ← 0
61
    .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
62
    **expectedRate** ← 0
63
    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true ..
64
    **maxJitter** ← 0
65
    .. URT_CFG_PUBSUB_QOS_JITTERCHECKS == true || URT_CFG_PUBSUB_PROFILING == true ..
66
    **minLatency** ← 0xF..F
67
    **maxLatency** ← 0
68
  endnote
69
  stop
70
  note
71
    Returns ""URT_STATUS_OK"".
72
  endnote
73
else (no)
74
  stop
75
  note
76
    Returns ""URT_STATUS_ERROR"".
77
  endnote
78
endif
79

    
80

    
81
@enduml
82

    
83
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
84
(GPL source distribution)
85
Java Runtime: OpenJDK Runtime Environment
86
JVM: OpenJDK 64-Bit Server VM
87
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
88
Operating System: Linux
89
Default Encoding: UTF-8
90
Language: en
91
Country: US
92
--></g></svg>