Revision c22d21ad

View differences:

doc/activitydiagrams/publisher/urtPublisherPublish.svg
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="1255px" preserveAspectRatio="none" style="width:2678px;height:1255px;" version="1.1" viewBox="0 0 2678 1255" width="2678px" zoomAndPan="magnify"><defs><filter height="300%" id="f52skes7don2n" 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="1293.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="183" x="1246.5" y="47.6611">urtPublisherPublish()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1341" y="68.6143"/><path d="M351,72.8594 L351,264.4531 A0,0 0 0 0 351,264.4531 L736,264.4531 A0,0 0 0 0 736,264.4531 L736,172.6563 L756,168.6563 L736,164.6563 L736,82.8594 L726,72.8594 L351,72.8594 A0,0 0 0 0 351,72.8594 " fill="#FBFB77" filter="url(#f52skes7don2n)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M726,72.8594 L726,82.8594 L736,82.8594 L726,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="427.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="431.5" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="72" x="431.5" y="89.4263">publisher</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="144" x="511.5" y="89.4263">: urt_publisher_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="659.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="659.5" x2="736" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="197" x="357" y="105.0591">Pointer to the publisher to use.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="357" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="437" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="469" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="479.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="483.5" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="483.5" y="134.8247">payload</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="547.5" y="134.8247">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="607.5" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="607.5" x2="736" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="226" x="357" y="150.4575">Pointer to the data to be published.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="357" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="407" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="443" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="499.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="503.5" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="8" x="503.5" y="180.2231">n</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="519.5" y="180.2231">: size_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="587.5" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="587.5" x2="736" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="180" x="357" y="195.856">Size of the payload in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="475.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="479.5" y="210.4888"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="8" x="479.5" y="210.4888">t</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="495.5" y="210.4888">: urt_osTime_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="611.5" y="210.4888"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="611.5" x2="736" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="246" x="357" y="226.1216">Timestamp to be set for the message.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="455.5" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="459.5" y="240.7544"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="459.5" y="240.7544">timeout</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="523.5" y="240.7544">: urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="631.5" y="240.7544"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631.5" x2="736" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="364" x="357" y="256.3872">Timeout delay in case the message cannot be published.</text><ellipse cx="766" cy="168.6563" fill="#000000" filter="url(#f52skes7don2n)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="726" y="284.4531"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="736" y="305.5918">lock topic</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="697.5" y="338.4219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="707.5" y="359.5605">lock next message</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="705" y="448.1011"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="715" y="469.2397">unlock message</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="524" x="504" y="502.0698"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="504" x="514" y="523.2085">wait for topic's condition variable (using topic's mutex) to be signaled or timeout</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="713" y="556.0386"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="723" y="577.1772">lock message</text><polygon fill="#FEFECE" filter="url(#f52skes7don2n)" points="626,392.3906,906,392.3906,918,404.3906,906,416.3906,626,416.3906,614,404.3906,626,392.3906" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="770" y="426.6011">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="280" x="626" y="408.1987">HRT consumers left for the message or timeout?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="600" y="401.7964">no</text><polygon fill="#FEFECE" filter="url(#f52skes7don2n)" points="713,632.0073,819,632.0073,831,644.0073,819,656.0073,713,656.0073,701,644.0073,713,632.0073" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="713" y="647.8154">Timeout occurred?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="681" y="641.4131">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="831" y="641.4131">no</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="36.5" y="666.0073"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="46.5" y="687.146">unlock message</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="49.5" y="734.9761"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="59.5" y="756.1147">unlock topic</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="10" y="803.9448"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="20" y="825.0835">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="63" y="825.0835">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f52skes7don2n)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2471" x="195" y="666.0073"/><rect fill="#000000" filter="url(#f52skes7don2n)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1014" x="207" y="756.812"/><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="219" y="782.812"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="229" y="803.9507">iterate topic pointer to this message</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="498" y="782.812"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="508" y="803.9507">copy payload to message</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="706" y="782.812"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="716" y="803.9507">set origin time of message</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="921" y="782.812"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="931" y="803.9507">set number of HRT consumers (from topic)</text><rect fill="#000000" filter="url(#f52skes7don2n)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1014" x="207" y="836.7808"/><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="652" y="877.7808"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="662" y="898.9194">unlock message</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="398" x="1249" y="817.2964"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="378" x="1259" y="838.4351">set QoS rate timer (@topic) wrt. most critical HRT subscriber</text><path d="M1675,805.6323 L1675,830.7651 A0,0 0 0 0 1675,830.7651 L2170,830.7651 A0,0 0 0 0 2170,830.7651 L2170,823.6323 L2190,818.1987 L2170,815.6323 L2170,815.6323 L2160,805.6323 L1675,805.6323 A0,0 0 0 0 1675,805.6323 " fill="#FBFB77" filter="url(#f52skes7don2n)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2160,805.6323 L2160,815.6323 L2170,815.6323 L2160,805.6323 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="474" x="1681" y="822.6992">No lock required since this timer is only accessed when the topic is locked.</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="434" x="2190" y="801.2144"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="414" x="2200" y="822.353">set QoS delay timer (@subscriber) wrt. origin time of the message</text><polygon fill="#FEFECE" filter="url(#f52skes7don2n)" points="2277,752.812,2537,752.812,2549,764.812,2537,776.812,2277,776.812,2265,764.812,2277,752.812" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2411" y="787.0225">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="260" x="2277" y="768.6201">QoS delay timer (@subscriber) is not armed?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2549" y="762.2178">no</text><polygon fill="#FEFECE" filter="url(#f52skes7don2n)" points="2407,859.5854,2419,871.5854,2407,883.5854,2395,871.5854,2407,859.5854" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="208" x="2303" y="918.5854"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="188" x="2313" y="939.7241">iterate to next HRT subscriber</text><polygon fill="#FEFECE" filter="url(#f52skes7don2n)" points="2346,692.0073,2468,692.0073,2480,704.0073,2468,716.0073,2346,716.0073,2334,704.0073,2346,692.0073" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2411" y="726.2178">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="2346" y="707.8154">HRT subscribers left?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2320" y="701.4131">no</text><rect fill="#000000" filter="url(#f52skes7don2n)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2471" x="195" y="994.5542"/><path d="M1053,1024.9722 L1053,1050.105 A0,0 0 0 0 1053,1050.105 L1389,1050.105 A0,0 0 0 0 1389,1050.105 L1389,1042.9722 L1409,1037.5386 L1389,1034.9722 L1389,1034.9722 L1379,1024.9722 L1053,1024.9722 A0,0 0 0 0 1053,1024.9722 " fill="#FBFB77" filter="url(#f52skes7don2n)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1379,1024.9722 L1379,1034.9722 L1389,1034.9722 L1379,1024.9722 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="315" x="1059" y="1042.0391">Msut be within topic lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="1409" y="1020.5542"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="1419" y="1041.6929">fire event</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1400.5" y="1074.5229"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1410.5" y="1095.6616">unlock topic</text><rect fill="#FEFECE" filter="url(#f52skes7don2n)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="1371.5" y="1128.4917"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="1381.5" y="1149.6304">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="1424.5" y="1149.6304">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f52skes7don2n)" points="766,1168.4604,778,1180.4604,766,1192.4604,754,1180.4604,766,1168.4604" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M455,1203.3276 L455,1243.5933 A0,0 0 0 0 455,1243.5933 L735,1243.5933 A0,0 0 0 0 735,1243.5933 L735,1227.4604 L755,1223.4604 L735,1219.4604 L735,1213.3276 L725,1203.3276 L455,1203.3276 A0,0 0 0 0 455,1203.3276 " fill="#FBFB77" filter="url(#f52skes7don2n)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M725,1203.3276 L725,1213.3276 L735,1213.3276 L725,1203.3276 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="455" x2="518.5" y1="1215.894" y2="1215.894"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="522.5" y="1219.8945"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="522.5" y="1219.8945">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="571.5" y="1219.8945"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="571.5" y="1219.8945">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="671.5" y="1219.8945"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="671.5" x2="735" y1="1215.894" y2="1215.894"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="461" y="1235.5273">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="514" y="1235.5273">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="74" x="646" y="1235.5273">on timeout.</text><ellipse cx="766" cy="1223.4604" fill="#FFFFFF" filter="url(#f52skes7don2n)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="766" cy="1223.4604" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="178.6563" y2="284.4531"/><polygon fill="#A80036" points="762,274.4531,766,284.4531,770,274.4531,766,278.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="318.4219" y2="338.4219"/><polygon fill="#A80036" points="762,328.4219,766,338.4219,770,328.4219,766,332.4219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="482.0698" y2="502.0698"/><polygon fill="#A80036" points="762,492.0698,766,502.0698,770,492.0698,766,496.0698" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="536.0386" y2="556.0386"/><polygon fill="#A80036" points="762,546.0386,766,556.0386,770,546.0386,766,550.0386" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="416.3906" y2="448.1011"/><polygon fill="#A80036" points="762,438.1011,766,448.1011,770,438.1011,766,442.1011" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="590.0073" y2="600.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="1040" y1="600.0073" y2="600.0073"/><polygon fill="#A80036" points="1036,510.6519,1040,500.6519,1044,510.6519,1040,506.6519" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1040" x2="1040" y1="404.3906" y2="600.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1040" x2="918" y1="404.3906" y2="404.3906"/><polygon fill="#A80036" points="928,400.3906,918,404.3906,928,408.3906,924,404.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="614" x2="492" y1="404.3906" y2="404.3906"/><polygon fill="#A80036" points="488,496.6519,492,506.6519,496,496.6519,492,500.6519" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="492" x2="492" y1="404.3906" y2="612.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="492" x2="766" y1="612.0073" y2="612.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="612.0073" y2="632.0073"/><polygon fill="#A80036" points="762,622.0073,766,632.0073,770,622.0073,766,626.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="372.3906" y2="392.3906"/><polygon fill="#A80036" points="762,382.3906,766,392.3906,770,382.3906,766,386.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="97.5" y1="699.9761" y2="734.9761"/><polygon fill="#A80036" points="93.5,724.9761,97.5,734.9761,101.5,724.9761,97.5,728.9761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="97.5" y1="768.9448" y2="803.9448"/><polygon fill="#A80036" points="93.5,793.9448,97.5,803.9448,101.5,793.9448,97.5,797.9448" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344.5" x2="344.5" y1="762.812" y2="782.812"/><polygon fill="#A80036" points="340.5,772.812,344.5,782.812,348.5,772.812,344.5,776.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="588" x2="588" y1="762.812" y2="782.812"/><polygon fill="#A80036" points="584,772.812,588,782.812,592,772.812,588,776.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="799.5" x2="799.5" y1="762.812" y2="782.812"/><polygon fill="#A80036" points="795.5,772.812,799.5,782.812,803.5,772.812,799.5,776.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1064" x2="1064" y1="762.812" y2="782.812"/><polygon fill="#A80036" points="1060,772.812,1064,782.812,1068,772.812,1064,776.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344.5" x2="344.5" y1="816.7808" y2="836.7808"/><polygon fill="#A80036" points="340.5,826.7808,344.5,836.7808,348.5,826.7808,344.5,830.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="588" x2="588" y1="816.7808" y2="836.7808"/><polygon fill="#A80036" points="584,826.7808,588,836.7808,592,826.7808,588,830.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="799.5" x2="799.5" y1="816.7808" y2="836.7808"/><polygon fill="#A80036" points="795.5,826.7808,799.5,836.7808,803.5,826.7808,799.5,830.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1064" x2="1064" y1="816.7808" y2="836.7808"/><polygon fill="#A80036" points="1060,826.7808,1064,836.7808,1068,826.7808,1064,830.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713" x2="713" y1="842.7808" y2="877.7808"/><polygon fill="#A80036" points="709,867.7808,713,877.7808,717,867.7808,713,871.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="776.812" y2="801.2144"/><polygon fill="#A80036" points="2403,791.2144,2407,801.2144,2411,791.2144,2407,795.2144" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2549" x2="2634" y1="764.812" y2="764.812"/><polygon fill="#A80036" points="2630,808.1987,2634,818.1987,2638,808.1987,2634,812.1987" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2634" x2="2634" y1="764.812" y2="871.5854"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2634" x2="2419" y1="871.5854" y2="871.5854"/><polygon fill="#A80036" points="2429,867.5854,2419,871.5854,2429,875.5854,2425,871.5854" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="835.1831" y2="859.5854"/><polygon fill="#A80036" points="2403,849.5854,2407,859.5854,2411,849.5854,2407,853.5854" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="883.5854" y2="918.5854"/><polygon fill="#A80036" points="2403,908.5854,2407,918.5854,2411,908.5854,2407,912.5854" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="716.0073" y2="752.812"/><polygon fill="#A80036" points="2403,742.812,2407,752.812,2411,742.812,2407,746.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="952.5542" y2="962.5542"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2652" y1="962.5542" y2="962.5542"/><polygon fill="#A80036" points="2648,844.2808,2652,834.2808,2656,844.2808,2652,840.2808" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2652" x2="2652" y1="704.0073" y2="962.5542"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2652" x2="2480" y1="704.0073" y2="704.0073"/><polygon fill="#A80036" points="2490,700.0073,2480,704.0073,2490,708.0073,2486,704.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2334" x2="1661" y1="704.0073" y2="704.0073"/><polygon fill="#A80036" points="1657,830.2808,1661,840.2808,1665,830.2808,1661,834.2808" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1661" x2="1661" y1="704.0073" y2="974.5542"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1661" x2="2407" y1="974.5542" y2="974.5542"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="974.5542" y2="994.5542"/><polygon fill="#A80036" points="2403,984.5542,2407,994.5542,2411,984.5542,2407,988.5542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713" x2="713" y1="672.0073" y2="756.812"/><polygon fill="#A80036" points="709,746.812,713,756.812,717,746.812,713,750.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448" x2="1448" y1="672.0073" y2="817.2964"/><polygon fill="#A80036" points="1444,807.2964,1448,817.2964,1452,807.2964,1448,811.2964" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="672.0073" y2="692.0073"/><polygon fill="#A80036" points="2403,682.0073,2407,692.0073,2411,682.0073,2407,686.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713" x2="713" y1="911.7495" y2="994.5542"/><polygon fill="#A80036" points="709,984.5542,713,994.5542,717,984.5542,713,988.5542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448" x2="1448" y1="851.2651" y2="994.5542"/><polygon fill="#A80036" points="1444,984.5542,1448,994.5542,1452,984.5542,1448,988.5542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="1000.5542" y2="1020.5542"/><polygon fill="#A80036" points="1444.5,1010.5542,1448.5,1020.5542,1452.5,1010.5542,1448.5,1014.5542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="1054.5229" y2="1074.5229"/><polygon fill="#A80036" points="1444.5,1064.5229,1448.5,1074.5229,1452.5,1064.5229,1448.5,1068.5229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="1108.4917" y2="1128.4917"/><polygon fill="#A80036" points="1444.5,1118.4917,1448.5,1128.4917,1452.5,1118.4917,1448.5,1122.4917" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="701" x2="97.5" y1="644.0073" y2="644.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="97.5" y1="644.0073" y2="666.0073"/><polygon fill="#A80036" points="93.5,656.0073,97.5,666.0073,101.5,656.0073,97.5,660.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="831" x2="1448.5" y1="644.0073" y2="644.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="644.0073" y2="666.0073"/><polygon fill="#A80036" points="1444.5,656.0073,1448.5,666.0073,1452.5,656.0073,1448.5,660.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="97.5" y1="837.9136" y2="1180.4604"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="754" y1="1180.4604" y2="1180.4604"/><polygon fill="#A80036" points="744,1176.4604,754,1180.4604,744,1184.4604,748,1180.4604" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="1162.4604" y2="1180.4604"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="778" y1="1180.4604" y2="1180.4604"/><polygon fill="#A80036" points="788,1176.4604,778,1180.4604,788,1184.4604,784,1180.4604" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="1192.4604" y2="1212.4604"/><polygon fill="#A80036" points="762,1202.4604,766,1212.4604,770,1202.4604,766,1206.4604" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e44595ad172491fa748569169893175b]
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="1211px" preserveAspectRatio="none" style="width:2678px;height:1211px;" version="1.1" viewBox="0 0 2678 1211" width="2678px" zoomAndPan="magnify"><defs><filter height="300%" id="f1jy0wcjc0dc24" 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="1293.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="183" x="1246.5" y="47.6611">urtPublisherPublish()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1341" y="68.6143"/><path d="M351,72.8594 L351,264.4531 A0,0 0 0 0 351,264.4531 L736,264.4531 A0,0 0 0 0 736,264.4531 L736,172.6563 L756,168.6563 L736,164.6563 L736,82.8594 L726,72.8594 L351,72.8594 A0,0 0 0 0 351,72.8594 " fill="#FBFB77" filter="url(#f1jy0wcjc0dc24)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M726,72.8594 L726,82.8594 L736,82.8594 L726,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="427.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="431.5" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="72" x="431.5" y="89.4263">publisher</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="144" x="511.5" y="89.4263">: urt_publisher_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="659.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="659.5" x2="736" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="197" x="357" y="105.0591">Pointer to the publisher to use.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="357" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="437" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="469" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="479.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="483.5" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="483.5" y="134.8247">payload</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="547.5" y="134.8247">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="607.5" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="607.5" x2="736" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="226" x="357" y="150.4575">Pointer to the data to be published.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="357" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="407" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="443" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="499.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="503.5" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="8" x="503.5" y="180.2231">n</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="519.5" y="180.2231">: size_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="587.5" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="587.5" x2="736" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="180" x="357" y="195.856">Size of the payload in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="475.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="479.5" y="210.4888"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="8" x="479.5" y="210.4888">t</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="495.5" y="210.4888">: urt_osTime_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="611.5" y="210.4888"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="611.5" x2="736" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="246" x="357" y="226.1216">Timestamp to be set for the message.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351" x2="455.5" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="459.5" y="240.7544"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="459.5" y="240.7544">timeout</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="523.5" y="240.7544">: urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="631.5" y="240.7544"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631.5" x2="736" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="364" x="357" y="256.3872">Timeout delay in case the message cannot be published.</text><ellipse cx="766" cy="168.6563" fill="#000000" filter="url(#f1jy0wcjc0dc24)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="726" y="284.4531"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="736" y="305.5918">lock topic</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="688" y="338.4219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="698" y="359.5605">access next message</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="638,462.5151,894,462.5151,906,474.5151,894,486.5151,638,486.5151,626,474.5151,638,462.5151" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="256" x="638" y="478.3232">Message timestamp was modified?) the (yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="906" y="471.9209">no</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="496.75" y="496.5151"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="151" x="506.75" y="517.6538">iterate to next message</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="524" x="687.75" y="496.5151"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="504" x="697.75" y="517.6538">wait for topic's condition variable (using topic's mutex) to be signaled or timeout</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="766,536.4839,778,548.4839,766,560.4839,754,548.4839,766,536.4839" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="648,392.3906,884,392.3906,896,411.5977,884,430.8047,648,430.8047,636,411.5977,648,392.3906" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="770" y="441.0151">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="648" y="402.6011">HRT consumers left for the message</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="236" x="648" y="415.4058">or the message timestamp was modified</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="648" y="428.2104">and a timeout occurred?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="622" y="409.0034">no</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="713,602.4839,819,602.4839,831,614.4839,819,626.4839,713,626.4839,701,614.4839,713,602.4839" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="713" y="618.292">Timeout occurred?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="681" y="611.8896">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="831" y="611.8896">no</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="49.5" y="636.4839"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="59.5" y="657.6226">unlock topic</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="10" y="705.4526"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="20" y="726.5913">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="63" y="726.5913">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f1jy0wcjc0dc24)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2471" x="195" y="636.4839"/><rect fill="#000000" filter="url(#f1jy0wcjc0dc24)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1014" x="207" y="761.7729"/><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="219" y="787.7729"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="229" y="808.9116">iterate topic pointer to this message</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="498" y="787.7729"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="508" y="808.9116">copy payload to message</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="706" y="787.7729"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="716" y="808.9116">set origin time of message</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="921" y="787.7729"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="931" y="808.9116">set number of HRT consumers (from topic)</text><rect fill="#000000" filter="url(#f1jy0wcjc0dc24)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1014" x="207" y="841.7417"/><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="398" x="1249" y="787.7729"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="378" x="1259" y="808.9116">set QoS rate timer (@topic) wrt. most critical HRT subscriber</text><path d="M1675,776.1089 L1675,801.2417 A0,0 0 0 0 1675,801.2417 L2170,801.2417 A0,0 0 0 0 2170,801.2417 L2170,794.1089 L2190,788.6753 L2170,786.1089 L2170,786.1089 L2160,776.1089 L1675,776.1089 A0,0 0 0 0 1675,776.1089 " fill="#FBFB77" filter="url(#f1jy0wcjc0dc24)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2160,776.1089 L2160,786.1089 L2170,786.1089 L2160,776.1089 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="474" x="1681" y="793.1758">No lock required since this timer is only accessed when the topic is locked.</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="434" x="2190" y="771.6909"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="414" x="2200" y="792.8296">set QoS delay timer (@subscriber) wrt. origin time of the message</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="2277,723.2886,2537,723.2886,2549,735.2886,2537,747.2886,2277,747.2886,2265,735.2886,2277,723.2886" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2411" y="757.499">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="260" x="2277" y="739.0967">QoS delay timer (@subscriber) is not armed?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2549" y="732.6943">no</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="2407,830.062,2419,842.062,2407,854.062,2395,842.062,2407,830.062" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="208" x="2303" y="874.062"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="188" x="2313" y="895.2007">iterate to next HRT subscriber</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="2346,662.4839,2468,662.4839,2480,674.4839,2468,686.4839,2346,686.4839,2334,674.4839,2346,662.4839" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2411" y="696.6943">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="2346" y="678.292">HRT subscribers left?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2320" y="671.8896">no</text><rect fill="#000000" filter="url(#f1jy0wcjc0dc24)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2471" x="195" y="950.0308"/><path d="M1053,980.4487 L1053,1005.5815 A0,0 0 0 0 1053,1005.5815 L1389,1005.5815 A0,0 0 0 0 1389,1005.5815 L1389,998.4487 L1409,993.0151 L1389,990.4487 L1389,990.4487 L1379,980.4487 L1053,980.4487 A0,0 0 0 0 1053,980.4487 " fill="#FBFB77" filter="url(#f1jy0wcjc0dc24)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1379,980.4487 L1379,990.4487 L1389,990.4487 L1379,980.4487 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="315" x="1059" y="997.5156">Msut be within topic lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="1409" y="976.0308"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="1419" y="997.1694">fire event</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1400.5" y="1029.9995"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1410.5" y="1051.1382">unlock topic</text><rect fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="1371.5" y="1083.9683"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="1381.5" y="1105.1069">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="1424.5" y="1105.1069">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f1jy0wcjc0dc24)" points="766,1123.937,778,1135.937,766,1147.937,754,1135.937,766,1123.937" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M455,1158.8042 L455,1199.0698 A0,0 0 0 0 455,1199.0698 L735,1199.0698 A0,0 0 0 0 735,1199.0698 L735,1182.937 L755,1178.937 L735,1174.937 L735,1168.8042 L725,1158.8042 L455,1158.8042 A0,0 0 0 0 455,1158.8042 " fill="#FBFB77" filter="url(#f1jy0wcjc0dc24)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M725,1158.8042 L725,1168.8042 L735,1168.8042 L725,1158.8042 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="455" x2="518.5" y1="1171.3706" y2="1171.3706"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="522.5" y="1175.3711"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="522.5" y="1175.3711">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="571.5" y="1175.3711"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="571.5" y="1175.3711">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="671.5" y="1175.3711"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="671.5" x2="735" y1="1171.3706" y2="1171.3706"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="461" y="1191.0039">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="514" y="1191.0039">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="74" x="646" y="1191.0039">on timeout.</text><ellipse cx="766" cy="1178.937" fill="#FFFFFF" filter="url(#f1jy0wcjc0dc24)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="766" cy="1178.937" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="178.6563" y2="284.4531"/><polygon fill="#A80036" points="762,274.4531,766,284.4531,770,274.4531,766,278.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="318.4219" y2="338.4219"/><polygon fill="#A80036" points="762,328.4219,766,338.4219,770,328.4219,766,332.4219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="626" x2="582.25" y1="474.5151" y2="474.5151"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="582.25" x2="582.25" y1="474.5151" y2="496.5151"/><polygon fill="#A80036" points="578.25,486.5151,582.25,496.5151,586.25,486.5151,582.25,490.5151" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="906" x2="949.75" y1="474.5151" y2="474.5151"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.75" x2="949.75" y1="474.5151" y2="496.5151"/><polygon fill="#A80036" points="945.75,486.5151,949.75,496.5151,953.75,486.5151,949.75,490.5151" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="582.25" x2="582.25" y1="530.4839" y2="548.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="582.25" x2="754" y1="548.4839" y2="548.4839"/><polygon fill="#A80036" points="744,544.4839,754,548.4839,744,552.4839,748,548.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.75" x2="949.75" y1="530.4839" y2="548.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.75" x2="778" y1="548.4839" y2="548.4839"/><polygon fill="#A80036" points="788,544.4839,778,548.4839,788,552.4839,784,548.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="430.8047" y2="462.5151"/><polygon fill="#A80036" points="762,452.5151,766,462.5151,770,452.5151,766,456.5151" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="560.4839" y2="570.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="1233.75" y1="570.4839" y2="570.4839"/><polygon fill="#A80036" points="1229.75,499.4937,1233.75,489.4937,1237.75,499.4937,1233.75,495.4937" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1233.75" x2="1233.75" y1="411.5977" y2="570.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1233.75" x2="896" y1="411.5977" y2="411.5977"/><polygon fill="#A80036" points="906,407.5977,896,411.5977,906,415.5977,902,411.5977" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="474.75" y1="411.5977" y2="411.5977"/><polygon fill="#A80036" points="470.75,485.4937,474.75,495.4937,478.75,485.4937,474.75,489.4937" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="474.75" x2="474.75" y1="411.5977" y2="582.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="474.75" x2="766" y1="582.4839" y2="582.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="582.4839" y2="602.4839"/><polygon fill="#A80036" points="762,592.4839,766,602.4839,770,592.4839,766,596.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="372.3906" y2="392.3906"/><polygon fill="#A80036" points="762,382.3906,766,392.3906,770,382.3906,766,386.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="97.5" y1="670.4526" y2="705.4526"/><polygon fill="#A80036" points="93.5,695.4526,97.5,705.4526,101.5,695.4526,97.5,699.4526" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344.5" x2="344.5" y1="767.7729" y2="787.7729"/><polygon fill="#A80036" points="340.5,777.7729,344.5,787.7729,348.5,777.7729,344.5,781.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="588" x2="588" y1="767.7729" y2="787.7729"/><polygon fill="#A80036" points="584,777.7729,588,787.7729,592,777.7729,588,781.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="799.5" x2="799.5" y1="767.7729" y2="787.7729"/><polygon fill="#A80036" points="795.5,777.7729,799.5,787.7729,803.5,777.7729,799.5,781.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1064" x2="1064" y1="767.7729" y2="787.7729"/><polygon fill="#A80036" points="1060,777.7729,1064,787.7729,1068,777.7729,1064,781.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344.5" x2="344.5" y1="821.7417" y2="841.7417"/><polygon fill="#A80036" points="340.5,831.7417,344.5,841.7417,348.5,831.7417,344.5,835.7417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="588" x2="588" y1="821.7417" y2="841.7417"/><polygon fill="#A80036" points="584,831.7417,588,841.7417,592,831.7417,588,835.7417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="799.5" x2="799.5" y1="821.7417" y2="841.7417"/><polygon fill="#A80036" points="795.5,831.7417,799.5,841.7417,803.5,831.7417,799.5,835.7417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1064" x2="1064" y1="821.7417" y2="841.7417"/><polygon fill="#A80036" points="1060,831.7417,1064,841.7417,1068,831.7417,1064,835.7417" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="747.2886" y2="771.6909"/><polygon fill="#A80036" points="2403,761.6909,2407,771.6909,2411,761.6909,2407,765.6909" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2549" x2="2634" y1="735.2886" y2="735.2886"/><polygon fill="#A80036" points="2630,778.6753,2634,788.6753,2638,778.6753,2634,782.6753" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2634" x2="2634" y1="735.2886" y2="842.062"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2634" x2="2419" y1="842.062" y2="842.062"/><polygon fill="#A80036" points="2429,838.062,2419,842.062,2429,846.062,2425,842.062" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="805.6597" y2="830.062"/><polygon fill="#A80036" points="2403,820.062,2407,830.062,2411,820.062,2407,824.062" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="854.062" y2="874.062"/><polygon fill="#A80036" points="2403,864.062,2407,874.062,2411,864.062,2407,868.062" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="686.4839" y2="723.2886"/><polygon fill="#A80036" points="2403,713.2886,2407,723.2886,2411,713.2886,2407,717.2886" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="908.0308" y2="918.0308"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2652" y1="918.0308" y2="918.0308"/><polygon fill="#A80036" points="2648,814.7573,2652,804.7573,2656,814.7573,2652,810.7573" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2652" x2="2652" y1="674.4839" y2="918.0308"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2652" x2="2480" y1="674.4839" y2="674.4839"/><polygon fill="#A80036" points="2490,670.4839,2480,674.4839,2490,678.4839,2486,674.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2334" x2="1661" y1="674.4839" y2="674.4839"/><polygon fill="#A80036" points="1657,800.7573,1661,810.7573,1665,800.7573,1661,804.7573" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1661" x2="1661" y1="674.4839" y2="930.0308"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1661" x2="2407" y1="930.0308" y2="930.0308"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="930.0308" y2="950.0308"/><polygon fill="#A80036" points="2403,940.0308,2407,950.0308,2411,940.0308,2407,944.0308" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713" x2="713" y1="642.4839" y2="761.7729"/><polygon fill="#A80036" points="709,751.7729,713,761.7729,717,751.7729,713,755.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448" x2="1448" y1="642.4839" y2="787.7729"/><polygon fill="#A80036" points="1444,777.7729,1448,787.7729,1452,777.7729,1448,781.7729" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2407" x2="2407" y1="642.4839" y2="662.4839"/><polygon fill="#A80036" points="2403,652.4839,2407,662.4839,2411,652.4839,2407,656.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713" x2="713" y1="847.7417" y2="950.0308"/><polygon fill="#A80036" points="709,940.0308,713,950.0308,717,940.0308,713,944.0308" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448" x2="1448" y1="821.7417" y2="950.0308"/><polygon fill="#A80036" points="1444,940.0308,1448,950.0308,1452,940.0308,1448,944.0308" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="956.0308" y2="976.0308"/><polygon fill="#A80036" points="1444.5,966.0308,1448.5,976.0308,1452.5,966.0308,1448.5,970.0308" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="1009.9995" y2="1029.9995"/><polygon fill="#A80036" points="1444.5,1019.9995,1448.5,1029.9995,1452.5,1019.9995,1448.5,1023.9995" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="1063.9683" y2="1083.9683"/><polygon fill="#A80036" points="1444.5,1073.9683,1448.5,1083.9683,1452.5,1073.9683,1448.5,1077.9683" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="701" x2="97.5" y1="614.4839" y2="614.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="97.5" y1="614.4839" y2="636.4839"/><polygon fill="#A80036" points="93.5,626.4839,97.5,636.4839,101.5,626.4839,97.5,630.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="831" x2="1448.5" y1="614.4839" y2="614.4839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="614.4839" y2="636.4839"/><polygon fill="#A80036" points="1444.5,626.4839,1448.5,636.4839,1452.5,626.4839,1448.5,630.4839" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="97.5" y1="739.4214" y2="1135.937"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="754" y1="1135.937" y2="1135.937"/><polygon fill="#A80036" points="744,1131.937,754,1135.937,744,1139.937,748,1135.937" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="1448.5" y1="1117.937" y2="1135.937"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1448.5" x2="778" y1="1135.937" y2="1135.937"/><polygon fill="#A80036" points="788,1131.937,778,1135.937,788,1139.937,784,1135.937" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="766" x2="766" y1="1147.937" y2="1167.937"/><polygon fill="#A80036" points="762,1157.937,766,1167.937,770,1157.937,766,1161.937" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9fb4690fe63f7cbdf2f1922d00b6df8b]
2 2
@startuml
3 3

  
4 4
title **µRtWare**\nurtPublisherPublish()\n
......
32 32

  
33 33

  
34 34
:lock topic;
35
:lock next message;
36
while (HRT consumers left for the message or timeout?) is (yes)
37
  :unlock message;
