urtware / doc / activitydiagrams / subscriber / urtSrtSubscriberFetchLatestMessage.svg @ ee83a495
History | View | Annotate | Download (24.223 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="1004px" preserveAspectRatio="none" style="width:1281px;height:1004px;" version="1.1" viewBox="0 0 1281 1004" width="1281px" zoomAndPan="magnify"><defs><filter height="300%" id="f7zfa7kymyxg1" 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="595" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="335" x="472" y="47.6611">urtSrtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="642.5" y="68.6143"/><path d="M631,72.8594 L631,304.7188 L1119,304.7188 L1119,82.8594 L1109,72.8594 L631,72.8594 " fill="#FBFB77" filter="url(#f7zfa7kymyxg1)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1109,72.8594 L1109,82.8594 L1119,82.8594 L1109,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="762.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="766.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="766.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="848.5" y="89.4263">: urt_srtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="987.5" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="312" x="637" y="105.0591">The SRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="637" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="717" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="749" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="819" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="823" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="823" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="886" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="931" x2="1119" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="637" y="150.4575">Pointer where to copy the payload to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="723" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="826" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="830" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="830" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="875" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="924" x2="1119" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="637" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="799.5" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="803.5" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="803.5" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="860.5" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="950.5" x2="1119" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="637" y="226.1216">The latency can be returned by reference.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="637" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="687" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="719" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="1119" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="631" x2="804" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="808" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="808" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="857" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="946" x2="1119" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="690" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="798" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="637" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="690" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="822" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="875" cy="334.7188" fill="#000000" filter="url(#f7zfa7kymyxg1)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" points="812.5,364.7188,937.5,364.7188,949.5,376.7188,937.5,388.7188,812.5,388.7188,800.5,376.7188,812.5,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="812.5" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="780.5" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="949.5" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="455" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="465" y="419.8574">lock topic</text><rect fill="#FFFFFF" filter="url(#f7zfa7kymyxg1)" height="213.9448" style="stroke: #000000; stroke-width: 2.0;" width="323" x="332" y="443.4893"/><path d="M477,444.4893 L477,452.7861 L467,462.7861 L332,462.7861 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="135" x="335" y="457.4844">find latest message</text><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="402.5" y="479.7861"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="412.5" y="500.9248">access last read message</text><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="589.4653"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="610.604">proceed to next message</text><polygon fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" points="378,533.7549,612,533.7549,624,545.7549,612,557.7549,378,557.7549,366,545.7549,378,533.7549" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="499" y="567.9653">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="378" y="549.563">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="352" y="543.1606">no</text><rect fill="#FFFFFF" filter="url(#f7zfa7kymyxg1)" height="226.668" style="stroke: #000000; stroke-width: 2.0;" width="988" x="10" y="668.2358"/><path d="M123,669.2358 L123,677.5327 L113,687.5327 L10,687.5327 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="13" y="682.231">fetch message</text><rect fill="#000000" filter="url(#f7zfa7kymyxg1)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="704.5327"/><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="34" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="44" y="800.0737">update message pointer</text><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="219" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="229" y="800.0737">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="443" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="453" y="800.0737">copy message payload</text><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="644" y="778.9351"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="654" y="800.0737">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="678" y="800.0737">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="731" y="800.0737">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" points="678.5,730.5327,917.5,730.5327,929.5,742.5327,917.5,754.5327,678.5,754.5327,666.5,742.5327,678.5,730.5327" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="802" y="764.7432">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="678.5" y="746.3408">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="828.5" y="746.3408">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="881.5" y="746.3408">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="929.5" y="739.9385">no</text><polygon fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" points="798,832.9038,810,844.9038,798,856.9038,786,844.9038,798,832.9038" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f7zfa7kymyxg1)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="876.9038"/><rect fill="#FEFECE" filter="url(#f7zfa7kymyxg1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="447" y="914.9038"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="457" y="936.0425">unlock topic</text><path d="M282,967.3062 L282,992.439 A0,0 0 0 0 282,992.439 L464,992.439 A0,0 0 0 0 464,992.439 L464,985.3062 L484,979.8726 L464,977.3062 L464,977.3062 L454,967.3062 L282,967.3062 A0,0 0 0 0 282,967.3062 " fill="#FBFB77" filter="url(#f7zfa7kymyxg1)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454,967.3062 L454,977.3062 L464,977.3062 L454,967.3062 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="288" y="984.373">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="341" y="984.373">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="445" y="984.373">.</text><ellipse cx="495" cy="979.8726" fill="#FFFFFF" filter="url(#f7zfa7kymyxg1)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="495" cy="979.8726" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1018,398.7188 L1018,423.8516 A0,0 0 0 0 1018,423.8516 L1224,423.8516 A0,0 0 0 0 1224,423.8516 L1224,416.7188 L1244,411.2852 L1224,408.7188 L1224,408.7188 L1214,398.7188 L1018,398.7188 A0,0 0 0 0 1018,398.7188 " fill="#FBFB77" filter="url(#f7zfa7kymyxg1)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1214,398.7188 L1214,408.7188 L1224,408.7188 L1214,398.7188 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1024" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1077" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1205" y="415.7856">.</text><ellipse cx="1255" cy="411.2852" fill="#FFFFFF" filter="url(#f7zfa7kymyxg1)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1255" cy="411.2852" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="871,314.7188,875,324.7188,879,314.7188,875,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="557.7549" y2="589.4653"/><polygon fill="#A80036" points="491,579.4653,495,589.4653,499,579.4653,495,583.4653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="623.4341" y2="633.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="636" y1="633.4341" y2="633.4341"/><polygon fill="#A80036" points="632,598.0474,636,588.0474,640,598.0474,636,594.0474" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="636" y1="545.7549" y2="633.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="624" y1="545.7549" y2="545.7549"/><polygon fill="#A80036" points="634,541.7549,624,545.7549,634,549.7549,630,545.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="354" y1="545.7549" y2="545.7549"/><polygon fill="#A80036" points="350,584.0474,354,594.0474,358,584.0474,354,588.0474" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="545.7549" y2="645.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="495" y1="645.4341" y2="645.4341"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="645.4341" y2="704.5327"/><polygon fill="#A80036" points="491,694.5327,495,704.5327,499,694.5327,495,698.5327" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="513.7549" y2="533.7549"/><polygon fill="#A80036" points="491,523.7549,495,533.7549,499,523.7549,495,527.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="432.6875" y2="479.7861"/><polygon fill="#A80036" points="491,469.7861,495,479.7861,499,469.7861,495,473.7861" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="754.5327" y2="778.9351"/><polygon fill="#A80036" points="794,768.9351,798,778.9351,802,768.9351,798,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="929.5" x2="962" y1="742.5327" y2="742.5327"/><polygon fill="#A80036" points="958,785.9194,962,795.9194,966,785.9194,962,789.9194" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="962" y1="742.5327" y2="844.9038"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="810" y1="844.9038" y2="844.9038"/><polygon fill="#A80036" points="820,840.9038,810,844.9038,820,848.9038,816,844.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="812.9038" y2="832.9038"/><polygon fill="#A80036" points="794,822.9038,798,832.9038,802,822.9038,798,826.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="710.5327" y2="778.9351"/><polygon fill="#A80036" points="117.5,768.9351,121.5,778.9351,125.5,768.9351,121.5,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="710.5327" y2="778.9351"/><polygon fill="#A80036" points="313,768.9351,317,778.9351,321,768.9351,317,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="710.5327" y2="778.9351"/><polygon fill="#A80036" points="520.5,768.9351,524.5,778.9351,528.5,768.9351,524.5,772.9351" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="710.5327" y2="730.5327"/><polygon fill="#A80036" points="794,720.5327,798,730.5327,802,720.5327,798,724.5327" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="812.9038" y2="876.9038"/><polygon fill="#A80036" points="117.5,866.9038,121.5,876.9038,125.5,866.9038,121.5,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="812.9038" y2="876.9038"/><polygon fill="#A80036" points="313,866.9038,317,876.9038,321,866.9038,317,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="812.9038" y2="876.9038"/><polygon fill="#A80036" points="520.5,866.9038,524.5,876.9038,528.5,866.9038,524.5,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="856.9038" y2="876.9038"/><polygon fill="#A80036" points="794,866.9038,798,876.9038,802,866.9038,798,870.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="882.9038" y2="914.9038"/><polygon fill="#A80036" points="491,904.9038,495,914.9038,499,904.9038,495,908.9038" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="948.8726" y2="968.8726"/><polygon fill="#A80036" points="491,958.8726,495,968.8726,499,958.8726,495,962.8726" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="800.5" x2="495" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="491,388.7188,495,398.7188,499,388.7188,495,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="1255" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1255" x2="1255" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1251,390.2852,1255,400.2852,1259,390.2852,1255,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="875" x2="875" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="871,354.7188,875,364.7188,879,354.7188,875,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2bafea4ab0a903c79c70ebbaacaee956] |
---|---|
2 |
@startuml |
3 |
|
4 |
title **µRtWare**\nurtSrtSubscriberFetchLatestMessage()\n |
5 |
|
6 |
|
7 |
note |
8 |
- - **subscriber** : urt_srtsubscriber_t* - - |
9 |
The SRT subscriber that shall fetch the message. |
10 |
Must not be ""NULL"". |
11 |
- - **payload** : void* - - |
12 |
Pointer where to copy the payload to. |
13 |
May be ""NULL"" for messages without payload. |
14 |
- - **bytes** : size_t - - |
15 |
Payload size in bytes. |
16 |
- - **latency** : urt_delay_t* - - |
17 |
The latency can be returned by reference. |
18 |
May be ""NULL"". |
19 |
==== |
20 |
- - **return** : urt_status_t - - |
21 |
Returns ""URT_STATUS_OK"" on success. |
22 |
Returns ""URT_STATUS_ERROR"" if the subscriber is not associated to a topic. |
23 |
endnote |
24 |
|
25 |
|
26 |
start |
27 |
if (Associated to a topic?) then (yes) |
28 |
:lock topic; |
29 |
|
30 |
partition "find latest message" { |
31 |
:access last read message; |
32 |
while (Timestamp of next message is younger?) is (yes) |
33 |
:proceed to next message; |
34 |
endwhile (no) |
35 |
} |
36 |
|
37 |
|
38 |
partition "fetch message" { |
39 |
fork |
40 |
:update message pointer; |
41 |
fork again |
42 |
:copy timestamp of message; |
43 |
fork again |
44 |
:copy message payload; |
45 |
fork again |
46 |
if (Optional output argument ""latency"" given?) then (yes) |
47 |
:set ""latency"" value (now - message origin time); |
48 |
else (no) |
49 |
endif |
50 |
endfork |
51 |
} |
52 |
|
53 |
:unlock topic; |
54 |
stop |
55 |
note |
56 |
Returns ""URT_STATUS_OK"". |
57 |
endnote |
58 |
else (no) |
59 |
stop |
60 |
note |
61 |
Returns ""URT_STATUS_ERROR"". |
62 |
endnote |
63 |
endif |
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> |