Statistics
| Branch: | Revision:

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>