38
  :wait for topic's condition variable (using topic's mutex) to be signaled or timeout;
39
  :lock message;
35
:access next message;
36
while (HRT consumers left for the message\nor the message timestamp was modified\nand a timeout occurred?) is (yes)
37
  if (Message timestamp was modified?) the (yes)
38
    :iterate to next message;
39
  else (no)
40
    :wait for topic's condition variable (using topic's mutex) to be signaled or timeout;
41
  endif
40 42
endwhile (no)
41 43
if (Timeout occurred?) then (yes)
42
  :unlock message;
43 44
  :unlock topic;
44 45
  :return ""URT_STATUS_ERROR"";
45 46
else (no)
......
53 54
    fork again
54 55
      :set number of HRT consumers (from topic);
55 56
    endfork
56
    :unlock message;
57 57
  fork again
58 58
    :set QoS rate timer (@topic) wrt. most critical HRT subscriber;
59 59
  fork again
doc/activitydiagrams/publisher/urtPublisherPublish.uml
48 48
/'### PROCEDURE ##############################################################'/
49 49

  
50 50
:lock topic;
51
:lock next message;
52
while (HRT consumers left for the message or timeout?) is (yes)
53
  :unlock message;
54
  :wait for topic's condition variable (using topic's mutex) to be signaled or timeout;
55
  :lock message;
51
:access next message;
52
while (HRT consumers left for the message\nor the message timestamp was modified\nand a timeout occurred?) is (yes)
53
  if (Message timestamp was modified?) the (yes)
54
    :iterate to next message;
55
  else (no)
56
    :wait for topic's condition variable (using topic's mutex) to be signaled or timeout;
57
  endif
56 58
endwhile (no)
57 59
if (Timeout occurred?) then (yes)
58
  :unlock message;
59 60
  :unlock topic;
60 61
  :return ""URT_STATUS_ERROR"";
61 62
else (no)
......
69 70
    fork again
70 71
      :set number of HRT consumers (from topic);
71 72
    endfork
72
    :unlock message;
73 73
  fork again
74 74
    :set QoS rate timer (@topic) wrt. most critical HRT subscriber;
75 75
  fork again
doc/activitydiagrams/subscriber/urtSubscriberCalculateUsefulness.svg
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="420px" preserveAspectRatio="none" style="width:880px;height:420px;" version="1.1" viewBox="0 0 880 420" width="880px" zoomAndPan="magnify"><defs><filter height="300%" id="f1bh34zu0bgazr" 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="394.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="307" x="285.5" y="47.6611">urtSubscriberCalculateUsefulness()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="442" y="68.6143"/><path d="M73.5,72.8594 L73.5,158.5234 A0,0 0 0 0 73.5,158.5234 L424.5,158.5234 A0,0 0 0 0 424.5,158.5234 L424.5,119.6914 L444.5,115.6914 L424.5,111.6914 L424.5,82.8594 L414.5,72.8594 L73.5,72.8594 A0,0 0 0 0 73.5,72.8594 " fill="#FBFB77" filter="url(#f1bh34zu0bgazr)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M414.5,72.8594 L414.5,82.8594 L424.5,82.8594 L414.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="73.5" x2="125" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="129" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="129" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="217" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="373" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="373" x2="424.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="223" x="79.5" y="105.0591">The subscriber to be unsubscribed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="79.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="159.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="191.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="73.5" x2="161" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="165" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="165" y="134.8247">latency</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="229" y="134.8247">: urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="337" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="337" x2="424.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="330" x="79.5" y="150.4575">Delay (of a mesage) to calculate the usefulness for.</text><ellipse cx="454.5" cy="115.6914" fill="#000000" filter="url(#f1bh34zu0bgazr)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1bh34zu0bgazr)" points="375,178.5234,423,178.5234,435,190.5234,423,202.5234,375,202.5234,363,190.5234,375,178.5234" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="403" y="212.7339">HRT</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="48" x="375" y="194.3315">RT class</text><path d="M10,238.6519 L10,263.7847 A0,0 0 0 0 10,263.7847 L344,263.7847 A0,0 0 0 0 344,263.7847 L344,256.6519 L364,251.2183 L344,248.6519 L344,248.6519 L334,238.6519 L10,238.6519 A0,0 0 0 0 10,238.6519 " fill="#FBFB77" filter="url(#f1bh34zu0bgazr)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M334,238.6519 L334,248.6519 L344,248.6519 L334,238.6519 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="16" y="255.7188">Otherwise some QoS timer would have triggered.</text><rect fill="#FEFECE" filter="url(#f1bh34zu0bgazr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="70" x="364" y="234.2339"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="374" y="255.3726">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="417" y="255.3726">1</text><polygon fill="#FEFECE" filter="url(#f1bh34zu0bgazr)" points="535.5,178.5234,583.5,178.5234,595.5,190.5234,583.5,202.5234,535.5,202.5234,523.5,190.5234,535.5,178.5234" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="563.5" y="212.7339">FRT</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="48" x="535.5" y="194.3315">RT class</text><polygon fill="#FEFECE" filter="url(#f1bh34zu0bgazr)" points="529,234.2339,590,234.2339,602,246.2339,590,258.2339,529,258.2339,517,246.2339,529,234.2339" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="529" y="250.042">Timing ok?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="497" y="243.6396">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="602" y="243.6396">no</text><rect fill="#FEFECE" filter="url(#f1bh34zu0bgazr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="465" y="268.2339"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="475" y="289.3726">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="518" y="289.3726">1.0</text><rect fill="#FEFECE" filter="url(#f1bh34zu0bgazr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="570" y="268.2339"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="580" y="289.3726">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="623" y="289.3726">0.0</text><polygon fill="#FEFECE" filter="url(#f1bh34zu0bgazr)" points="559.5,308.2026,571.5,320.2026,559.5,332.2026,547.5,320.2026,559.5,308.2026" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1bh34zu0bgazr)" points="702.5,178.5234,750.5,178.5234,762.5,190.5234,750.5,202.5234,702.5,202.5234,690.5,190.5234,702.5,178.5234" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="730.5" y="212.7339">SRT</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="48" x="702.5" y="194.3315">RT class</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="762.5" y="187.9292">NRT</text><rect fill="#FEFECE" filter="url(#f1bh34zu0bgazr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="664" y="234.2339"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="105" x="674" y="255.3726">execute callback</text><rect fill="#FEFECE" filter="url(#f1bh34zu0bgazr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="677" y="303.2026"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="687" y="324.3413">return result</text><rect fill="#FEFECE" filter="url(#f1bh34zu0bgazr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="70" x="799" y="265.3159"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="809" y="286.4546">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="852" y="286.4546">1</text><path d="M99.5,368.0386 L99.5,408.3042 A0,0 0 0 0 99.5,408.3042 L423.5,408.3042 A0,0 0 0 0 423.5,408.3042 L423.5,392.1714 L443.5,388.1714 L423.5,384.1714 L423.5,378.0386 L413.5,368.0386 L99.5,368.0386 A0,0 0 0 0 99.5,368.0386 " fill="#FBFB77" filter="url(#f1bh34zu0bgazr)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M413.5,368.0386 L413.5,378.0386 L423.5,378.0386 L413.5,368.0386 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="99.5" x2="213" y1="380.605" y2="380.605"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="217" y="384.6055"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="217" y="384.6055">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="266" y="384.6055"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="40" x="266" y="384.6055">float</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="310" y="384.6055"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="310" x2="423.5" y1="380.605" y2="380.605"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="255" x="105.5" y="400.2383">Returns the usefulness as a value within</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="40" x="364.5" y="400.2383">[0,1]</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="404.5" y="400.2383">.</text><ellipse cx="454.5" cy="388.1714" fill="#FFFFFF" filter="url(#f1bh34zu0bgazr)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="454.5" cy="388.1714" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="517" x2="507" y1="246.2339" y2="246.2339"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="507" x2="507" y1="246.2339" y2="268.2339"/><polygon fill="#A80036" points="503,258.2339,507,268.2339,511,258.2339,507,262.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="602" x2="612" y1="246.2339" y2="246.2339"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="612" x2="612" y1="246.2339" y2="268.2339"/><polygon fill="#A80036" points="608,258.2339,612,268.2339,616,258.2339,612,262.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="507" x2="507" y1="302.2026" y2="320.2026"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="507" x2="547.5" y1="320.2026" y2="320.2026"/><polygon fill="#A80036" points="537.5,316.2026,547.5,320.2026,537.5,324.2026,541.5,320.2026" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="612" x2="612" y1="302.2026" y2="320.2026"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="612" x2="571.5" y1="320.2026" y2="320.2026"/><polygon fill="#A80036" points="581.5,316.2026,571.5,320.2026,581.5,324.2026,577.5,320.2026" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="726.5" x2="726.5" y1="268.2026" y2="303.2026"/><polygon fill="#A80036" points="722.5,293.2026,726.5,303.2026,730.5,293.2026,726.5,297.2026" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="399" y1="202.5234" y2="234.2339"/><polygon fill="#A80036" points="395,224.2339,399,234.2339,403,224.2339,399,228.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="399" y1="268.2026" y2="357.1714"/><polygon fill="#A80036" points="395,347.1714,399,357.1714,403,347.1714,399,351.1714" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="559.5" x2="559.5" y1="202.5234" y2="234.2339"/><polygon fill="#A80036" points="555.5,224.2339,559.5,234.2339,563.5,224.2339,559.5,228.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="559.5" x2="559.5" y1="332.2026" y2="357.1714"/><polygon fill="#A80036" points="555.5,347.1714,559.5,357.1714,563.5,347.1714,559.5,351.1714" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="726.5" x2="726.5" y1="202.5234" y2="234.2339"/><polygon fill="#A80036" points="722.5,224.2339,726.5,234.2339,730.5,224.2339,726.5,228.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="726.5" x2="726.5" y1="337.1714" y2="357.1714"/><polygon fill="#A80036" points="722.5,347.1714,726.5,357.1714,730.5,347.1714,726.5,351.1714" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="435" x2="523.5" y1="190.5234" y2="190.5234"/><polygon fill="#A80036" points="513.5,186.5234,523.5,190.5234,513.5,194.5234,517.5,190.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="595.5" x2="690.5" y1="190.5234" y2="190.5234"/><polygon fill="#A80036" points="680.5,186.5234,690.5,190.5234,680.5,194.5234,684.5,190.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="454.5" x2="454.5" y1="125.6914" y2="163.5234"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="454.5" x2="399" y1="163.5234" y2="163.5234"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="399" y1="163.5234" y2="178.5234"/><polygon fill="#A80036" points="395,168.5234,399,178.5234,403,168.5234,399,172.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="762.5" x2="834" y1="190.5234" y2="190.5234"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="834" x2="834" y1="190.5234" y2="265.3159"/><polygon fill="#A80036" points="830,255.3159,834,265.3159,838,255.3159,834,259.3159" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="834" x2="834" y1="299.2847" y2="357.1714"/><polygon fill="#A80036" points="830,347.1714,834,357.1714,838,347.1714,834,351.1714" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="834" y1="357.1714" y2="357.1714"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="454.5" x2="454.5" y1="357.1714" y2="377.1714"/><polygon fill="#A80036" points="450.5,367.1714,454.5,377.1714,458.5,367.1714,454.5,371.1714" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[bd3c76ff93e408c92db722d426e937fe]
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="420px" preserveAspectRatio="none" style="width:1061px;height:420px;" version="1.1" viewBox="0 0 1061 420" width="1061px" zoomAndPan="magnify"><defs><filter height="300%" id="fi54d3amdm4ll" 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="485" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="307" x="376" y="47.6611">urtSubscriberCalculateUsefulness()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="532.5" y="68.6143"/><path d="M174,72.8594 L174,158.5234 A0,0 0 0 0 174,158.5234 L525,158.5234 A0,0 0 0 0 525,158.5234 L525,119.6914 L545,115.6914 L525,111.6914 L525,82.8594 L515,72.8594 L174,72.8594 A0,0 0 0 0 174,72.8594 " fill="#FBFB77" filter="url(#fi54d3amdm4ll)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M515,72.8594 L515,82.8594 L525,82.8594 L515,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="174" x2="225.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="229.5" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="229.5" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="317.5" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="473.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="473.5" x2="525" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="223" x="180" y="105.0591">The subscriber to be unsubscribed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="180" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="260" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="292" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="174" x2="261.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="265.5" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="265.5" y="134.8247">latency</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="329.5" y="134.8247">: urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="437.5" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="437.5" x2="525" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="330" x="180" y="150.4575">Delay (of a mesage) to calculate the usefulness for.</text><ellipse cx="555" cy="115.6914" fill="#000000" filter="url(#fi54d3amdm4ll)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fi54d3amdm4ll)" points="375,178.5234,423,178.5234,435,190.5234,423,202.5234,375,202.5234,363,190.5234,375,178.5234" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="403" y="212.7339">HRT</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="48" x="375" y="194.3315">RT class</text><path d="M10,238.6519 L10,263.7847 A0,0 0 0 0 10,263.7847 L344,263.7847 A0,0 0 0 0 344,263.7847 L344,256.6519 L364,251.2183 L344,248.6519 L344,248.6519 L334,238.6519 L10,238.6519 A0,0 0 0 0 10,238.6519 " fill="#FBFB77" filter="url(#fi54d3amdm4ll)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M334,238.6519 L334,248.6519 L344,248.6519 L334,238.6519 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="16" y="255.7188">Otherwise some QoS timer would have triggered.</text><rect fill="#FEFECE" filter="url(#fi54d3amdm4ll)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="70" x="364" y="234.2339"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="374" y="255.3726">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="417" y="255.3726">1</text><polygon fill="#FEFECE" filter="url(#fi54d3amdm4ll)" points="716.5,178.5234,764.5,178.5234,776.5,190.5234,764.5,202.5234,716.5,202.5234,704.5,190.5234,716.5,178.5234" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="744.5" y="212.7339">FRT</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="48" x="716.5" y="194.3315">RT class</text><path d="M455,270.6519 L455,295.7847 L636,295.7847 L636,280.6519 L626,270.6519 L455,270.6519 " fill="#FBFB77" filter="url(#fi54d3amdm4ll)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M626,270.6519 L626,280.6519 L636,280.6519 L626,270.6519 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="160" x="461" y="287.7188">ToDo: When is timing ok?</text><polygon fill="#FEFECE" filter="url(#fi54d3amdm4ll)" points="710,234.2339,771,234.2339,783,246.2339,771,258.2339,710,258.2339,698,246.2339,710,234.2339" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="710" y="250.042">Timing ok?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="678" y="243.6396">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="783" y="243.6396">no</text><rect fill="#FEFECE" filter="url(#fi54d3amdm4ll)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="646" y="268.2339"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="656" y="289.3726">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="699" y="289.3726">1.0</text><rect fill="#FEFECE" filter="url(#fi54d3amdm4ll)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="751" y="268.2339"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="761" y="289.3726">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="804" y="289.3726">0.0</text><polygon fill="#FEFECE" filter="url(#fi54d3amdm4ll)" points="740.5,308.2026,752.5,320.2026,740.5,332.2026,728.5,320.2026,740.5,308.2026" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fi54d3amdm4ll)" points="883.5,178.5234,931.5,178.5234,943.5,190.5234,931.5,202.5234,883.5,202.5234,871.5,190.5234,883.5,178.5234" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="911.5" y="212.7339">SRT</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="48" x="883.5" y="194.3315">RT class</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="943.5" y="187.9292">NRT</text><rect fill="#FEFECE" filter="url(#fi54d3amdm4ll)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="845" y="234.2339"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="105" x="855" y="255.3726">execute callback</text><rect fill="#FEFECE" filter="url(#fi54d3amdm4ll)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="858" y="303.2026"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="868" y="324.3413">return result</text><rect fill="#FEFECE" filter="url(#fi54d3amdm4ll)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="70" x="980" y="265.3159"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="990" y="286.4546">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="1033" y="286.4546">1</text><path d="M200,368.0386 L200,408.3042 A0,0 0 0 0 200,408.3042 L524,408.3042 A0,0 0 0 0 524,408.3042 L524,392.1714 L544,388.1714 L524,384.1714 L524,378.0386 L514,368.0386 L200,368.0386 A0,0 0 0 0 200,368.0386 " fill="#FBFB77" filter="url(#fi54d3amdm4ll)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M514,368.0386 L514,378.0386 L524,378.0386 L514,368.0386 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="200" x2="313.5" y1="380.605" y2="380.605"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="317.5" y="384.6055"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="317.5" y="384.6055">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="366.5" y="384.6055"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="40" x="366.5" y="384.6055">float</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="410.5" y="384.6055"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="410.5" x2="524" y1="380.605" y2="380.605"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="255" x="206" y="400.2383">Returns the usefulness as a value within</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="40" x="465" y="400.2383">[0,1]</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="505" y="400.2383">.</text><ellipse cx="555" cy="388.1714" fill="#FFFFFF" filter="url(#fi54d3amdm4ll)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="555" cy="388.1714" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="698" x2="688" y1="246.2339" y2="246.2339"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="688" x2="688" y1="246.2339" y2="268.2339"/><polygon fill="#A80036" points="684,258.2339,688,268.2339,692,258.2339,688,262.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="783" x2="793" y1="246.2339" y2="246.2339"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="793" x2="793" y1="246.2339" y2="268.2339"/><polygon fill="#A80036" points="789,258.2339,793,268.2339,797,258.2339,793,262.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="688" x2="688" y1="302.2026" y2="320.2026"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="688" x2="728.5" y1="320.2026" y2="320.2026"/><polygon fill="#A80036" points="718.5,316.2026,728.5,320.2026,718.5,324.2026,722.5,320.2026" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="793" x2="793" y1="302.2026" y2="320.2026"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="793" x2="752.5" y1="320.2026" y2="320.2026"/><polygon fill="#A80036" points="762.5,316.2026,752.5,320.2026,762.5,324.2026,758.5,320.2026" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="907.5" x2="907.5" y1="268.2026" y2="303.2026"/><polygon fill="#A80036" points="903.5,293.2026,907.5,303.2026,911.5,293.2026,907.5,297.2026" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="399" y1="202.5234" y2="234.2339"/><polygon fill="#A80036" points="395,224.2339,399,234.2339,403,224.2339,399,228.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="399" y1="268.2026" y2="357.1714"/><polygon fill="#A80036" points="395,347.1714,399,357.1714,403,347.1714,399,351.1714" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="202.5234" y2="234.2339"/><polygon fill="#A80036" points="736.5,224.2339,740.5,234.2339,744.5,224.2339,740.5,228.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="332.2026" y2="357.1714"/><polygon fill="#A80036" points="736.5,347.1714,740.5,357.1714,744.5,347.1714,740.5,351.1714" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="907.5" x2="907.5" y1="202.5234" y2="234.2339"/><polygon fill="#A80036" points="903.5,224.2339,907.5,234.2339,911.5,224.2339,907.5,228.2339" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="907.5" x2="907.5" y1="337.1714" y2="357.1714"/><polygon fill="#A80036" points="903.5,347.1714,907.5,357.1714,911.5,347.1714,907.5,351.1714" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="435" x2="704.5" y1="190.5234" y2="190.5234"/><polygon fill="#A80036" points="694.5,186.5234,704.5,190.5234,694.5,194.5234,698.5,190.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="776.5" x2="871.5" y1="190.5234" y2="190.5234"/><polygon fill="#A80036" points="861.5,186.5234,871.5,190.5234,861.5,194.5234,865.5,190.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555" x2="555" y1="125.6914" y2="163.5234"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555" x2="399" y1="163.5234" y2="163.5234"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="399" y1="163.5234" y2="178.5234"/><polygon fill="#A80036" points="395,168.5234,399,178.5234,403,168.5234,399,172.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="943.5" x2="1015" y1="190.5234" y2="190.5234"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015" x2="1015" y1="190.5234" y2="265.3159"/><polygon fill="#A80036" points="1011,255.3159,1015,265.3159,1019,255.3159,1015,259.3159" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015" x2="1015" y1="299.2847" y2="357.1714"/><polygon fill="#A80036" points="1011,347.1714,1015,357.1714,1019,347.1714,1015,351.1714" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="1015" y1="357.1714" y2="357.1714"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555" x2="555" y1="357.1714" y2="377.1714"/><polygon fill="#A80036" points="551,367.1714,555,377.1714,559,367.1714,555,371.1714" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f084c67ec7a24c3b56fd38c273a593b9]
2 2
@startuml
3 3

  
4 4
title **µRtWare**\nurtSubscriberCalculateUsefulness()\n
......
29 29
  note: Otherwise some QoS timer would have triggered.
