Revision ee83a495 doc/activitydiagrams/topic/urtTopicInit.svg

View differences:

doc/activitydiagrams/topic/urtTopicInit.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="437px" preserveAspectRatio="none" style="width:702px;height:437px;" version="1.1" viewBox="0 0 702 437" width="702px" zoomAndPan="magnify"><defs><filter height="300%" id="f1rfgzv3aiz2lu" 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="305.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="117" x="291.5" y="47.6611">urtTopicInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="353" y="68.6143"/><path d="M297,72.8594 L297,158.5234 A0,0 0 0 0 297,158.5234 L562,158.5234 A0,0 0 0 0 562,158.5234 L562,119.6914 L582,115.6914 L562,111.6914 L562,82.8594 L552,72.8594 L297,72.8594 A0,0 0 0 0 297,72.8594 " fill="#FBFB77" filter="url(#f1rfgzv3aiz2lu)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M552,72.8594 L552,82.8594 L562,82.8594 L552,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="297" x2="345.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="349.5" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="349.5" y="89.4263">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="397.5" y="89.4263">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="513.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="513.5" x2="562" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="303" y="105.0591">The topic to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="303" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="383" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="415" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="297" x2="353.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="357.5" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="16" x="357.5" y="134.8247">id</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="381.5" y="134.8247">: urt_topicid_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="505.5" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="505.5" x2="562" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="303" y="150.4575">Unique, numeric identifier of the topic.</text><ellipse cx="592" cy="115.6914" fill="#000000" filter="url(#f1rfgzv3aiz2lu)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1rfgzv3aiz2lu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="526.5" y="178.5234"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="536.5" y="199.6621">initialize members</text><rect fill="#FEFECE" filter="url(#f1rfgzv3aiz2lu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="553.5" y="232.4922"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="563.5" y="253.6309">lock core</text><rect fill="#FEFECE" filter="url(#f1rfgzv3aiz2lu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="198" x="493" y="286.4609"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="178" x="503" y="307.5996">insert self to global topic list</text><rect fill="#FEFECE" filter="url(#f1rfgzv3aiz2lu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="545.5" y="340.4297"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="555.5" y="361.5684">unlock core</text><path d="M10,385.2656 L10,425.5313 A0,0 0 0 0 10,425.5313 L561,425.5313 A0,0 0 0 0 561,425.5313 L561,409.3984 L581,405.3984 L561,401.3984 L561,395.2656 L551,385.2656 L10,385.2656 A0,0 0 0 0 10,385.2656 " fill="#FBFB77" filter="url(#f1rfgzv3aiz2lu)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M551,385.2656 L551,395.2656 L561,395.2656 L551,385.2656 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="209" y1="397.832" y2="397.832"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="213" y="401.8325"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="213" y="401.8325">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="262" y="401.8325"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="262" y="401.8325">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="362" y="401.8325"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="362" x2="561" y1="397.832" y2="397.832"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="417.4653">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="69" y="417.4653">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="345" x="201" y="417.4653">if another topic with the same identifier already exists.</text><ellipse cx="592" cy="405.3984" fill="#FFFFFF" filter="url(#f1rfgzv3aiz2lu)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="592" cy="405.3984" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592" x2="592" y1="125.6914" y2="178.5234"/><polygon fill="#A80036" points="588,168.5234,592,178.5234,596,168.5234,592,172.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592" x2="592" y1="212.4922" y2="232.4922"/><polygon fill="#A80036" points="588,222.4922,592,232.4922,596,222.4922,592,226.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592" x2="592" y1="266.4609" y2="286.4609"/><polygon fill="#A80036" points="588,276.4609,592,286.4609,596,276.4609,592,280.4609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592" x2="592" y1="320.4297" y2="340.4297"/><polygon fill="#A80036" points="588,330.4297,592,340.4297,596,330.4297,592,334.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592" x2="592" y1="374.3984" y2="394.3984"/><polygon fill="#A80036" points="588,384.3984,592,394.3984,596,384.3984,592,388.3984" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[39b5d771579172087171e2a826b6cc04]
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="977px" preserveAspectRatio="none" style="width:999px;height:977px;" version="1.1" viewBox="0 0 999 977" width="999px" zoomAndPan="magnify"><defs><filter height="300%" id="f1xarfbp77gxeg" 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="454.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="117" x="440.25" y="47.6611">urtTopicInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="501.75" y="68.6143"/><path d="M223.75,72.8594 L223.75,213.9219 L774.75,213.9219 L774.75,82.8594 L764.75,72.8594 L223.75,72.8594 " fill="#FBFB77" filter="url(#f1xarfbp77gxeg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M764.75,72.8594 L764.75,82.8594 L774.75,82.8594 L764.75,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="433.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="437.25" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="437.25" y="89.4263">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="478.25" y="89.4263">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="565.25" x2="774.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="229.75" y="105.0591">The topic to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="229.75" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="309.75" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="341.75" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="442.75" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="446.75" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="446.75" y="134.8247">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="87" x="464.75" y="134.8247">: urt_topicid_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="555.75" x2="774.75" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="229.75" y="150.4575">Unique, numeric identifier of the topic.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="774.75" y1="158.5234" y2="158.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="774.75" y1="160.5234" y2="160.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="428.25" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="432.25" y="175.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="432.25" y="175.0903">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="481.25" y="175.0903">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="570.25" x2="774.75" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="229.75" y="190.7231">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="282.75" y="190.7231">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="390.75" y="190.7231">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="229.75" y="205.856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="282.75" y="205.856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="345" x="414.75" y="205.856">if another topic with the same identifier already exists.</text><ellipse cx="499.25" cy="243.9219" fill="#000000" filter="url(#f1xarfbp77gxeg)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M80.75,263.9219 L80.75,485.7813 A0,0 0 0 0 80.75,485.7813 L413.75,485.7813 A0,0 0 0 0 413.75,485.7813 L413.75,378.8516 L433.75,374.8516 L413.75,370.8516 L413.75,273.9219 L403.75,263.9219 L80.75,263.9219 A0,0 0 0 0 80.75,263.9219 " fill="#FBFB77" filter="url(#f1xarfbp77gxeg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M403.75,263.9219 L403.75,273.9219 L413.75,273.9219 L403.75,263.9219 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="86.75" y="280.9888">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="122.75" y="280.9888">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="137.75" y="280.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="86.75" y="296.1216">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="104.75" y="296.1216">← id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="86.75" y="311.2544">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="167.75" y="311.2544">lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="197.75" y="311.2544">)</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="86.75" y="326.3872">urtEventSourceInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="73" x="209.75" y="326.3872">evtSource</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="282.75" y="326.3872">)</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="134" x="86.75" y="341.52">numHrtSubscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="224.75" y="341.52">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="108" x="86.75" y="356.6528">hrtSubscribers</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="198.75" y="356.6528">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="213.75" y="356.6528">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="86.75" y="371.7856">urtCondvarInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="181.75" y="371.7856">hrtReleased</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="270.75" y="371.7856">)</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="99" x="86.75" y="386.9185">urtMessageInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="146" x="185.75" y="386.9185">mandatoryMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="331.75" y="386.9185">)</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="108" x="86.75" y="402.0513">latestMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="153" x="198.75" y="402.0513">← &amp;mandatoryMessage</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="80.75" x2="91.25" y1="412.6836" y2="412.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="304" x="95.25" y="416.6841">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="403.25" x2="413.75" y1="412.6836" y2="412.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="78" x="86.75" y="432.3169">urtTimerInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="102" x="164.75" y="432.3169">qosRateTimer</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="266.75" y="432.3169">)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="80.75" x2="118.75" y1="442.9492" y2="442.9492"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="122.75" y="446.9497">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="375.75" x2="413.75" y1="442.9492" y2="442.9492"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="181" x="86.75" y="462.5825">numDiscardedMessages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="271.75" y="462.5825">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="119" x="86.75" y="477.7153">numSubscribers</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="209.75" y="477.7153">← 0</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="433.75" y="357.8672"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="443.75" y="379.0059">initialize members</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="460.75" y="505.7813"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="470.75" y="526.9199">lock core</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="435.75" y="559.75"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="107" x="445.75" y="580.8887">access first topic</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="421.75" y="671.0386"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="431.75" y="692.1772">proceed to next topic</text><polygon fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" points="438.25,613.7188,560.25,613.7188,572.25,626.5234,560.25,639.3281,438.25,639.3281,426.25,626.5234,438.25,613.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="503.25" y="649.5386">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="66" x="438.25" y="623.9292">Topic is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="508.25" y="623.9292">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="438.25" y="636.7339">and topic ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="412.25" y="623.9292">no</text><polygon fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" points="160,747.0073,286,747.0073,298,759.0073,286,771.0073,160,771.0073,148,759.0073,160,747.0073" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="781.2178">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="88" x="160" y="762.8154">Current topic is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="252" y="762.8154">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="280" y="762.8154">?</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="110" y="802.7178"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="206" x="120" y="823.8564">append self to core's list of topic</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="871.6865"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="892.8252">unlock core</text><path d="M10,940.6553 L10,965.7881 A0,0 0 0 0 10,965.7881 L192,965.7881 A0,0 0 0 0 192,965.7881 L192,958.6553 L212,953.2217 L192,950.6553 L192,950.6553 L182,940.6553 L10,940.6553 A0,0 0 0 0 10,940.6553 " fill="#FBFB77" filter="url(#f1xarfbp77gxeg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,940.6553 L182,950.6553 L192,950.6553 L182,940.6553 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="957.7222">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="957.7222">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="957.7222">.</text><ellipse cx="223" cy="953.2217" fill="#FFFFFF" filter="url(#f1xarfbp77gxeg)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="953.2217" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" points="491.5,747.0073,646.5,747.0073,658.5,759.0073,646.5,771.0073,491.5,771.0073,479.5,759.0073,491.5,747.0073" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="573" y="781.2178">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="155" x="491.5" y="762.8154">Current topic ID is greater?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="658.5" y="756.4131">no</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="232" x="453" y="802.7178"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="212" x="463" y="823.8564">insert self in front of current topic</text><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="522.5" y="871.6865"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="532.5" y="892.8252">unlock core</text><path d="M356,940.6553 L356,965.7881 A0,0 0 0 0 356,965.7881 L538,965.7881 A0,0 0 0 0 538,965.7881 L538,958.6553 L558,953.2217 L538,950.6553 L538,950.6553 L528,940.6553 L356,940.6553 A0,0 0 0 0 356,940.6553 " fill="#FBFB77" filter="url(#f1xarfbp77gxeg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M528,940.6553 L528,950.6553 L538,950.6553 L528,940.6553 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="362" y="957.7222">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="415" y="957.7222">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="519" y="957.7222">.</text><ellipse cx="569" cy="953.2217" fill="#FFFFFF" filter="url(#f1xarfbp77gxeg)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="569" cy="953.2217" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1xarfbp77gxeg)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="895.5" y="833.7998"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="905.5" y="854.9385">unlock core</text><path d="M705,902.7686 L705,927.9014 A0,0 0 0 0 705,927.9014 L911,927.9014 A0,0 0 0 0 911,927.9014 L911,920.7686 L931,915.335 L911,912.7686 L911,912.7686 L901,902.7686 L705,902.7686 A0,0 0 0 0 705,902.7686 " fill="#FBFB77" filter="url(#f1xarfbp77gxeg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M901,902.7686 L901,912.7686 L911,912.7686 L901,902.7686 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="711" y="919.8354">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="764" y="919.8354">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="892" y="919.8354">.</text><ellipse cx="942" cy="915.335" fill="#FFFFFF" filter="url(#f1xarfbp77gxeg)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="942" cy="915.335" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="213.9219" y2="233.9219"/><polygon fill="#A80036" points="495.25,223.9219,499.25,233.9219,503.25,223.9219,499.25,227.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="253.9219" y2="357.8672"/><polygon fill="#A80036" points="495.25,347.8672,499.25,357.8672,503.25,347.8672,499.25,351.8672" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="391.8359" y2="505.7813"/><polygon fill="#A80036" points="495.25,495.7813,499.25,505.7813,503.25,495.7813,499.25,499.7813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="539.75" y2="559.75"/><polygon fill="#A80036" points="495.25,549.75,499.25,559.75,503.25,549.75,499.25,553.75" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="639.3281" y2="671.0386"/><polygon fill="#A80036" points="495.25,661.0386,499.25,671.0386,503.25,661.0386,499.25,665.0386" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="705.0073" y2="715.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="588.75" y1="715.0073" y2="715.0073"/><polygon fill="#A80036" points="584.75,679.2183,588.75,669.2183,592.75,679.2183,588.75,675.2183" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="588.75" x2="588.75" y1="626.5234" y2="715.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="588.75" x2="572.25" y1="626.5234" y2="626.5234"/><polygon fill="#A80036" points="582.25,622.5234,572.25,626.5234,582.25,630.5234,578.25,626.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="426.25" x2="409.75" y1="626.5234" y2="626.5234"/><polygon fill="#A80036" points="405.75,665.2183,409.75,675.2183,413.75,665.2183,409.75,669.2183" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.75" x2="409.75" y1="626.5234" y2="727.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.75" x2="499.25" y1="727.0073" y2="727.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="727.0073" y2="732.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="593.7188" y2="613.7188"/><polygon fill="#A80036" points="495.25,603.7188,499.25,613.7188,503.25,603.7188,499.25,607.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="836.6865" y2="871.6865"/><polygon fill="#A80036" points="219,861.6865,223,871.6865,227,861.6865,223,865.6865" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="905.6553" y2="942.2217"/><polygon fill="#A80036" points="219,932.2217,223,942.2217,227,932.2217,223,936.2217" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="569" x2="569" y1="836.6865" y2="871.6865"/><polygon fill="#A80036" points="565,861.6865,569,871.6865,573,861.6865,569,865.6865" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="569" x2="569" y1="905.6553" y2="942.2217"/><polygon fill="#A80036" points="565,932.2217,569,942.2217,573,932.2217,569,936.2217" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="942" x2="942" y1="867.7686" y2="904.335"/><polygon fill="#A80036" points="938,894.335,942,904.335,946,894.335,942,898.335" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="771.0073" y2="802.7178"/><polygon fill="#A80036" points="219,792.7178,223,802.7178,227,792.7178,223,796.7178" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="569" x2="569" y1="771.0073" y2="802.7178"/><polygon fill="#A80036" points="565,792.7178,569,802.7178,573,792.7178,569,796.7178" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="479.5" y1="759.0073" y2="759.0073"/><polygon fill="#A80036" points="469.5,755.0073,479.5,759.0073,469.5,763.0073,473.5,759.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="223" y1="732.0073" y2="732.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="732.0073" y2="747.0073"/><polygon fill="#A80036" points="219,737.0073,223,747.0073,227,737.0073,223,741.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="658.5" x2="942" y1="759.0073" y2="759.0073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="942" x2="942" y1="759.0073" y2="833.7998"/><polygon fill="#A80036" points="938,823.7998,942,833.7998,946,823.7998,942,827.7998" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9fa9be30da8e21a18991e544c89f1de4]
2 2
@startuml
3 3

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

  
6 6

  
7

  
8

  
9

  
10

  
11

  
12

  
13

  
14

  
15

  
16

  
17
start
18 7
note
19
  - - ""**topic** : urt_topic_t*"" - -
