urtware / doc / activitydiagrams / topic / urtTopicInit.svg @ 33aa05c5
History | View | Annotate | Download (33.422 KB)
1 | 77bd2c61 | skenneweg | <?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="1095px" preserveAspectRatio="none" style="width:1085px;height:1095px;" version="1.1" viewBox="0 0 1085 1095" width="1085px" zoomAndPan="magnify"><defs><filter height="300%" id="f18sfotrgi6r4b" 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="497.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="117" x="483.25" y="47.6611">urtTopicInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="544.75" y="68.6143"/><path d="M223.75,72.8594 L223.75,259.3203 L854.75,259.3203 L854.75,82.8594 L844.75,72.8594 L223.75,72.8594 " fill="#FBFB77" filter="url(#f18sfotrgi6r4b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M844.75,72.8594 L844.75,82.8594 L854.75,82.8594 L844.75,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="473.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="477.25" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="477.25" y="89.4263">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="518.25" y="89.4263">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="605.25" x2="854.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="482.75" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="486.75" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="486.75" y="134.8247">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="87" x="504.75" y="134.8247">: urt_topicid_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="595.75" x2="854.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="404.75" y1="161.0898" y2="161.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="408.75" y="165.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="146" x="408.75" y="165.0903">mandatoryMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="558.75" y="165.0903">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="673.75" x2="854.75" y1="161.0898" y2="161.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="194" x="229.75" y="180.7231">Starting message of the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="229.75" y="195.856">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="309.75" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="341.75" y="195.856">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="854.75" y1="203.9219" y2="203.9219"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="854.75" y1="205.9219" y2="205.9219"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="223.75" x2="468.25" y1="216.4883" y2="216.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="472.25" y="220.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="472.25" y="220.4888">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="521.25" y="220.4888">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="610.25" x2="854.75" y1="216.4883" y2="216.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="229.75" y="236.1216">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="282.75" y="236.1216">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="390.75" y="236.1216">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="229.75" y="251.2544">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="282.75" y="251.2544">URT_STATUS_TOPIC_DUPLICATE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="345" x="494.75" y="251.2544">if another topic with the same identifier already exists.</text><ellipse cx="539.25" cy="289.3203" fill="#000000" filter="url(#f18sfotrgi6r4b)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M120.75,309.3203 L120.75,546.3125 A0,0 0 0 0 120.75,546.3125 L453.75,546.3125 A0,0 0 0 0 453.75,546.3125 L453.75,431.8164 L473.75,427.8164 L453.75,423.8164 L453.75,319.3203 L443.75,309.3203 L120.75,309.3203 A0,0 0 0 0 120.75,309.3203 " fill="#FBFB77" filter="url(#f18sfotrgi6r4b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M443.75,309.3203 L443.75,319.3203 L453.75,319.3203 L443.75,309.3203 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="132.25" cy="321.9531" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="137.75" y="326.3872">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="173.75" y="326.3872">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="188.75" y="326.3872">NULL</text><ellipse cx="132.25" cy="337.0859" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="137.75" y="341.52">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="155.75" y="341.52">← id</text><ellipse cx="132.25" cy="352.2188" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="137.75" y="356.6528">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="218.75" y="356.6528">lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="248.75" y="356.6528">)</text><ellipse cx="132.25" cy="367.3516" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="137.75" y="371.7856">urtEventSourceInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="73" x="260.75" y="371.7856">evtSource</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="333.75" y="371.7856">)</text><ellipse cx="132.25" cy="382.4844" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="134" x="137.75" y="386.9185">numHrtSubscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="275.75" y="386.9185">← 0</text><ellipse cx="132.25" cy="397.6172" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="137.75" y="402.0513">urtCondvarInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="232.75" y="402.0513">hrtReleased</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="321.75" y="402.0513">)</text><ellipse cx="132.25" cy="412.75" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="146" x="137.75" y="417.1841">mandatoryMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="142" x="287.75" y="417.1841">← mandatoryMessage</text><ellipse cx="132.25" cy="427.8828" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="108" x="137.75" y="432.3169">latestMessage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="153" x="249.75" y="432.3169">← &mandatoryMessage</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="120.75" x2="131.25" y1="442.9492" y2="442.9492"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="304" x="135.25" y="446.9497">URT_CFG_PUBSUB_QOS_RATECHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="443.25" x2="453.75" y1="442.9492" y2="442.9492"/><ellipse cx="132.25" cy="458.1484" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="108" x="137.75" y="462.5825">hrtSubscribers</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="249.75" y="462.5825">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="264.75" y="462.5825">NULL</text><ellipse cx="132.25" cy="473.2813" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="78" x="137.75" y="477.7153">urtTimerInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="102" x="215.75" y="477.7153">qosRateTimer</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="317.75" y="477.7153">)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="120.75" x2="158.75" y1="488.3477" y2="488.3477"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="162.75" y="492.3481">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="415.75" x2="453.75" y1="488.3477" y2="488.3477"/><ellipse cx="132.25" cy="503.5469" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="179" x="137.75" y="507.981">numMessagesPublished</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="320.75" y="507.981">← 0</text><ellipse cx="132.25" cy="518.6797" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="181" x="137.75" y="523.1138">numMessagesDiscarded</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="322.75" y="523.1138">← 0</text><ellipse cx="132.25" cy="533.8125" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="119" x="137.75" y="538.2466">numSubscribers</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="260.75" y="538.2466">← 0</text><rect fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="473.75" y="410.832"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="483.75" y="431.9707">initialize members</text><path d="M146.75,570.7305 L146.75,595.8633 A0,0 0 0 0 146.75,595.8633 L416.75,595.8633 A0,0 0 0 0 416.75,595.8633 L416.75,588.7305 L436.75,583.2969 L416.75,580.7305 L416.75,580.7305 L406.75,570.7305 L146.75,570.7305 A0,0 0 0 0 146.75,570.7305 " fill="#FBFB77" filter="url(#f18sfotrgi6r4b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M406.75,570.7305 L406.75,580.7305 L416.75,580.7305 L406.75,570.7305 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="152.75" y="587.7974">latestMessage</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="245.75" y="587.7974">-></text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="140" x="261.75" y="587.7974">next ← latestMessage</text><rect fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="205" x="436.75" y="566.3125"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="185" x="446.75" y="587.4512">close circular message buffer</text><rect fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="500.75" y="620.2813"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="510.75" y="641.4199">lock core</text><rect fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="475.75" y="674.25"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="107" x="485.75" y="695.3887">access first topic</text><rect fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="461.75" y="785.5386"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="471.75" y="806.6772">proceed to next topic</text><polygon fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" points="478.25,728.2188,600.25,728.2188,612.25,741.0234,600.25,753.8281,478.25,753.8281,466.25,741.0234,478.25,728.2188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="543.25" y="764.0386">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="66" x="478.25" y="738.4292">Topic is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="548.25" y="738.4292">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="478.25" y="751.2339">and topic ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="452.25" y="738.4292">no</text><polygon fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" points="160,861.5073,286,861.5073,298,873.5073,286,885.5073,160,885.5073,148,873.5073,160,861.5073" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="895.7178">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="88" x="160" y="877.3154">Current topic is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="252" y="877.3154">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="280" y="877.3154">?</text><rect fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="110" y="917.2178"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="206" x="120" y="938.3564">append self to core's list of topic</text><rect fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="986.1865"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="1007.3252">unlock core</text><path d="M10,1055.1553 L10,1080.2881 A0,0 0 0 0 10,1080.2881 L192,1080.2881 A0,0 0 0 0 192,1080.2881 L192,1073.1553 L212,1067.7217 L192,1065.1553 L192,1065.1553 L182,1055.1553 L10,1055.1553 A0,0 0 0 0 10,1055.1553 " fill="#FBFB77" filter="url(#f18sfotrgi6r4b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,1055.1553 L182,1065.1553 L192,1065.1553 L182,1055.1553 " 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="1072.2222">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="1072.2222">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="1072.2222">.</text><ellipse cx="223" cy="1067.7217" fill="#FFFFFF" filter="url(#f18sfotrgi6r4b)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="1067.7217" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" points="491.5,861.5073,646.5,861.5073,658.5,873.5073,646.5,885.5073,491.5,885.5073,479.5,873.5073,491.5,861.5073" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="573" y="895.7178">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="155" x="491.5" y="877.3154">Current topic ID is greater?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="658.5" y="870.9131">no</text><rect fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="232" x="453" y="917.2178"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="212" x="463" y="938.3564">insert self in front of current topic</text><rect fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="522.5" y="986.1865"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="532.5" y="1007.3252">unlock core</text><path d="M356,1055.1553 L356,1080.2881 A0,0 0 0 0 356,1080.2881 L538,1080.2881 A0,0 0 0 0 538,1080.2881 L538,1073.1553 L558,1067.7217 L538,1065.1553 L538,1065.1553 L528,1055.1553 L356,1055.1553 A0,0 0 0 0 356,1055.1553 " fill="#FBFB77" filter="url(#f18sfotrgi6r4b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M528,1055.1553 L528,1065.1553 L538,1065.1553 L528,1055.1553 " 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="1072.2222">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="415" y="1072.2222">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="519" y="1072.2222">.</text><ellipse cx="569" cy="1067.7217" fill="#FFFFFF" filter="url(#f18sfotrgi6r4b)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="569" cy="1067.7217" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f18sfotrgi6r4b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="975.5" y="948.2998"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="985.5" y="969.4385">unlock core</text><path d="M705,1017.2686 L705,1042.4014 A0,0 0 0 0 705,1042.4014 L991,1042.4014 A0,0 0 0 0 991,1042.4014 L991,1035.2686 L1011,1029.835 L991,1027.2686 L991,1027.2686 L981,1017.2686 L705,1017.2686 A0,0 0 0 0 705,1017.2686 " fill="#FBFB77" filter="url(#f18sfotrgi6r4b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M981,1017.2686 L981,1027.2686 L991,1027.2686 L981,1017.2686 " 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="1034.3354">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="764" y="1034.3354">URT_STATUS_TOPIC_DUPLICATE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="972" y="1034.3354">.</text><ellipse cx="1022" cy="1029.835" fill="#FFFFFF" filter="url(#f18sfotrgi6r4b)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1022" cy="1029.835" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="539.25" x2="539.25" y1="259.3203" y2="279.3203"/><polygon fill="#A80036" points="535.25,269.3203,539.25,279.3203,543.25,269.3203,539.25,273.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="539.25" x2="539.25" y1="299.3203" y2="410.832"/><polygon fill="#A80036" points="535.25,400.832,539.25,410.832,543.25,400.832,539.25,404.832" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="539.25" x2="539.25" y1="444.8008" y2="566.3125"/><polygon fill="#A80036" points="535.25,556.3125,539.25,566.3125,543.25,556.3125,539.25,560.3125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="539.25" x2="539.25" y1="600.2813" y2="620.2813"/><polygon fill="#A80036" points="535.25,610.2813,539.25,620.2813,543.25,610.2813,539.25,614.2813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="539.25" x2="539.25" y1="654.25" y2="674.25"/><polygon fill="#A80036" points="535.25,664.25,539.25,674.25,543.25,664.25,539.25,668.25" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="539.25" x2="539.25" y1="753.8281" y2="785.5386"/><polygon fill="#A80036" points="535.25,775.5386,539.25,785.5386,543.25,775.5386,539.25,779.5386" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="539.25" x2="539.25" y1="819.5073" y2="829.5073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="539.25" x2="628.75" y1="829.5073" y2="829.5073"/><polygon fill="#A80036" points="624.75,793.7183,628.75,783.7183,632.75,793.7183,628.75,789.7183" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.75" x2="628.75" y1="741.0234" y2="829.5073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.75" x2="612.25" y1="741.0234" y2="741.0234"/><polygon fill="#A80036" points="622.25,737.0234,612.25,741.0234,622.25,745.0234,618.25,741.0234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="466.25" x2="449.75" y1="741.0234" y2="741.0234"/><polygon fill="#A80036" points="445.75,779.7183,449.75,789.7183,453.75,779.7183,449.75,783.7183" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="449.75" x2="449.75" y1="741.0234" y2="841.5073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="449.75" x2="539.25" y1="841.5073" y2="841.5073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="539.25" x2="539.25" y1="841.5073" y2="846.5073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="539.25" x2="539.25" y1="708.2188" y2="728.2188"/><polygon fill="#A80036" points="535.25,718.2188,539.25,728.2188,543.25,718.2188,539.25,722.2188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="951.1865" y2="986.1865"/><polygon fill="#A80036" points="219,976.1865,223,986.1865,227,976.1865,223,980.1865" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="1020.1553" y2="1056.7217"/><polygon fill="#A80036" points="219,1046.7217,223,1056.7217,227,1046.7217,223,1050.7217" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="569" x2="569" y1="951.1865" y2="986.1865"/><polygon fill="#A80036" points="565,976.1865,569,986.1865,573,976.1865,569,980.1865" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="569" x2="569" y1="1020.1553" y2="1056.7217"/><polygon fill="#A80036" points="565,1046.7217,569,1056.7217,573,1046.7217,569,1050.7217" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1022" x2="1022" y1="982.2686" y2="1018.835"/><polygon fill="#A80036" points="1018,1008.835,1022,1018.835,1026,1008.835,1022,1012.835" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="885.5073" y2="917.2178"/><polygon fill="#A80036" points="219,907.2178,223,917.2178,227,907.2178,223,911.2178" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="569" x2="569" y1="885.5073" y2="917.2178"/><polygon fill="#A80036" points="565,907.2178,569,917.2178,573,907.2178,569,911.2178" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="479.5" y1="873.5073" y2="873.5073"/><polygon fill="#A80036" points="469.5,869.5073,479.5,873.5073,469.5,877.5073,473.5,873.5073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="539.25" x2="223" y1="846.5073" y2="846.5073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="846.5073" y2="861.5073"/><polygon fill="#A80036" points="219,851.5073,223,861.5073,227,851.5073,223,855.5073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="658.5" x2="1022" y1="873.5073" y2="873.5073"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1022" x2="1022" y1="873.5073" y2="948.2998"/><polygon fill="#A80036" points="1018,938.2998,1022,948.2998,1026,938.2998,1022,942.2998" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a618885110f4d5e675a4288c5683db04] |
---|---|---|---|
2 | 7491c395 | Thomas Schöpping | @startuml |
3 | |||
4 | title **µRtWare**\nurtTopicInit()\n |
||
5 | |||
6 | 77bd2c61 | skenneweg | /'### PARAMETERS & RETURN ####################################################'/ |
7 | 7491c395 | Thomas Schöpping | |
8 | note |
||
9 | ee83a495 | Thomas Schöpping | - - **topic** : urt_topic_t* - - |
10 | 7491c395 | Thomas Schöpping | The topic to initialize. |
11 | Must not be ""NULL"". |
||
12 | ee83a495 | Thomas Schöpping | - - **id** : urt_topicid_t - - |
13 | 7491c395 | Thomas Schöpping | Unique, numeric identifier of the topic. |
14 | 77bd2c61 | skenneweg | - - **mandatoryMessage** : urt_message_t* - - |
15 | Starting message of the topic. |
||
16 | Must not be ""NULL"". |
||
17 | ==== |
||
18 | - - **return** : urt_status_t - - |
||
19 | Returns ""URT_STATUS_OK"" on success. |
||
20 | Returns ""URT_STATUS_TOPIC_DUPLICATE"" if another topic with the same identifier already exists. |
||
21 | endnote |
||
22 | |||
23 | /'### PROCEDURE ##############################################################'/ |
||
24 | |||
25 | start |
||
26 | :initialize members; |
||
27 | note |
||
28 | * **next** ← ""NULL"" |
||
29 | * **id** ← id |
||
30 | * urtMutexInit(**lock**) |
||
31 | * urtEventSourceInit(**evtSource**) |
||
32 | * **numHrtSubscriber** ← 0 |
||
33 | * urtCondvarInit(**hrtReleased**) |
||
34 | * **mandatoryMessage** ← mandatoryMessage |
||
35 | * **latestMessage** ← &mandatoryMessage |
||
36 | .. URT_CFG_PUBSUB_QOS_RATECHECKS == true .. |
||
37 | * **hrtSubscribers** ← ""NULL"" |
||
38 | * urtTimerInit(**qosRateTimer**) |
||
39 | .. URT_CFG_PUBSUB_PROFILING == true .. |
||
40 | * **numMessagesPublished** ← 0 |
||
41 | * **numMessagesDiscarded** ← 0 |
||
42 | * **numSubscribers** ← 0 |
||
43 | endnote |
||
44 | :close circular message buffer; |
||
45 | note |
||
46 | latestMessage""->""next ← latestMessage |
||
47 | endnote |
||
48 | :lock core; |
||
49 | :access first topic; |
||
50 | while (Topic is not ""NULL""\nand topic ID is lower?) is (yes) |
||
51 | :proceed to next topic; |
||
52 | endwhile (no) |
||
53 | if (Current topic is ""NULL""?) then (yes) |
||
54 | :append self to core's list of topic; |
||
55 | :unlock core; |
||
56 | stop |
||
57 | note |
||
58 | Returns ""URT_STATUS_OK"". |
||
59 | endnote |
||
60 | elseif (Current topic ID is greater?) then (yes) |
||
61 | :insert self in front of current topic; |
||
62 | :unlock core; |
||
63 | stop |
||
64 | note |
||
65 | Returns ""URT_STATUS_OK"". |
||
66 | endnote |
||
67 | else (no) |
||
68 | :unlock core; |
||
69 | stop |
||
70 | note |
||
71 | Returns ""URT_STATUS_TOPIC_DUPLICATE"". |
||
72 | endnote |
||
73 | endif |
||
74 | |||
75 | /'### OUTRO ##################################################################'/ |
||
76 | |||
77 | @enduml |
||
78 | |||
79 | @startuml |
||
80 | |||
81 | title **µRtWare**\nurtTopicInit()\n |
||
82 | |||
83 | |||
84 | note |
||
85 | - - **topic** : urt_topic_t* - - |
||
86 | The topic to initialize. |
||
87 | Must not be ""NULL"". |
||
88 | - - **id** : urt_topicid_t - - |
||
89 | Unique, numeric identifier of the topic. |
||
90 | - - **mandatoryMessage** : urt_message_t* - - |
||
91 | Starting message of the topic. |
||
92 | Must not be ""NULL"". |
||
93 | ee83a495 | Thomas Schöpping | ==== |
94 | - - **return** : urt_status_t - - |
||
95 | Returns ""URT_STATUS_OK"" on success. |
||
96 | dd31cb03 | Thomas Schöpping | Returns ""URT_STATUS_TOPIC_DUPLICATE"" if another topic with the same identifier already exists. |
97 | ee83a495 | Thomas Schöpping | endnote |
98 | 7491c395 | Thomas Schöpping | |
99 | |||
100 | ee83a495 | Thomas Schöpping | start |
101 | 7491c395 | Thomas Schöpping | :initialize members; |
102 | note |
||
103 | dd31cb03 | Thomas Schöpping | * **next** ← ""NULL"" |
104 | * **id** ← id |
||
105 | * urtMutexInit(**lock**) |
||
106 | * urtEventSourceInit(**evtSource**) |
||
107 | * **numHrtSubscriber** ← 0 |
||
108 | * urtCondvarInit(**hrtReleased**) |
||
109 | 77bd2c61 | skenneweg | * **mandatoryMessage** ← mandatoryMessage |
110 | dd31cb03 | Thomas Schöpping | * **latestMessage** ← &mandatoryMessage |
111 | ee83a495 | Thomas Schöpping | .. URT_CFG_PUBSUB_QOS_RATECHECKS == true .. |
112 | dd31cb03 | Thomas Schöpping | * **hrtSubscribers** ← ""NULL"" |
113 | * urtTimerInit(**qosRateTimer**) |
||
114 | ee83a495 | Thomas Schöpping | .. URT_CFG_PUBSUB_PROFILING == true .. |
115 | dd31cb03 | Thomas Schöpping | * **numMessagesPublished** ← 0 |
116 | * **numMessagesDiscarded** ← 0 |
||
117 | * **numSubscribers** ← 0 |
||
118 | ee83a495 | Thomas Schöpping | endnote |
119 | e87bd7c7 | Thomas Schöpping | :close circular message buffer; |
120 | note |
||
121 | latestMessage""->""next ← latestMessage |
||
122 | endnote |
||
123 | ee83a495 | Thomas Schöpping | :lock core; |
124 | :access first topic; |
||
125 | while (Topic is not ""NULL""\nand topic ID is lower?) is (yes) |
||
126 | :proceed to next topic; |
||
127 | endwhile (no) |
||
128 | if (Current topic is ""NULL""?) then (yes) |
||
129 | :append self to core's list of topic; |
||
130 | :unlock core; |
||
131 | stop |
||
132 | note |
||
133 | Returns ""URT_STATUS_OK"". |
||
134 | endnote |
||
135 | elseif (Current topic ID is greater?) then (yes) |
||
136 | :insert self in front of current topic; |
||
137 | :unlock core; |
||
138 | stop |
||
139 | note |
||
140 | Returns ""URT_STATUS_OK"". |
||
141 | endnote |
||
142 | else (no) |
||
143 | :unlock core; |
||
144 | stop |
||
145 | note |
||
146 | dd31cb03 | Thomas Schöpping | Returns ""URT_STATUS_TOPIC_DUPLICATE"". |
147 | ee83a495 | Thomas Schöpping | endnote |
148 | endif |
||
149 | 7491c395 | Thomas Schöpping | |
150 | |||
151 | @enduml |
||
152 | |||
153 | 77bd2c61 | skenneweg | PlantUML version 1.2020.15(Sun Jun 28 13:39:45 CEST 2020) |
154 | 7491c395 | Thomas Schöpping | (GPL source distribution) |
155 | Java Runtime: OpenJDK Runtime Environment |
||
156 | JVM: OpenJDK 64-Bit Server VM |
||
157 | Default Encoding: UTF-8 |
||
158 | 77bd2c61 | skenneweg | Language: de |
159 | Country: DE |
||
160 | 7491c395 | Thomas Schöpping | --></g></svg> |