30 30
elseif (RT class) then (FRT)
31 31
  if (Timing ok?) then (yes)
32
  note: ToDo: When is timing ok?
32 33
    :return ""1.0"";
33 34
  else (no)
34 35
    :return ""0.0"";
doc/activitydiagrams/subscriber/urtSubscriberCalculateUsefulness.uml
45 45
  note: Otherwise some QoS timer would have triggered.
46 46
elseif (RT class) then (FRT)
47 47
  if (Timing ok?) then (yes)
48
  note: ToDo: When is timing ok?
48 49
    :return ""1.0"";
49 50
  else (no)
50 51
    :return ""0.0"";
doc/activitydiagrams/subscriber/urtSubscriberFetchLatestMessage.svg
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="2036px" preserveAspectRatio="none" style="width:1846px;height:2036px;" version="1.1" viewBox="0 0 1846 2036" width="1846px" zoomAndPan="magnify"><defs><filter height="300%" id="f1gna4y7n2gv27" 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="877.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="309" x="767.5" y="47.6611">urtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="925" y="68.6143"/><path d="M582.5,72.8594 L582.5,249.3203 A0,0 0 0 0 582.5,249.3203 L887.5,249.3203 A0,0 0 0 0 887.5,249.3203 L887.5,165.0898 L907.5,161.0898 L887.5,157.0898 L887.5,82.8594 L877.5,72.8594 L582.5,72.8594 A0,0 0 0 0 582.5,72.8594 " fill="#FBFB77" filter="url(#f1gna4y7n2gv27)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M877.5,72.8594 L877.5,82.8594 L887.5,82.8594 L877.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="611" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="615" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="615" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="703" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="859" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="859" x2="887.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="284" x="588.5" y="105.0591">The subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="588.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="668.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="700.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="671" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="675" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="675" y="134.8247">payload</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="739" y="134.8247">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="799" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="799" x2="887.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="588.5" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="588.5" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="674.5" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="675" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="679" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="679" y="180.2231">bytes</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="727" y="180.2231">: size_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="795" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="795" x2="887.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="588.5" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="643" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="647" y="210.4888"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="647" y="210.4888">latency</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="711" y="210.4888">: urt_delay_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="827" y="210.4888"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="827" x2="887.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="588.5" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="588.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="670.5" y="241.2544">.</text><ellipse cx="917.5" cy="161.0898" fill="#000000" filter="url(#f1gna4y7n2gv27)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="877.5" y="269.3203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="887.5" y="290.459">lock topic</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="864,323.2891,971,323.2891,983,335.2891,971,347.2891,864,347.2891,852,335.2891,864,323.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="864" y="339.0972">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="832" y="332.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="983" y="332.6948">no</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="529.875" y="357.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="539.875" y="378.4277">lock next message</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1137.125,357.2891,1336.125,357.2891,1348.125,369.2891,1336.125,381.2891,1137.125,381.2891,1125.125,369.2891,1137.125,357.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="1137.125" y="373.0972">Has a message been read before?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1105.125" y="366.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1348.125" y="366.6948">no</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="166" x="932.375" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="146" x="942.375" y="412.4277">lock last read message</text><rect fill="#FFFFFF" filter="url(#f1gna4y7n2gv27)" height="319.9136" style="stroke: #000000; stroke-width: 2.0;" width="566" x="706.875" y="491.77"/><path d="M890.875,492.77 L890.875,501.0669 L880.875,511.0669 L706.875,511.0669 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="709.875" y="505.7651">find oldest valid message</text><path d="M716.875,532.4849 L716.875,557.6177 A0,0 0 0 0 716.875,557.6177 L926.875,557.6177 A0,0 0 0 0 926.875,557.6177 L926.875,550.4849 L946.875,545.0513 L926.875,542.4849 L926.875,542.4849 L916.875,532.4849 L716.875,532.4849 A0,0 0 0 0 716.875,532.4849 " fill="#FBFB77" filter="url(#f1gna4y7n2gv27)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M916.875,532.4849 L916.875,542.4849 L926.875,542.4849 L916.875,532.4849 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="189" x="722.875" y="549.5518">Locked two messages ahead.</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="946.875" y="528.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="956.875" y="549.2056">lock next message</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="453" x="788.875" y="637.7461"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="802.875" y="663.7461"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="152" x="812.875" y="684.8848">unlock current message</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="1002.875" y="663.7461"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="205" x="1012.875" y="684.8848">lock one message further ahead</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="453" x="788.875" y="717.7148"/><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="882.375,582.0356,1148.375,582.0356,1160.375,594.0356,1148.375,606.0356,882.375,606.0356,870.375,594.0356,882.375,582.0356" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1019.375" y="616.2461">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="266" x="882.375" y="597.8438">Timestamp of next is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="856.375" y="591.4414">no</text><path d="M734.875,770.1328 L734.875,795.2656 A0,0 0 0 0 734.875,795.2656 L918.875,795.2656 A0,0 0 0 0 918.875,795.2656 L918.875,788.1328 L938.875,782.6992 L918.875,780.1328 L918.875,780.1328 L908.875,770.1328 L734.875,770.1328 A0,0 0 0 0 734.875,770.1328 " fill="#FBFB77" filter="url(#f1gna4y7n2gv27)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M908.875,770.1328 L908.875,780.1328 L918.875,780.1328 L908.875,770.1328 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="163" x="740.875" y="787.1997">One message still locked.</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="938.875" y="765.7148"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="133" x="948.875" y="786.8535">unlock next message</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="903.375,445.2578,1127.375,445.2578,1139.375,457.2578,1127.375,469.2578,903.375,469.2578,891.375,457.2578,903.375,445.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1019.375" y="479.4683">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="903.375" y="461.0659">Message timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1139.375" y="454.6636">yes</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1015.375,831.6836,1027.375,843.6836,1015.375,855.6836,1003.375,843.6836,1015.375,831.6836" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="1314.875" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="1324.875" y="412.4277">lock message after topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1236.625,861.6836,1248.625,873.6836,1236.625,885.6836,1224.625,873.6836,1236.625,861.6836" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="917.5,891.6836,929.5,903.6836,917.5,915.6836,905.5,903.6836,917.5,891.6836" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f1gna4y7n2gv27)" height="522.687" style="stroke: #000000; stroke-width: 2.0;" width="990" x="421" y="926.4854"/><path d="M535,927.4854 L535,935.7822 L525,945.7822 L421,945.7822 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="424" y="940.4805">iterate to latest</text><path d="M575,967.2002 L575,992.333 A0,0 0 0 0 575,992.333 L785,992.333 A0,0 0 0 0 785,992.333 L785,985.2002 L805,979.7666 L785,977.2002 L785,977.2002 L775,967.2002 L575,967.2002 A0,0 0 0 0 575,967.2002 " fill="#FBFB77" filter="url(#f1gna4y7n2gv27)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M775,967.2002 L775,977.2002 L785,977.2002 L775,967.2002 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="189" x="581" y="984.2671">Locked two messages ahead.</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="805" y="962.7822"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="205" x="815" y="983.9209">lock one message further ahead</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="925" x="455" y="1072.4614"/><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="612" x="479" y="1146.8638"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="493" y="1172.8638"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="503" y="1194.0024">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="817" y="1172.8638"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="827" y="1194.0024">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="612" x="479" y="1226.8325"/><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="731.5,1098.4614,838.5,1098.4614,850.5,1110.4614,838.5,1122.4614,731.5,1122.4614,719.5,1110.4614,731.5,1098.4614" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="789" y="1132.6719">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="731.5" y="1114.2695">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="850.5" y="1107.8672">no</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="785,1257.2349,797,1269.2349,785,1281.2349,773,1269.2349,785,1257.2349" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="699" y="1301.2349"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="152" x="709" y="1322.3735">unlock current message</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="1141" y="1207.3481"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="205" x="1151" y="1228.4868">lock one message further ahead</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="925" x="455" y="1355.2036"/><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="756,1016.751,1079,1016.751,1091,1028.751,1079,1040.751,756,1040.751,744,1028.751,756,1016.751" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="921.5" y="1050.9614">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="323" x="756" y="1032.5591">Timestamp of next message is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="730" y="1026.1567">no</text><path d="M637,1407.6216 L637,1432.7544 A0,0 0 0 0 637,1432.7544 L821,1432.7544 A0,0 0 0 0 821,1432.7544 L821,1425.6216 L841,1420.188 L821,1417.6216 L821,1417.6216 L811,1407.6216 L637,1407.6216 A0,0 0 0 0 637,1407.6216 " fill="#FBFB77" filter="url(#f1gna4y7n2gv27)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M811,1407.6216 L811,1417.6216 L821,1417.6216 L811,1407.6216 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="163" x="643" y="1424.6885">One message still locked.</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="841" y="1403.2036"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="133" x="851" y="1424.3423">unlock next message</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1469.1724"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="22" y="1652.4614"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="332" x="32" y="1673.6001">set last fetched message pointer to locked message</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1578.0591"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="396" y="1652.4614"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="406" y="1673.6001">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="304" x="630" y="1652.4614"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="284" x="640" y="1673.6001">set latency value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="662,1604.0591,902,1604.0591,914,1616.0591,902,1628.0591,662,1628.0591,650,1616.0591,662,1604.0591" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="786" y="1638.2695">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="662" y="1619.8672">Optional output argument "latency" given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="914" y="1613.4648">no</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="782,1710.8325,794,1722.8325,782,1734.8325,770,1722.8325,782,1710.8325" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1754.8325"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="998" y="1652.4614"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="1008" y="1673.6001">copy message payload</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1543.5747"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="1213" y="1569.5747"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="1223" y="1590.7134">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1252.5" y="1686.9458"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1262.5" y="1708.0845">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1257.5,1638.5435,1464.5,1638.5435,1476.5,1650.5435,1464.5,1662.5435,1257.5,1662.5435,1245.5,1650.5435,1257.5,1638.5435" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1365" y="1672.7539">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="207" x="1257.5" y="1654.3516">At least one HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1476.5" y="1647.9492">no</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1361,1745.3169,1373,1757.3169,1361,1769.3169,1349,1757.3169,1361,1745.3169" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="1537" y="1652.4614"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="1547" y="1673.6001">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1789.3169"/><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1451.5,1495.1724,1558.5,1495.1724,1570.5,1507.1724,1558.5,1519.1724,1451.5,1519.1724,1439.5,1507.1724,1451.5,1495.1724" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1509" y="1529.3828">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="1451.5" y="1510.9805">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1570.5" y="1504.5781">no</text><polygon fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" points="1505,1815.3169,1517,1827.3169,1505,1839.3169,1493,1827.3169,1505,1815.3169" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1gna4y7n2gv27)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1859.3169"/><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="856.5" y="1885.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="866.5" y="1906.4556">unlock message</text><rect fill="#FEFECE" filter="url(#f1gna4y7n2gv27)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="869.5" y="1939.2856"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="879.5" y="1960.4243">unlock topic</text><path d="M704.5,1984.1216 L704.5,2024.3872 A0,0 0 0 0 704.5,2024.3872 L886.5,2024.3872 A0,0 0 0 0 886.5,2024.3872 L886.5,2008.2544 L906.5,2004.2544 L886.5,2000.2544 L886.5,1994.1216 L876.5,1984.1216 L704.5,1984.1216 A0,0 0 0 0 704.5,1984.1216 " fill="#FBFB77" filter="url(#f1gna4y7n2gv27)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876.5,1984.1216 L876.5,1994.1216 L886.5,1994.1216 L876.5,1984.1216 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="704.5" x2="719" y1="1996.688" y2="1996.688"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723" y="2000.6885"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="723" y="2000.6885">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="772" y="2000.6885"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="772" y="2000.6885">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="872" y="2000.6885"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="872" x2="886.5" y1="1996.688" y2="1996.688"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="710.5" y="2016.3213">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="763.5" y="2016.3213">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="867.5" y="2016.3213">.</text><ellipse cx="917.5" cy="2004.2544" fill="#FFFFFF" filter="url(#f1gna4y7n2gv27)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="917.5" cy="2004.2544" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="171.0898" y2="269.3203"/><polygon fill="#A80036" points="913.5,259.3203,917.5,269.3203,921.5,259.3203,917.5,263.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="888.875" x2="888.875" y1="643.7461" y2="663.7461"/><polygon fill="#A80036" points="884.875,653.7461,888.875,663.7461,892.875,653.7461,888.875,657.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115.375" x2="1115.375" y1="643.7461" y2="663.7461"/><polygon fill="#A80036" points="1111.375,653.7461,1115.375,663.7461,1119.375,653.7461,1115.375,657.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="888.875" x2="888.875" y1="697.7148" y2="717.7148"/><polygon fill="#A80036" points="884.875,707.7148,888.875,717.7148,892.875,707.7148,888.875,711.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115.375" x2="1115.375" y1="697.7148" y2="717.7148"/><polygon fill="#A80036" points="1111.375,707.7148,1115.375,717.7148,1119.375,707.7148,1115.375,711.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="606.0356" y2="637.7461"/><polygon fill="#A80036" points="1011.375,627.7461,1015.375,637.7461,1019.375,627.7461,1015.375,631.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="723.7148" y2="733.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1253.875" y1="733.7148" y2="733.7148"/><polygon fill="#A80036" points="1249.875,672.3281,1253.875,662.3281,1257.875,672.3281,1253.875,668.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.875" x2="1253.875" y1="594.0356" y2="733.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.875" x2="1160.375" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="1170.375,590.0356,1160.375,594.0356,1170.375,598.0356,1166.375,594.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="870.375" x2="776.875" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="772.875,658.3281,776.875,668.3281,780.875,658.3281,776.875,662.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="776.875" x2="776.875" y1="594.0356" y2="745.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="776.875" x2="1015.375" y1="745.7148" y2="745.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="745.7148" y2="765.7148"/><polygon fill="#A80036" points="1011.375,755.7148,1015.375,765.7148,1019.375,755.7148,1015.375,759.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="562.0356" y2="582.0356"/><polygon fill="#A80036" points="1011.375,572.0356,1015.375,582.0356,1019.375,572.0356,1015.375,576.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="469.2578" y2="528.0669"/><polygon fill="#A80036" points="1011.375,518.0669,1015.375,528.0669,1019.375,518.0669,1015.375,522.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1139.375" x2="1282.875" y1="457.2578" y2="457.2578"/><polygon fill="#A80036" points="1278.875,644.1797,1282.875,654.1797,1286.875,644.1797,1282.875,648.1797" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1282.875" x2="1282.875" y1="457.2578" y2="843.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1282.875" x2="1027.375" y1="843.6836" y2="843.6836"/><polygon fill="#A80036" points="1037.375,839.6836,1027.375,843.6836,1037.375,847.6836,1033.375,843.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="799.6836" y2="831.6836"/><polygon fill="#A80036" points="1011.375,821.6836,1015.375,831.6836,1019.375,821.6836,1015.375,825.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="425.2578" y2="445.2578"/><polygon fill="#A80036" points="1011.375,435.2578,1015.375,445.2578,1019.375,435.2578,1015.375,439.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1125.125" x2="1015.375" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="1011.375,381.2891,1015.375,391.2891,1019.375,381.2891,1015.375,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1348.125" x2="1457.875" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1457.875" x2="1457.875" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="1453.875,381.2891,1457.875,391.2891,1461.875,381.2891,1457.875,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="855.6836" y2="873.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1224.625" y1="873.6836" y2="873.6836"/><polygon fill="#A80036" points="1214.625,869.6836,1224.625,873.6836,1214.625,877.6836,1218.625,873.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1457.875" x2="1457.875" y1="425.2578" y2="873.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1457.875" x2="1248.625" y1="873.6836" y2="873.6836"/><polygon fill="#A80036" points="1258.625,869.6836,1248.625,873.6836,1258.625,877.6836,1254.625,873.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852" x2="598.375" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="598.375" x2="598.375" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="594.375,347.2891,598.375,357.2891,602.375,347.2891,598.375,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983" x2="1236.625" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1236.625" x2="1236.625" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="1232.625,347.2891,1236.625,357.2891,1240.625,347.2891,1236.625,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="598.375" x2="598.375" y1="391.2578" y2="903.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="598.375" x2="905.5" y1="903.6836" y2="903.6836"/><polygon fill="#A80036" points="895.5,899.6836,905.5,903.6836,895.5,907.6836,899.5,903.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1236.625" x2="1236.625" y1="885.6836" y2="903.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1236.625" x2="929.5" y1="903.6836" y2="903.6836"/><polygon fill="#A80036" points="939.5,899.6836,929.5,903.6836,939.5,907.6836,935.5,903.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="303.2891" y2="323.2891"/><polygon fill="#A80036" points="913.5,313.2891,917.5,323.2891,921.5,313.2891,917.5,317.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="641" x2="641" y1="1152.8638" y2="1172.8638"/><polygon fill="#A80036" points="637,1162.8638,641,1172.8638,645,1162.8638,641,1166.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="947" x2="947" y1="1152.8638" y2="1172.8638"/><polygon fill="#A80036" points="943,1162.8638,947,1172.8638,951,1162.8638,947,1166.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="641" x2="641" y1="1206.8325" y2="1226.8325"/><polygon fill="#A80036" points="637,1216.8325,641,1226.8325,645,1216.8325,641,1220.8325" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="947" x2="947" y1="1206.8325" y2="1226.8325"/><polygon fill="#A80036" points="943,1216.8325,947,1226.8325,951,1216.8325,947,1220.8325" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785" x2="785" y1="1122.4614" y2="1146.8638"/><polygon fill="#A80036" points="781,1136.8638,785,1146.8638,789,1136.8638,785,1140.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="850.5" x2="1101" y1="1110.4614" y2="1110.4614"/><polygon fill="#A80036" points="1097,1179.8481,1101,1189.8481,1105,1179.8481,1101,1183.8481" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1101" x2="1101" y1="1110.4614" y2="1269.2349"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1101" x2="797" y1="1269.2349" y2="1269.2349"/><polygon fill="#A80036" points="807,1265.2349,797,1269.2349,807,1273.2349,803,1269.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785" x2="785" y1="1232.8325" y2="1257.2349"/><polygon fill="#A80036" points="781,1247.2349,785,1257.2349,789,1247.2349,785,1251.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785" x2="785" y1="1281.2349" y2="1301.2349"/><polygon fill="#A80036" points="781,1291.2349,785,1301.2349,789,1291.2349,785,1295.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785" x2="785" y1="1078.4614" y2="1098.4614"/><polygon fill="#A80036" points="781,1088.4614,785,1098.4614,789,1088.4614,785,1092.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.5" x2="1253.5" y1="1078.4614" y2="1207.3481"/><polygon fill="#A80036" points="1249.5,1197.3481,1253.5,1207.3481,1257.5,1197.3481,1253.5,1201.3481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785" x2="785" y1="1335.2036" y2="1355.2036"/><polygon fill="#A80036" points="781,1345.2036,785,1355.2036,789,1345.2036,785,1349.2036" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.5" x2="1253.5" y1="1241.3169" y2="1355.2036"/><polygon fill="#A80036" points="1249.5,1345.2036,1253.5,1355.2036,1257.5,1345.2036,1253.5,1349.2036" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1040.751" y2="1072.4614"/><polygon fill="#A80036" points="913.5,1062.4614,917.5,1072.4614,921.5,1062.4614,917.5,1066.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1361.2036" y2="1371.2036"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="1392" y1="1371.2036" y2="1371.2036"/><polygon fill="#A80036" points="1388,1215.9302,1392,1205.9302,1396,1215.9302,1392,1211.9302" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1392" x2="1392" y1="1028.751" y2="1371.2036"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1392" x2="1091" y1="1028.751" y2="1028.751"/><polygon fill="#A80036" points="1101,1024.751,1091,1028.751,1101,1032.751,1097,1028.751" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="744" x2="443" y1="1028.751" y2="1028.751"/><polygon fill="#A80036" points="439,1201.9302,443,1211.9302,447,1201.9302,443,1205.9302" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="443" x2="443" y1="1028.751" y2="1383.2036"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="443" x2="917.5" y1="1383.2036" y2="1383.2036"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1383.2036" y2="1403.2036"/><polygon fill="#A80036" points="913.5,1393.2036,917.5,1403.2036,921.5,1393.2036,917.5,1397.2036" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="996.751" y2="1016.751"/><polygon fill="#A80036" points="913.5,1006.751,917.5,1016.751,921.5,1006.751,917.5,1010.751" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="915.6836" y2="962.7822"/><polygon fill="#A80036" points="913.5,952.7822,917.5,962.7822,921.5,952.7822,917.5,956.7822" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1628.0591" y2="1652.4614"/><polygon fill="#A80036" points="778,1642.4614,782,1652.4614,786,1642.4614,782,1646.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="914" x2="944" y1="1616.0591" y2="1616.0591"/><polygon fill="#A80036" points="940,1659.4458,944,1669.4458,948,1659.4458,944,1663.4458" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="944" y1="1616.0591" y2="1722.8325"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="794" y1="1722.8325" y2="1722.8325"/><polygon fill="#A80036" points="804,1718.8325,794,1722.8325,804,1726.8325,800,1722.8325" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1686.4302" y2="1710.8325"/><polygon fill="#A80036" points="778,1700.8325,782,1710.8325,786,1700.8325,782,1704.8325" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1584.0591" y2="1652.4614"/><polygon fill="#A80036" points="490,1642.4614,494,1652.4614,498,1642.4614,494,1646.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1584.0591" y2="1604.0591"/><polygon fill="#A80036" points="778,1594.0591,782,1604.0591,786,1594.0591,782,1598.0591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1686.4302" y2="1754.8325"/><polygon fill="#A80036" points="490,1744.8325,494,1754.8325,498,1744.8325,494,1748.8325" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1734.8325" y2="1754.8325"/><polygon fill="#A80036" points="778,1744.8325,782,1754.8325,786,1744.8325,782,1748.8325" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1662.5435" y2="1686.9458"/><polygon fill="#A80036" points="1357,1676.9458,1361,1686.9458,1365,1676.9458,1361,1680.9458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1476.5" x2="1488.5" y1="1650.5435" y2="1650.5435"/><polygon fill="#A80036" points="1484.5,1693.9302,1488.5,1703.9302,1492.5,1693.9302,1488.5,1697.9302" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1488.5" x2="1488.5" y1="1650.5435" y2="1757.3169"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1488.5" x2="1373" y1="1757.3169" y2="1757.3169"/><polygon fill="#A80036" points="1383,1753.3169,1373,1757.3169,1383,1761.3169,1379,1757.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1720.9146" y2="1745.3169"/><polygon fill="#A80036" points="1357,1735.3169,1361,1745.3169,1365,1735.3169,1361,1739.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1603.5435" y2="1638.5435"/><polygon fill="#A80036" points="1357,1628.5435,1361,1638.5435,1365,1628.5435,1361,1632.5435" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1549.5747" y2="1569.5747"/><polygon fill="#A80036" points="1357,1559.5747,1361,1569.5747,1365,1559.5747,1361,1563.5747" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1549.5747" y2="1652.4614"/><polygon fill="#A80036" points="1663,1642.4614,1667,1652.4614,1671,1642.4614,1667,1646.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1769.3169" y2="1789.3169"/><polygon fill="#A80036" points="1357,1779.3169,1361,1789.3169,1365,1779.3169,1361,1783.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1686.4302" y2="1789.3169"/><polygon fill="#A80036" points="1663,1779.3169,1667,1789.3169,1671,1779.3169,1667,1783.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1519.1724" y2="1543.5747"/><polygon fill="#A80036" points="1501,1533.5747,1505,1543.5747,1509,1533.5747,1505,1537.5747" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1570.5" x2="1819" y1="1507.1724" y2="1507.1724"/><polygon fill="#A80036" points="1815,1659.4458,1819,1669.4458,1823,1659.4458,1819,1663.4458" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1819" y1="1507.1724" y2="1827.3169"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1517" y1="1827.3169" y2="1827.3169"/><polygon fill="#A80036" points="1527,1823.3169,1517,1827.3169,1527,1831.3169,1523,1827.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1795.3169" y2="1815.3169"/><polygon fill="#A80036" points="1501,1805.3169,1505,1815.3169,1509,1805.3169,1505,1809.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1475.1724" y2="1652.4614"/><polygon fill="#A80036" points="194,1642.4614,198,1652.4614,202,1642.4614,198,1646.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1475.1724" y2="1578.0591"/><polygon fill="#A80036" points="672,1568.0591,676,1578.0591,680,1568.0591,676,1572.0591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1475.1724" y2="1652.4614"/><polygon fill="#A80036" points="1075.5,1642.4614,1079.5,1652.4614,1083.5,1642.4614,1079.5,1646.4614" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1475.1724" y2="1495.1724"/><polygon fill="#A80036" points="1501,1485.1724,1505,1495.1724,1509,1485.1724,1505,1489.1724" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1686.4302" y2="1859.3169"/><polygon fill="#A80036" points="194,1849.3169,198,1859.3169,202,1849.3169,198,1853.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1760.8325" y2="1859.3169"/><polygon fill="#A80036" points="672,1849.3169,676,1859.3169,680,1849.3169,676,1853.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1686.4302" y2="1859.3169"/><polygon fill="#A80036" points="1075.5,1849.3169,1079.5,1859.3169,1083.5,1849.3169,1079.5,1853.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1839.3169" y2="1859.3169"/><polygon fill="#A80036" points="1501,1849.3169,1505,1859.3169,1509,1849.3169,1505,1853.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1437.1724" y2="1469.1724"/><polygon fill="#A80036" points="913.5,1459.1724,917.5,1469.1724,921.5,1459.1724,917.5,1463.1724" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1865.3169" y2="1885.3169"/><polygon fill="#A80036" points="913.5,1875.3169,917.5,1885.3169,921.5,1875.3169,917.5,1879.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1919.2856" y2="1939.2856"/><polygon fill="#A80036" points="913.5,1929.2856,917.5,1939.2856,921.5,1929.2856,917.5,1933.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1973.2544" y2="1993.2544"/><polygon fill="#A80036" points="913.5,1983.2544,917.5,1993.2544,921.5,1983.2544,917.5,1987.2544" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[182a4b501eba656a340bd6dd5b9ad214]
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="1712px" preserveAspectRatio="none" style="width:1846px;height:1712px;" version="1.1" viewBox="0 0 1846 1712" width="1846px" zoomAndPan="magnify"><defs><filter height="300%" id="f1n5j7g2wxnm1t" 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="877.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="309" x="767.5" y="47.6611">urtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="925" y="68.6143"/><path d="M582.5,72.8594 L582.5,249.3203 A0,0 0 0 0 582.5,249.3203 L887.5,249.3203 A0,0 0 0 0 887.5,249.3203 L887.5,165.0898 L907.5,161.0898 L887.5,157.0898 L887.5,82.8594 L877.5,72.8594 L582.5,72.8594 A0,0 0 0 0 582.5,72.8594 " fill="#FBFB77" filter="url(#f1n5j7g2wxnm1t)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M877.5,72.8594 L877.5,82.8594 L887.5,82.8594 L877.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="611" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="615" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="615" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="703" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="859" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="859" x2="887.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="284" x="588.5" y="105.0591">The subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="588.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="668.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="700.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="671" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="675" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="675" y="134.8247">payload</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="739" y="134.8247">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="799" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="799" x2="887.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="588.5" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="588.5" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="674.5" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="675" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="679" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="679" y="180.2231">bytes</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="727" y="180.2231">: size_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="795" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="795" x2="887.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="588.5" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="643" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="647" y="210.4888"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="647" y="210.4888">latency</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="711" y="210.4888">: urt_delay_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="827" y="210.4888"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="827" x2="887.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="588.5" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="588.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="670.5" y="241.2544">.</text><ellipse cx="917.5" cy="161.0898" fill="#000000" filter="url(#f1n5j7g2wxnm1t)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="877.5" y="269.3203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="887.5" y="290.459">lock topic</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="864,323.2891,971,323.2891,983,335.2891,971,347.2891,864,347.2891,852,335.2891,864,323.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="864" y="339.0972">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="832" y="332.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="983" y="332.6948">no</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="598.375" y="357.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="608.375" y="378.4277">access next message</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1059.125,357.2891,1258.125,357.2891,1270.125,369.2891,1258.125,381.2891,1059.125,381.2891,1047.125,369.2891,1059.125,357.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="1059.125" y="373.0972">Has a message been read before?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1027.125" y="366.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1270.125" y="366.6948">no</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="880.875" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="890.875" y="412.4277">access last read message</text><rect fill="#FFFFFF" filter="url(#f1n5j7g2wxnm1t)" height="213.9448" style="stroke: #000000; stroke-width: 2.0;" width="355" x="794.375" y="491.77"/><path d="M978.375,492.77 L978.375,501.0669 L968.375,511.0669 L794.375,511.0669 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="797.375" y="505.7651">find oldest valid message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="895.375" y="528.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="905.375" y="549.2056">access next message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="888.875" y="637.7461"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="898.875" y="658.8848">iterate by one message</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="840.375,582.0356,1106.375,582.0356,1118.375,594.0356,1106.375,606.0356,840.375,606.0356,828.375,594.0356,840.375,582.0356" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="977.375" y="616.2461">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="266" x="840.375" y="597.8438">Timestamp of next is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="814.375" y="591.4414">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="861.375,445.2578,1085.375,445.2578,1097.375,457.2578,1085.375,469.2578,861.375,469.2578,849.375,457.2578,861.375,445.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="977.375" y="479.4683">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="861.375" y="461.0659">Message timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1097.375" y="454.6636">yes</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="973.375,725.7148,985.375,737.7148,973.375,749.7148,961.375,737.7148,973.375,725.7148" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="305" x="1191.375" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="285" x="1201.375" y="412.4277">access message after topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1158.625,755.7148,1170.625,767.7148,1158.625,779.7148,1146.625,767.7148,1158.625,755.7148" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="917.5,785.7148,929.5,797.7148,917.5,809.7148,905.5,797.7148,917.5,785.7148" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f1n5j7g2wxnm1t)" height="358.3472" style="stroke: #000000; stroke-width: 2.0;" width="709" x="567.5" y="820.5166"/><path d="M681.5,821.5166 L681.5,829.8135 L671.5,839.8135 L567.5,839.8135 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="570.5" y="834.5117">iterate to latest</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="612" x="611.5" y="960.9263"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="625.5" y="986.9263"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="635.5" y="1008.0649">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="949.5" y="986.9263"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="959.5" y="1008.0649">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="612" x="611.5" y="1040.895"/><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="864,912.5239,971,912.5239,983,924.5239,971,936.5239,864,936.5239,852,924.5239,864,912.5239" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="921.5" y="946.7344">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="864" y="928.332">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="983" y="921.9297">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="917.5,1066.895,929.5,1078.895,917.5,1090.895,905.5,1078.895,917.5,1066.895" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="833" y="1110.895"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="843" y="1132.0337">iterate by one message</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="756,856.8135,1079,856.8135,1091,868.8135,1079,880.8135,756,880.8135,744,868.8135,756,856.8135" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="921.5" y="891.0239">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="323" x="756" y="872.6216">Timestamp of next message is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="730" y="866.2192">no</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1198.8638"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="22" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="332" x="32" y="1403.2915">set last fetched message pointer to locked message</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1307.7505"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="396" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="406" y="1403.2915">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="304" x="630" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="284" x="640" y="1403.2915">set latency value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="662,1333.7505,902,1333.7505,914,1345.7505,902,1357.7505,662,1357.7505,650,1345.7505,662,1333.7505" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="786" y="1367.9609">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="662" y="1349.5586">Optional output argument "latency" given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="914" y="1343.1563">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="782,1440.5239,794,1452.5239,782,1464.5239,770,1452.5239,782,1440.5239" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1484.5239"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="998" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="1008" y="1403.2915">copy message payload</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1273.2661"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="1213" y="1299.2661"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="1223" y="1320.4048">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1252.5" y="1416.6372"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1262.5" y="1437.7759">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1257.5,1368.2349,1464.5,1368.2349,1476.5,1380.2349,1464.5,1392.2349,1257.5,1392.2349,1245.5,1380.2349,1257.5,1368.2349" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1365" y="1402.4453">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="207" x="1257.5" y="1384.043">At least one HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1476.5" y="1377.6406">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1361,1475.0083,1373,1487.0083,1361,1499.0083,1349,1487.0083,1361,1475.0083" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="1537" y="1382.1528"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="1547" y="1403.2915">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1519.0083"/><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1451.5,1224.8638,1558.5,1224.8638,1570.5,1236.8638,1558.5,1248.8638,1451.5,1248.8638,1439.5,1236.8638,1451.5,1224.8638" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1509" y="1259.0742">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="1451.5" y="1240.6719">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1570.5" y="1234.2695">no</text><polygon fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" points="1505,1545.0083,1517,1557.0083,1505,1569.0083,1493,1557.0083,1505,1545.0083" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1n5j7g2wxnm1t)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1589.0083"/><rect fill="#FEFECE" filter="url(#f1n5j7g2wxnm1t)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="869.5" y="1615.0083"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="879.5" y="1636.147">unlock topic</text><path d="M704.5,1659.8442 L704.5,1700.1099 A0,0 0 0 0 704.5,1700.1099 L886.5,1700.1099 A0,0 0 0 0 886.5,1700.1099 L886.5,1683.9771 L906.5,1679.9771 L886.5,1675.9771 L886.5,1669.8442 L876.5,1659.8442 L704.5,1659.8442 A0,0 0 0 0 704.5,1659.8442 " fill="#FBFB77" filter="url(#f1n5j7g2wxnm1t)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876.5,1659.8442 L876.5,1669.8442 L886.5,1669.8442 L876.5,1659.8442 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="704.5" x2="719" y1="1672.4106" y2="1672.4106"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723" y="1676.4111"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="723" y="1676.4111">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="772" y="1676.4111"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="772" y="1676.4111">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="872" y="1676.4111"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="872" x2="886.5" y1="1672.4106" y2="1672.4106"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="710.5" y="1692.0439">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="763.5" y="1692.0439">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="867.5" y="1692.0439">.</text><ellipse cx="917.5" cy="1679.9771" fill="#FFFFFF" filter="url(#f1n5j7g2wxnm1t)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="917.5" cy="1679.9771" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="171.0898" y2="269.3203"/><polygon fill="#A80036" points="913.5,259.3203,917.5,269.3203,921.5,259.3203,917.5,263.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="606.0356" y2="637.7461"/><polygon fill="#A80036" points="969.375,627.7461,973.375,637.7461,977.375,627.7461,973.375,631.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="671.7148" y2="681.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="1130.375" y1="681.7148" y2="681.7148"/><polygon fill="#A80036" points="1126.375,646.3281,1130.375,636.3281,1134.375,646.3281,1130.375,642.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1130.375" x2="1130.375" y1="594.0356" y2="681.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1130.375" x2="1118.375" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="1128.375,590.0356,1118.375,594.0356,1128.375,598.0356,1124.375,594.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="828.375" x2="816.375" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="812.375,632.3281,816.375,642.3281,820.375,632.3281,816.375,636.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="816.375" x2="816.375" y1="594.0356" y2="693.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="816.375" x2="973.375" y1="693.7148" y2="693.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="693.7148" y2="725.7148"/><polygon fill="#A80036" points="969.375,715.7148,973.375,725.7148,977.375,715.7148,973.375,719.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="562.0356" y2="582.0356"/><polygon fill="#A80036" points="969.375,572.0356,973.375,582.0356,977.375,572.0356,973.375,576.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="469.2578" y2="528.0669"/><polygon fill="#A80036" points="969.375,518.0669,973.375,528.0669,977.375,518.0669,973.375,522.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1097.375" x2="1159.375" y1="457.2578" y2="457.2578"/><polygon fill="#A80036" points="1155.375,588.7896,1159.375,598.7896,1163.375,588.7896,1159.375,592.7896" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1159.375" x2="1159.375" y1="457.2578" y2="737.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1159.375" x2="985.375" y1="737.7148" y2="737.7148"/><polygon fill="#A80036" points="995.375,733.7148,985.375,737.7148,995.375,741.7148,991.375,737.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="425.2578" y2="445.2578"/><polygon fill="#A80036" points="969.375,435.2578,973.375,445.2578,977.375,435.2578,973.375,439.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1047.125" x2="973.375" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="969.375,381.2891,973.375,391.2891,977.375,381.2891,973.375,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1270.125" x2="1343.875" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343.875" x2="1343.875" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="1339.875,381.2891,1343.875,391.2891,1347.875,381.2891,1343.875,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="973.375" y1="749.7148" y2="767.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="973.375" x2="1146.625" y1="767.7148" y2="767.7148"/><polygon fill="#A80036" points="1136.625,763.7148,1146.625,767.7148,1136.625,771.7148,1140.625,767.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343.875" x2="1343.875" y1="425.2578" y2="767.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343.875" x2="1170.625" y1="767.7148" y2="767.7148"/><polygon fill="#A80036" points="1180.625,763.7148,1170.625,767.7148,1180.625,771.7148,1176.625,767.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852" x2="676.375" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676.375" x2="676.375" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="672.375,347.2891,676.375,357.2891,680.375,347.2891,676.375,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983" x2="1158.625" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.625" x2="1158.625" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="1154.625,347.2891,1158.625,357.2891,1162.625,347.2891,1158.625,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676.375" x2="676.375" y1="391.2578" y2="797.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676.375" x2="905.5" y1="797.7148" y2="797.7148"/><polygon fill="#A80036" points="895.5,793.7148,905.5,797.7148,895.5,801.7148,899.5,797.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.625" x2="1158.625" y1="779.7148" y2="797.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.625" x2="929.5" y1="797.7148" y2="797.7148"/><polygon fill="#A80036" points="939.5,793.7148,929.5,797.7148,939.5,801.7148,935.5,797.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="303.2891" y2="323.2891"/><polygon fill="#A80036" points="913.5,313.2891,917.5,323.2891,921.5,313.2891,917.5,317.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="773.5" x2="773.5" y1="966.9263" y2="986.9263"/><polygon fill="#A80036" points="769.5,976.9263,773.5,986.9263,777.5,976.9263,773.5,980.9263" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="966.9263" y2="986.9263"/><polygon fill="#A80036" points="1075.5,976.9263,1079.5,986.9263,1083.5,976.9263,1079.5,980.9263" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="773.5" x2="773.5" y1="1020.895" y2="1040.895"/><polygon fill="#A80036" points="769.5,1030.895,773.5,1040.895,777.5,1030.895,773.5,1034.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1020.895" y2="1040.895"/><polygon fill="#A80036" points="1075.5,1030.895,1079.5,1040.895,1083.5,1030.895,1079.5,1034.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="936.5239" y2="960.9263"/><polygon fill="#A80036" points="913.5,950.9263,917.5,960.9263,921.5,950.9263,917.5,954.9263" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983" x2="1233.5" y1="924.5239" y2="924.5239"/><polygon fill="#A80036" points="1229.5,993.9106,1233.5,1003.9106,1237.5,993.9106,1233.5,997.9106" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1233.5" x2="1233.5" y1="924.5239" y2="1078.895"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1233.5" x2="929.5" y1="1078.895" y2="1078.895"/><polygon fill="#A80036" points="939.5,1074.895,929.5,1078.895,939.5,1082.895,935.5,1078.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1046.895" y2="1066.895"/><polygon fill="#A80036" points="913.5,1056.895,917.5,1066.895,921.5,1056.895,917.5,1060.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1090.895" y2="1110.895"/><polygon fill="#A80036" points="913.5,1100.895,917.5,1110.895,921.5,1100.895,917.5,1104.895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="880.8135" y2="912.5239"/><polygon fill="#A80036" points="913.5,902.5239,917.5,912.5239,921.5,902.5239,917.5,906.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1144.8638" y2="1154.8638"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="1257.5" y1="1154.8638" y2="1154.8638"/><polygon fill="#A80036" points="1253.5,1029.9927,1257.5,1019.9927,1261.5,1029.9927,1257.5,1025.9927" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1257.5" x2="1257.5" y1="868.8135" y2="1154.8638"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1257.5" x2="1091" y1="868.8135" y2="868.8135"/><polygon fill="#A80036" points="1101,864.8135,1091,868.8135,1101,872.8135,1097,868.8135" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="744" x2="589.5" y1="868.8135" y2="868.8135"/><polygon fill="#A80036" points="585.5,1015.9927,589.5,1025.9927,593.5,1015.9927,589.5,1019.9927" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="589.5" x2="589.5" y1="868.8135" y2="1166.8638"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="589.5" x2="917.5" y1="1166.8638" y2="1166.8638"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1166.8638" y2="1198.8638"/><polygon fill="#A80036" points="913.5,1188.8638,917.5,1198.8638,921.5,1188.8638,917.5,1192.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="809.7148" y2="856.8135"/><polygon fill="#A80036" points="913.5,846.8135,917.5,856.8135,921.5,846.8135,917.5,850.8135" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1357.7505" y2="1382.1528"/><polygon fill="#A80036" points="778,1372.1528,782,1382.1528,786,1372.1528,782,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="914" x2="944" y1="1345.7505" y2="1345.7505"/><polygon fill="#A80036" points="940,1389.1372,944,1399.1372,948,1389.1372,944,1393.1372" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="944" y1="1345.7505" y2="1452.5239"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="794" y1="1452.5239" y2="1452.5239"/><polygon fill="#A80036" points="804,1448.5239,794,1452.5239,804,1456.5239,800,1452.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1416.1216" y2="1440.5239"/><polygon fill="#A80036" points="778,1430.5239,782,1440.5239,786,1430.5239,782,1434.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1313.7505" y2="1382.1528"/><polygon fill="#A80036" points="490,1372.1528,494,1382.1528,498,1372.1528,494,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1313.7505" y2="1333.7505"/><polygon fill="#A80036" points="778,1323.7505,782,1333.7505,786,1323.7505,782,1327.7505" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1416.1216" y2="1484.5239"/><polygon fill="#A80036" points="490,1474.5239,494,1484.5239,498,1474.5239,494,1478.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1464.5239" y2="1484.5239"/><polygon fill="#A80036" points="778,1474.5239,782,1484.5239,786,1474.5239,782,1478.5239" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1392.2349" y2="1416.6372"/><polygon fill="#A80036" points="1357,1406.6372,1361,1416.6372,1365,1406.6372,1361,1410.6372" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1476.5" x2="1488.5" y1="1380.2349" y2="1380.2349"/><polygon fill="#A80036" points="1484.5,1423.6216,1488.5,1433.6216,1492.5,1423.6216,1488.5,1427.6216" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1488.5" x2="1488.5" y1="1380.2349" y2="1487.0083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1488.5" x2="1373" y1="1487.0083" y2="1487.0083"/><polygon fill="#A80036" points="1383,1483.0083,1373,1487.0083,1383,1491.0083,1379,1487.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1450.606" y2="1475.0083"/><polygon fill="#A80036" points="1357,1465.0083,1361,1475.0083,1365,1465.0083,1361,1469.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1333.2349" y2="1368.2349"/><polygon fill="#A80036" points="1357,1358.2349,1361,1368.2349,1365,1358.2349,1361,1362.2349" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1279.2661" y2="1299.2661"/><polygon fill="#A80036" points="1357,1289.2661,1361,1299.2661,1365,1289.2661,1361,1293.2661" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1279.2661" y2="1382.1528"/><polygon fill="#A80036" points="1663,1372.1528,1667,1382.1528,1671,1372.1528,1667,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1499.0083" y2="1519.0083"/><polygon fill="#A80036" points="1357,1509.0083,1361,1519.0083,1365,1509.0083,1361,1513.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1416.1216" y2="1519.0083"/><polygon fill="#A80036" points="1663,1509.0083,1667,1519.0083,1671,1509.0083,1667,1513.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1248.8638" y2="1273.2661"/><polygon fill="#A80036" points="1501,1263.2661,1505,1273.2661,1509,1263.2661,1505,1267.2661" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1570.5" x2="1819" y1="1236.8638" y2="1236.8638"/><polygon fill="#A80036" points="1815,1389.1372,1819,1399.1372,1823,1389.1372,1819,1393.1372" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1819" y1="1236.8638" y2="1557.0083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1517" y1="1557.0083" y2="1557.0083"/><polygon fill="#A80036" points="1527,1553.0083,1517,1557.0083,1527,1561.0083,1523,1557.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1525.0083" y2="1545.0083"/><polygon fill="#A80036" points="1501,1535.0083,1505,1545.0083,1509,1535.0083,1505,1539.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1204.8638" y2="1382.1528"/><polygon fill="#A80036" points="194,1372.1528,198,1382.1528,202,1372.1528,198,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1204.8638" y2="1307.7505"/><polygon fill="#A80036" points="672,1297.7505,676,1307.7505,680,1297.7505,676,1301.7505" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1204.8638" y2="1382.1528"/><polygon fill="#A80036" points="1075.5,1372.1528,1079.5,1382.1528,1083.5,1372.1528,1079.5,1376.1528" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1204.8638" y2="1224.8638"/><polygon fill="#A80036" points="1501,1214.8638,1505,1224.8638,1509,1214.8638,1505,1218.8638" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1416.1216" y2="1589.0083"/><polygon fill="#A80036" points="194,1579.0083,198,1589.0083,202,1579.0083,198,1583.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1490.5239" y2="1589.0083"/><polygon fill="#A80036" points="672,1579.0083,676,1589.0083,680,1579.0083,676,1583.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1416.1216" y2="1589.0083"/><polygon fill="#A80036" points="1075.5,1579.0083,1079.5,1589.0083,1083.5,1579.0083,1079.5,1583.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1569.0083" y2="1589.0083"/><polygon fill="#A80036" points="1501,1579.0083,1505,1589.0083,1509,1579.0083,1505,1583.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1595.0083" y2="1615.0083"/><polygon fill="#A80036" points="913.5,1605.0083,917.5,1615.0083,921.5,1605.0083,917.5,1609.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1648.9771" y2="1668.9771"/><polygon fill="#A80036" points="913.5,1658.9771,917.5,1668.9771,921.5,1658.9771,917.5,1662.9771" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[167292abbdf09640a655e5720c8b3dc1]
2 2
@startuml
3 3

  
4 4
title **µRtWare**\nurtSubscriberFetchLatestMessage()\n
......
32 32

  
33 33
:lock topic;
34 34
if (Is HRT subscriber?) then (yes)
35
  :lock next message;
