Statistics
| Branch: | Revision:

urtware / doc / activitydiagrams / publisher / urtPublisherPublish.svg @ 792f6c74

History | View | Annotate | Download (47.646 KB)

1
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1776px" preserveAspectRatio="none" style="width:3008px;height:1776px;" version="1.1" viewBox="0 0 3008 1776" width="3008px" zoomAndPan="magnify"><defs><filter height="300%" id="fjrexx23r0l7p" 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="1458.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="183" x="1411.5" y="47.6611">urtPublisherPublish()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1506" y="68.6143"/><path d="M1294.5,72.8594 L1294.5,319.8516 L1679.5,319.8516 L1679.5,82.8594 L1669.5,72.8594 L1294.5,72.8594 " fill="#FBFB77" filter="url(#fjrexx23r0l7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1669.5,72.8594 L1669.5,82.8594 L1679.5,82.8594 L1669.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1391.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1395.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="1395.5" y="89.4263">publisher</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="1468.5" y="89.4263">: urt_publisher_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1582.5" x2="1679.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="197" x="1300.5" 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="1300.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1380.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1412.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1431" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1435" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1435" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1498" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1543" x2="1679.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="226" x="1300.5" 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="1300.5" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1350.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1386.5" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1438" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1442" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1442" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1487" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1536" x2="1679.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="180" x="1300.5" y="195.856">Size of the payload in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1432.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1436.5" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="6" x="1436.5" y="210.4888">t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="1446.5" y="210.4888">: urt_osTime_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1541.5" x2="1679.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="246" x="1300.5" y="226.1216">Timestamp to be set for the message.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1413" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1417" y="240.7544"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="57" x="1417" y="240.7544">timeout</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="1478" y="240.7544">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1561" x2="1679.5" y1="236.7539" y2="236.7539"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="364" x="1300.5" y="256.3872">Timeout delay in case the message cannot be published.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1679.5" y1="264.4531" y2="264.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1679.5" y1="266.4531" y2="266.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1294.5" x2="1416" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1420" y="281.02"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1420" y="281.02">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1469" y="281.02">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1558" x2="1679.5" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1300.5" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1353.5" y="296.6528">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1461.5" y="296.6528">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1300.5" y="311.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="1353.5" y="311.7856">URT_STATUS_PUBLISH_TIMEOUT</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="74" x="1565.5" y="311.7856">on timeout.</text><ellipse cx="1487" cy="349.8516" fill="#000000" filter="url(#fjrexx23r0l7p)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1447" y="379.8516"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1457" y="400.9902">lock topic</text><rect fill="#000000" filter="url(#fjrexx23r0l7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="519" x="1227.5" y="433.8203"/><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="201" x="1241.5" y="466.8047"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="181" x="1251.5" y="487.9434">access topic's next message</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="262" x="1470.5" y="459.8203"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1470.5" x2="1485.5" y1="476.8047" y2="476.8047"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="1485.5" y="480.459">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1717.5" x2="1732.5" y1="476.8047" y2="476.8047"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="242" x="1480.5" y="494.9277">increment counter of publish attempts</text><rect fill="#000000" filter="url(#fjrexx23r0l7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="519" x="1227.5" y="527.7578"/><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="524" x="1225" y="609.4683"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="504" x="1235" y="630.6069">wait for topic's condition variable (using topic's mutex) to be signaled or timeout</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1434,663.437,1540,663.437,1552,675.437,1540,687.437,1434,687.437,1422,675.437,1434,663.437" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="1434" y="679.2451">Timeout occurred?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1402" y="672.8428">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1552" y="672.8428">no</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="1205" y="697.437"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1205" x2="1215" y1="714.4214" y2="714.4214"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="1215" y="718.0757">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1447" x2="1457" y1="714.4214" y2="714.4214"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="210" x="1215" y="732.5444">increment counter of publish fails</text><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1283" y="780.3745"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1293" y="801.5132">unlock topic</text><path d="M1014,849.3433 L1014,874.4761 A0,0 0 0 0 1014,874.4761 L1300,874.4761 A0,0 0 0 0 1300,874.4761 L1300,867.3433 L1320,861.9097 L1300,859.3433 L1300,859.3433 L1290,849.3433 L1014,849.3433 A0,0 0 0 0 1014,849.3433 " fill="#FBFB77" filter="url(#fjrexx23r0l7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1290,849.3433 L1290,859.3433 L1300,859.3433 L1290,849.3433 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1020" y="866.4102">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="1073" y="866.4102">URT_STATUS_PUBLISH_TIMEOUT</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1281" y="866.4102">.</text><ellipse cx="1331" cy="861.9097" fill="#FFFFFF" filter="url(#fjrexx23r0l7p)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1331" cy="861.9097" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="1552.5" y="817.8394"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="1562.5" y="838.978">proceed to next message</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1643,745.8394,1655,757.8394,1643,769.8394,1631,757.8394,1643,745.8394" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1499,894.4761,1787,894.4761,1799,906.4761,1787,918.4761,1499,918.4761,1487,906.4761,1499,894.4761" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="288" x="1499" y="910.2842">Timestamp is younger than of previous message?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1799" y="903.8818">yes</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1542,697.437,1744,697.437,1756,709.437,1744,721.437,1542,721.437,1530,709.437,1542,697.437" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1647" y="731.6475">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="202" x="1542" y="713.2451">Message timestamp was modified?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1756" y="706.8428">no</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1643,942.375,1655,954.375,1643,966.375,1631,954.375,1643,942.375" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1649" y="939.7808">no</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1378.5,553.7578,1595.5,553.7578,1607.5,565.7578,1595.5,577.7578,1378.5,577.7578,1366.5,565.7578,1378.5,553.7578" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1491" y="587.9683">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1378.5" y="569.5659">HRT consumers left for the message?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1352.5" y="563.1636">no</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="174.668" style="stroke: #000000; stroke-width: 2.0;" width="396" x="1295" y="999.1768"/><path d="M1576,1000.1768 L1576,1008.4736 L1566,1018.4736 L1295,1018.4736 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="271" x="1298" y="1013.1719">URT_CFG_PUBSUB_PROFILING == true</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="344" x="1315" y="1083.876"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="324" x="1325" y="1105.0146">increment counter of discarded messages (@topic)</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1389,1035.4736,1585,1035.4736,1597,1047.4736,1585,1059.4736,1389,1059.4736,1377,1047.4736,1389,1035.4736" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1491" y="1069.6841">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="1389" y="1051.2817">Consumers left for this message?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1597" y="1044.8794">no</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="1487,1137.8447,1499,1149.8447,1487,1161.8447,1475,1149.8447,1487,1137.8447" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fjrexx23r0l7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2987" x="10" y="1193.8447"/><rect fill="#FFFFFF" filter="url(#fjrexx23r0l7p)" height="156.2344" style="stroke: #000000; stroke-width: 2.0;" width="1268" x="22" y="1325.584"/><path d="M140,1326.584 L140,1334.8809 L130,1344.8809 L22,1344.8809 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="108" x="25" y="1339.5791">setup message</text><rect fill="#000000" filter="url(#fjrexx23r0l7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1248" x="32" y="1361.8809"/><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="261" x="46" y="1394.8652"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="241" x="56" y="1416.0039">iterate topic's pointer to this message</text><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="317" y="1394.8652"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="327" y="1416.0039">copy payload to message</text><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="507" y="1394.8652"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="517" y="1416.0039">set origin time of message</text><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="704" y="1394.8652"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="714" y="1416.0039">set number of HRT consumers (from topic)</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="254" x="1012" y="1387.8809"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1012" x2="1023" y1="1404.8652" y2="1404.8652"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="1023" y="1408.5195">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1255" x2="1266" y1="1404.8652" y2="1404.8652"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="230" x="1026" y="1422.9883">set numer of consumers (from topic)</text><rect fill="#000000" filter="url(#fjrexx23r0l7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1248" x="32" y="1455.8184"/><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="398" x="1318" y="1379.7324"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1318" x2="1377.5" y1="1396.7168" y2="1396.7168"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="279" x="1377.5" y="1400.3711">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1656.5" x2="1716" y1="1396.7168" y2="1396.7168"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="378" x="1328" y="1414.8398">set QoS rate timer (@topic) wrt. most critical HRT subscriber</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="376.1094" style="stroke: #000000; stroke-width: 2.0;" width="888" x="1744" y="1210.6465"/><path d="M2119,1211.6465 L2119,1219.9434 L2109,1229.9434 L1744,1229.9434 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="365" x="1747" y="1224.6416">URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="241" x="2240" y="1246.9434"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="221" x="2250" y="1268.082">access first HRT subscriber of topic</text><path d="M1788,1410.1191 L1788,1450.3848 A0,0 0 0 0 1788,1450.3848 L2113,1450.3848 A0,0 0 0 0 2113,1450.3848 L2113,1434.252 L2133,1430.252 L2113,1426.252 L2113,1420.1191 L2103,1410.1191 L1788,1410.1191 A0,0 0 0 0 1788,1410.1191 " fill="#FBFB77" filter="url(#fjrexx23r0l7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2103,1410.1191 L2103,1420.1191 L2113,1420.1191 L2103,1410.1191 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="108" x="1794" y="1427.186">No lock required.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="304" x="1794" y="1442.3188">This timer is only accessed while topic is locked.</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="455" x="2133" y="1413.2676"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="435" x="2143" y="1434.4063">set QoS deadline timer (@subscriber) wrt. origin time of the message</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="2221.5,1361.7168,2499.5,1361.7168,2511.5,1373.7168,2499.5,1385.7168,2221.5,1385.7168,2209.5,1373.7168,2221.5,1361.7168" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2364.5" y="1395.9272">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="278" x="2221.5" y="1377.5249">QoS deadline timer (@subscriber) is not armed?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2511.5" y="1371.1226">no</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="2360.5,1474.7871,2372.5,1486.7871,2360.5,1498.7871,2348.5,1486.7871,2360.5,1474.7871" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="218" x="2251.5" y="1518.7871"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="198" x="2261.5" y="1539.9258">proceed to next HRT subscriber</text><polygon fill="#FEFECE" filter="url(#fjrexx23r0l7p)" points="2280,1300.9121,2441,1300.9121,2453,1312.9121,2441,1324.9121,2280,1324.9121,2268,1312.9121,2280,1300.9121" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2364.5" y="1335.1226">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="123" x="2280" y="1316.7202">HRT subscriber is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="2407" y="1316.7202">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="2435" y="1316.7202">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2254" y="1310.3179">no</text><rect fill="#EEEEEE" filter="url(#fjrexx23r0l7p)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="343" x="2642" y="1379.7324"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2642" x2="2697.5" y1="1396.7168" y2="1396.7168"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="232" x="2697.5" y="1400.3711">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="2929.5" x2="2985" y1="1396.7168" y2="1396.7168"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="323" x="2652" y="1414.8398">increment counter of published messages (@topic)</text><rect fill="#000000" filter="url(#fjrexx23r0l7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2987" x="10" y="1606.7559"/><path d="M1091.5,1637.1738 L1091.5,1662.3066 A0,0 0 0 0 1091.5,1662.3066 L1427.5,1662.3066 A0,0 0 0 0 1427.5,1662.3066 L1427.5,1655.1738 L1447.5,1649.7402 L1427.5,1647.1738 L1427.5,1647.1738 L1417.5,1637.1738 L1091.5,1637.1738 A0,0 0 0 0 1091.5,1637.1738 " fill="#FBFB77" filter="url(#fjrexx23r0l7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1417.5,1637.1738 L1417.5,1647.1738 L1427.5,1647.1738 L1417.5,1637.1738 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="315" x="1097.5" y="1654.2407">Msut be within topic lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="1447.5" y="1632.7559"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="1457.5" y="1653.8945">fire event</text><rect fill="#FEFECE" filter="url(#fjrexx23r0l7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1439" y="1686.7246"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1449" y="1707.8633">unlock topic</text><path d="M1274,1739.127 L1274,1764.2598 A0,0 0 0 0 1274,1764.2598 L1456,1764.2598 A0,0 0 0 0 1456,1764.2598 L1456,1757.127 L1476,1751.6934 L1456,1749.127 L1456,1749.127 L1446,1739.127 L1274,1739.127 A0,0 0 0 0 1274,1739.127 " fill="#FBFB77" filter="url(#fjrexx23r0l7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1446,1739.127 L1446,1749.127 L1456,1749.127 L1446,1739.127 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1280" y="1756.1938">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1333" y="1756.1938">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1437" y="1756.1938">.</text><ellipse cx="1487" cy="1751.6934" fill="#FFFFFF" filter="url(#fjrexx23r0l7p)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1487" cy="1751.6934" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="319.8516" y2="339.8516"/><polygon fill="#A80036" points="1483,329.8516,1487,339.8516,1491,329.8516,1487,333.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="359.8516" y2="379.8516"/><polygon fill="#A80036" points="1483,369.8516,1487,379.8516,1491,369.8516,1487,373.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1342" x2="1342" y1="439.8203" y2="466.8047"/><polygon fill="#A80036" points="1338,456.8047,1342,466.8047,1346,456.8047,1342,460.8047" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1601.5" x2="1601.5" y1="439.8203" y2="459.8203"/><polygon fill="#A80036" points="1597.5,449.8203,1601.5,459.8203,1605.5,449.8203,1601.5,453.8203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1342" x2="1342" y1="500.7734" y2="527.7578"/><polygon fill="#A80036" points="1338,517.7578,1342,527.7578,1346,517.7578,1342,521.7578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1601.5" x2="1601.5" y1="507.7578" y2="527.7578"/><polygon fill="#A80036" points="1597.5,517.7578,1601.5,527.7578,1605.5,517.7578,1601.5,521.7578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="413.8203" y2="433.8203"/><polygon fill="#A80036" points="1483,423.8203,1487,433.8203,1491,423.8203,1487,427.8203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1331" x2="1331" y1="745.3745" y2="780.3745"/><polygon fill="#A80036" points="1327,770.3745,1331,780.3745,1335,770.3745,1331,774.3745" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1331" x2="1331" y1="814.3433" y2="850.9097"/><polygon fill="#A80036" points="1327,840.9097,1331,850.9097,1335,840.9097,1331,844.9097" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1643" y1="769.8394" y2="817.8394"/><polygon fill="#A80036" points="1639,807.8394,1643,817.8394,1647,807.8394,1643,811.8394" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1799" x2="1811" y1="906.4761" y2="906.4761"/><polygon fill="#A80036" points="1807,844.8237,1811,834.8237,1815,844.8237,1811,840.8237" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1811" x2="1811" y1="757.8394" y2="906.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1811" x2="1655" y1="757.8394" y2="757.8394"/><polygon fill="#A80036" points="1665,753.8394,1655,757.8394,1665,761.8394,1661,757.8394" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1643" y1="851.8081" y2="894.4761"/><polygon fill="#A80036" points="1639,884.4761,1643,894.4761,1647,884.4761,1643,888.4761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1643" y1="721.437" y2="745.8394"/><polygon fill="#A80036" points="1639,735.8394,1643,745.8394,1647,735.8394,1643,739.8394" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1756" x2="1833" y1="709.437" y2="709.437"/><polygon fill="#A80036" points="1829,831.2261,1833,841.2261,1837,831.2261,1833,835.2261" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1833" x2="1833" y1="709.437" y2="954.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1833" x2="1655" y1="954.375" y2="954.375"/><polygon fill="#A80036" points="1665,950.375,1655,954.375,1665,958.375,1661,954.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1643" y1="918.4761" y2="942.375"/><polygon fill="#A80036" points="1639,932.375,1643,942.375,1647,932.375,1643,936.375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1422" x2="1331" y1="675.437" y2="675.437"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1331" x2="1331" y1="675.437" y2="697.437"/><polygon fill="#A80036" points="1327,687.437,1331,697.437,1335,687.437,1331,691.437" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1552" x2="1643" y1="675.437" y2="675.437"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1643" y1="675.437" y2="697.437"/><polygon fill="#A80036" points="1639,687.437,1643,697.437,1647,687.437,1643,691.437" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1643" y1="966.375" y2="976.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1643" x2="1867" y1="976.375" y2="976.375"/><polygon fill="#A80036" points="1863,784.3394,1867,774.3394,1871,784.3394,1867,780.3394" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1867" x2="1867" y1="565.7578" y2="976.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1867" x2="1607.5" y1="565.7578" y2="565.7578"/><polygon fill="#A80036" points="1617.5,561.7578,1607.5,565.7578,1617.5,569.7578,1613.5,565.7578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="643.437" y2="663.437"/><polygon fill="#A80036" points="1483,653.437,1487,663.437,1491,653.437,1487,657.437" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="577.7578" y2="609.4683"/><polygon fill="#A80036" points="1483,599.4683,1487,609.4683,1491,599.4683,1487,603.4683" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1366.5" x2="998" y1="565.7578" y2="565.7578"/><polygon fill="#A80036" points="994,770.3394,998,780.3394,1002,770.3394,998,774.3394" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="998" x2="998" y1="565.7578" y2="988.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="998" x2="1487" y1="988.375" y2="988.375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="988.375" y2="1035.4736"/><polygon fill="#A80036" points="1483,1025.4736,1487,1035.4736,1491,1025.4736,1487,1029.4736" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="533.7578" y2="553.7578"/><polygon fill="#A80036" points="1483,543.7578,1487,553.7578,1491,543.7578,1487,547.7578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="1059.4736" y2="1083.876"/><polygon fill="#A80036" points="1483,1073.876,1487,1083.876,1491,1073.876,1487,1077.876" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1597" x2="1669" y1="1047.4736" y2="1047.4736"/><polygon fill="#A80036" points="1665,1090.8604,1669,1100.8604,1673,1090.8604,1669,1094.8604" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1669" x2="1669" y1="1047.4736" y2="1149.8447"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1669" x2="1499" y1="1149.8447" y2="1149.8447"/><polygon fill="#A80036" points="1509,1145.8447,1499,1149.8447,1509,1153.8447,1505,1149.8447" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="1117.8447" y2="1137.8447"/><polygon fill="#A80036" points="1483,1127.8447,1487,1137.8447,1491,1127.8447,1487,1131.8447" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="176.5" x2="176.5" y1="1367.8809" y2="1394.8652"/><polygon fill="#A80036" points="172.5,1384.8652,176.5,1394.8652,180.5,1384.8652,176.5,1388.8652" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="407" x2="407" y1="1367.8809" y2="1394.8652"/><polygon fill="#A80036" points="403,1384.8652,407,1394.8652,411,1384.8652,407,1388.8652" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="600.5" x2="600.5" y1="1367.8809" y2="1394.8652"/><polygon fill="#A80036" points="596.5,1384.8652,600.5,1394.8652,604.5,1384.8652,600.5,1388.8652" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="847" x2="847" y1="1367.8809" y2="1394.8652"/><polygon fill="#A80036" points="843,1384.8652,847,1394.8652,851,1384.8652,847,1388.8652" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1139" x2="1139" y1="1367.8809" y2="1387.8809"/><polygon fill="#A80036" points="1135,1377.8809,1139,1387.8809,1143,1377.8809,1139,1381.8809" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="176.5" x2="176.5" y1="1428.834" y2="1455.8184"/><polygon fill="#A80036" points="172.5,1445.8184,176.5,1455.8184,180.5,1445.8184,176.5,1449.8184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="407" x2="407" y1="1428.834" y2="1455.8184"/><polygon fill="#A80036" points="403,1445.8184,407,1455.8184,411,1445.8184,407,1449.8184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="600.5" x2="600.5" y1="1428.834" y2="1455.8184"/><polygon fill="#A80036" points="596.5,1445.8184,600.5,1455.8184,604.5,1445.8184,600.5,1449.8184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="847" x2="847" y1="1428.834" y2="1455.8184"/><polygon fill="#A80036" points="843,1445.8184,847,1455.8184,851,1445.8184,847,1449.8184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1139" x2="1139" y1="1435.8184" y2="1455.8184"/><polygon fill="#A80036" points="1135,1445.8184,1139,1455.8184,1143,1445.8184,1139,1449.8184" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1385.7168" y2="1413.2676"/><polygon fill="#A80036" points="2356.5,1403.2676,2360.5,1413.2676,2364.5,1403.2676,2360.5,1407.2676" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2511.5" x2="2598" y1="1373.7168" y2="1373.7168"/><polygon fill="#A80036" points="2594,1420.252,2598,1430.252,2602,1420.252,2598,1424.252" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2598" x2="2598" y1="1373.7168" y2="1486.7871"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2598" x2="2372.5" y1="1486.7871" y2="1486.7871"/><polygon fill="#A80036" points="2382.5,1482.7871,2372.5,1486.7871,2382.5,1490.7871,2378.5,1486.7871" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1447.2363" y2="1474.7871"/><polygon fill="#A80036" points="2356.5,1464.7871,2360.5,1474.7871,2364.5,1464.7871,2360.5,1468.7871" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1498.7871" y2="1518.7871"/><polygon fill="#A80036" points="2356.5,1508.7871,2360.5,1518.7871,2364.5,1508.7871,2360.5,1512.7871" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1324.9121" y2="1361.7168"/><polygon fill="#A80036" points="2356.5,1351.7168,2360.5,1361.7168,2364.5,1351.7168,2360.5,1355.7168" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1552.7559" y2="1562.7559"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2616" y1="1562.7559" y2="1562.7559"/><polygon fill="#A80036" points="2612,1456.334,2616,1446.334,2620,1456.334,2616,1452.334" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2616" x2="2616" y1="1312.9121" y2="1562.7559"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2616" x2="2453" y1="1312.9121" y2="1312.9121"/><polygon fill="#A80036" points="2463,1308.9121,2453,1312.9121,2463,1316.9121,2459,1312.9121" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2268" x2="1766" y1="1312.9121" y2="1312.9121"/><polygon fill="#A80036" points="1762,1442.334,1766,1452.334,1770,1442.334,1766,1446.334" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1766" x2="1766" y1="1312.9121" y2="1574.7559"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1766" x2="2360.5" y1="1574.7559" y2="1574.7559"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1574.7559" y2="1606.7559"/><polygon fill="#A80036" points="2356.5,1596.7559,2360.5,1606.7559,2364.5,1596.7559,2360.5,1600.7559" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1280.9121" y2="1300.9121"/><polygon fill="#A80036" points="2356.5,1290.9121,2360.5,1300.9121,2364.5,1290.9121,2360.5,1294.9121" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="650" x2="650" y1="1199.8447" y2="1361.8809"/><polygon fill="#A80036" points="646,1351.8809,650,1361.8809,654,1351.8809,650,1355.8809" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1517" x2="1517" y1="1199.8447" y2="1379.7324"/><polygon fill="#A80036" points="1513,1369.7324,1517,1379.7324,1521,1369.7324,1517,1373.7324" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2360.5" x2="2360.5" y1="1199.8447" y2="1246.9434"/><polygon fill="#A80036" points="2356.5,1236.9434,2360.5,1246.9434,2364.5,1236.9434,2360.5,1240.9434" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2813.5" x2="2813.5" y1="1199.8447" y2="1379.7324"/><polygon fill="#A80036" points="2809.5,1369.7324,2813.5,1379.7324,2817.5,1369.7324,2813.5,1373.7324" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="650" x2="650" y1="1461.8184" y2="1606.7559"/><polygon fill="#A80036" points="646,1596.7559,650,1606.7559,654,1596.7559,650,1600.7559" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1517" x2="1517" y1="1427.6699" y2="1606.7559"/><polygon fill="#A80036" points="1513,1596.7559,1517,1606.7559,1521,1596.7559,1517,1600.7559" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2813.5" x2="2813.5" y1="1427.6699" y2="1606.7559"/><polygon fill="#A80036" points="2809.5,1596.7559,2813.5,1606.7559,2817.5,1596.7559,2813.5,1600.7559" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="1161.8447" y2="1193.8447"/><polygon fill="#A80036" points="1483,1183.8447,1487,1193.8447,1491,1183.8447,1487,1187.8447" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="1612.7559" y2="1632.7559"/><polygon fill="#A80036" points="1483,1622.7559,1487,1632.7559,1491,1622.7559,1487,1626.7559" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="1666.7246" y2="1686.7246"/><polygon fill="#A80036" points="1483,1676.7246,1487,1686.7246,1491,1676.7246,1487,1680.7246" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1487" x2="1487" y1="1720.6934" y2="1740.6934"/><polygon fill="#A80036" points="1483,1730.6934,1487,1740.6934,1491,1730.6934,1487,1734.6934" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[aa93f5b9c5f18118a39e618f9f41f242]
2
@startuml
3

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

    
6

    
7
note
8
  - - **publisher** : urt_publisher_t* - -
