urtware / doc / activitydiagrams / subscriber / urtSubscriberSubscribeNrt.svg @ 7491c395
History | View | Annotate | Download (22.102 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="942px" preserveAspectRatio="none" style="width:1585px;height:942px;" version="1.1" viewBox="0 0 1585 942" width="1585px" zoomAndPan="magnify"><defs><filter height="300%" id="f5b2ebo74tcrj" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="747.375" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="162" x="710.875" y="47.6611">urtSubscriberNrt()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="794.875" y="68.6143"/><path d="M10,72.8594 L10,234.1875 A0,0 0 0 0 10,234.1875 L548,234.1875 A0,0 0 0 0 548,234.1875 L548,157.5234 L568,153.5234 L548,149.5234 L548,82.8594 L538,72.8594 L10,72.8594 A0,0 0 0 0 10,72.8594 " fill="#FBFB77" filter="url(#f5b2ebo74tcrj)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M538,72.8594 L538,82.8594 L548,82.8594 L538,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="155" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="159" y="89.4263"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="159" y="89.4263">subscriber</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="247" y="89.4263">: urt_subscriber_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="403" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="403" x2="548" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="298" x="16" y="105.0591">The subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="195" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="199" y="134.8247"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="199" y="134.8247">topic</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="247" y="134.8247">: urt_topic_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="363" y="134.8247"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="363" x2="548" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="16" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="16" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="96" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="128" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="175" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="179" y="180.2231"/><text fill="#000000" font-family="monospace" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="179" y="180.2231">messages</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="251" y="180.2231">: urt_message_t*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="383" y="180.2231"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="383" x2="548" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="303" x="16" y="195.856">List of messages to be contributed to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="373" x="16" y="210.9888">Those messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="517" x="16" y="226.1216">Once a message was contributed, it cannot be removed from the topic anymore.</text><ellipse cx="578" cy="153.5234" fill="#000000" filter="url(#f5b2ebo74tcrj)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" points="520.5,254.1875,635.5,254.1875,647.5,266.1875,635.5,278.1875,520.5,278.1875,508.5,266.1875,520.5,254.1875" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="520.5" y="269.9956">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="488.5" y="263.5933">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="647.5" y="263.5933">no</text><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="115.75" y="288.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="125.75" y="309.3262">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="168.75" y="309.3262">URT_STATUS_ERROR</text><rect fill="#000000" filter="url(#f5b2ebo74tcrj)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="232" x="836.75" y="288.1875"/><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="101" x="850.75" y="314.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="860.75" y="335.3262">set NRT data</text><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="979.75" y="314.1875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="989.75" y="335.3262">set topic</text><rect fill="#000000" filter="url(#f5b2ebo74tcrj)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="232" x="836.75" y="368.1563"/><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="912.75" y="394.1563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="922.75" y="415.2949">lock topic</text><rect fill="#000000" filter="url(#f5b2ebo74tcrj)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1264" x="310.75" y="448.125"/><rect fill="#FFFFFF" filter="url(#f5b2ebo74tcrj)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="638" x="334.75" y="520.6372"/><path d="M491.75,521.6372 L491.75,529.9341 L481.75,539.9341 L334.75,539.9341 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="337.75" y="534.6323">contribute messages</text><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="416.75" y="556.9341"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="426.75" y="578.0728">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="344.75" y="625.9028"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="354.75" y="647.0415">set next pointer of last message to contribute to the message after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" points="583.75,474.125,723.75,474.125,735.75,486.125,723.75,498.125,583.75,498.125,571.75,486.125,583.75,474.125" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="657.75" y="508.3354">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="583.75" y="489.9331">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="735.75" y="483.5308">no</text><polygon fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" points="653.75,691.8716,665.75,703.8716,653.75,715.8716,641.75,703.8716,653.75,691.8716" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1022.75" y="583.27"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1032.75" y="604.4087">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1345.75" y="583.27"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1355.75" y="604.4087">register to topic's event source</text><rect fill="#000000" filter="url(#f5b2ebo74tcrj)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1264" x="310.75" y="735.8716"/><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="904.75" y="761.8716"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="914.75" y="783.0103">unlock topic</text><rect fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="875.75" y="815.8403"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="885.75" y="836.979">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="928.75" y="836.979">URT_STATUS_OK</text><polygon fill="#FEFECE" filter="url(#f5b2ebo74tcrj)" points="578,855.8091,590,867.8091,578,879.8091,566,867.8091,578,855.8091" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M19,890.6763 L19,930.9419 A0,0 0 0 0 19,930.9419 L547,930.9419 A0,0 0 0 0 547,930.9419 L547,914.8091 L567,910.8091 L547,906.8091 L547,900.6763 L537,890.6763 L19,890.6763 A0,0 0 0 0 19,890.6763 " fill="#FBFB77" filter="url(#f5b2ebo74tcrj)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M537,890.6763 L537,900.6763 L547,900.6763 L537,890.6763 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="206.5" y1="903.2427" y2="903.2427"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="210.5" y="907.2432"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="210.5" y="907.2432">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="259.5" y="907.2432"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="259.5" y="907.2432">urt_status_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="359.5" y="907.2432"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="359.5" x2="547" y1="903.2427" y2="903.2427"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="25" y="922.876">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="78" y="922.876">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="210" y="922.876">if the subscriber was already associated to a topic.</text><ellipse cx="578" cy="910.8091" fill="#FFFFFF" filter="url(#f5b2ebo74tcrj)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="578" cy="910.8091" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="901.25" x2="901.25" y1="294.1875" y2="314.1875"/><polygon fill="#A80036" points="897.25,304.1875,901.25,314.1875,905.25,304.1875,901.25,308.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1017.25" x2="1017.25" y1="294.1875" y2="314.1875"/><polygon fill="#A80036" points="1013.25,304.1875,1017.25,314.1875,1021.25,304.1875,1017.25,308.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="901.25" x2="901.25" y1="348.1563" y2="368.1563"/><polygon fill="#A80036" points="897.25,358.1563,901.25,368.1563,905.25,358.1563,901.25,362.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1017.25" x2="1017.25" y1="348.1563" y2="368.1563"/><polygon fill="#A80036" points="1013.25,358.1563,1017.25,368.1563,1021.25,358.1563,1017.25,362.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="952.75" y1="374.1563" y2="394.1563"/><polygon fill="#A80036" points="948.75,384.1563,952.75,394.1563,956.75,384.1563,952.75,388.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.75" x2="653.75" y1="590.9028" y2="625.9028"/><polygon fill="#A80036" points="649.75,615.9028,653.75,625.9028,657.75,615.9028,653.75,619.9028" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.75" x2="653.75" y1="498.125" y2="556.9341"/><polygon fill="#A80036" points="649.75,546.9341,653.75,556.9341,657.75,546.9341,653.75,550.9341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="735.75" x2="982.75" y1="486.125" y2="486.125"/><polygon fill="#A80036" points="978.75,590.2544,982.75,600.2544,986.75,590.2544,982.75,594.2544" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="982.75" x2="982.75" y1="486.125" y2="703.8716"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="982.75" x2="665.75" y1="703.8716" y2="703.8716"/><polygon fill="#A80036" points="675.75,699.8716,665.75,703.8716,675.75,707.8716,671.75,703.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.75" x2="653.75" y1="659.8716" y2="691.8716"/><polygon fill="#A80036" points="649.75,681.8716,653.75,691.8716,657.75,681.8716,653.75,685.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.75" x2="653.75" y1="454.125" y2="474.125"/><polygon fill="#A80036" points="649.75,464.125,653.75,474.125,657.75,464.125,653.75,468.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1179.25" x2="1179.25" y1="454.125" y2="583.27"/><polygon fill="#A80036" points="1175.25,573.27,1179.25,583.27,1183.25,573.27,1179.25,577.27" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1454.25" x2="1454.25" y1="454.125" y2="583.27"/><polygon fill="#A80036" points="1450.25,573.27,1454.25,583.27,1458.25,573.27,1454.25,577.27" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.75" x2="653.75" y1="715.8716" y2="735.8716"/><polygon fill="#A80036" points="649.75,725.8716,653.75,735.8716,657.75,725.8716,653.75,729.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1179.25" x2="1179.25" y1="617.2388" y2="735.8716"/><polygon fill="#A80036" points="1175.25,725.8716,1179.25,735.8716,1183.25,725.8716,1179.25,729.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1454.25" x2="1454.25" y1="617.2388" y2="735.8716"/><polygon fill="#A80036" points="1450.25,725.8716,1454.25,735.8716,1458.25,725.8716,1454.25,729.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="952.75" y1="428.125" y2="448.125"/><polygon fill="#A80036" points="948.75,438.125,952.75,448.125,956.75,438.125,952.75,442.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="952.75" y1="741.8716" y2="761.8716"/><polygon fill="#A80036" points="948.75,751.8716,952.75,761.8716,956.75,751.8716,952.75,755.8716" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="952.75" y1="795.8403" y2="815.8403"/><polygon fill="#A80036" points="948.75,805.8403,952.75,815.8403,956.75,805.8403,952.75,809.8403" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="508.5" x2="203.25" y1="266.1875" y2="266.1875"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="203.25" x2="203.25" y1="266.1875" y2="288.1875"/><polygon fill="#A80036" points="199.25,278.1875,203.25,288.1875,207.25,278.1875,203.25,282.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="647.5" x2="952.75" y1="266.1875" y2="266.1875"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="952.75" y1="266.1875" y2="288.1875"/><polygon fill="#A80036" points="948.75,278.1875,952.75,288.1875,956.75,278.1875,952.75,282.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="203.25" x2="203.25" y1="322.1563" y2="867.8091"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="203.25" x2="566" y1="867.8091" y2="867.8091"/><polygon fill="#A80036" points="556,863.8091,566,867.8091,556,871.8091,560,867.8091" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="952.75" y1="849.8091" y2="867.8091"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="952.75" x2="590" y1="867.8091" y2="867.8091"/><polygon fill="#A80036" points="600,863.8091,590,867.8091,600,871.8091,596,867.8091" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="578" y1="163.5234" y2="254.1875"/><polygon fill="#A80036" points="574,244.1875,578,254.1875,582,244.1875,578,248.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="578" y1="879.8091" y2="899.8091"/><polygon fill="#A80036" points="574,889.8091,578,899.8091,582,889.8091,578,893.8091" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[4c127db864837fecd46f7ee5e709da0d] |
---|---|
2 |
@startuml |
3 |
|
4 |
title **µRtWare**\nurtSubscriberNrt()\n |
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
start |
18 |
note |
19 |
- - ""**subscriber** : urt_subscriber_t*"" - - |
20 |
The subscriber which shall subscribe to a topic. |
21 |
Must not be ""NULL"". |
22 |
- - ""**topic** : urt_topic_t*"" - - |
23 |
The topic to subscribe to. |
24 |
Must not be ""NULL"". |
25 |
- - ""**messages** : urt_message_t*"" - - |
26 |
List of messages to be contributed to the topic. |
27 |
Those messages must not be associated to another topic. |
28 |
Once a message was contributed, it cannot be removed from the topic anymore. |
29 |
end note |
30 |
|
31 |
|
32 |
if (Is topic already set?) then (yes) |
33 |
:return ""URT_STATUS_ERROR""; |
34 |
else (no) |
35 |
fork |
36 |
:set NRT data; |
37 |
fork again |
38 |
:set topic; |
39 |
endfork |
40 |
:lock topic; |
41 |
fork |
42 |
if (Messages to contribute?) then (yes) |
43 |
partition "contribute messages" { |
44 |
:set next pointer of topic's latest message to first message to contribute; |
45 |
:set next pointer of last message to contribute to the message after the topic's latest message; |
46 |
} |
47 |
else (no) |
48 |
endif |
49 |
fork again |
50 |
:set message pointer to topic's latest message; |
51 |
fork again |
52 |
:register to topic's event source; |
53 |
endfork |
54 |
:unlock topic; |
55 |
:return ""URT_STATUS_OK""; |
56 |
endif |
57 |
|
58 |
|
59 |
stop |
60 |
note |
61 |
- - **return** ""urt_status_t"" - - |
62 |
Returns ""URT_STATUS_ERROR"" if the subscriber was already associated to a topic. |
63 |
end note |
64 |
|
65 |
|
66 |
@enduml |
67 |
|
68 |
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020) |
69 |
(GPL source distribution) |
70 |
Java Runtime: OpenJDK Runtime Environment |
71 |
JVM: OpenJDK 64-Bit Server VM |
72 |
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1 |
73 |
Operating System: Linux |
74 |
Default Encoding: UTF-8 |
75 |
Language: en |
76 |
Country: US |
77 |
--></g></svg> |