Statistics
| Branch: | Revision:

urtware / doc / activitydiagrams / topic / urtTopicInit.svg @ e87bd7c7

History | View | Annotate | Download (28.287 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="1031px" preserveAspectRatio="none" style="width:999px;height:1031px;" version="1.1" viewBox="0 0 999 1031" width="999px" zoomAndPan="magnify"><defs><filter height="300%" id="fxpvnq5f0ubws" 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(#fxpvnq5f0ubws)" 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(#fxpvnq5f0ubws)" 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(#fxpvnq5f0ubws)" 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(#fxpvnq5f0ubws)" 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><path d="M106.75,510.1992 L106.75,535.332 A0,0 0 0 0 106.75,535.332 L376.75,535.332 A0,0 0 0 0 376.75,535.332 L376.75,528.1992 L396.75,522.7656 L376.75,520.1992 L376.75,520.1992 L366.75,510.1992 L106.75,510.1992 A0,0 0 0 0 106.75,510.1992 " fill="#FBFB77" filter="url(#fxpvnq5f0ubws)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M366.75,510.1992 L366.75,520.1992 L376.75,520.1992 L366.75,510.1992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="112.75" y="527.2661">latestMessage</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="205.75" y="527.2661">-&gt;</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="140" x="221.75" y="527.2661">next ← latestMessage</text><rect fill="#FEFECE" filter="url(#fxpvnq5f0ubws)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="205" x="396.75" y="505.7813"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="185" x="406.75" y="526.9199">close circular message buffer</text><rect fill="#FEFECE" filter="url(#fxpvnq5f0ubws)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="460.75" y="559.75"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="470.75" y="580.8887">lock core</text><rect fill="#FEFECE" filter="url(#fxpvnq5f0ubws)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="435.75" y="613.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="107" x="445.75" y="634.8574">access first topic</text><rect fill="#FEFECE" filter="url(#fxpvnq5f0ubws)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="421.75" y="725.0073"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="431.75" y="746.146">proceed to next topic</text><polygon fill="#FEFECE" filter="url(#fxpvnq5f0ubws)" points="438.25,667.6875,560.25,667.6875,572.25,680.4922,560.25,693.2969,438.25,693.2969,426.25,680.4922,438.25,667.6875" 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="703.5073">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="66" x="438.25" y="677.8979">Topic is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="508.25" y="677.8979">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="438.25" y="690.7026">and topic ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="412.25" y="677.8979">no</text><polygon fill="#FEFECE" filter="url(#fxpvnq5f0ubws)" points="160,800.9761,286,800.9761,298,812.9761,286,824.9761,160,824.9761,148,812.9761,160,800.9761" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="835.1865">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="88" x="160" y="816.7842">Current topic is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="252" y="816.7842">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="280" y="816.7842">?</text><rect fill="#FEFECE" filter="url(#fxpvnq5f0ubws)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="110" y="856.6865"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="206" x="120" y="877.8252">append self to core's list of topic</text><rect fill="#FEFECE" filter="url(#fxpvnq5f0ubws)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="925.6553"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="946.7939">unlock core</text><path d="M10,994.624 L10,1019.7568 A0,0 0 0 0 10,1019.7568 L192,1019.7568 A0,0 0 0 0 192,1019.7568 L192,1012.624 L212,1007.1904 L192,1004.624 L192,1004.624 L182,994.624 L10,994.624 A0,0 0 0 0 10,994.624 " fill="#FBFB77" filter="url(#fxpvnq5f0ubws)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,994.624 L182,1004.624 L192,1004.624 L182,994.624 " 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="1011.6909">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="1011.6909">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="1011.6909">.</text><ellipse cx="223" cy="1007.1904" fill="#FFFFFF" filter="url(#fxpvnq5f0ubws)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="1007.1904" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fxpvnq5f0ubws)" points="491.5,800.9761,646.5,800.9761,658.5,812.9761,646.5,824.9761,491.5,824.9761,479.5,812.9761,491.5,800.9761" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="573" y="835.1865">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="155" x="491.5" y="816.7842">Current topic ID is greater?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="658.5" y="810.3818">no</text><rect fill="#FEFECE" filter="url(#fxpvnq5f0ubws)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="232" x="453" y="856.6865"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="212" x="463" y="877.8252">insert self in front of current topic</text><rect fill="#FEFECE" filter="url(#fxpvnq5f0ubws)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="522.5" y="925.6553"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="532.5" y="946.7939">unlock core</text><path d="M356,994.624 L356,1019.7568 A0,0 0 0 0 356,1019.7568 L538,1019.7568 A0,0 0 0 0 538,1019.7568 L538,1012.624 L558,1007.1904 L538,1004.624 L538,1004.624 L528,994.624 L356,994.624 A0,0 0 0 0 356,994.624 " fill="#FBFB77" filter="url(#fxpvnq5f0ubws)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M528,994.624 L528,1004.624 L538,1004.624 L528,994.624 " 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="1011.6909">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="415" y="1011.6909">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="519" y="1011.6909">.</text><ellipse cx="569" cy="1007.1904" fill="#FFFFFF" filter="url(#fxpvnq5f0ubws)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="569" cy="1007.1904" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fxpvnq5f0ubws)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="895.5" y="887.7686"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="905.5" y="908.9072">unlock core</text><path d="M705,956.7373 L705,981.8701 A0,0 0 0 0 705,981.8701 L911,981.8701 A0,0 0 0 0 911,981.8701 L911,974.7373 L931,969.3037 L911,966.7373 L911,966.7373 L901,956.7373 L705,956.7373 A0,0 0 0 0 705,956.7373 " fill="#FBFB77" filter="url(#fxpvnq5f0ubws)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M901,956.7373 L901,966.7373 L911,966.7373 L901,956.7373 " 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="973.8042">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="764" y="973.8042">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="892" y="973.8042">.</text><ellipse cx="942" cy="969.3037" fill="#FFFFFF" filter="url(#fxpvnq5f0ubws)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="942" cy="969.3037" 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="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="499.25" x2="499.25" y1="693.2969" y2="725.0073"/><polygon fill="#A80036" points="495.25,715.0073,499.25,725.0073,503.25,715.0073,499.25,719.0073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="758.9761" y2="768.9761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="588.75" y1="768.9761" y2="768.9761"/><polygon fill="#A80036" points="584.75,733.187,588.75,723.187,592.75,733.187,588.75,729.187" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="588.75" x2="588.75" y1="680.4922" y2="768.9761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="588.75" x2="572.25" y1="680.4922" y2="680.4922"/><polygon fill="#A80036" points="582.25,676.4922,572.25,680.4922,582.25,684.4922,578.25,680.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="426.25" x2="409.75" y1="680.4922" y2="680.4922"/><polygon fill="#A80036" points="405.75,719.187,409.75,729.187,413.75,719.187,409.75,723.187" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.75" x2="409.75" y1="680.4922" y2="780.9761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.75" x2="499.25" y1="780.9761" y2="780.9761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="780.9761" y2="785.9761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="499.25" y1="647.6875" y2="667.6875"/><polygon fill="#A80036" points="495.25,657.6875,499.25,667.6875,503.25,657.6875,499.25,661.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="890.6553" y2="925.6553"/><polygon fill="#A80036" points="219,915.6553,223,925.6553,227,915.6553,223,919.6553" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="959.624" y2="996.1904"/><polygon fill="#A80036" points="219,986.1904,223,996.1904,227,986.1904,223,990.1904" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="569" x2="569" y1="890.6553" y2="925.6553"/><polygon fill="#A80036" points="565,915.6553,569,925.6553,573,915.6553,569,919.6553" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="569" x2="569" y1="959.624" y2="996.1904"/><polygon fill="#A80036" points="565,986.1904,569,996.1904,573,986.1904,569,990.1904" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="942" x2="942" y1="921.7373" y2="958.3037"/><polygon fill="#A80036" points="938,948.3037,942,958.3037,946,948.3037,942,952.3037" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="824.9761" y2="856.6865"/><polygon fill="#A80036" points="219,846.6865,223,856.6865,227,846.6865,223,850.6865" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="569" x2="569" y1="824.9761" y2="856.6865"/><polygon fill="#A80036" points="565,846.6865,569,856.6865,573,846.6865,569,850.6865" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="479.5" y1="812.9761" y2="812.9761"/><polygon fill="#A80036" points="469.5,808.9761,479.5,812.9761,469.5,816.9761,473.5,812.9761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="499.25" x2="223" y1="785.9761" y2="785.9761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="785.9761" y2="800.9761"/><polygon fill="#A80036" points="219,790.9761,223,800.9761,227,790.9761,223,794.9761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="658.5" x2="942" y1="812.9761" y2="812.9761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="942" x2="942" y1="812.9761" y2="887.7686"/><polygon fill="#A80036" points="938,877.7686,942,887.7686,946,877.7686,942,881.7686" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[75588162bd2c775fc0dfe49fc5f43cd1]
2
@startuml
3

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

    
6

    
7
note
8
  - - **topic** : urt_topic_t* - -
9
  The topic to initialize.
10
  Must not be ""NULL"".
11
  - - **id** : urt_topicid_t - -
12
  Unique, numeric identifier of the topic.
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
18

    
19

    
20
start
21
:initialize members;
22
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
:close circular message buffer;
39
note
40
  latestMessage""->""next ← latestMessage
41
endnote
42
:lock core;
43
:access first topic;
44
while (Topic is not ""NULL""\nand topic ID is lower?) is (yes)
45
  :proceed to next topic;
46
endwhile (no)
47
if (Current topic is ""NULL""?) then (yes)
48
  :append self to core's list of topic;
49
  :unlock core;
50
  stop
51
  note
52
    Returns ""URT_STATUS_OK"".
53
  endnote
54
elseif (Current topic ID is greater?) then (yes)
55
  :insert self in front of current topic;
56
  :unlock core;
57
  stop
58
  note
59
    Returns ""URT_STATUS_OK"".
60
  endnote
61
else (no)
62
  :unlock core;
63
  stop
64
  note
65
    Returns ""URT_STATUS_ERROR"".
66
  endnote
67
endif
68

    
69

    
70
@enduml
71

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