35
  :access next message;
36 36
else (no)
37 37
  if (Has a message been read before?) then (yes)
38
    :lock last read message;
38
    :access last read message;
39 39
    if (Message timestamp equals local copy?) then (yes)
40 40
    else (no)
41 41
      partition "find oldest valid message" {
42
        :lock next message;
43
        note: Locked two messages ahead.
42
        :access next message;
44 43
        while (Timestamp of next is younger than of current?) is (yes)
45
          fork
46
            :unlock current message;
47
          fork again
48
            :lock one message further ahead;
49
          endfork
44
          :iterate by one message;
50 45
        endwhile (no)
51
        :unlock next message;
52
        note: One message still locked.
53 46
      }
54 47
    endif
55 48
  else (no)
56
    :lock message after topic's latest message;
49
    :access message after topic's latest message;
57 50
  endif
58 51
endif
59 52
partition "iterate to latest" {
60
  :lock one message further ahead;
61
  note: Locked two messages ahead.
62 53
  while (Timestamp of next message is younger than of current?) is (yes)
63
    fork
64
      if (Is HRT subscriber?) then (yes)
65
        fork
66
          :decrement HRT counter of current message;
67
        fork again
68
          :update QoS delay timer (@subscriber);
69
        endfork
70
      else (no)
71
      endif
72
      :unlock current message;
73
    fork again
74
      :lock one message further ahead;
75
    endfork
54
    if (Is HRT subscriber?) then (yes)
55
      fork
56
        :decrement HRT counter of current message;
57
      fork again
58
        :update QoS delay timer (@subscriber);
59
      endfork
60
    else (no)
61
    endif
62
    :iterate by one message;
76 63
  endwhile (no)
77
  :unlock next message;
78
  note: One message still locked.
79 64
}
80 65
fork
81 66
  :set last fetched message pointer to locked message;