8
  - - **topic** : urt_topic_t* - -
20 9
  The topic to initialize.
21 10
  Must not be ""NULL"".
22
  - - ""**id** : urt_topicid_t"" - -
11
  - - **id** : urt_topicid_t - -
23 12
  Unique, numeric identifier of the topic.
24
end note
13
  ====
14
  - - **return** : urt_status_t - -
15
  Returns ""URT_STATUS_OK"" on success.
16
  Returns ""URT_STATUS_ERROR"" if another topic with the same identifier already exists.
17
endnote
25 18

  
26 19

  
20
start
27 21
:initialize members;
28
:lock core;
29
:insert self to global topic list;
30
:unlock core;
31

  
32

  
33
stop
34 22
note
35
  - - **return** ""urt_status_t"" - -
36
  Returns ""URT_STATUS_ERROR"" if another topic with the same identifier already exists.
37
end note
23
  **next** ← ""NULL""
24
  **id** ← id
25
  urtMutexInit(**lock**)
26
  urtEventSourceInit(**evtSource**)
27
  **numHrtSubscriber** ← 0
28
  **hrtSubscribers** ← ""NULL""
29
  urtCondvarInit(**hrtReleased**)
30
  urtMessageInit(**mandatoryMessage**)
31
  **latestMessage** ← &mandatoryMessage
32
  .. URT_CFG_PUBSUB_QOS_RATECHECKS == true ..
33
  urtTimerInit(**qosRateTimer**)
34
  .. URT_CFG_PUBSUB_PROFILING == true ..
35
  **numDiscardedMessages** ← 0
36
  **numSubscribers** ← 0
37
endnote
38
:lock core;
39
:access first topic;
40
while (Topic is not ""NULL""\nand topic ID is lower?) is (yes)
41
  :proceed to next topic;
42
endwhile (no)
43
if (Current topic is ""NULL""?) then (yes)
44
  :append self to core's list of topic;
45
  :unlock core;
46
  stop
47
  note
48
    Returns ""URT_STATUS_OK"".
49
  endnote
50
elseif (Current topic ID is greater?) then (yes)
51
  :insert self in front of current topic;
52
  :unlock core;
53
  stop
54
  note
55
    Returns ""URT_STATUS_OK"".
56
  endnote
57
else (no)
58
  :unlock core;
59
  stop
60
  note
61
    Returns ""URT_STATUS_ERROR"".
62
  endnote
63
endif
38 64

  
39 65

  
40 66
@enduml

Also available in: Unified diff