9
  Pointer to the publisher to use.
10
  Must not be ""NULL"".
11
  - - **payload** : void* - -
12
  Pointer to the data to be published.
13
  May be ""NULL"" for messages without payload.
14
  - - **bytes** : size_t - -
15
  Size of the payload in bytes.
16
  - - **t** : urt_osTime_t - -
17
  Timestamp to be set for the message.
18
  - - **timeout** : urt_delay_t - -
19
  Timeout delay in case the message cannot be published.
20
  ====
21
  - - **return** : urt_status_t - -
22
  Returns ""URT_STATUS_OK"" on success.
23
  Returns ""URT_STATUS_PUBLISH_TIMEOUT"" on timeout.
24
endnote
25

    
26

    
27
start
28
:lock topic;
29
fork
30
  :access topic's next message;
31
fork again
32
  #EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of publish attempts;
33
endfork
34
while (HRT consumers left for the message?) is (yes)
35
  :wait for topic's condition variable (using topic's mutex) to be signaled or timeout;
36
  if (Timeout occurred?) then (yes)
37
    #EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of publish fails;
38
    :unlock topic;
39
    stop
40
    note
41
      Returns ""URT_STATUS_PUBLISH_TIMEOUT"".
42
    endnote
43
  else (no)
44
    if (Message timestamp was modified?) then (yes)