......
104 89
  else (no)
105 90
  endif
106 91
endfork
107
:unlock message;
108 92
:unlock topic;
109 93

  
110 94

  
doc/activitydiagrams/subscriber/urtSubscriberFetchLatestMessage.uml
48 48

  
49 49
:lock topic;
50 50
if (Is HRT subscriber?) then (yes)
51
  :lock next message;
51
  :access next message;
52 52
else (no)
53 53
  if (Has a message been read before?) then (yes)
54
    :lock last read message;
54
    :access last read message;
55 55
    if (Message timestamp equals local copy?) then (yes)
56 56
    else (no)
57 57
      partition "find oldest valid message" {
58
        :lock next message;
59
        note: Locked two messages ahead.
58
        :access next message;
60 59
        while (Timestamp of next is younger than of current?) is (yes)
61
          fork
62
            :unlock current message;
63
          fork again
64
            :lock one message further ahead;
65
          endfork
60
          :iterate by one message;
66 61
        endwhile (no)
67
        :unlock next message;
68
        note: One message still locked.
69 62
      }
70 63
    endif
71 64
  else (no)
72
    :lock message after topic's latest message;
65
    :access message after topic's latest message;
73 66
  endif
74 67
endif
75 68
partition "iterate to latest" {
76
  :lock one message further ahead;
77
  note: Locked two messages ahead.
78 69
  while (Timestamp of next message is younger than of current?) is (yes)
79
    fork
80
      if (Is HRT subscriber?) then (yes)
81
        fork
82
          :decrement HRT counter of current message;
83
        fork again
84
          :update QoS delay timer (@subscriber);
85
        endfork
86
      else (no)
87
      endif
88
      :unlock current message;
89
    fork again
90
      :lock one message further ahead;
91
    endfork
70
    if (Is HRT subscriber?) then (yes)
71
      fork
72
        :decrement HRT counter of current message;
73
      fork again
74
        :update QoS delay timer (@subscriber);
75
      endfork
76
    else (no)
77
    endif
78
    :iterate by one message;
92 79
  endwhile (no)
93
  :unlock next message;
94
  note: One message still locked.
95 80
}
96 81
fork
97 82
  :set last fetched message pointer to locked message;
......
120 105
  else (no)
121 106
  endif
122 107
endfork
123
:unlock message;
124 108
:unlock topic;
125 109

  
126 110
/'### STOP & RETURN ##########################################################'/
doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.svg
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="1502px" preserveAspectRatio="none" style="width:1846px;height:1502px;" version="1.1" viewBox="0 0 1846 1502" width="1846px" zoomAndPan="magnify"><defs><filter height="300%" id="fxzoig5nbtsvt" 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="877.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="299" x="772.5" y="47.6611">urtSubscriberFetchNextMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="925" y="68.6143"/><path d="M582.5,72.8594 L582.5,249.3203 A0,0 0 0 0 582.5,249.3203 L887.5,249.3203 A0,0 0 0 0 887.5,249.3203 L887.5,165.0898 L907.5,161.0898 L887.5,157.0898 L887.5,82.8594 L877.5,72.8594 L582.5,72.8594 A0,0 0 0 0 582.5,72.8594 " fill="#FBFB77" filter="url(#fxzoig5nbtsvt)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M877.5,72.8594 L877.5,82.8594 L887.5,82.8594 L877.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="611" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="615" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="615" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="703" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="859" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="859" x2="887.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="284" x="588.5" y="105.0591">The subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="588.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="668.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="700.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="671" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="675" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="675" y="134.8247">payload</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="739" y="134.8247">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="799" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="799" x2="887.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="588.5" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="588.5" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="674.5" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="675" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="679" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="679" y="180.2231">bytes</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="727" y="180.2231">: size_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="795" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="795" x2="887.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="588.5" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="643" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="647" y="210.4888"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="647" y="210.4888">latency</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="711" y="210.4888">: urt_delay_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="827" y="210.4888"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="827" x2="887.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="588.5" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="588.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="670.5" y="241.2544">.</text><ellipse cx="917.5" cy="161.0898" fill="#000000" filter="url(#fxzoig5nbtsvt)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="877.5" y="269.3203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="887.5" y="290.459">lock topic</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="864,323.2891,971,323.2891,983,335.2891,971,347.2891,864,347.2891,852,335.2891,864,323.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="864" y="339.0972">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="832" y="332.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="983" y="332.6948">no</text><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="529.875" y="357.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="539.875" y="378.4277">lock next message</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="1137.125,357.2891,1336.125,357.2891,1348.125,369.2891,1336.125,381.2891,1137.125,381.2891,1125.125,369.2891,1137.125,357.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="1137.125" y="373.0972">Has a message been read before?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1105.125" y="366.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1348.125" y="366.6948">no</text><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="166" x="932.375" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="146" x="942.375" y="412.4277">lock last read message</text><rect fill="#FFFFFF" filter="url(#fxzoig5nbtsvt)" height="319.9136" style="stroke: #000000; stroke-width: 2.0;" width="566" x="706.875" y="491.77"/><path d="M890.875,492.77 L890.875,501.0669 L880.875,511.0669 L706.875,511.0669 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="709.875" y="505.7651">find oldest valid message</text><path d="M716.875,532.4849 L716.875,557.6177 A0,0 0 0 0 716.875,557.6177 L926.875,557.6177 A0,0 0 0 0 926.875,557.6177 L926.875,550.4849 L946.875,545.0513 L926.875,542.4849 L926.875,542.4849 L916.875,532.4849 L716.875,532.4849 A0,0 0 0 0 716.875,532.4849 " fill="#FBFB77" filter="url(#fxzoig5nbtsvt)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M916.875,532.4849 L916.875,542.4849 L926.875,542.4849 L916.875,532.4849 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="189" x="722.875" y="549.5518">Locked two messages ahead.</text><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="946.875" y="528.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="956.875" y="549.2056">lock next message</text><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="453" x="788.875" y="637.7461"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="802.875" y="663.7461"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="152" x="812.875" y="684.8848">unlock current message</text><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="225" x="1002.875" y="663.7461"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="205" x="1012.875" y="684.8848">lock one message further ahead</text><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="453" x="788.875" y="717.7148"/><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="853.875,582.0356,1176.875,582.0356,1188.875,594.0356,1176.875,606.0356,853.875,606.0356,841.875,594.0356,853.875,582.0356" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1019.375" y="616.2461">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="323" x="853.875" y="597.8438">Timestamp of next message is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="827.875" y="591.4414">no</text><path d="M734.875,770.1328 L734.875,795.2656 A0,0 0 0 0 734.875,795.2656 L918.875,795.2656 A0,0 0 0 0 918.875,795.2656 L918.875,788.1328 L938.875,782.6992 L918.875,780.1328 L918.875,780.1328 L908.875,770.1328 L734.875,770.1328 A0,0 0 0 0 734.875,770.1328 " fill="#FBFB77" filter="url(#fxzoig5nbtsvt)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M908.875,770.1328 L908.875,780.1328 L918.875,780.1328 L908.875,770.1328 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="163" x="740.875" y="787.1997">One message still locked.</text><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="938.875" y="765.7148"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="133" x="948.875" y="786.8535">unlock next message</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="903.375,445.2578,1127.375,445.2578,1139.375,457.2578,1127.375,469.2578,903.375,469.2578,891.375,457.2578,903.375,445.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1019.375" y="479.4683">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="903.375" y="461.0659">Message timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1139.375" y="454.6636">yes</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="1015.375,831.6836,1027.375,843.6836,1015.375,855.6836,1003.375,843.6836,1015.375,831.6836" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="1314.875" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="1324.875" y="412.4277">lock message after topic's latest message</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="1236.625,861.6836,1248.625,873.6836,1236.625,885.6836,1224.625,873.6836,1236.625,861.6836" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="917.5,891.6836,929.5,903.6836,917.5,915.6836,905.5,903.6836,917.5,891.6836" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="935.6836"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="22" y="1118.9727"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="332" x="32" y="1140.1113">set last fetched message pointer to locked message</text><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1044.5703"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="396" y="1118.9727"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="406" y="1140.1113">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="304" x="630" y="1118.9727"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="284" x="640" y="1140.1113">set latency value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="662,1070.5703,902,1070.5703,914,1082.5703,902,1094.5703,662,1094.5703,650,1082.5703,662,1070.5703" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="786" y="1104.7808">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="662" y="1086.3784">Optional output argument "latency" given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="914" y="1079.9761">no</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="782,1177.3438,794,1189.3438,782,1201.3438,770,1189.3438,782,1177.3438" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1221.3438"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="998" y="1118.9727"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="1008" y="1140.1113">copy message payload</text><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1010.0859"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="1213" y="1036.0859"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="1223" y="1057.2246">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1252.5" y="1153.457"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1262.5" y="1174.5957">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="1293.5,1105.0547,1428.5,1105.0547,1440.5,1117.0547,1428.5,1129.0547,1293.5,1129.0547,1281.5,1117.0547,1293.5,1105.0547" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1365" y="1139.2651">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1293.5" y="1120.8628">HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1440.5" y="1114.4604">no</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="1361,1211.8281,1373,1223.8281,1361,1235.8281,1349,1223.8281,1361,1211.8281" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="1537" y="1118.9727"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="1547" y="1140.1113">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1255.8281"/><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="1451.5,961.6836,1558.5,961.6836,1570.5,973.6836,1558.5,985.6836,1451.5,985.6836,1439.5,973.6836,1451.5,961.6836" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1509" y="995.894">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="1451.5" y="977.4917">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1570.5" y="971.0894">no</text><polygon fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" points="1505,1281.8281,1517,1293.8281,1505,1305.8281,1493,1293.8281,1505,1281.8281" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fxzoig5nbtsvt)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1325.8281"/><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="856.5" y="1351.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="866.5" y="1372.9668">unlock message</text><rect fill="#FEFECE" filter="url(#fxzoig5nbtsvt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="869.5" y="1405.7969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="879.5" y="1426.9355">unlock topic</text><path d="M704.5,1450.6328 L704.5,1490.8984 A0,0 0 0 0 704.5,1490.8984 L886.5,1490.8984 A0,0 0 0 0 886.5,1490.8984 L886.5,1474.7656 L906.5,1470.7656 L886.5,1466.7656 L886.5,1460.6328 L876.5,1450.6328 L704.5,1450.6328 A0,0 0 0 0 704.5,1450.6328 " fill="#FBFB77" filter="url(#fxzoig5nbtsvt)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876.5,1450.6328 L876.5,1460.6328 L886.5,1460.6328 L876.5,1450.6328 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="704.5" x2="719" y1="1463.1992" y2="1463.1992"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723" y="1467.1997"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="723" y="1467.1997">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="772" y="1467.1997"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="772" y="1467.1997">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="872" y="1467.1997"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="872" x2="886.5" y1="1463.1992" y2="1463.1992"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="710.5" y="1482.8325">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="763.5" y="1482.8325">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="867.5" y="1482.8325">.</text><ellipse cx="917.5" cy="1470.7656" fill="#FFFFFF" filter="url(#fxzoig5nbtsvt)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="917.5" cy="1470.7656" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="171.0898" y2="269.3203"/><polygon fill="#A80036" points="913.5,259.3203,917.5,269.3203,921.5,259.3203,917.5,263.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="888.875" x2="888.875" y1="643.7461" y2="663.7461"/><polygon fill="#A80036" points="884.875,653.7461,888.875,663.7461,892.875,653.7461,888.875,657.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115.375" x2="1115.375" y1="643.7461" y2="663.7461"/><polygon fill="#A80036" points="1111.375,653.7461,1115.375,663.7461,1119.375,653.7461,1115.375,657.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="888.875" x2="888.875" y1="697.7148" y2="717.7148"/><polygon fill="#A80036" points="884.875,707.7148,888.875,717.7148,892.875,707.7148,888.875,711.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115.375" x2="1115.375" y1="697.7148" y2="717.7148"/><polygon fill="#A80036" points="1111.375,707.7148,1115.375,717.7148,1119.375,707.7148,1115.375,711.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="606.0356" y2="637.7461"/><polygon fill="#A80036" points="1011.375,627.7461,1015.375,637.7461,1019.375,627.7461,1015.375,631.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="723.7148" y2="733.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1253.875" y1="733.7148" y2="733.7148"/><polygon fill="#A80036" points="1249.875,672.3281,1253.875,662.3281,1257.875,672.3281,1253.875,668.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.875" x2="1253.875" y1="594.0356" y2="733.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.875" x2="1188.875" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="1198.875,590.0356,1188.875,594.0356,1198.875,598.0356,1194.875,594.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="841.875" x2="776.875" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="772.875,658.3281,776.875,668.3281,780.875,658.3281,776.875,662.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="776.875" x2="776.875" y1="594.0356" y2="745.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="776.875" x2="1015.375" y1="745.7148" y2="745.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="745.7148" y2="765.7148"/><polygon fill="#A80036" points="1011.375,755.7148,1015.375,765.7148,1019.375,755.7148,1015.375,759.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="562.0356" y2="582.0356"/><polygon fill="#A80036" points="1011.375,572.0356,1015.375,582.0356,1019.375,572.0356,1015.375,576.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="469.2578" y2="528.0669"/><polygon fill="#A80036" points="1011.375,518.0669,1015.375,528.0669,1019.375,518.0669,1015.375,522.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1139.375" x2="1282.875" y1="457.2578" y2="457.2578"/><polygon fill="#A80036" points="1278.875,644.1797,1282.875,654.1797,1286.875,644.1797,1282.875,648.1797" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1282.875" x2="1282.875" y1="457.2578" y2="843.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1282.875" x2="1027.375" y1="843.6836" y2="843.6836"/><polygon fill="#A80036" points="1037.375,839.6836,1027.375,843.6836,1037.375,847.6836,1033.375,843.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="799.6836" y2="831.6836"/><polygon fill="#A80036" points="1011.375,821.6836,1015.375,831.6836,1019.375,821.6836,1015.375,825.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="425.2578" y2="445.2578"/><polygon fill="#A80036" points="1011.375,435.2578,1015.375,445.2578,1019.375,435.2578,1015.375,439.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1125.125" x2="1015.375" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="1011.375,381.2891,1015.375,391.2891,1019.375,381.2891,1015.375,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1348.125" x2="1457.875" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1457.875" x2="1457.875" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="1453.875,381.2891,1457.875,391.2891,1461.875,381.2891,1457.875,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1015.375" y1="855.6836" y2="873.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1015.375" x2="1224.625" y1="873.6836" y2="873.6836"/><polygon fill="#A80036" points="1214.625,869.6836,1224.625,873.6836,1214.625,877.6836,1218.625,873.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1457.875" x2="1457.875" y1="425.2578" y2="873.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1457.875" x2="1248.625" y1="873.6836" y2="873.6836"/><polygon fill="#A80036" points="1258.625,869.6836,1248.625,873.6836,1258.625,877.6836,1254.625,873.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852" x2="598.375" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="598.375" x2="598.375" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="594.375,347.2891,598.375,357.2891,602.375,347.2891,598.375,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983" x2="1236.625" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1236.625" x2="1236.625" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="1232.625,347.2891,1236.625,357.2891,1240.625,347.2891,1236.625,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="598.375" x2="598.375" y1="391.2578" y2="903.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="598.375" x2="905.5" y1="903.6836" y2="903.6836"/><polygon fill="#A80036" points="895.5,899.6836,905.5,903.6836,895.5,907.6836,899.5,903.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1236.625" x2="1236.625" y1="885.6836" y2="903.6836"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1236.625" x2="929.5" y1="903.6836" y2="903.6836"/><polygon fill="#A80036" points="939.5,899.6836,929.5,903.6836,939.5,907.6836,935.5,903.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="303.2891" y2="323.2891"/><polygon fill="#A80036" points="913.5,313.2891,917.5,323.2891,921.5,313.2891,917.5,317.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1094.5703" y2="1118.9727"/><polygon fill="#A80036" points="778,1108.9727,782,1118.9727,786,1108.9727,782,1112.9727" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="914" x2="944" y1="1082.5703" y2="1082.5703"/><polygon fill="#A80036" points="940,1125.957,944,1135.957,948,1125.957,944,1129.957" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="944" y1="1082.5703" y2="1189.3438"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="794" y1="1189.3438" y2="1189.3438"/><polygon fill="#A80036" points="804,1185.3438,794,1189.3438,804,1193.3438,800,1189.3438" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1152.9414" y2="1177.3438"/><polygon fill="#A80036" points="778,1167.3438,782,1177.3438,786,1167.3438,782,1171.3438" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1050.5703" y2="1118.9727"/><polygon fill="#A80036" points="490,1108.9727,494,1118.9727,498,1108.9727,494,1112.9727" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1050.5703" y2="1070.5703"/><polygon fill="#A80036" points="778,1060.5703,782,1070.5703,786,1060.5703,782,1064.5703" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1152.9414" y2="1221.3438"/><polygon fill="#A80036" points="490,1211.3438,494,1221.3438,498,1211.3438,494,1215.3438" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1201.3438" y2="1221.3438"/><polygon fill="#A80036" points="778,1211.3438,782,1221.3438,786,1211.3438,782,1215.3438" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1129.0547" y2="1153.457"/><polygon fill="#A80036" points="1357,1143.457,1361,1153.457,1365,1143.457,1361,1147.457" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1440.5" x2="1479.5" y1="1117.0547" y2="1117.0547"/><polygon fill="#A80036" points="1475.5,1160.4414,1479.5,1170.4414,1483.5,1160.4414,1479.5,1164.4414" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1479.5" x2="1479.5" y1="1117.0547" y2="1223.8281"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1479.5" x2="1373" y1="1223.8281" y2="1223.8281"/><polygon fill="#A80036" points="1383,1219.8281,1373,1223.8281,1383,1227.8281,1379,1223.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1187.4258" y2="1211.8281"/><polygon fill="#A80036" points="1357,1201.8281,1361,1211.8281,1365,1201.8281,1361,1205.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1070.0547" y2="1105.0547"/><polygon fill="#A80036" points="1357,1095.0547,1361,1105.0547,1365,1095.0547,1361,1099.0547" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1016.0859" y2="1036.0859"/><polygon fill="#A80036" points="1357,1026.0859,1361,1036.0859,1365,1026.0859,1361,1030.0859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1016.0859" y2="1118.9727"/><polygon fill="#A80036" points="1663,1108.9727,1667,1118.9727,1671,1108.9727,1667,1112.9727" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1235.8281" y2="1255.8281"/><polygon fill="#A80036" points="1357,1245.8281,1361,1255.8281,1365,1245.8281,1361,1249.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1152.9414" y2="1255.8281"/><polygon fill="#A80036" points="1663,1245.8281,1667,1255.8281,1671,1245.8281,1667,1249.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="985.6836" y2="1010.0859"/><polygon fill="#A80036" points="1501,1000.0859,1505,1010.0859,1509,1000.0859,1505,1004.0859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1570.5" x2="1819" y1="973.6836" y2="973.6836"/><polygon fill="#A80036" points="1815,1125.957,1819,1135.957,1823,1125.957,1819,1129.957" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1819" y1="973.6836" y2="1293.8281"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1517" y1="1293.8281" y2="1293.8281"/><polygon fill="#A80036" points="1527,1289.8281,1517,1293.8281,1527,1297.8281,1523,1293.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1261.8281" y2="1281.8281"/><polygon fill="#A80036" points="1501,1271.8281,1505,1281.8281,1509,1271.8281,1505,1275.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="941.6836" y2="1118.9727"/><polygon fill="#A80036" points="194,1108.9727,198,1118.9727,202,1108.9727,198,1112.9727" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="941.6836" y2="1044.5703"/><polygon fill="#A80036" points="672,1034.5703,676,1044.5703,680,1034.5703,676,1038.5703" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="941.6836" y2="1118.9727"/><polygon fill="#A80036" points="1075.5,1108.9727,1079.5,1118.9727,1083.5,1108.9727,1079.5,1112.9727" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="941.6836" y2="961.6836"/><polygon fill="#A80036" points="1501,951.6836,1505,961.6836,1509,951.6836,1505,955.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1152.9414" y2="1325.8281"/><polygon fill="#A80036" points="194,1315.8281,198,1325.8281,202,1315.8281,198,1319.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1227.3438" y2="1325.8281"/><polygon fill="#A80036" points="672,1315.8281,676,1325.8281,680,1315.8281,676,1319.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1152.9414" y2="1325.8281"/><polygon fill="#A80036" points="1075.5,1315.8281,1079.5,1325.8281,1083.5,1315.8281,1079.5,1319.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1305.8281" y2="1325.8281"/><polygon fill="#A80036" points="1501,1315.8281,1505,1325.8281,1509,1315.8281,1505,1319.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="915.6836" y2="935.6836"/><polygon fill="#A80036" points="913.5,925.6836,917.5,935.6836,921.5,925.6836,917.5,929.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1331.8281" y2="1351.8281"/><polygon fill="#A80036" points="913.5,1341.8281,917.5,1351.8281,921.5,1341.8281,917.5,1345.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1385.7969" y2="1405.7969"/><polygon fill="#A80036" points="913.5,1395.7969,917.5,1405.7969,921.5,1395.7969,917.5,1399.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1439.7656" y2="1459.7656"/><polygon fill="#A80036" points="913.5,1449.7656,917.5,1459.7656,921.5,1449.7656,917.5,1453.7656" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[804dba0a3dfc14e378c76df0975152bd]
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="1342px" preserveAspectRatio="none" style="width:1846px;height:1342px;" version="1.1" viewBox="0 0 1846 1342" width="1846px" zoomAndPan="magnify"><defs><filter height="300%" id="f1ebgccyfx45cb" 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="877.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="299" x="772.5" y="47.6611">urtSubscriberFetchNextMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="925" y="68.6143"/><path d="M582.5,72.8594 L582.5,249.3203 A0,0 0 0 0 582.5,249.3203 L887.5,249.3203 A0,0 0 0 0 887.5,249.3203 L887.5,165.0898 L907.5,161.0898 L887.5,157.0898 L887.5,82.8594 L877.5,72.8594 L582.5,72.8594 A0,0 0 0 0 582.5,72.8594 " fill="#FBFB77" filter="url(#f1ebgccyfx45cb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M877.5,72.8594 L877.5,82.8594 L887.5,82.8594 L877.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="611" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="615" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="615" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="703" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="859" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="859" x2="887.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="284" x="588.5" y="105.0591">The subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="588.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="668.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="700.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="671" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="675" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="675" y="134.8247">payload</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="739" y="134.8247">: void*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="799" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="799" x2="887.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="588.5" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="588.5" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="674.5" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="675" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="679" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="679" y="180.2231">bytes</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="727" y="180.2231">: size_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="795" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="795" x2="887.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="588.5" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="582.5" x2="643" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="647" y="210.4888"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="647" y="210.4888">latency</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="711" y="210.4888">: urt_delay_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="827" y="210.4888"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="827" x2="887.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="588.5" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="588.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="638.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="670.5" y="241.2544">.</text><ellipse cx="917.5" cy="161.0898" fill="#000000" filter="url(#f1ebgccyfx45cb)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="877.5" y="269.3203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="887.5" y="290.459">lock topic</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="864,323.2891,971,323.2891,983,335.2891,971,347.2891,864,347.2891,852,335.2891,864,323.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="864" y="339.0972">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="832" y="332.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="983" y="332.6948">no</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="577" y="357.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="587" y="378.4277">access next message</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1080.5,357.2891,1279.5,357.2891,1291.5,369.2891,1279.5,381.2891,1080.5,381.2891,1068.5,369.2891,1080.5,357.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="1080.5" y="373.0972">Has a message been read before?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1048.5" y="366.6948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1291.5" y="366.6948">no</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="888" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="898" y="412.4277">access last read message</text><rect fill="#FFFFFF" filter="url(#f1ebgccyfx45cb)" height="213.9448" style="stroke: #000000; stroke-width: 2.0;" width="412" x="773" y="491.77"/><path d="M957,492.77 L957,501.0669 L947,511.0669 L773,511.0669 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="776" y="505.7651">find oldest valid message</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="902.5" y="528.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="912.5" y="549.2056">access next message</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="896" y="637.7461"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="906" y="658.8848">iterate by one message</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="819,582.0356,1142,582.0356,1154,594.0356,1142,606.0356,819,606.0356,807,594.0356,819,582.0356" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="984.5" y="616.2461">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="323" x="819" y="597.8438">Timestamp of next message is younger than of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="793" y="591.4414">no</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="868.5,445.2578,1092.5,445.2578,1104.5,457.2578,1092.5,469.2578,868.5,469.2578,856.5,457.2578,868.5,445.2578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="984.5" y="479.4683">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="868.5" y="461.0659">Message timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1104.5" y="454.6636">yes</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="980.5,725.7148,992.5,737.7148,980.5,749.7148,968.5,737.7148,980.5,725.7148" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="305" x="1227" y="391.2891"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="285" x="1237" y="412.4277">access message after topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1180,755.7148,1192,767.7148,1180,779.7148,1168,767.7148,1180,755.7148" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="917.5,785.7148,929.5,797.7148,917.5,809.7148,905.5,797.7148,917.5,785.7148" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="829.7148"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="22" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="332" x="32" y="1034.1426">set last fetched message pointer to locked message</text><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="938.6016"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="396" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="406" y="1034.1426">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="304" x="630" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="284" x="640" y="1034.1426">set latency value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="662,964.6016,902,964.6016,914,976.6016,902,988.6016,662,988.6016,650,976.6016,662,964.6016" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="786" y="998.812">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="662" y="980.4097">Optional output argument "latency" given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="914" y="974.0073">no</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="782,1071.375,794,1083.375,782,1095.375,770,1083.375,782,1071.375" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="586" x="384" y="1115.375"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="998" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="1008" y="1034.1426">copy message payload</text><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="904.1172"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="1213" y="930.1172"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="1223" y="951.2559">decrement HRT counter of current message</text><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1252.5" y="1047.4883"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1262.5" y="1068.627">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1293.5,999.0859,1428.5,999.0859,1440.5,1011.0859,1428.5,1023.0859,1293.5,1023.0859,1281.5,1011.0859,1293.5,999.0859" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1365" y="1033.2964">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1293.5" y="1014.894">HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1440.5" y="1008.4917">no</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1361,1105.8594,1373,1117.8594,1361,1129.8594,1349,1117.8594,1361,1105.8594" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="1537" y="1013.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="1547" y="1034.1426">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="610" x="1199" y="1149.8594"/><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1451.5,855.7148,1558.5,855.7148,1570.5,867.7148,1558.5,879.7148,1451.5,879.7148,1439.5,867.7148,1451.5,855.7148" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1509" y="889.9253">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="1451.5" y="871.5229">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1570.5" y="865.1206">no</text><polygon fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" points="1505,1175.8594,1517,1187.8594,1505,1199.8594,1493,1187.8594,1505,1175.8594" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1ebgccyfx45cb)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1825" x="10" y="1219.8594"/><rect fill="#FEFECE" filter="url(#f1ebgccyfx45cb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="869.5" y="1245.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="879.5" y="1266.998">unlock topic</text><path d="M704.5,1290.6953 L704.5,1330.9609 A0,0 0 0 0 704.5,1330.9609 L886.5,1330.9609 A0,0 0 0 0 886.5,1330.9609 L886.5,1314.8281 L906.5,1310.8281 L886.5,1306.8281 L886.5,1300.6953 L876.5,1290.6953 L704.5,1290.6953 A0,0 0 0 0 704.5,1290.6953 " fill="#FBFB77" filter="url(#f1ebgccyfx45cb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876.5,1290.6953 L876.5,1300.6953 L886.5,1300.6953 L876.5,1290.6953 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="704.5" x2="719" y1="1303.2617" y2="1303.2617"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723" y="1307.2622"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="723" y="1307.2622">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="772" y="1307.2622"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="772" y="1307.2622">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="872" y="1307.2622"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="872" x2="886.5" y1="1303.2617" y2="1303.2617"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="710.5" y="1322.895">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="763.5" y="1322.895">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="867.5" y="1322.895">.</text><ellipse cx="917.5" cy="1310.8281" fill="#FFFFFF" filter="url(#f1ebgccyfx45cb)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="917.5" cy="1310.8281" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="171.0898" y2="269.3203"/><polygon fill="#A80036" points="913.5,259.3203,917.5,269.3203,921.5,259.3203,917.5,263.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="606.0356" y2="637.7461"/><polygon fill="#A80036" points="976.5,627.7461,980.5,637.7461,984.5,627.7461,980.5,631.7461" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="671.7148" y2="681.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="1166" y1="681.7148" y2="681.7148"/><polygon fill="#A80036" points="1162,646.3281,1166,636.3281,1170,646.3281,1166,642.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1166" x2="1166" y1="594.0356" y2="681.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1166" x2="1154" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="1164,590.0356,1154,594.0356,1164,598.0356,1160,594.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="807" x2="795" y1="594.0356" y2="594.0356"/><polygon fill="#A80036" points="791,632.3281,795,642.3281,799,632.3281,795,636.3281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="795" x2="795" y1="594.0356" y2="693.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="795" x2="980.5" y1="693.7148" y2="693.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="693.7148" y2="725.7148"/><polygon fill="#A80036" points="976.5,715.7148,980.5,725.7148,984.5,715.7148,980.5,719.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="562.0356" y2="582.0356"/><polygon fill="#A80036" points="976.5,572.0356,980.5,582.0356,984.5,572.0356,980.5,576.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="469.2578" y2="528.0669"/><polygon fill="#A80036" points="976.5,518.0669,980.5,528.0669,984.5,518.0669,980.5,522.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1104.5" x2="1195" y1="457.2578" y2="457.2578"/><polygon fill="#A80036" points="1191,588.7896,1195,598.7896,1199,588.7896,1195,592.7896" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1195" x2="1195" y1="457.2578" y2="737.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1195" x2="992.5" y1="737.7148" y2="737.7148"/><polygon fill="#A80036" points="1002.5,733.7148,992.5,737.7148,1002.5,741.7148,998.5,737.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="425.2578" y2="445.2578"/><polygon fill="#A80036" points="976.5,435.2578,980.5,445.2578,984.5,435.2578,980.5,439.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1068.5" x2="980.5" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="976.5,381.2891,980.5,391.2891,984.5,381.2891,980.5,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1291.5" x2="1379.5" y1="369.2891" y2="369.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1379.5" x2="1379.5" y1="369.2891" y2="391.2891"/><polygon fill="#A80036" points="1375.5,381.2891,1379.5,391.2891,1383.5,381.2891,1379.5,385.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="980.5" y1="749.7148" y2="767.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="980.5" x2="1168" y1="767.7148" y2="767.7148"/><polygon fill="#A80036" points="1158,763.7148,1168,767.7148,1158,771.7148,1162,767.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1379.5" x2="1379.5" y1="425.2578" y2="767.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1379.5" x2="1192" y1="767.7148" y2="767.7148"/><polygon fill="#A80036" points="1202,763.7148,1192,767.7148,1202,771.7148,1198,767.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852" x2="655" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="655" x2="655" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="651,347.2891,655,357.2891,659,347.2891,655,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983" x2="1180" y1="335.2891" y2="335.2891"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1180" x2="1180" y1="335.2891" y2="357.2891"/><polygon fill="#A80036" points="1176,347.2891,1180,357.2891,1184,347.2891,1180,351.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="655" x2="655" y1="391.2578" y2="797.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="655" x2="905.5" y1="797.7148" y2="797.7148"/><polygon fill="#A80036" points="895.5,793.7148,905.5,797.7148,895.5,801.7148,899.5,797.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1180" x2="1180" y1="779.7148" y2="797.7148"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1180" x2="929.5" y1="797.7148" y2="797.7148"/><polygon fill="#A80036" points="939.5,793.7148,929.5,797.7148,939.5,801.7148,935.5,797.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="303.2891" y2="323.2891"/><polygon fill="#A80036" points="913.5,313.2891,917.5,323.2891,921.5,313.2891,917.5,317.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="988.6016" y2="1013.0039"/><polygon fill="#A80036" points="778,1003.0039,782,1013.0039,786,1003.0039,782,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="914" x2="944" y1="976.6016" y2="976.6016"/><polygon fill="#A80036" points="940,1019.9883,944,1029.9883,948,1019.9883,944,1023.9883" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="944" y1="976.6016" y2="1083.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="944" x2="794" y1="1083.375" y2="1083.375"/><polygon fill="#A80036" points="804,1079.375,794,1083.375,804,1087.375,800,1083.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1046.9727" y2="1071.375"/><polygon fill="#A80036" points="778,1061.375,782,1071.375,786,1061.375,782,1065.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="944.6016" y2="1013.0039"/><polygon fill="#A80036" points="490,1003.0039,494,1013.0039,498,1003.0039,494,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="944.6016" y2="964.6016"/><polygon fill="#A80036" points="778,954.6016,782,964.6016,786,954.6016,782,958.6016" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="494" y1="1046.9727" y2="1115.375"/><polygon fill="#A80036" points="490,1105.375,494,1115.375,498,1105.375,494,1109.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782" x2="782" y1="1095.375" y2="1115.375"/><polygon fill="#A80036" points="778,1105.375,782,1115.375,786,1105.375,782,1109.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1023.0859" y2="1047.4883"/><polygon fill="#A80036" points="1357,1037.4883,1361,1047.4883,1365,1037.4883,1361,1041.4883" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1440.5" x2="1479.5" y1="1011.0859" y2="1011.0859"/><polygon fill="#A80036" points="1475.5,1054.4727,1479.5,1064.4727,1483.5,1054.4727,1479.5,1058.4727" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1479.5" x2="1479.5" y1="1011.0859" y2="1117.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1479.5" x2="1373" y1="1117.8594" y2="1117.8594"/><polygon fill="#A80036" points="1383,1113.8594,1373,1117.8594,1383,1121.8594,1379,1117.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1081.457" y2="1105.8594"/><polygon fill="#A80036" points="1357,1095.8594,1361,1105.8594,1365,1095.8594,1361,1099.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="964.0859" y2="999.0859"/><polygon fill="#A80036" points="1357,989.0859,1361,999.0859,1365,989.0859,1361,993.0859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="910.1172" y2="930.1172"/><polygon fill="#A80036" points="1357,920.1172,1361,930.1172,1365,920.1172,1361,924.1172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="910.1172" y2="1013.0039"/><polygon fill="#A80036" points="1663,1003.0039,1667,1013.0039,1671,1003.0039,1667,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1361" y1="1129.8594" y2="1149.8594"/><polygon fill="#A80036" points="1357,1139.8594,1361,1149.8594,1365,1139.8594,1361,1143.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1667" x2="1667" y1="1046.9727" y2="1149.8594"/><polygon fill="#A80036" points="1663,1139.8594,1667,1149.8594,1671,1139.8594,1667,1143.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="879.7148" y2="904.1172"/><polygon fill="#A80036" points="1501,894.1172,1505,904.1172,1509,894.1172,1505,898.1172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1570.5" x2="1819" y1="867.7148" y2="867.7148"/><polygon fill="#A80036" points="1815,1019.9883,1819,1029.9883,1823,1019.9883,1819,1023.9883" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1819" y1="867.7148" y2="1187.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="1517" y1="1187.8594" y2="1187.8594"/><polygon fill="#A80036" points="1527,1183.8594,1517,1187.8594,1527,1191.8594,1523,1187.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1155.8594" y2="1175.8594"/><polygon fill="#A80036" points="1501,1165.8594,1505,1175.8594,1509,1165.8594,1505,1169.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="835.7148" y2="1013.0039"/><polygon fill="#A80036" points="194,1003.0039,198,1013.0039,202,1003.0039,198,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="835.7148" y2="938.6016"/><polygon fill="#A80036" points="672,928.6016,676,938.6016,680,928.6016,676,932.6016" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="835.7148" y2="1013.0039"/><polygon fill="#A80036" points="1075.5,1003.0039,1079.5,1013.0039,1083.5,1003.0039,1079.5,1007.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="835.7148" y2="855.7148"/><polygon fill="#A80036" points="1501,845.7148,1505,855.7148,1509,845.7148,1505,849.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="198" y1="1046.9727" y2="1219.8594"/><polygon fill="#A80036" points="194,1209.8594,198,1219.8594,202,1209.8594,198,1213.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="676" y1="1121.375" y2="1219.8594"/><polygon fill="#A80036" points="672,1209.8594,676,1219.8594,680,1209.8594,676,1213.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079.5" x2="1079.5" y1="1046.9727" y2="1219.8594"/><polygon fill="#A80036" points="1075.5,1209.8594,1079.5,1219.8594,1083.5,1209.8594,1079.5,1213.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1505" x2="1505" y1="1199.8594" y2="1219.8594"/><polygon fill="#A80036" points="1501,1209.8594,1505,1219.8594,1509,1209.8594,1505,1213.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="809.7148" y2="829.7148"/><polygon fill="#A80036" points="913.5,819.7148,917.5,829.7148,921.5,819.7148,917.5,823.7148" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1225.8594" y2="1245.8594"/><polygon fill="#A80036" points="913.5,1235.8594,917.5,1245.8594,921.5,1235.8594,917.5,1239.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="917.5" x2="917.5" y1="1279.8281" y2="1299.8281"/><polygon fill="#A80036" points="913.5,1289.8281,917.5,1299.8281,921.5,1289.8281,917.5,1293.8281" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e08c7f0874ec9d4be907a4b7beeb2994]
2 2
@startuml
3 3

  
4 4
title **µRtWare**\nurtSubscriberFetchNextMessage()\n
......
32 32

  
33 33
:lock topic;
34 34
if (Is HRT subscriber?) then (yes)
35
  :lock next message;
35
  :access next message;
36 36
else (no)
37 37
  if (Has a message been read before?) then (yes)
38
    :lock last read message;
38
    :access last read message;
39 39
    if (Message timestamp equals local copy?) then (yes)
40 40
    else (no)
41 41
      partition "find oldest valid message" {
42
        :lock next message;
43
        note: Locked two messages ahead.
42
        :access next message;
44 43
        while (Timestamp of next message is younger than of current?) is (yes)
45
          fork
46
            :unlock current message;
47
          fork again
48
            :lock one message further ahead;
49
          endfork
44
          :iterate by one message;
50 45
        endwhile (no)
51
        :unlock next message;
52
        note: One message still locked.
53 46
      }
54 47
    endif
55 48
  else (no)
56
    :lock message after topic's latest message;
49
    :access message after topic's latest message;
57 50
  endif
58 51
endif
59 52
fork
......
83 76
  else (no)
84 77
  endif
85 78
endfork
86
:unlock message;
87 79
:unlock topic;
88 80

  
89 81

  
doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.uml
48 48

  
49 49
:lock topic;
50 50
if (Is HRT subscriber?) then (yes)
51
  :lock next message;
51
  :access next message;
52 52
else (no)
53 53
  if (Has a message been read before?) then (yes)
54
    :lock last read message;
54
    :access last read message;
55 55
    if (Message timestamp equals local copy?) then (yes)
56 56
    else (no)
57 57
      partition "find oldest valid message" {
58
        :lock next message;
59
        note: Locked two messages ahead.
58
        :access next message;
60 59
        while (Timestamp of next message is younger than of current?) is (yes)
61
          fork
62
            :unlock current message;
63
          fork again
64
            :lock one message further ahead;
65
          endfork
60
          :iterate by one message;
66 61
        endwhile (no)
67
        :unlock next message;
68
        note: One message still locked.
69 62
      }
70 63
    endif
71 64
  else (no)
72
    :lock message after topic's latest message;
65
    :access message after topic's latest message;
73 66
  endif
74 67
endif
75 68
fork
......
99 92
  else (no)
100 93
  endif