45
      repeat
46
        :proceed to next message;
47
      repeat while (Timestamp is younger than of previous message?) is (yes)
48
      ->no;
49
    else (no)
50
    endif
51
  endif
52
endwhile (no)
53
partition "//URT_CFG_PUBSUB_PROFILING == true//" #EEEEEE {
54
  if (Consumers left for this message?) then (yes)
55
    #EEEEEE:increment counter of discarded messages (@topic);
56
  else (no)
57
  endif
58
}
59
fork
60
  partition "setup message" {
61
    fork
62
      :iterate topic's pointer to this message;
63
    fork again
64
      :copy payload to message;
65
    fork again
66
      :set origin time of message;
67
    fork again
68
      :set number of HRT consumers (from topic);
69
    fork again
70
      #EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..
71
       set numer of consumers (from topic);
72
    endfork
73
  }
74
fork again
75
  #EEEEEE:..//URT_CFG_PUBSUB_QOS_RATECHECKS == true//..\nset QoS rate timer (@topic) wrt. most critical HRT subscriber;
76
fork again
77
  partition "//URT_CFG_PUBSUB_QOS_DEADLINECHECKS == true//" #EEEEEE {
78
    #EEEEEE:access first HRT subscriber of topic;
79
    while (HRT subscriber is not ""NULL""?) is (yes)
80
      if (QoS deadline timer (@subscriber) is not armed?) then (yes)
81
        #EEEEEE:set QoS deadline timer (@subscriber) wrt. origin time of the message;
82
        note
83
          No lock required.
84
          This timer is only accessed while topic is locked.
85
        endnote
86
      else (no)
87
      endif
88
      #EEEEEE:proceed to next HRT subscriber;
89
    endwhile (no)
90
  }
91
fork again
92
  #EEEEEE:..//URT_CFG_PUBSUB_PROFILING == true//..\nincrement counter of published messages (@topic);
93
endfork
94
:fire event;
95
note: Msut be within topic lock because of HRT counter.
96
:unlock topic;
97
stop
98
note
99
 Returns ""URT_STATUS_OK"".
100
endnote
101

    
102

    
103
@enduml
104

    
105
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
106
(GPL source distribution)
107
Java Runtime: OpenJDK Runtime Environment
108
JVM: OpenJDK 64-Bit Server VM
109
Java Version: 11.0.7+10-post-Ubuntu-2ubuntu218.04
110
Operating System: Linux
111
Default Encoding: UTF-8
112
Language: en
113
Country: US
114
--></g></svg>