101 94
endfork
102
:unlock message;
103 95
:unlock topic;
104 96

  
105 97
/'### STOP & RETURN ##########################################################'/
doc/activitydiagrams/subscriber/urtSubscriberSubscribeFrt.svg
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="1079px" preserveAspectRatio="none" style="width:1747px;height:1079px;" version="1.1" viewBox="0 0 1747 1079" width="1747px" zoomAndPan="magnify"><defs><filter height="300%" id="f555gmqt6z79y" 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="828.375" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="158" x="793.875" y="47.6611">urtSubscriberFrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="875.875" y="68.6143"/><path d="M10,72.8594 L10,370.3828 A0,0 0 0 0 10,370.3828 L710,370.3828 A0,0 0 0 0 710,370.3828 L710,225.6211 L730,221.6211 L710,217.6211 L710,82.8594 L700,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#f555gmqt6z79y)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M700,72.8594 L700,82.8594 L710,82.8594 L700,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="236" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="240" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="240" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="328" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="484" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="484" x2="710" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="298" x="16" y="105.0591">The subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="276" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="280" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="280" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="328" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="444" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="444" x2="710" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="16" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="256" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="260" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="260" y="180.2231">messages</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="332" y="180.2231">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="464" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="464" x2="710" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="303" x="16" y="195.856">List of messages to be contributed to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="373" x="16" y="210.9888">Those messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="517" x="16" y="226.1216">Once a message was contributed, it cannot be removed from the topic anymore.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="268" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="272" y="240.7544"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="272" y="240.7544">deadline</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="344" y="240.7544">: urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="452" y="240.7544"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="452" x2="710" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="16" y="256.3872">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="16" y="271.52">A value of 0 indicates, that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="276" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="280" y="286.1528"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="280" y="286.1528">rate</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="320" y="286.1528">: urt_delay_t_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="444" y="286.1528"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="444" x2="710" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="621" x="16" y="301.7856">Expected minimum rate of new messages (= mamximum time between consecutive messages).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="309" x="16" y="316.9185">A value of 0 indicates, that rate is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="268" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="272" y="331.5513"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="48" x="272" y="331.5513">jitter</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="328" y="331.5513">: urt_delay_t_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="452" y="331.5513"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="452" x2="710" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="16" y="347.1841">Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="312" x="16" y="362.3169">A value of 0 indicates, that jitter is of no concern.</text><ellipse cx="740" cy="221.6211" fill="#000000" filter="url(#f555gmqt6z79y)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f555gmqt6z79y)" points="682.5,390.3828,797.5,390.3828,809.5,402.3828,797.5,414.3828,682.5,414.3828,670.5,402.3828,682.5,390.3828" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="682.5" y="406.1909">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="650.5" y="399.7886">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="809.5" y="399.7886">no</text><rect fill="#FEFECE" filter="url(#f555gmqt6z79y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="277.75" y="424.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="287.75" y="445.5215">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="330.75" y="445.5215">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f555gmqt6z79y)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="230" x="999.75" y="424.3828"/><rect fill="#FEFECE" filter="url(#f555gmqt6z79y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="1013.75" y="450.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="1023.75" y="471.5215">set FRT data</text><rect fill="#FEFECE" filter="url(#f555gmqt6z79y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1140.75" y="450.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1150.75" y="471.5215">set topic</text><rect fill="#000000" filter="url(#f555gmqt6z79y)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="230" x="999.75" y="504.3516"/><rect fill="#FEFECE" filter="url(#f555gmqt6z79y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1074.75" y="530.3516"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1084.75" y="551.4902">lock topic</text><rect fill="#000000" filter="url(#f555gmqt6z79y)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1264" x="472.75" y="584.3203"/><rect fill="#FFFFFF" filter="url(#f555gmqt6z79y)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="638" x="496.75" y="656.8325"/><path d="M653.75,657.8325 L653.75,666.1294 L643.75,676.1294 L496.75,676.1294 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="499.75" y="670.8276">contribute messages</text><rect fill="#FEFECE" filter="url(#f555gmqt6z79y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="578.75" y="693.1294"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="588.75" y="714.2681">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f555gmqt6z79y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="506.75" y="762.0981"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="516.75" y="783.2368">set next pointer of last message to contribute to the message after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#f555gmqt6z79y)" points="745.75,610.3203,885.75,610.3203,897.75,622.3203,885.75,634.3203,745.75,634.3203,733.75,622.3203,745.75,610.3203" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="819.75" y="644.5308">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="745.75" y="626.1284">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="897.75" y="619.7261">no</text><polygon fill="#FEFECE" filter="url(#f555gmqt6z79y)" points="815.75,828.0669,827.75,840.0669,815.75,852.0669,803.75,840.0669,815.75,828.0669" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f555gmqt6z79y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1184.75" y="719.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1194.75" y="740.604">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#f555gmqt6z79y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1507.75" y="719.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1517.75" y="740.604">register to topic's event source</text><rect fill="#000000" filter="url(#f555gmqt6z79y)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1264" x="472.75" y="872.0669"/><rect fill="#FEFECE" filter="url(#f555gmqt6z79y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1066.75" y="898.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1076.75" y="919.2056">unlock topic</text><rect fill="#FEFECE" filter="url(#f555gmqt6z79y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="1037.75" y="952.0356"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="1047.75" y="973.1743">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="1090.75" y="973.1743">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f555gmqt6z79y)" points="740,992.0044,752,1004.0044,740,1016.0044,728,1004.0044,740,992.0044" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M181,1026.8716 L181,1067.1372 A0,0 0 0 0 181,1067.1372 L709,1067.1372 A0,0 0 0 0 709,1067.1372 L709,1051.0044 L729,1047.0044 L709,1043.0044 L709,1036.8716 L699,1026.8716 L181,1026.8716 A0,0 0 0 0 181,1026.8716 " fill="#FBFB77" filter="url(#f555gmqt6z79y)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M699,1026.8716 L699,1036.8716 L709,1036.8716 L699,1026.8716 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="181" x2="368.5" y1="1039.438" y2="1039.438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="372.5" y="1043.4385"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="372.5" y="1043.4385">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="421.5" y="1043.4385"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="421.5" y="1043.4385">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="521.5" y="1043.4385"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="521.5" x2="709" y1="1039.438" y2="1039.438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="187" y="1059.0713">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="240" y="1059.0713">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="372" y="1059.0713">if the subscriber was already associated to a topic.</text><ellipse cx="740" cy="1047.0044" fill="#FFFFFF" filter="url(#f555gmqt6z79y)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="740" cy="1047.0044" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1063.25" x2="1063.25" y1="430.3828" y2="450.3828"/><polygon fill="#A80036" points="1059.25,440.3828,1063.25,450.3828,1067.25,440.3828,1063.25,444.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1178.25" x2="1178.25" y1="430.3828" y2="450.3828"/><polygon fill="#A80036" points="1174.25,440.3828,1178.25,450.3828,1182.25,440.3828,1178.25,444.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1063.25" x2="1063.25" y1="484.3516" y2="504.3516"/><polygon fill="#A80036" points="1059.25,494.3516,1063.25,504.3516,1067.25,494.3516,1063.25,498.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1178.25" x2="1178.25" y1="484.3516" y2="504.3516"/><polygon fill="#A80036" points="1174.25,494.3516,1178.25,504.3516,1182.25,494.3516,1178.25,498.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1114.75" x2="1114.75" y1="510.3516" y2="530.3516"/><polygon fill="#A80036" points="1110.75,520.3516,1114.75,530.3516,1118.75,520.3516,1114.75,524.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="815.75" x2="815.75" y1="727.0981" y2="762.0981"/><polygon fill="#A80036" points="811.75,752.0981,815.75,762.0981,819.75,752.0981,815.75,756.0981" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="815.75" x2="815.75" y1="634.3203" y2="693.1294"/><polygon fill="#A80036" points="811.75,683.1294,815.75,693.1294,819.75,683.1294,815.75,687.1294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="897.75" x2="1144.75" y1="622.3203" y2="622.3203"/><polygon fill="#A80036" points="1140.75,726.4497,1144.75,736.4497,1148.75,726.4497,1144.75,730.4497" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1144.75" x2="1144.75" y1="622.3203" y2="840.0669"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1144.75" x2="827.75" y1="840.0669" y2="840.0669"/><polygon fill="#A80036" points="837.75,836.0669,827.75,840.0669,837.75,844.0669,833.75,840.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="815.75" x2="815.75" y1="796.0669" y2="828.0669"/><polygon fill="#A80036" points="811.75,818.0669,815.75,828.0669,819.75,818.0669,815.75,822.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="815.75" x2="815.75" y1="590.3203" y2="610.3203"/><polygon fill="#A80036" points="811.75,600.3203,815.75,610.3203,819.75,600.3203,815.75,604.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1341.25" x2="1341.25" y1="590.3203" y2="719.4653"/><polygon fill="#A80036" points="1337.25,709.4653,1341.25,719.4653,1345.25,709.4653,1341.25,713.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1616.25" x2="1616.25" y1="590.3203" y2="719.4653"/><polygon fill="#A80036" points="1612.25,709.4653,1616.25,719.4653,1620.25,709.4653,1616.25,713.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="815.75" x2="815.75" y1="852.0669" y2="872.0669"/><polygon fill="#A80036" points="811.75,862.0669,815.75,872.0669,819.75,862.0669,815.75,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1341.25" x2="1341.25" y1="753.4341" y2="872.0669"/><polygon fill="#A80036" points="1337.25,862.0669,1341.25,872.0669,1345.25,862.0669,1341.25,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1616.25" x2="1616.25" y1="753.4341" y2="872.0669"/><polygon fill="#A80036" points="1612.25,862.0669,1616.25,872.0669,1620.25,862.0669,1616.25,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1114.75" x2="1114.75" y1="564.3203" y2="584.3203"/><polygon fill="#A80036" points="1110.75,574.3203,1114.75,584.3203,1118.75,574.3203,1114.75,578.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1114.75" x2="1114.75" y1="878.0669" y2="898.0669"/><polygon fill="#A80036" points="1110.75,888.0669,1114.75,898.0669,1118.75,888.0669,1114.75,892.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1114.75" x2="1114.75" y1="932.0356" y2="952.0356"/><polygon fill="#A80036" points="1110.75,942.0356,1114.75,952.0356,1118.75,942.0356,1114.75,946.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.5" x2="365.25" y1="402.3828" y2="402.3828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.25" x2="365.25" y1="402.3828" y2="424.3828"/><polygon fill="#A80036" points="361.25,414.3828,365.25,424.3828,369.25,414.3828,365.25,418.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="809.5" x2="1114.75" y1="402.3828" y2="402.3828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1114.75" x2="1114.75" y1="402.3828" y2="424.3828"/><polygon fill="#A80036" points="1110.75,414.3828,1114.75,424.3828,1118.75,414.3828,1114.75,418.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.25" x2="365.25" y1="458.3516" y2="1004.0044"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.25" x2="728" y1="1004.0044" y2="1004.0044"/><polygon fill="#A80036" points="718,1000.0044,728,1004.0044,718,1008.0044,722,1004.0044" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1114.75" x2="1114.75" y1="986.0044" y2="1004.0044"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1114.75" x2="752" y1="1004.0044" y2="1004.0044"/><polygon fill="#A80036" points="762,1000.0044,752,1004.0044,762,1008.0044,758,1004.0044" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740" x2="740" y1="231.6211" y2="390.3828"/><polygon fill="#A80036" points="736,380.3828,740,390.3828,744,380.3828,740,384.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740" x2="740" y1="1016.0044" y2="1036.0044"/><polygon fill="#A80036" points="736,1026.0044,740,1036.0044,744,1026.0044,740,1030.0044" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a74ab46ba53b86df339b4734eb9fd9c0]
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="1131px" preserveAspectRatio="none" style="width:1766px;height:1131px;" version="1.1" viewBox="0 0 1766 1131" width="1766px" zoomAndPan="magnify"><defs><filter height="300%" id="f1dgqi4y7e2l0d" 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="837.875" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="158" x="803.375" y="47.6611">urtSubscriberFrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="885.375" y="68.6143"/><path d="M10,72.8594 L10,370.3828 A0,0 0 0 0 10,370.3828 L710,370.3828 A0,0 0 0 0 710,370.3828 L710,225.6211 L730,221.6211 L710,217.6211 L710,82.8594 L700,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#f1dgqi4y7e2l0d)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M700,72.8594 L700,82.8594 L710,82.8594 L700,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="236" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="240" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="240" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="328" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="484" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="484" x2="710" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="298" x="16" y="105.0591">The subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="276" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="280" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="280" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="328" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="444" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="444" x2="710" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="16" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="256" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="260" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="260" y="180.2231">messages</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="332" y="180.2231">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="464" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="464" x2="710" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="303" x="16" y="195.856">List of messages to be contributed to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="373" x="16" y="210.9888">Those messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="517" x="16" y="226.1216">Once a message was contributed, it cannot be removed from the topic anymore.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="268" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="272" y="240.7544"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="272" y="240.7544">deadline</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="344" y="240.7544">: urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="452" y="240.7544"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="452" x2="710" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="16" y="256.3872">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="16" y="271.52">A value of 0 indicates, that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="276" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="280" y="286.1528"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="280" y="286.1528">rate</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="320" y="286.1528">: urt_delay_t_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="444" y="286.1528"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="444" x2="710" y1="282.1523" y2="282.1523"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="621" x="16" y="301.7856">Expected minimum rate of new messages (= mamximum time between consecutive messages).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="309" x="16" y="316.9185">A value of 0 indicates, that rate is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="268" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="272" y="331.5513"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="48" x="272" y="331.5513">jitter</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="328" y="331.5513">: urt_delay_t_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="452" y="331.5513"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="452" x2="710" y1="327.5508" y2="327.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="16" y="347.1841">Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="312" x="16" y="362.3169">A value of 0 indicates, that jitter is of no concern.</text><ellipse cx="740" cy="221.6211" fill="#000000" filter="url(#f1dgqi4y7e2l0d)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" points="682.5,390.3828,797.5,390.3828,809.5,402.3828,797.5,414.3828,682.5,414.3828,670.5,402.3828,682.5,390.3828" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="682.5" y="406.1909">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="650.5" y="399.7886">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="809.5" y="399.7886">no</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="270.75" y="424.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="280.75" y="445.5215">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="323.75" y="445.5215">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="230" x="1006.75" y="424.3828"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="1020.75" y="450.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="1030.75" y="471.5215">set FRT data</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1147.75" y="450.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1157.75" y="471.5215">set topic</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="230" x="1006.75" y="504.3516"/><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="465.75" y="530.3516"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="959.25" y="556.3516"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="969.25" y="577.4902">lock topic</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="479.75" y="610.3203"/><rect fill="#FFFFFF" filter="url(#f1dgqi4y7e2l0d)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="638" x="503.75" y="682.8325"/><path d="M660.75,683.8325 L660.75,692.1294 L650.75,702.1294 L503.75,702.1294 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="506.75" y="696.8276">contribute messages</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="585.75" y="719.1294"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="595.75" y="740.2681">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="513.75" y="788.0981"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="523.75" y="809.2368">set next pointer of last message to contribute to the message after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" points="752.75,636.3203,892.75,636.3203,904.75,648.3203,892.75,660.3203,752.75,660.3203,740.75,648.3203,752.75,636.3203" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="826.75" y="670.5308">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="752.75" y="652.1284">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="904.75" y="645.7261">no</text><polygon fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" points="822.75,854.0669,834.75,866.0669,822.75,878.0669,810.75,866.0669,822.75,854.0669" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1191.75" y="745.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1201.75" y="766.604">set message pointer to topic's latest message</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="479.75" y="898.0669"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="951.25" y="924.0669"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="961.25" y="945.2056">unlock topic</text><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1526.75" y="745.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1536.75" y="766.604">register to topic's event source</text><rect fill="#000000" filter="url(#f1dgqi4y7e2l0d)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="465.75" y="978.0356"/><rect fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="1044.75" y="1004.0356"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="1054.75" y="1025.1743">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="1097.75" y="1025.1743">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f1dgqi4y7e2l0d)" points="740,1044.0044,752,1056.0044,740,1068.0044,728,1056.0044,740,1044.0044" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M181,1078.8716 L181,1119.1372 A0,0 0 0 0 181,1119.1372 L709,1119.1372 A0,0 0 0 0 709,1119.1372 L709,1103.0044 L729,1099.0044 L709,1095.0044 L709,1088.8716 L699,1078.8716 L181,1078.8716 A0,0 0 0 0 181,1078.8716 " fill="#FBFB77" filter="url(#f1dgqi4y7e2l0d)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M699,1078.8716 L699,1088.8716 L709,1088.8716 L699,1078.8716 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="181" x2="368.5" y1="1091.438" y2="1091.438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="372.5" y="1095.4385"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="372.5" y="1095.4385">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="421.5" y="1095.4385"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="421.5" y="1095.4385">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="521.5" y="1095.4385"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="521.5" x2="709" y1="1091.438" y2="1091.438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="187" y="1111.0713">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="240" y="1111.0713">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="372" y="1111.0713">if the subscriber was already associated to a topic.</text><ellipse cx="740" cy="1099.0044" fill="#FFFFFF" filter="url(#f1dgqi4y7e2l0d)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="740" cy="1099.0044" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1070.25" x2="1070.25" y1="430.3828" y2="450.3828"/><polygon fill="#A80036" points="1066.25,440.3828,1070.25,450.3828,1074.25,440.3828,1070.25,444.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1185.25" x2="1185.25" y1="430.3828" y2="450.3828"/><polygon fill="#A80036" points="1181.25,440.3828,1185.25,450.3828,1189.25,440.3828,1185.25,444.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1070.25" x2="1070.25" y1="484.3516" y2="504.3516"/><polygon fill="#A80036" points="1066.25,494.3516,1070.25,504.3516,1074.25,494.3516,1070.25,498.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1185.25" x2="1185.25" y1="484.3516" y2="504.3516"/><polygon fill="#A80036" points="1181.25,494.3516,1185.25,504.3516,1189.25,494.3516,1185.25,498.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="753.0981" y2="788.0981"/><polygon fill="#A80036" points="818.75,778.0981,822.75,788.0981,826.75,778.0981,822.75,782.0981" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="660.3203" y2="719.1294"/><polygon fill="#A80036" points="818.75,709.1294,822.75,719.1294,826.75,709.1294,822.75,713.1294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="904.75" x2="1151.75" y1="648.3203" y2="648.3203"/><polygon fill="#A80036" points="1147.75,752.4497,1151.75,762.4497,1155.75,752.4497,1151.75,756.4497" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1151.75" x2="1151.75" y1="648.3203" y2="866.0669"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1151.75" x2="834.75" y1="866.0669" y2="866.0669"/><polygon fill="#A80036" points="844.75,862.0669,834.75,866.0669,844.75,870.0669,840.75,866.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="822.0669" y2="854.0669"/><polygon fill="#A80036" points="818.75,844.0669,822.75,854.0669,826.75,844.0669,822.75,848.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="616.3203" y2="636.3203"/><polygon fill="#A80036" points="818.75,626.3203,822.75,636.3203,826.75,626.3203,822.75,630.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1348.25" x2="1348.25" y1="616.3203" y2="745.4653"/><polygon fill="#A80036" points="1344.25,735.4653,1348.25,745.4653,1352.25,735.4653,1348.25,739.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.75" x2="822.75" y1="878.0669" y2="898.0669"/><polygon fill="#A80036" points="818.75,888.0669,822.75,898.0669,826.75,888.0669,822.75,892.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1348.25" x2="1348.25" y1="779.4341" y2="898.0669"/><polygon fill="#A80036" points="1344.25,888.0669,1348.25,898.0669,1352.25,888.0669,1348.25,892.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.25" x2="999.25" y1="590.3203" y2="610.3203"/><polygon fill="#A80036" points="995.25,600.3203,999.25,610.3203,1003.25,600.3203,999.25,604.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.25" x2="999.25" y1="904.0669" y2="924.0669"/><polygon fill="#A80036" points="995.25,914.0669,999.25,924.0669,1003.25,914.0669,999.25,918.0669" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.25" x2="999.25" y1="536.3516" y2="556.3516"/><polygon fill="#A80036" points="995.25,546.3516,999.25,556.3516,1003.25,546.3516,999.25,550.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1635.25" x2="1635.25" y1="536.3516" y2="745.4653"/><polygon fill="#A80036" points="1631.25,735.4653,1635.25,745.4653,1639.25,735.4653,1635.25,739.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="999.25" x2="999.25" y1="958.0356" y2="978.0356"/><polygon fill="#A80036" points="995.25,968.0356,999.25,978.0356,1003.25,968.0356,999.25,972.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1635.25" x2="1635.25" y1="779.4341" y2="978.0356"/><polygon fill="#A80036" points="1631.25,968.0356,1635.25,978.0356,1639.25,968.0356,1635.25,972.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="1121.75" y1="510.3516" y2="530.3516"/><polygon fill="#A80036" points="1117.75,520.3516,1121.75,530.3516,1125.75,520.3516,1121.75,524.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="1121.75" y1="984.0356" y2="1004.0356"/><polygon fill="#A80036" points="1117.75,994.0356,1121.75,1004.0356,1125.75,994.0356,1121.75,998.0356" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.5" x2="358.25" y1="402.3828" y2="402.3828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="358.25" x2="358.25" y1="402.3828" y2="424.3828"/><polygon fill="#A80036" points="354.25,414.3828,358.25,424.3828,362.25,414.3828,358.25,418.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="809.5" x2="1121.75" y1="402.3828" y2="402.3828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="1121.75" y1="402.3828" y2="424.3828"/><polygon fill="#A80036" points="1117.75,414.3828,1121.75,424.3828,1125.75,414.3828,1121.75,418.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="358.25" x2="358.25" y1="458.3516" y2="1056.0044"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="358.25" x2="728" y1="1056.0044" y2="1056.0044"/><polygon fill="#A80036" points="718,1052.0044,728,1056.0044,718,1060.0044,722,1056.0044" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="1121.75" y1="1038.0044" y2="1056.0044"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.75" x2="752" y1="1056.0044" y2="1056.0044"/><polygon fill="#A80036" points="762,1052.0044,752,1056.0044,762,1060.0044,758,1056.0044" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740" x2="740" y1="231.6211" y2="390.3828"/><polygon fill="#A80036" points="736,380.3828,740,390.3828,744,380.3828,740,384.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740" x2="740" y1="1068.0044" y2="1088.0044"/><polygon fill="#A80036" points="736,1078.0044,740,1088.0044,744,1078.0044,740,1082.0044" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a6d104aca358dff4eeaced4e385ef4b8]
2 2
@startuml
3 3

  
4 4
title **µRtWare**\nurtSubscriberFrt()\n
......
46 46
  fork again
47 47
    :set topic;
48 48
  endfork
49
  :lock topic;
50 49
  fork
51
    if (Messages to contribute?) then (yes)
52
      partition "contribute messages" {
53
        :set next pointer of topic's latest message to first message to contribute;
54
        :set next pointer of last message to contribute to the message after the topic's latest message;
55
      }
56
    else (no)
57
    endif
58
  fork again
59
    :set message pointer to topic's latest message;
50
    :lock topic;
51
    fork
52
      if (Messages to contribute?) then (yes)
53
        partition "contribute messages" {
54
          :set next pointer of topic's latest message to first message to contribute;
55
          :set next pointer of last message to contribute to the message after the topic's latest message;
56
        }
57
      else (no)
58
      endif
59
    fork again
60
      :set message pointer to topic's latest message;
61
    endfork
62
    :unlock topic;
60 63
  fork again
61 64
    :register to topic's event source;
62 65
  endfork
63
  :unlock topic;
64 66
  :return ""URT_STATUS_OK"";
65 67
endif
66 68

  
doc/activitydiagrams/subscriber/urtSubscriberSubscribeFrt.uml
62 62
  fork again
63 63
    :set topic;
64 64
  endfork
65
  :lock topic;
66 65
  fork
67
    if (Messages to contribute?) then (yes)
68
      partition "contribute messages" {
69
        :set next pointer of topic's latest message to first message to contribute;
70
        :set next pointer of last message to contribute to the message after the topic's latest message;
71
      }
72
    else (no)
73
    endif
74
  fork again
75
    :set message pointer to topic's latest message;
66
    :lock topic;
67
    fork
68
      if (Messages to contribute?) then (yes)
69
        partition "contribute messages" {
70
          :set next pointer of topic's latest message to first message to contribute;
71
          :set next pointer of last message to contribute to the message after the topic's latest message;
72
        }
73
      else (no)
74
      endif
75
    fork again
76
      :set message pointer to topic's latest message;
77
    endfork
78
    :unlock topic;
76 79
  fork again
77 80
    :register to topic's event source;
78 81
  endfork
79
  :unlock topic;
80 82
  :return ""URT_STATUS_OK"";
81 83
endif
82 84

  
doc/activitydiagrams/subscriber/urtSubscriberSubscribeNrt.svg
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="942px" preserveAspectRatio="none" style="width:1585px;height:942px;" version="1.1" viewBox="0 0 1585 942" width="1585px" zoomAndPan="magnify"><defs><filter height="300%" id="f5b2ebo74tcrj" 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="747.375" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="162" x="710.875" y="47.6611">urtSubscriberNrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="794.875" y="68.6143"/><path d="M10,72.8594 L10,234.1875 A0,0 0 0 0 10,234.1875 L548,234.1875 A0,0 0 0 0 548,234.1875 L548,157.5234 L568,153.5234 L548,149.5234 L548,82.8594 L538,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#f5b2ebo74tcrj)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M538,72.8594 L538,82.8594 L548,82.8594 L538,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="155" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="159" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="159" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="247" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="403" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="403" x2="548" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="298" x="16" y="105.0591">The subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="195" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="199" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="199" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="247" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="363" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="363" x2="548" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="16" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="175" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="179" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="179" y="180.2231">messages</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="251" y="180.2231">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="383" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="383" x2="548" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="303" x="16" y="195.856">List of messages to be contributed to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="373" x="16" y="210.9888">Those messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="517" x="16" y="226.1216">Once a message was contributed, it cannot be removed from the topic anymore.</text><ellipse cx="578" cy="153.5234" fill="#000000" filter="url(#f5b2ebo74tcrj)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" points="520.5,254.1875,635.5,254.1875,647.5,266.1875,635.5,278.1875,520.5,278.1875,508.5,266.1875,520.5,254.1875" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="520.5" y="269.9956">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="488.5" y="263.5933">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="647.5" y="263.5933">no</text><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="115.75" y="288.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="125.75" y="309.3262">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="168.75" y="309.3262">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f5b2ebo74tcrj)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="232" x="836.75" y="288.1875"/><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="101" x="850.75" y="314.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="860.75" y="335.3262">set NRT data</text><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="979.75" y="314.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="989.75" y="335.3262">set topic</text><rect fill="#000000" filter="url(#f5b2ebo74tcrj)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="232" x="836.75" y="368.1563"/><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="912.75" y="394.1563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="922.75" y="415.2949">lock topic</text><rect fill="#000000" filter="url(#f5b2ebo74tcrj)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1264" x="310.75" y="448.125"/><rect fill="#FFFFFF" filter="url(#f5b2ebo74tcrj)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="638" x="334.75" y="520.6372"/><path d="M491.75,521.6372 L491.75,529.9341 L481.75,539.9341 L334.75,539.9341 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="337.75" y="534.6323">contribute messages</text><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="416.75" y="556.9341"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="426.75" y="578.0728">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="344.75" y="625.9028"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="354.75" y="647.0415">set next pointer of last message to contribute to the message after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" points="583.75,474.125,723.75,474.125,735.75,486.125,723.75,498.125,583.75,498.125,571.75,486.125,583.75,474.125" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="657.75" y="508.3354">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="583.75" y="489.9331">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="735.75" y="483.5308">no</text><polygon fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" points="653.75,691.8716,665.75,703.8716,653.75,715.8716,641.75,703.8716,653.75,691.8716" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1022.75" y="583.27"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1032.75" y="604.4087">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1345.75" y="583.27"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1355.75" y="604.4087">register to topic's event source</text><rect fill="#000000" filter="url(#f5b2ebo74tcrj)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1264" x="310.75" y="735.8716"/><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="904.75" y="761.8716"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="914.75" y="783.0103">unlock topic</text><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="875.75" y="815.8403"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="885.75" y="836.979">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="928.75" y="836.979">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" points="578,855.8091,590,867.8091,578,879.8091,566,867.8091,578,855.8091" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M19,890.6763 L19,930.9419 A0,0 0 0 0 19,930.9419 L547,930.9419 A0,0 0 0 0 547,930.9419 L547,914.8091 L567,910.8091 L547,906.8091 L547,900.6763 L537,890.6763 L19,890.6763 A0,0 0 0 0 19,890.6763 " fill="#FBFB77" filter="url(#f5b2ebo74tcrj)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M537,890.6763 L537,900.6763 L547,900.6763 L537,890.6763 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="206.5" y1="903.2427" y2="903.2427"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="210.5" y="907.2432"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="210.5" y="907.2432">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="259.5" y="907.2432"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="259.5" y="907.2432">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="359.5" y="907.2432"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="359.5" x2="547" y1="903.2427" y2="903.2427"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="25" y="922.876">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="78" y="922.876">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="210" y="922.876">if the subscriber was already associated to a topic.</text><ellipse cx="578" cy="910.8091" fill="#FFFFFF" filter="url(#f5b2ebo74tcrj)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="578" cy="910.8091" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="901.25" x2="901.25" y1="294.1875" y2="314.1875"/><polygon fill="#A80036" points="897.25,304.1875,901.25,314.1875,905.25,304.1875,901.25,308.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1017.25" x2="1017.25" y1="294.1875" y2="314.1875"/><polygon fill="#A80036" points="1013.25,304.1875,1017.25,314.1875,1021.25,304.1875,1017.25,308.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="901.25" x2="901.25" y1="348.1563" y2="368.1563"/><polygon fill="#A80036" points="897.25,358.1563,901.25,368.1563,905.25,358.1563,901.25,362.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1017.25" x2="1017.25" y1="348.1563" y2="368.1563"/><polygon fill="#A80036" points="1013.25,358.1563,1017.25,368.1563,1021.25,358.1563,1017.25,362.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="952.75" y1="374.1563" y2="394.1563"/><polygon fill="#A80036" points="948.75,384.1563,952.75,394.1563,956.75,384.1563,952.75,388.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.75" x2="653.75" y1="590.9028" y2="625.9028"/><polygon fill="#A80036" points="649.75,615.9028,653.75,625.9028,657.75,615.9028,653.75,619.9028" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.75" x2="653.75" y1="498.125" y2="556.9341"/><polygon fill="#A80036" points="649.75,546.9341,653.75,556.9341,657.75,546.9341,653.75,550.9341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="735.75" x2="982.75" y1="486.125" y2="486.125"/><polygon fill="#A80036" points="978.75,590.2544,982.75,600.2544,986.75,590.2544,982.75,594.2544" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="982.75" x2="982.75" y1="486.125" y2="703.8716"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="982.75" x2="665.75" y1="703.8716" y2="703.8716"/><polygon fill="#A80036" points="675.75,699.8716,665.75,703.8716,675.75,707.8716,671.75,703.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.75" x2="653.75" y1="659.8716" y2="691.8716"/><polygon fill="#A80036" points="649.75,681.8716,653.75,691.8716,657.75,681.8716,653.75,685.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.75" x2="653.75" y1="454.125" y2="474.125"/><polygon fill="#A80036" points="649.75,464.125,653.75,474.125,657.75,464.125,653.75,468.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1179.25" x2="1179.25" y1="454.125" y2="583.27"/><polygon fill="#A80036" points="1175.25,573.27,1179.25,583.27,1183.25,573.27,1179.25,577.27" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1454.25" x2="1454.25" y1="454.125" y2="583.27"/><polygon fill="#A80036" points="1450.25,573.27,1454.25,583.27,1458.25,573.27,1454.25,577.27" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.75" x2="653.75" y1="715.8716" y2="735.8716"/><polygon fill="#A80036" points="649.75,725.8716,653.75,735.8716,657.75,725.8716,653.75,729.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1179.25" x2="1179.25" y1="617.2388" y2="735.8716"/><polygon fill="#A80036" points="1175.25,725.8716,1179.25,735.8716,1183.25,725.8716,1179.25,729.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1454.25" x2="1454.25" y1="617.2388" y2="735.8716"/><polygon fill="#A80036" points="1450.25,725.8716,1454.25,735.8716,1458.25,725.8716,1454.25,729.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="952.75" y1="428.125" y2="448.125"/><polygon fill="#A80036" points="948.75,438.125,952.75,448.125,956.75,438.125,952.75,442.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="952.75" y1="741.8716" y2="761.8716"/><polygon fill="#A80036" points="948.75,751.8716,952.75,761.8716,956.75,751.8716,952.75,755.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="952.75" y1="795.8403" y2="815.8403"/><polygon fill="#A80036" points="948.75,805.8403,952.75,815.8403,956.75,805.8403,952.75,809.8403" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="508.5" x2="203.25" y1="266.1875" y2="266.1875"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="203.25" x2="203.25" y1="266.1875" y2="288.1875"/><polygon fill="#A80036" points="199.25,278.1875,203.25,288.1875,207.25,278.1875,203.25,282.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="647.5" x2="952.75" y1="266.1875" y2="266.1875"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="952.75" y1="266.1875" y2="288.1875"/><polygon fill="#A80036" points="948.75,278.1875,952.75,288.1875,956.75,278.1875,952.75,282.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="203.25" x2="203.25" y1="322.1563" y2="867.8091"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="203.25" x2="566" y1="867.8091" y2="867.8091"/><polygon fill="#A80036" points="556,863.8091,566,867.8091,556,871.8091,560,867.8091" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="952.75" y1="849.8091" y2="867.8091"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="590" y1="867.8091" y2="867.8091"/><polygon fill="#A80036" points="600,863.8091,590,867.8091,600,871.8091,596,867.8091" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="578" y1="163.5234" y2="254.1875"/><polygon fill="#A80036" points="574,244.1875,578,254.1875,582,244.1875,578,248.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="578" y1="879.8091" y2="899.8091"/><polygon fill="#A80036" points="574,889.8091,578,899.8091,582,889.8091,578,893.8091" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[4c127db864837fecd46f7ee5e709da0d]
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="994px" preserveAspectRatio="none" style="width:1604px;height:994px;" version="1.1" viewBox="0 0 1604 994" width="1604px" zoomAndPan="magnify"><defs><filter height="300%" id="f2tngkxb3de0k" 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="756.875" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="162" x="720.375" y="47.6611">urtSubscriberNrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="804.375" y="68.6143"/><path d="M10,72.8594 L10,234.1875 A0,0 0 0 0 10,234.1875 L548,234.1875 A0,0 0 0 0 548,234.1875 L548,157.5234 L568,153.5234 L548,149.5234 L548,82.8594 L538,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#f2tngkxb3de0k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M538,72.8594 L538,82.8594 L548,82.8594 L538,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="155" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="159" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="159" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="247" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="403" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="403" x2="548" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="298" x="16" y="105.0591">The subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="195" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="199" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="199" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="247" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="363" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="363" x2="548" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="16" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="175" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="179" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="179" y="180.2231">messages</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="251" y="180.2231">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="383" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="383" x2="548" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="303" x="16" y="195.856">List of messages to be contributed to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="373" x="16" y="210.9888">Those messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="517" x="16" y="226.1216">Once a message was contributed, it cannot be removed from the topic anymore.</text><ellipse cx="578" cy="153.5234" fill="#000000" filter="url(#f2tngkxb3de0k)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f2tngkxb3de0k)" points="520.5,254.1875,635.5,254.1875,647.5,266.1875,635.5,278.1875,520.5,278.1875,508.5,266.1875,520.5,254.1875" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="520.5" y="269.9956">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="488.5" y="263.5933">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="647.5" y="263.5933">no</text><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="108.75" y="288.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="118.75" y="309.3262">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="161.75" y="309.3262">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f2tngkxb3de0k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="232" x="843.75" y="288.1875"/><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="101" x="857.75" y="314.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="867.75" y="335.3262">set NRT data</text><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="986.75" y="314.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="996.75" y="335.3262">set topic</text><rect fill="#000000" filter="url(#f2tngkxb3de0k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="232" x="843.75" y="368.1563"/><rect fill="#000000" filter="url(#f2tngkxb3de0k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="303.75" y="394.1563"/><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="797.25" y="420.1563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="807.25" y="441.2949">lock topic</text><rect fill="#000000" filter="url(#f2tngkxb3de0k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="317.75" y="474.125"/><rect fill="#FFFFFF" filter="url(#f2tngkxb3de0k)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="638" x="341.75" y="546.6372"/><path d="M498.75,547.6372 L498.75,555.9341 L488.75,565.9341 L341.75,565.9341 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="344.75" y="560.6323">contribute messages</text><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="423.75" y="582.9341"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="433.75" y="604.0728">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="351.75" y="651.9028"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="361.75" y="673.0415">set next pointer of last message to contribute to the message after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#f2tngkxb3de0k)" points="590.75,500.125,730.75,500.125,742.75,512.125,730.75,524.125,590.75,524.125,578.75,512.125,590.75,500.125" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="664.75" y="534.3354">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="590.75" y="515.9331">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="742.75" y="509.5308">no</text><polygon fill="#FEFECE" filter="url(#f2tngkxb3de0k)" points="660.75,717.8716,672.75,729.8716,660.75,741.8716,648.75,729.8716,660.75,717.8716" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1029.75" y="609.27"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1039.75" y="630.4087">set message pointer to topic's latest message</text><rect fill="#000000" filter="url(#f2tngkxb3de0k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1037" x="317.75" y="761.8716"/><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="789.25" y="787.8716"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="799.25" y="809.0103">unlock topic</text><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1364.75" y="609.27"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1374.75" y="630.4087">register to topic's event source</text><rect fill="#000000" filter="url(#f2tngkxb3de0k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1290" x="303.75" y="841.8403"/><rect fill="#FEFECE" filter="url(#f2tngkxb3de0k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="882.75" y="867.8403"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="892.75" y="888.979">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="935.75" y="888.979">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f2tngkxb3de0k)" points="578,907.8091,590,919.8091,578,931.8091,566,919.8091,578,907.8091" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M19,942.6763 L19,982.9419 A0,0 0 0 0 19,982.9419 L547,982.9419 A0,0 0 0 0 547,982.9419 L547,966.8091 L567,962.8091 L547,958.8091 L547,952.6763 L537,942.6763 L19,942.6763 A0,0 0 0 0 19,942.6763 " fill="#FBFB77" filter="url(#f2tngkxb3de0k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M537,942.6763 L537,952.6763 L547,952.6763 L537,942.6763 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="206.5" y1="955.2427" y2="955.2427"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="210.5" y="959.2432"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="210.5" y="959.2432">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="259.5" y="959.2432"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="259.5" y="959.2432">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="359.5" y="959.2432"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="359.5" x2="547" y1="955.2427" y2="955.2427"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="25" y="974.876">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="78" y="974.876">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="210" y="974.876">if the subscriber was already associated to a topic.</text><ellipse cx="578" cy="962.8091" fill="#FFFFFF" filter="url(#f2tngkxb3de0k)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="578" cy="962.8091" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="908.25" x2="908.25" y1="294.1875" y2="314.1875"/><polygon fill="#A80036" points="904.25,304.1875,908.25,314.1875,912.25,304.1875,908.25,308.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1024.25" x2="1024.25" y1="294.1875" y2="314.1875"/><polygon fill="#A80036" points="1020.25,304.1875,1024.25,314.1875,1028.25,304.1875,1024.25,308.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="908.25" x2="908.25" y1="348.1563" y2="368.1563"/><polygon fill="#A80036" points="904.25,358.1563,908.25,368.1563,912.25,358.1563,908.25,362.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1024.25" x2="1024.25" y1="348.1563" y2="368.1563"/><polygon fill="#A80036" points="1020.25,358.1563,1024.25,368.1563,1028.25,358.1563,1024.25,362.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="616.9028" y2="651.9028"/><polygon fill="#A80036" points="656.75,641.9028,660.75,651.9028,664.75,641.9028,660.75,645.9028" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="524.125" y2="582.9341"/><polygon fill="#A80036" points="656.75,572.9341,660.75,582.9341,664.75,572.9341,660.75,576.9341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="742.75" x2="989.75" y1="512.125" y2="512.125"/><polygon fill="#A80036" points="985.75,616.2544,989.75,626.2544,993.75,616.2544,989.75,620.2544" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="989.75" x2="989.75" y1="512.125" y2="729.8716"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="989.75" x2="672.75" y1="729.8716" y2="729.8716"/><polygon fill="#A80036" points="682.75,725.8716,672.75,729.8716,682.75,733.8716,678.75,729.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="685.8716" y2="717.8716"/><polygon fill="#A80036" points="656.75,707.8716,660.75,717.8716,664.75,707.8716,660.75,711.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="480.125" y2="500.125"/><polygon fill="#A80036" points="656.75,490.125,660.75,500.125,664.75,490.125,660.75,494.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186.25" x2="1186.25" y1="480.125" y2="609.27"/><polygon fill="#A80036" points="1182.25,599.27,1186.25,609.27,1190.25,599.27,1186.25,603.27" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="660.75" x2="660.75" y1="741.8716" y2="761.8716"/><polygon fill="#A80036" points="656.75,751.8716,660.75,761.8716,664.75,751.8716,660.75,755.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186.25" x2="1186.25" y1="643.2388" y2="761.8716"/><polygon fill="#A80036" points="1182.25,751.8716,1186.25,761.8716,1190.25,751.8716,1186.25,755.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="454.125" y2="474.125"/><polygon fill="#A80036" points="833.25,464.125,837.25,474.125,841.25,464.125,837.25,468.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="767.8716" y2="787.8716"/><polygon fill="#A80036" points="833.25,777.8716,837.25,787.8716,841.25,777.8716,837.25,781.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="400.1563" y2="420.1563"/><polygon fill="#A80036" points="833.25,410.1563,837.25,420.1563,841.25,410.1563,837.25,414.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1473.25" x2="1473.25" y1="400.1563" y2="609.27"/><polygon fill="#A80036" points="1469.25,599.27,1473.25,609.27,1477.25,599.27,1473.25,603.27" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="837.25" x2="837.25" y1="821.8403" y2="841.8403"/><polygon fill="#A80036" points="833.25,831.8403,837.25,841.8403,841.25,831.8403,837.25,835.8403" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1473.25" x2="1473.25" y1="643.2388" y2="841.8403"/><polygon fill="#A80036" points="1469.25,831.8403,1473.25,841.8403,1477.25,831.8403,1473.25,835.8403" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="374.1563" y2="394.1563"/><polygon fill="#A80036" points="955.75,384.1563,959.75,394.1563,963.75,384.1563,959.75,388.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="847.8403" y2="867.8403"/><polygon fill="#A80036" points="955.75,857.8403,959.75,867.8403,963.75,857.8403,959.75,861.8403" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="508.5" x2="196.25" y1="266.1875" y2="266.1875"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="196.25" x2="196.25" y1="266.1875" y2="288.1875"/><polygon fill="#A80036" points="192.25,278.1875,196.25,288.1875,200.25,278.1875,196.25,282.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="647.5" x2="959.75" y1="266.1875" y2="266.1875"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="266.1875" y2="288.1875"/><polygon fill="#A80036" points="955.75,278.1875,959.75,288.1875,963.75,278.1875,959.75,282.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="196.25" x2="196.25" y1="322.1563" y2="919.8091"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="196.25" x2="566" y1="919.8091" y2="919.8091"/><polygon fill="#A80036" points="556,915.8091,566,919.8091,556,923.8091,560,919.8091" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="959.75" y1="901.8091" y2="919.8091"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="959.75" x2="590" y1="919.8091" y2="919.8091"/><polygon fill="#A80036" points="600,915.8091,590,919.8091,600,923.8091,596,919.8091" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="578" y1="163.5234" y2="254.1875"/><polygon fill="#A80036" points="574,244.1875,578,254.1875,582,244.1875,578,248.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="578" y1="931.8091" y2="951.8091"/><polygon fill="#A80036" points="574,941.8091,578,951.8091,582,941.8091,578,945.8091" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[de98d552df3bf5a78dc344288367cb63]
2 2
@startuml
3 3

  
4 4
title **µRtWare**\nurtSubscriberNrt()\n
......
37 37
  fork again
38 38
    :set topic;
39 39
  endfork
40
  :lock topic;
41 40
  fork
42
    if (Messages to contribute?) then (yes)
43
      partition "contribute messages" {
44
        :set next pointer of topic's latest message to first message to contribute;
45
        :set next pointer of last message to contribute to the message after the topic's latest message;
46
      }
47
    else (no)
48
    endif
49
  fork again
50
    :set message pointer to topic's latest message;
41
    :lock topic;
42
    fork
43
      if (Messages to contribute?) then (yes)
44
        partition "contribute messages" {
45
          :set next pointer of topic's latest message to first message to contribute;
46
          :set next pointer of last message to contribute to the message after the topic's latest message;
47
        }
48
      else (no)
49
      endif
50
    fork again
51
      :set message pointer to topic's latest message;
52
    endfork
53
    :unlock topic;
51 54
  fork again
52 55
    :register to topic's event source;
53 56
  endfork
54
  :unlock topic;
55 57
  :return ""URT_STATUS_OK"";
56 58
endif
57 59

  
doc/activitydiagrams/subscriber/urtSubscriberSubscribeNrt.uml
53 53
  fork again
54 54
    :set topic;
55 55
  endfork
56
  :lock topic;
57 56
  fork
58
    if (Messages to contribute?) then (yes)
59
      partition "contribute messages" {
60
        :set next pointer of topic's latest message to first message to contribute;
61
        :set next pointer of last message to contribute to the message after the topic's latest message;
62
      }
63
    else (no)
64
    endif
65
  fork again
66
    :set message pointer to topic's latest message;
57
    :lock topic;
58
    fork
59
      if (Messages to contribute?) then (yes)
60
        partition "contribute messages" {
61
          :set next pointer of topic's latest message to first message to contribute;
62
          :set next pointer of last message to contribute to the message after the topic's latest message;
63
        }
64
      else (no)
65
      endif
66
    fork again
67
      :set message pointer to topic's latest message;
68
    endfork
69
    :unlock topic;
67 70
  fork again
68 71
    :register to topic's event source;
69 72
  endfork
70
  :unlock topic;
71 73
  :return ""URT_STATUS_OK"";
72 74
endif
73 75

  
doc/activitydiagrams/subscriber/urtSubscriberSubscribeSrt.svg
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="1033px" preserveAspectRatio="none" style="width:1585px;height:1033px;" version="1.1" viewBox="0 0 1585 1033" width="1585px" zoomAndPan="magnify"><defs><filter height="300%" id="fpn8q0zv481k2" 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="747.375" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="159" x="712.375" y="47.6611">urtSubscriberSrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="794.875" y="68.6143"/><path d="M10,72.8594 L10,324.9844 A0,0 0 0 0 10,324.9844 L548,324.9844 A0,0 0 0 0 548,324.9844 L548,202.9219 L568,198.9219 L548,194.9219 L548,82.8594 L538,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#fpn8q0zv481k2)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M538,72.8594 L538,82.8594 L548,82.8594 L538,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="155" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="159" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="159" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="247" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="403" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="403" x2="548" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="298" x="16" y="105.0591">The subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="195" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="199" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="199" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="247" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="363" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="363" x2="548" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="16" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="175" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="179" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" leng