Revision e87bd7c7
doc/activitydiagrams/contributemessages.iuml | ||
---|---|---|
1 |
/' |
|
2 |
µRtWare is a lightweight publish/subscribe middleware for real-time |
|
3 |
applications. It was developed as part of the software habitat for the |
|
4 |
Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well. |
|
5 |
|
|
6 |
Copyright (C) 2018..2020 Thomas Schöpping et al. |
|
7 |
|
|
8 |
This program is free software: you can redistribute it and/or modify |
|
9 |
it under the terms of the GNU General Public License as published by |
|
10 |
the Free Software Foundation, either version 3 of the License, or |
|
11 |
(at your option) any later version. |
|
12 |
|
|
13 |
This program is distributed in the hope that it will be useful, |
|
14 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
15 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
16 |
GNU General Public License for more details. |
|
17 |
|
|
18 |
You should have received a copy of the GNU General Public License |
|
19 |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
20 |
'/ |
|
21 |
|
|
22 |
partition "contribute messages" { |
|
23 |
fork |
|
24 |
:set next pointer of topic's latest message to first message to contribute; |
|
25 |
fork again |
|
26 |
:set next pointer of last message to contribute to the message after the topic's latest message; |
|
27 |
endfork |
|
28 |
} |
|
29 |
|
doc/activitydiagrams/core/urtCoreGetStatus.svg | ||
---|---|---|
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="233px" preserveAspectRatio="none" style="width:351px;height:233px;" version="1.1" viewBox="0 0 351 233" width="351px" zoomAndPan="magnify"><defs><filter height="300%" id="flafrcxsdhrgr" 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="130" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="169" x="90" y="47.6611">urtCoreGetStatus()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="177.5" y="68.6143"/><path d="M171,72.8594 L171,138.2578 L339,138.2578 L339,82.8594 L329,72.8594 L171,72.8594 " fill="#FBFB77" filter="url(#flafrcxsdhrgr)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M329,72.8594 L329,82.8594 L339,82.8594 L329,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="171" x2="237.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="241.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="241.5" y="89.4263">void</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="272.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="272.5" x2="339" y1="85.4258" y2="85.4258"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="171" x2="339" y1="97.9922" y2="97.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="171" x2="339" y1="99.9922" y2="99.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="171" x2="184" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="188" y="114.5591"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="188" y="114.5591">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="237" y="114.5591">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="326" x2="339" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="147" x="177" y="130.1919">Current system status.</text><ellipse cx="255" cy="168.2578" fill="#000000" filter="url(#flafrcxsdhrgr)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,196.6914 L10,221.8242 A0,0 0 0 0 10,221.8242 L224,221.8242 A0,0 0 0 0 224,221.8242 L224,214.6914 L244,209.2578 L224,206.6914 L224,206.6914 L214,196.6914 L10,196.6914 A0,0 0 0 0 10,196.6914 " fill="#FBFB77" filter="url(#flafrcxsdhrgr)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M214,196.6914 L214,206.6914 L224,206.6914 L214,196.6914 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="16" y="213.7583">Returns core's</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="111" y="213.7583">_status</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="38" x="171" y="213.7583">value.</text><ellipse cx="255" cy="209.2578" fill="#FFFFFF" filter="url(#flafrcxsdhrgr)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="255" cy="209.2578" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="255" x2="255" y1="138.2578" y2="158.2578"/><polygon fill="#A80036" points="251,148.2578,255,158.2578,259,148.2578,255,152.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="255" x2="255" y1="178.2578" y2="198.2578"/><polygon fill="#A80036" points="251,188.2578,255,198.2578,259,188.2578,255,192.2578" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[dbee62f80b7a85c1f9d1310ae8513b2f] |
|
2 |
@startuml |
|
3 |
|
|
4 |
title **µRtWare**\nurtCoreGetStatus()\n |
|
5 |
|
|
6 |
|
|
7 |
note |
|
8 |
- - //void// - - |
|
9 |
==== |
|
10 |
- - **return** : urt_status_t - - |
|
11 |
Current system status. |
|
12 |
endnote |
|
13 |
|
|
14 |
|
|
15 |
start |
|
16 |
stop |
|
17 |
note |
|
18 |
Returns core's ""_status"" value. |
|
19 |
endnote |
|
20 |
|
|
21 |
|
|
22 |
@enduml |
|
23 |
|
|
24 |
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020) |
|
25 |
(GPL source distribution) |
|
26 |
Java Runtime: OpenJDK Runtime Environment |
|
27 |
JVM: OpenJDK 64-Bit Server VM |
|
28 |
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1 |
|
29 |
Operating System: Linux |
|
30 |
Default Encoding: UTF-8 |
|
31 |
Language: en |
|
32 |
Country: US |
|
33 |
--></g></svg> |
doc/activitydiagrams/core/urtCoreGetStatus.uml | ||
---|---|---|
1 |
/' |
|
2 |
µRtWare is a lightweight publish/subscribe middleware for real-time |
|
3 |
applications. It was developed as part of the software habitat for the |
|
4 |
Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well. |
|
5 |
|
|
6 |
Copyright (C) 2018..2020 Thomas Schöpping et al. |
|
7 |
|
|
8 |
This program is free software: you can redistribute it and/or modify |
|
9 |
it under the terms of the GNU General Public License as published by |
|
10 |
the Free Software Foundation, either version 3 of the License, or |
|
11 |
(at your option) any later version. |
|
12 |
|
|
13 |
This program is distributed in the hope that it will be useful, |
|
14 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
15 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
16 |
GNU General Public License for more details. |
|
17 |
|
|
18 |
You should have received a copy of the GNU General Public License |
|
19 |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
20 |
'/ |
|
21 |
|
|
22 |
/'### INTRO ##################################################################'/ |
|
23 |
|
|
24 |
@startuml |
|
25 |
|
|
26 |
title **µRtWare**\nurtCoreGetStatus()\n |
|
27 |
|
|
28 |
/'### PARAMETERS & RETURN ####################################################'/ |
|
29 |
|
|
30 |
note |
|
31 |
-- //void// -- |
|
32 |
==== |
|
33 |
-- **return** : urt_status_t -- |
|
34 |
Current system status. |
|
35 |
endnote |
|
36 |
|
|
37 |
/'### PROCEDURE ##############################################################'/ |
|
38 |
|
|
39 |
start |
|
40 |
stop |
|
41 |
note |
|
42 |
Returns core's ""_status"" value. |
|
43 |
endnote |
|
44 |
|
|
45 |
/'### OUTRO ##################################################################'/ |
|
46 |
|
|
47 |
@enduml |
doc/activitydiagrams/core/urtCoreInit.svg | ||
---|---|---|
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="359px" preserveAspectRatio="none" style="width:493px;height:359px;" version="1.1" viewBox="0 0 493 359" width="493px" zoomAndPan="magnify"><defs><filter height="300%" id="f5d7eez7u0tan" 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="201.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="112" x="189.75" y="47.6611">urtCoreInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="248.75" y="68.6143"/><path d="M255.5,72.8594 L255.5,138.2578 L481.5,138.2578 L481.5,82.8594 L471.5,72.8594 L255.5,72.8594 " fill="#FBFB77" filter="url(#f5d7eez7u0tan)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M471.5,72.8594 L471.5,82.8594 L481.5,82.8594 L471.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="351" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="355" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="355" y="89.4263">void</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="386" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="386" x2="481.5" y1="85.4258" y2="85.4258"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="481.5" y1="97.9922" y2="97.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="481.5" y1="99.9922" y2="99.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="297.5" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="301.5" y="114.5591"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="301.5" y="114.5591">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="350.5" y="114.5591">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="439.5" x2="481.5" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="261.5" y="130.1919">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="358.5" y="130.1919">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="462.5" y="130.1919">.</text><ellipse cx="368.5" cy="168.2578" fill="#000000" filter="url(#f5d7eez7u0tan)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,188.2578 L10,304.1875 A0,0 0 0 0 10,304.1875 L283,304.1875 A0,0 0 0 0 283,304.1875 L283,250.2227 L303,246.2227 L283,242.2227 L283,198.2578 L273,188.2578 L10,188.2578 A0,0 0 0 0 10,188.2578 " fill="#FBFB77" filter="url(#f5d7eez7u0tan)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M273,188.2578 L273,198.2578 L283,198.2578 L273,188.2578 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="16" y="205.3247">_nodes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="72" y="205.3247">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="87" y="205.3247">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="16" y="220.4575">urtEventSourceInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="139" y="220.4575">_evtSource</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="219" y="220.4575">)</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="16" y="235.5903">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="97" y="235.5903">_lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="134" y="235.5903">)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="246.2227" y2="246.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="24.5" y="250.2231">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="272.5" x2="283" y1="246.2227" y2="246.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="16" y="265.856">_topics</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="72" y="265.856">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="87" y="265.856">NULL</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="35.5" y1="276.4883" y2="276.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="214" x="39.5" y="280.4888">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="257.5" x2="283" y1="276.4883" y2="276.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="16" y="296.1216">_services</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="87" y="296.1216">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="102" y="296.1216">NULL</text><rect fill="#FEFECE" filter="url(#f5d7eez7u0tan)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="303" y="229.2383"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="313" y="250.377">initialize members</text><path d="M155.5,322.6211 L155.5,347.7539 A0,0 0 0 0 155.5,347.7539 L337.5,347.7539 A0,0 0 0 0 337.5,347.7539 L337.5,340.6211 L357.5,335.1875 L337.5,332.6211 L337.5,332.6211 L327.5,322.6211 L155.5,322.6211 A0,0 0 0 0 155.5,322.6211 " fill="#FBFB77" filter="url(#f5d7eez7u0tan)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M327.5,322.6211 L327.5,332.6211 L337.5,332.6211 L327.5,322.6211 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="161.5" y="339.688">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="214.5" y="339.688">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="318.5" y="339.688">.</text><ellipse cx="368.5" cy="335.1875" fill="#FFFFFF" filter="url(#f5d7eez7u0tan)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="368.5" cy="335.1875" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="138.2578" y2="158.2578"/><polygon fill="#A80036" points="364.5,148.2578,368.5,158.2578,372.5,148.2578,368.5,152.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="178.2578" y2="229.2383"/><polygon fill="#A80036" points="364.5,219.2383,368.5,229.2383,372.5,219.2383,368.5,223.2383" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="263.207" y2="324.1875"/><polygon fill="#A80036" points="364.5,314.1875,368.5,324.1875,372.5,314.1875,368.5,318.1875" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[06dedabe65f0ca2bb27e171527687956]
|
|
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="374px" preserveAspectRatio="none" style="width:493px;height:374px;" version="1.1" viewBox="0 0 493 374" width="493px" zoomAndPan="magnify"><defs><filter height="300%" id="f1k9cydo3vbvno" 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="201.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="112" x="189.75" y="47.6611">urtCoreInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="248.75" y="68.6143"/><path d="M255.5,72.8594 L255.5,138.2578 L481.5,138.2578 L481.5,82.8594 L471.5,72.8594 L255.5,72.8594 " fill="#FBFB77" filter="url(#f1k9cydo3vbvno)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M471.5,72.8594 L471.5,82.8594 L481.5,82.8594 L471.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="351" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="355" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="355" y="89.4263">void</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="386" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="386" x2="481.5" y1="85.4258" y2="85.4258"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="481.5" y1="97.9922" y2="97.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="481.5" y1="99.9922" y2="99.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="255.5" x2="297.5" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="301.5" y="114.5591"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="301.5" y="114.5591">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="350.5" y="114.5591">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="439.5" x2="481.5" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="261.5" y="130.1919">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="358.5" y="130.1919">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="462.5" y="130.1919">.</text><ellipse cx="368.5" cy="168.2578" fill="#000000" filter="url(#f1k9cydo3vbvno)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,188.2578 L10,319.3203 A0,0 0 0 0 10,319.3203 L283,319.3203 A0,0 0 0 0 283,319.3203 L283,257.7891 L303,253.7891 L283,249.7891 L283,198.2578 L273,188.2578 L10,188.2578 A0,0 0 0 0 10,188.2578 " fill="#FBFB77" filter="url(#f1k9cydo3vbvno)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M273,188.2578 L273,198.2578 L283,198.2578 L273,188.2578 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="16" y="205.3247">_nodes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="72" y="205.3247">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="87" y="205.3247">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="16" y="220.4575">urtEventSourceInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="139" y="220.4575">_evtSource</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="219" y="220.4575">)</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="16" y="235.5903">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="97" y="235.5903">_lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="134" y="235.5903">)</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="16" y="250.7231">_status</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="73" y="250.7231">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="88" y="250.7231">URT_STATUS_OK</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="20.5" y1="261.3555" y2="261.3555"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="24.5" y="265.356">URT_CFG_PUBSUB_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="272.5" x2="283" y1="261.3555" y2="261.3555"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="16" y="280.9888">_topics</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="72" y="280.9888">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="87" y="280.9888">NULL</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="10" x2="35.5" y1="291.6211" y2="291.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="214" x="39.5" y="295.6216">URT_CFG_RPC_ENABLED == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="257.5" x2="283" y1="291.6211" y2="291.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="16" y="311.2544">_services</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="87" y="311.2544">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="102" y="311.2544">NULL</text><rect fill="#FEFECE" filter="url(#f1k9cydo3vbvno)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="303" y="236.8047"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="313" y="257.9434">initialize members</text><path d="M155.5,337.7539 L155.5,362.8867 A0,0 0 0 0 155.5,362.8867 L337.5,362.8867 A0,0 0 0 0 337.5,362.8867 L337.5,355.7539 L357.5,350.3203 L337.5,347.7539 L337.5,347.7539 L327.5,337.7539 L155.5,337.7539 A0,0 0 0 0 155.5,337.7539 " fill="#FBFB77" filter="url(#f1k9cydo3vbvno)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M327.5,337.7539 L327.5,347.7539 L337.5,347.7539 L327.5,337.7539 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="161.5" y="354.8208">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="214.5" y="354.8208">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="318.5" y="354.8208">.</text><ellipse cx="368.5" cy="350.3203" fill="#FFFFFF" filter="url(#f1k9cydo3vbvno)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="368.5" cy="350.3203" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="138.2578" y2="158.2578"/><polygon fill="#A80036" points="364.5,148.2578,368.5,158.2578,372.5,148.2578,368.5,152.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="178.2578" y2="236.8047"/><polygon fill="#A80036" points="364.5,226.8047,368.5,236.8047,372.5,226.8047,368.5,230.8047" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368.5" x2="368.5" y1="270.7734" y2="339.3203"/><polygon fill="#A80036" points="364.5,329.3203,368.5,339.3203,372.5,329.3203,368.5,333.3203" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[977bc1a05ece2993496dfd98d0c45612]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtCoreInit()\n |
... | ... | |
18 | 18 |
**_nodes** ← ""NULL"" |
19 | 19 |
urtEventSourceInit(**_evtSource**) |
20 | 20 |
urtMutexInit(**_lock**) |
21 |
**_status** ← ""URT_STATUS_OK"" |
|
21 | 22 |
.. URT_CFG_PUBSUB_ENABLED == true .. |
22 | 23 |
**_topics** ← ""NULL"" |
23 | 24 |
.. URT_CFG_RPC_ENABLED == true .. |
doc/activitydiagrams/core/urtCoreInit.uml | ||
---|---|---|
42 | 42 |
**_nodes** ← ""NULL"" |
43 | 43 |
urtEventSourceInit(**_evtSource**) |
44 | 44 |
urtMutexInit(**_lock**) |
45 |
**_status** ← ""URT_STATUS_OK"" |
|
45 | 46 |
.. URT_CFG_PUBSUB_ENABLED == true .. |
46 | 47 |
**_topics** ← ""NULL"" |
47 | 48 |
.. URT_CFG_RPC_ENABLED == true .. |
doc/activitydiagrams/core/urtCoreStartNodes.svg | ||
---|---|---|
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="216px" preserveAspectRatio="none" style="width:205px;height:216px;" version="1.1" viewBox="0 0 205 216" width="205px" zoomAndPan="magnify"><defs><filter height="300%" id="f7jwqh40e2isp" 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="58" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="181" x="12" y="47.6611">urtCoreStartNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="105.5" y="68.6143"/><path d="M21,72.8594 L21,123.125 L184,123.125 L184,82.8594 L174,72.8594 L21,72.8594 " fill="#FBFB77" filter="url(#f7jwqh40e2isp)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M174,72.8594 L174,82.8594 L184,82.8594 L174,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="21" x2="85" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="89" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="89" y="89.4263">void</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="120" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="120" x2="184" y1="85.4258" y2="85.4258"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="21" x2="184" y1="97.9922" y2="97.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="21" x2="184" y1="99.9922" y2="99.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="21" x2="31.5" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="35.5" y="114.5591"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="35.5" y="114.5591">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="84.5" y="114.5591">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="173.5" x2="184" y1="110.5586" y2="110.5586"/><ellipse cx="102.5" cy="153.125" fill="#000000" filter="url(#f7jwqh40e2isp)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><ellipse cx="102.5" cy="194.125" fill="#FFFFFF" filter="url(#f7jwqh40e2isp)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="102.5" cy="194.125" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="102.5" x2="102.5" y1="123.125" y2="143.125"/><polygon fill="#A80036" points="98.5,133.125,102.5,143.125,106.5,133.125,102.5,137.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="102.5" x2="102.5" y1="163.125" y2="183.125"/><polygon fill="#A80036" points="98.5,173.125,102.5,183.125,106.5,173.125,102.5,177.125" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a216e09a3390d53d9116e31c798919da]
|
|
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="590px" preserveAspectRatio="none" style="width:367px;height:590px;" version="1.1" viewBox="0 0 367 590" width="367px" zoomAndPan="magnify"><defs><filter height="300%" id="f1sbzmrrf1fqrc" 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="138" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="181" x="92" y="47.6611">urtCoreStartNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="185.5" y="68.6143"/><path d="M110,72.8594 L110,138.2578 L336,138.2578 L336,82.8594 L326,72.8594 L110,72.8594 " fill="#FBFB77" filter="url(#f1sbzmrrf1fqrc)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M326,72.8594 L326,82.8594 L336,82.8594 L326,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="110" x2="205.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="209.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="209.5" y="89.4263">void</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="240.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="240.5" x2="336" y1="85.4258" y2="85.4258"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="110" x2="336" y1="97.9922" y2="97.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="110" x2="336" y1="99.9922" y2="99.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="110" x2="152" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="156" y="114.5591"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="156" y="114.5591">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="205" y="114.5591">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="294" x2="336" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="116" y="130.1919">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="213" y="130.1919">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="317" y="130.1919">.</text><ellipse cx="223" cy="168.2578" fill="#000000" filter="url(#f1sbzmrrf1fqrc)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1sbzmrrf1fqrc)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="184.5" y="198.2578"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="194.5" y="219.3965">lock core</text><rect fill="#FEFECE" filter="url(#f1sbzmrrf1fqrc)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="266" x="90" y="252.2266"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="246" x="100" y="273.3652">access first node in core's list of nodes</text><rect fill="#FEFECE" filter="url(#f1sbzmrrf1fqrc)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="157" y="361.9058"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="167" y="383.0444">start node thread</text><rect fill="#FEFECE" filter="url(#f1sbzmrrf1fqrc)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="145" y="424.9722"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="155" y="446.1108">proceed to next node</text><polygon fill="#FEFECE" filter="url(#f1sbzmrrf1fqrc)" points="148.5,306.1953,297.5,306.1953,309.5,318.1953,297.5,330.1953,148.5,330.1953,136.5,318.1953,148.5,306.1953" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="340.4058">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="148.5" y="322.0034">Current node is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="263.5" y="322.0034">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="291.5" y="322.0034">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="122.5" y="315.6011">no</text><rect fill="#FEFECE" filter="url(#f1sbzmrrf1fqrc)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="500.9409"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="522.0796">unlock core</text><path d="M10,553.3433 L10,578.4761 A0,0 0 0 0 10,578.4761 L192,578.4761 A0,0 0 0 0 192,578.4761 L192,571.3433 L212,565.9097 L192,563.3433 L192,563.3433 L182,553.3433 L10,553.3433 A0,0 0 0 0 10,553.3433 " fill="#FBFB77" filter="url(#f1sbzmrrf1fqrc)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,553.3433 L182,563.3433 L192,563.3433 L182,553.3433 " 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="570.4102">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="570.4102">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="570.4102">.</text><ellipse cx="223" cy="565.9097" fill="#FFFFFF" filter="url(#f1sbzmrrf1fqrc)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="565.9097" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="138.2578" y2="158.2578"/><polygon fill="#A80036" points="219,148.2578,223,158.2578,227,148.2578,223,152.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="178.2578" y2="198.2578"/><polygon fill="#A80036" points="219,188.2578,223,198.2578,227,188.2578,223,192.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="232.2266" y2="252.2266"/><polygon fill="#A80036" points="219,242.2266,223,252.2266,227,242.2266,223,246.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="395.8745" y2="424.9722"/><polygon fill="#A80036" points="219,414.9722,223,424.9722,227,414.9722,223,418.9722" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="330.1953" y2="361.9058"/><polygon fill="#A80036" points="219,351.9058,223,361.9058,227,351.9058,223,355.9058" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="458.9409" y2="468.9409"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="321.5" y1="468.9409" y2="468.9409"/><polygon fill="#A80036" points="317.5,404.9722,321.5,394.9722,325.5,404.9722,321.5,400.9722" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="321.5" x2="321.5" y1="318.1953" y2="468.9409"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="321.5" x2="309.5" y1="318.1953" y2="318.1953"/><polygon fill="#A80036" points="319.5,314.1953,309.5,318.1953,319.5,322.1953,315.5,318.1953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136.5" x2="124.5" y1="318.1953" y2="318.1953"/><polygon fill="#A80036" points="120.5,390.9722,124.5,400.9722,128.5,390.9722,124.5,394.9722" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="124.5" x2="124.5" y1="318.1953" y2="480.9409"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="124.5" x2="223" y1="480.9409" y2="480.9409"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="480.9409" y2="500.9409"/><polygon fill="#A80036" points="219,490.9409,223,500.9409,227,490.9409,223,494.9409" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="286.1953" y2="306.1953"/><polygon fill="#A80036" points="219,296.1953,223,306.1953,227,296.1953,223,300.1953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="534.9097" y2="554.9097"/><polygon fill="#A80036" points="219,544.9097,223,554.9097,227,544.9097,223,548.9097" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[1c41ad4aa94e8cdd407f3b87e1e649b4]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtCoreStartNodes()\n |
... | ... | |
8 | 8 |
- - //void// - - |
9 | 9 |
==== |
10 | 10 |
- - **return** : urt_status_t - - |
11 |
Always returns ""URT_STATUS_OK"". |
|
11 | 12 |
endnote |
12 | 13 |
|
13 | 14 |
|
14 | 15 |
start |
16 |
:lock core; |
|
17 |
:access first node in core's list of nodes; |
|
18 |
while (Current node is not ""NULL""?) is (yes) |
|
19 |
:start node thread; |
|
20 |
:proceed to next node; |
|
21 |
endwhile (no) |
|
22 |
:unlock core; |
|
15 | 23 |
stop |
24 |
note |
|
25 |
Returns ""URT_STATUS_OK"". |
|
26 |
endnote |
|
16 | 27 |
|
17 | 28 |
|
18 | 29 |
@enduml |
doc/activitydiagrams/core/urtCoreStartNodes.uml | ||
---|---|---|
31 | 31 |
-- //void// -- |
32 | 32 |
==== |
33 | 33 |
-- **return** : urt_status_t -- |
34 |
Always returns ""URT_STATUS_OK"". |
|
34 | 35 |
endnote |
35 | 36 |
|
36 | 37 |
/'### PROCEDURE ##############################################################'/ |
37 | 38 |
|
38 | 39 |
start |
40 |
:lock core; |
|
41 |
:access first node in core's list of nodes; |
|
42 |
while (Current node is not ""NULL""?) is (yes) |
|
43 |
:start node thread; |
|
44 |
:proceed to next node; |
|
45 |
endwhile (no) |
|
46 |
:unlock core; |
|
39 | 47 |
stop |
48 |
note |
|
49 |
Returns ""URT_STATUS_OK"". |
|
50 |
endnote |
|
40 | 51 |
|
41 | 52 |
/'### OUTRO ##################################################################'/ |
42 | 53 |
|
doc/activitydiagrams/core/urtCoreStopNodes.svg | ||
---|---|---|
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="216px" preserveAspectRatio="none" style="width:202px;height:216px;" version="1.1" viewBox="0 0 202 216" width="202px" zoomAndPan="magnify"><defs><filter height="300%" id="fm2wpv20ubkyh" 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="56.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="178" x="12" y="47.6611">urtCoreStopNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="104" y="68.6143"/><path d="M19.5,72.8594 L19.5,123.125 L182.5,123.125 L182.5,82.8594 L172.5,72.8594 L19.5,72.8594 " fill="#FBFB77" filter="url(#fm2wpv20ubkyh)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M172.5,72.8594 L172.5,82.8594 L182.5,82.8594 L172.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19.5" x2="83.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="87.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="87.5" y="89.4263">void</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="118.5" y="89.4263"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="118.5" x2="182.5" y1="85.4258" y2="85.4258"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19.5" x2="182.5" y1="97.9922" y2="97.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19.5" x2="182.5" y1="99.9922" y2="99.9922"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19.5" x2="30" y1="110.5586" y2="110.5586"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="34" y="114.5591"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="34" y="114.5591">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="83" y="114.5591">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="172" x2="182.5" y1="110.5586" y2="110.5586"/><ellipse cx="101" cy="153.125" fill="#000000" filter="url(#fm2wpv20ubkyh)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><ellipse cx="101" cy="194.125" fill="#FFFFFF" filter="url(#fm2wpv20ubkyh)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="101" cy="194.125" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="101" x2="101" y1="123.125" y2="143.125"/><polygon fill="#A80036" points="97,133.125,101,143.125,105,133.125,101,137.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="101" x2="101" y1="163.125" y2="183.125"/><polygon fill="#A80036" points="97,173.125,101,183.125,105,173.125,101,177.125" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e688f9582e9e39fd5026de674d6fc281]
|
|
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="821px" preserveAspectRatio="none" style="width:435px;height:821px;" version="1.1" viewBox="0 0 435 821" width="435px" zoomAndPan="magnify"><defs><filter height="300%" id="f1po4rs4rxe2ur" 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="172.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="178" x="127.75" y="47.6611">urtCoreStopNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="219.75" y="68.6143"/><path d="M39,72.8594 L39,168.5234 L407,168.5234 L407,82.8594 L397,72.8594 L39,72.8594 " fill="#FBFB77" filter="url(#f1po4rs4rxe2ur)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M397,72.8594 L397,82.8594 L407,82.8594 L397,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="39" x2="149.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="153.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="50" x="153.5" y="89.4263">reason</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="207.5" y="89.4263">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="296.5" x2="407" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="252" x="45" y="105.0591">The reason why the function was called.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="45" y="120.1919">For normal shutdown</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="183" y="120.1919">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="101" x="291" y="120.1919">should be used.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="39" x2="407" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="39" x2="407" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="39" x2="152" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="156" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="156" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="205" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="294" x2="407" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="45" y="160.4575">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="142" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="246" y="160.4575">.</text><ellipse cx="223" cy="198.5234" fill="#000000" filter="url(#f1po4rs4rxe2ur)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="184.5" y="228.5234"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="194.5" y="249.6621">lock core</text><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="254" x="96" y="330.8945"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="106" y="352.0332">set core's</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="172" y="352.0332">_status</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="225" y="352.0332">value to argument</text><polygon fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" points="60.5,282.4922,385.5,282.4922,397.5,294.4922,385.5,306.4922,60.5,306.4922,48.5,294.4922,60.5,282.4922" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="316.7026">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="43" x="60.5" y="298.3003">Current</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="107.5" y="298.3003">_status</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="225" x="160.5" y="298.3003">value is smaller than specified reason?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="397.5" y="291.8979">no</text><polygon fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" points="223,384.8633,235,396.8633,223,408.8633,211,396.8633,223,384.8633" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="266" x="90" y="428.8633"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="246" x="100" y="450.002">access first node in core's list of nodes</text><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="129.5" y="538.5425"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="139.5" y="559.6812">request node to terminate</text><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="145" y="601.6089"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="155" y="622.7476">proceed to next node</text><polygon fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" points="148.5,482.832,297.5,482.832,309.5,494.832,297.5,506.832,148.5,506.832,136.5,494.832,148.5,482.832" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="517.0425">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="148.5" y="498.6401">Current node is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="263.5" y="498.6401">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="291.5" y="498.6401">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="122.5" y="492.2378">no</text><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="246" x="100" y="677.5776"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="226" x="110" y="698.7163">broadcast control event (terminate)</text><rect fill="#FEFECE" filter="url(#f1po4rs4rxe2ur)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="731.5464"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="752.6851">unlock core</text><path d="M10,783.9487 L10,809.0815 A0,0 0 0 0 10,809.0815 L192,809.0815 A0,0 0 0 0 192,809.0815 L192,801.9487 L212,796.5151 L192,793.9487 L192,793.9487 L182,783.9487 L10,783.9487 A0,0 0 0 0 10,783.9487 " fill="#FBFB77" filter="url(#f1po4rs4rxe2ur)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,783.9487 L182,793.9487 L192,793.9487 L182,783.9487 " 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="801.0156">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="801.0156">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="801.0156">.</text><ellipse cx="223" cy="796.5151" fill="#FFFFFF" filter="url(#f1po4rs4rxe2ur)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="796.5151" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="168.5234" y2="188.5234"/><polygon fill="#A80036" points="219,178.5234,223,188.5234,227,178.5234,223,182.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="208.5234" y2="228.5234"/><polygon fill="#A80036" points="219,218.5234,223,228.5234,227,218.5234,223,222.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="306.4922" y2="330.8945"/><polygon fill="#A80036" points="219,320.8945,223,330.8945,227,320.8945,223,324.8945" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="397.5" x2="409.5" y1="294.4922" y2="294.4922"/><polygon fill="#A80036" points="405.5,337.8789,409.5,347.8789,413.5,337.8789,409.5,341.8789" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.5" x2="409.5" y1="294.4922" y2="396.8633"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.5" x2="235" y1="396.8633" y2="396.8633"/><polygon fill="#A80036" points="245,392.8633,235,396.8633,245,400.8633,241,396.8633" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="364.8633" y2="384.8633"/><polygon fill="#A80036" points="219,374.8633,223,384.8633,227,374.8633,223,378.8633" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="262.4922" y2="282.4922"/><polygon fill="#A80036" points="219,272.4922,223,282.4922,227,272.4922,223,276.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="408.8633" y2="428.8633"/><polygon fill="#A80036" points="219,418.8633,223,428.8633,227,418.8633,223,422.8633" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="572.5112" y2="601.6089"/><polygon fill="#A80036" points="219,591.6089,223,601.6089,227,591.6089,223,595.6089" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="506.832" y2="538.5425"/><polygon fill="#A80036" points="219,528.5425,223,538.5425,227,528.5425,223,532.5425" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="635.5776" y2="645.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="328.5" y1="645.5776" y2="645.5776"/><polygon fill="#A80036" points="324.5,581.6089,328.5,571.6089,332.5,581.6089,328.5,577.6089" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="328.5" x2="328.5" y1="494.832" y2="645.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="328.5" x2="309.5" y1="494.832" y2="494.832"/><polygon fill="#A80036" points="319.5,490.832,309.5,494.832,319.5,498.832,315.5,494.832" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136.5" x2="117.5" y1="494.832" y2="494.832"/><polygon fill="#A80036" points="113.5,567.6089,117.5,577.6089,121.5,567.6089,117.5,571.6089" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="117.5" x2="117.5" y1="494.832" y2="657.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="117.5" x2="223" y1="657.5776" y2="657.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="657.5776" y2="677.5776"/><polygon fill="#A80036" points="219,667.5776,223,677.5776,227,667.5776,223,671.5776" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="462.832" y2="482.832"/><polygon fill="#A80036" points="219,472.832,223,482.832,227,472.832,223,476.832" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="711.5464" y2="731.5464"/><polygon fill="#A80036" points="219,721.5464,223,731.5464,227,721.5464,223,725.5464" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="765.5151" y2="785.5151"/><polygon fill="#A80036" points="219,775.5151,223,785.5151,227,775.5151,223,779.5151" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e791fbcd63d82ee7576d5a83cc605131]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtCoreStopNodes()\n |
5 | 5 |
|
6 | 6 |
|
7 | 7 |
note |
8 |
- - //void// - - |
|
8 |
- - **reason** : urt_status_t - - |
|
9 |
The reason why the function was called. |
|
10 |
For normal shutdown ""URT_STATUS_OK"" should be used. |
|
9 | 11 |
==== |
10 | 12 |
- - **return** : urt_status_t - - |
13 |
Always returns ""URT_STATUS_OK"". |
|
11 | 14 |
endnote |
12 | 15 |
|
13 | 16 |
|
14 | 17 |
start |
18 |
:lock core; |
|
19 |
if (Current ""_status"" value is smaller than specified reason?) then (yes) |
|
20 |
:set core's ""_status"" value to argument; |
|
21 |
else (no) |
|
22 |
endif |
|
23 |
:access first node in core's list of nodes; |
|
24 |
while (Current node is not ""NULL""?) is (yes) |
|
25 |
:request node to terminate; |
|
26 |
:proceed to next node; |
|
27 |
endwhile (no) |
|
28 |
:broadcast control event (terminate); |
|
29 |
:unlock core; |
|
15 | 30 |
stop |
31 |
note |
|
32 |
Returns ""URT_STATUS_OK"". |
|
33 |
endnote |
|
16 | 34 |
|
17 | 35 |
|
18 | 36 |
@enduml |
doc/activitydiagrams/core/urtCoreStopNodes.uml | ||
---|---|---|
28 | 28 |
/'### PARAMETERS & RETURN ####################################################'/ |
29 | 29 |
|
30 | 30 |
note |
31 |
-- //void// -- |
|
31 |
-- **reason** : urt_status_t -- |
|
32 |
The reason why the function was called. |
|
33 |
For normal shutdown ""URT_STATUS_OK"" should be used. |
|
32 | 34 |
==== |
33 | 35 |
-- **return** : urt_status_t -- |
36 |
Always returns ""URT_STATUS_OK"". |
|
34 | 37 |
endnote |
35 | 38 |
|
36 | 39 |
/'### PROCEDURE ##############################################################'/ |
37 | 40 |
|
38 | 41 |
start |
42 |
:lock core; |
|
43 |
if (Current ""_status"" value is smaller than specified reason?) then (yes) |
|
44 |
:set core's ""_status"" value to argument; |
|
45 |
else (no) |
|
46 |
endif |
|
47 |
:access first node in core's list of nodes; |
|
48 |
while (Current node is not ""NULL""?) is (yes) |
|
49 |
:request node to terminate; |
|
50 |
:proceed to next node; |
|
51 |
endwhile (no) |
|
52 |
:broadcast control event (terminate); |
|
53 |
:unlock core; |
|
39 | 54 |
stop |
55 |
note |
|
56 |
Returns ""URT_STATUS_OK"". |
|
57 |
endnote |
|
40 | 58 |
|
41 | 59 |
/'### OUTRO ##################################################################'/ |
42 | 60 |
|
doc/activitydiagrams/core/urtCoreSynchronizeNodes.svg | ||
---|---|---|
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="276px" preserveAspectRatio="none" style="width:270px;height:276px;" version="1.1" viewBox="0 0 270 276" width="270px" zoomAndPan="magnify"><defs><filter height="300%" id="f1co5slmj06f3r" 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="90.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="246" x="12" y="47.6611">urtCoreSynchronizeNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="138" y="68.6143"/><path d="M19,72.8594 L19,183.6563 L251,183.6563 L251,82.8594 L241,72.8594 L19,72.8594 " fill="#FBFB77" filter="url(#f1co5slmj06f3r)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M241,72.8594 L241,82.8594 L251,82.8594 L241,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="68.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="72.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="72.5" y="89.4263">node</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="113.5" y="89.4263">: urt_node_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="201.5" x2="251" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="211" x="25" y="105.0591">Pointer to a node tp synchronize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="105" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="137" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="51.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="55.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="42" x="55.5" y="134.8247">stage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="113" x="101.5" y="134.8247">: urt_nodestage_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="218.5" x2="251" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="194" x="25" y="150.4575">Stage value to synchronize to.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="251" y1="158.5234" y2="158.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="251" y1="160.5234" y2="160.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="64" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="68" y="175.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="68" y="175.0903">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="117" y="175.0903">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="206" x2="251" y1="171.0898" y2="171.0898"/><ellipse cx="135" cy="213.6563" fill="#000000" filter="url(#f1co5slmj06f3r)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><ellipse cx="135" cy="254.6563" fill="#FFFFFF" filter="url(#f1co5slmj06f3r)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="135" cy="254.6563" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="135" x2="135" y1="183.6563" y2="203.6563"/><polygon fill="#A80036" points="131,193.6563,135,203.6563,139,193.6563,135,197.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="135" x2="135" y1="223.6563" y2="243.6563"/><polygon fill="#A80036" points="131,233.6563,135,243.6563,139,233.6563,135,237.6563" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e880566e064a50cb3402d08c9a5033b1]
|
|
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="968px" preserveAspectRatio="none" style="width:1007px;height:968px;" version="1.1" viewBox="0 0 1007 968" width="1007px" zoomAndPan="magnify"><defs><filter height="300%" id="fz5718sbngl5u" 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="458" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="246" x="379.5" y="47.6611">urtCoreSynchronizeNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="505.5" y="68.6143"/><path d="M188.75,72.8594 L188.75,213.9219 L983.75,213.9219 L983.75,82.8594 L973.75,72.8594 L188.75,72.8594 " fill="#FBFB77" filter="url(#fz5718sbngl5u)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M973.75,72.8594 L973.75,82.8594 L983.75,82.8594 L973.75,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.75" x2="519.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="523.75" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="523.75" y="89.4263">node</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="564.75" y="89.4263">: urt_node_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="652.75" x2="983.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="211" x="194.75" y="105.0591">Pointer to a node to synchronize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="194.75" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="274.75" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="306.75" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.75" x2="983.75" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.75" x2="983.75" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.75" x2="515.25" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="519.25" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="519.25" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="568.25" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="657.25" x2="983.75" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="194.75" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="247.75" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="269" x="355.75" y="160.4575">if all nodes are synchronized and proceed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="194.75" y="175.5903">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="247.75" y="175.5903">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="345" x="379.75" y="175.5903">if an exception occurred (faulty stage value detected).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="183" x="194.75" y="190.7231">Returns a value greater than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="381.75" y="190.7231">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="105" x="489.75" y="190.7231">but smaller than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="598.75" y="190.7231">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="730.75" y="190.7231">if there are nodes left to synchronize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="611" x="194.75" y="205.856">In the latter case, the node thread must still wait for the control event (proceed) to synchronize.</text><ellipse cx="586.25" cy="243.9219" fill="#000000" filter="url(#fz5718sbngl5u)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="547.75" y="273.9219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="557.75" y="295.0605">lock core</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="470.75" y="327.8906"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="480.75" y="349.0293">increment the node's stage value</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="460.75" y="381.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="470.75" y="402.998">access first node core's list of nodes</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="508.25" y="493.1479"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="518.25" y="514.2866">proceed to next node</text><polygon fill="#FEFECE" filter="url(#fz5718sbngl5u)" points="447.25,435.8281,725.25,435.8281,737.25,448.6328,725.25,461.4375,447.25,461.4375,435.25,448.6328,447.25,435.8281" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="590.25" y="471.6479">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="447.25" y="446.0386">Current node is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="562.25" y="446.0386">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="278" x="447.25" y="458.8433">and stage of current node is equal to argument?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="421.25" y="446.0386">no</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="283" x="444.75" y="617.519"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="454.75" y="638.6577">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="479.75" y="638.6577">urtCoreStopNodes(URT_STATUS_ERROR)</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="539.75" y="671.4878"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="549.75" y="692.6265">unlock core</text><path d="M349.25,723.8901 L349.25,749.0229 A0,0 0 0 0 349.25,749.0229 L555.25,749.0229 A0,0 0 0 0 555.25,749.0229 L555.25,741.8901 L575.25,736.4565 L555.25,733.8901 L555.25,733.8901 L545.25,723.8901 L349.25,723.8901 A0,0 0 0 0 349.25,723.8901 " fill="#FBFB77" filter="url(#fz5718sbngl5u)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M545.25,723.8901 L545.25,733.8901 L555.25,733.8901 L545.25,723.8901 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="355.25" y="740.957">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="408.25" y="740.957">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="536.25" y="740.957">.</text><ellipse cx="586.25" cy="736.4565" fill="#FFFFFF" filter="url(#fz5718sbngl5u)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="586.25" cy="736.4565" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fz5718sbngl5u)" points="364.25,569.1167,808.25,569.1167,820.25,581.1167,808.25,593.1167,364.25,593.1167,352.25,581.1167,364.25,569.1167" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="590.25" y="603.3271">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="444" x="364.25" y="584.9248">The stage of a node was equal to the argument or 1 less than the argument?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="820.25" y="578.5225">no</text><polygon fill="#FEFECE" filter="url(#fz5718sbngl5u)" points="461.75,791.0229,710.75,791.0229,722.75,803.0229,710.75,815.0229,461.75,815.0229,449.75,803.0229,461.75,791.0229" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="249" x="461.75" y="806.8311">Stages of all nodes are equal to argument?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="429.75" y="800.4287">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="722.75" y="800.4287">no</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="237" x="104.5" y="825.0229"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="217" x="114.5" y="846.1616">broadcast control event (proceed)</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="878.9917"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="900.1304">unlock core</text><path d="M10,931.394 L10,956.5269 A0,0 0 0 0 10,956.5269 L192,956.5269 A0,0 0 0 0 192,956.5269 L192,949.394 L212,943.9604 L192,941.394 L192,941.394 L182,931.394 L10,931.394 A0,0 0 0 0 10,931.394 " fill="#FBFB77" filter="url(#fz5718sbngl5u)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,931.394 L182,941.394 L192,941.394 L182,931.394 " 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="948.4609">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="948.4609">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="948.4609">.</text><ellipse cx="223" cy="943.9604" fill="#FFFFFF" filter="url(#fz5718sbngl5u)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="943.9604" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="903" y="825.0229"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="913" y="846.1616">unlock core</text><path d="M361.5,878.9917 L361.5,904.1245 A0,0 0 0 0 361.5,904.1245 L918.5,904.1245 A0,0 0 0 0 918.5,904.1245 L918.5,896.9917 L938.5,891.5581 L918.5,888.9917 L918.5,888.9917 L908.5,878.9917 L361.5,878.9917 A0,0 0 0 0 361.5,878.9917 " fill="#FBFB77" filter="url(#fz5718sbngl5u)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M908.5,878.9917 L908.5,888.9917 L918.5,888.9917 L908.5,878.9917 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="183" x="367.5" y="896.0586">Returns a value greater than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="554.5" y="896.0586">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="105" x="662.5" y="896.0586">but smaller than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="771.5" y="896.0586">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="899.5" y="896.0586">.</text><ellipse cx="949.5" cy="891.5581" fill="#FFFFFF" filter="url(#fz5718sbngl5u)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="949.5" cy="891.5581" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="213.9219" y2="233.9219"/><polygon fill="#A80036" points="582.25,223.9219,586.25,233.9219,590.25,223.9219,586.25,227.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="253.9219" y2="273.9219"/><polygon fill="#A80036" points="582.25,263.9219,586.25,273.9219,590.25,263.9219,586.25,267.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="307.8906" y2="327.8906"/><polygon fill="#A80036" points="582.25,317.8906,586.25,327.8906,590.25,317.8906,586.25,321.8906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="361.8594" y2="381.8594"/><polygon fill="#A80036" points="582.25,371.8594,586.25,381.8594,590.25,371.8594,586.25,375.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="461.4375" y2="493.1479"/><polygon fill="#A80036" points="582.25,483.1479,586.25,493.1479,590.25,483.1479,586.25,487.1479" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="527.1167" y2="537.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="749.25" y1="537.1167" y2="537.1167"/><polygon fill="#A80036" points="745.25,501.3276,749.25,491.3276,753.25,501.3276,749.25,497.3276" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="749.25" x2="749.25" y1="448.6328" y2="537.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="749.25" x2="737.25" y1="448.6328" y2="448.6328"/><polygon fill="#A80036" points="747.25,444.6328,737.25,448.6328,747.25,452.6328,743.25,448.6328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="435.25" x2="423.25" y1="448.6328" y2="448.6328"/><polygon fill="#A80036" points="419.25,487.3276,423.25,497.3276,427.25,487.3276,423.25,491.3276" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="423.25" x2="423.25" y1="448.6328" y2="549.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="423.25" x2="586.25" y1="549.1167" y2="549.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="549.1167" y2="569.1167"/><polygon fill="#A80036" points="582.25,559.1167,586.25,569.1167,590.25,559.1167,586.25,563.1167" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="415.8281" y2="435.8281"/><polygon fill="#A80036" points="582.25,425.8281,586.25,435.8281,590.25,425.8281,586.25,429.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="651.4878" y2="671.4878"/><polygon fill="#A80036" points="582.25,661.4878,586.25,671.4878,590.25,661.4878,586.25,665.4878" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="705.4565" y2="725.4565"/><polygon fill="#A80036" points="582.25,715.4565,586.25,725.4565,590.25,715.4565,586.25,719.4565" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="593.1167" y2="617.519"/><polygon fill="#A80036" points="582.25,607.519,586.25,617.519,590.25,607.519,586.25,611.519" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="820.25" x2="832.25" y1="581.1167" y2="581.1167"/><polygon fill="#A80036" points="828.25,671.0542,832.25,681.0542,836.25,671.0542,832.25,675.0542" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="832.25" x2="832.25" y1="581.1167" y2="771.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="832.25" x2="586.25" y1="771.0229" y2="771.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="771.0229" y2="791.0229"/><polygon fill="#A80036" points="582.25,781.0229,586.25,791.0229,590.25,781.0229,586.25,785.0229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="858.9917" y2="878.9917"/><polygon fill="#A80036" points="219,868.9917,223,878.9917,227,868.9917,223,872.9917" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="912.9604" y2="932.9604"/><polygon fill="#A80036" points="219,922.9604,223,932.9604,227,922.9604,223,926.9604" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="949.5" y1="858.9917" y2="880.5581"/><polygon fill="#A80036" points="945.5,870.5581,949.5,880.5581,953.5,870.5581,949.5,874.5581" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="449.75" x2="223" y1="803.0229" y2="803.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="803.0229" y2="825.0229"/><polygon fill="#A80036" points="219,815.0229,223,825.0229,227,815.0229,223,819.0229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="722.75" x2="949.5" y1="803.0229" y2="803.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="949.5" y1="803.0229" y2="825.0229"/><polygon fill="#A80036" points="945.5,815.0229,949.5,825.0229,953.5,815.0229,949.5,819.0229" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6736767e544a542ba9ec8cfbdd65c55e]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtCoreSynchronizeNodes()\n |
... | ... | |
6 | 6 |
|
7 | 7 |
note |
8 | 8 |
- - **node** : urt_node_t* - - |
9 |
Pointer to a node tp synchronize.
|
|
9 |
Pointer to a node to synchronize.
|
|
10 | 10 |
Must not be ""NULL"". |
11 |
- - **stage** : urt_nodestage_t - - |
|
12 |
Stage value to synchronize to. |
|
13 | 11 |
==== |
14 | 12 |
- - **return** : urt_status_t - - |
13 |
Returns ""URT_STATUS_OK"" if all nodes are synchronized and proceed. |
|
14 |
Returns ""URT_STATUS_ERROR"" if an exception occurred (faulty stage value detected). |
|
15 |
Returns a value greater than ""URT_STATUS_OK"" but smaller than ""URT_STATUS_ERROR"" if there are nodes left to synchronize. |
|
16 |
In the latter case, the node thread must still wait for the control event (proceed) to synchronize. |
|
15 | 17 |
endnote |
16 | 18 |
|
17 | 19 |
|
18 | 20 |
start |
19 |
stop |
|
21 |
:lock core; |
|
22 |
:increment the node's stage value; |
|
23 |
:access first node core's list of nodes; |
|
24 |
while (Current node is not ""NULL""\nand stage of current node is equal to argument?) is (yes) |
|
25 |
:proceed to next node; |
|
26 |
endwhile (no) |
|
27 |
if (The stage of a node was equal to the argument or 1 less than the argument?) then (yes) |
|
28 |
:call ""urtCoreStopNodes(URT_STATUS_ERROR)""; |
|
29 |
:unlock core; |
|
30 |
stop |
|
31 |
note |
|
32 |
Returns ""URT_STATUS_ERROR"". |
|
33 |
endnote |
|
34 |
else (no) |
|
35 |
endif |
|
36 |
if (Stages of all nodes are equal to argument?) then (yes) |
|
37 |
:broadcast control event (proceed); |
|
38 |
:unlock core; |
|
39 |
stop |
|
40 |
note |
|
41 |
Returns ""URT_STATUS_OK"". |
|
42 |
endnote |
|
43 |
else (no) |
|
44 |
:unlock core; |
|
45 |
stop |
|
46 |
note |
|
47 |
Returns a value greater than ""URT_STATUS_OK"" but smaller than ""URT_STATUS_ERROR"". |
|
48 |
endnote |
|
49 |
endif |
|
20 | 50 |
|
21 | 51 |
|
22 | 52 |
@enduml |
doc/activitydiagrams/core/urtCoreSynchronizeNodes.uml | ||
---|---|---|
29 | 29 |
|
30 | 30 |
note |
31 | 31 |
-- **node** : urt_node_t* -- |
32 |
Pointer to a node tp synchronize.
|
|
32 |
Pointer to a node to synchronize.
|
|
33 | 33 |
Must not be ""NULL"". |
34 |
-- **stage** : urt_nodestage_t -- |
|
35 |
Stage value to synchronize to. |
|
36 | 34 |
==== |
37 | 35 |
-- **return** : urt_status_t -- |
36 |
Returns ""URT_STATUS_OK"" if all nodes are synchronized and proceed. |
|
37 |
Returns ""URT_STATUS_ERROR"" if an exception occurred (faulty stage value detected). |
|
38 |
Returns a value greater than ""URT_STATUS_OK"" but smaller than ""URT_STATUS_ERROR"" if there are nodes left to synchronize. |
|
39 |
In the latter case, the node thread must still wait for the control event (proceed) to synchronize. |
|
38 | 40 |
endnote |
39 | 41 |
|
40 | 42 |
/'### PROCEDURE ##############################################################'/ |
41 | 43 |
|
42 | 44 |
start |
43 |
stop |
|
45 |
:lock core; |
|
46 |
:increment the node's stage value; |
|
47 |
:access first node core's list of nodes; |
|
48 |
while (Current node is not ""NULL""\nand stage of current node is equal to argument?) is (yes) |
|
49 |
:proceed to next node; |
|
50 |
endwhile (no) |
|
51 |
if (The stage of a node was equal to the argument or 1 less than the argument?) then (yes) |
|
52 |
:call ""urtCoreStopNodes(URT_STATUS_ERROR)""; |
|
53 |
:unlock core; |
|
54 |
stop |
|
55 |
note |
|
56 |
Returns ""URT_STATUS_ERROR"". |
|
57 |
endnote |
|
58 |
else (no) |
|
59 |
endif |
|
60 |
if (Stages of all nodes are equal to argument?) then (yes) |
|
61 |
:broadcast control event (proceed); |
|
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 a value greater than ""URT_STATUS_OK"" but smaller than ""URT_STATUS_ERROR"". |
|
72 |
endnote |
|
73 |
endif |
|
44 | 74 |
|
45 | 75 |
/'### OUTRO ##################################################################'/ |
46 | 76 |
|
doc/activitydiagrams/functions.iuml | ||
---|---|---|
1 |
/' |
|
2 |
µRtWare is a lightweight publish/subscribe middleware for real-time |
|
3 |
applications. It was developed as part of the software habitat for the |
|
4 |
Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well. |
|
5 |
|
|
6 |
Copyright (C) 2018..2020 Thomas Schöpping et al. |
|
7 |
|
|
8 |
This program is free software: you can redistribute it and/or modify |
|
9 |
it under the terms of the GNU General Public License as published by |
|
10 |
the Free Software Foundation, either version 3 of the License, or |
|
11 |
(at your option) any later version. |
|
12 |
|
|
13 |
This program is distributed in the hope that it will be useful, |
|
14 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
15 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
16 |
GNU General Public License for more details. |
|
17 |
|
|
18 |
You should have received a copy of the GNU General Public License |
|
19 |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
20 |
'/ |
|
21 |
|
|
22 |
/' Contribute messages to a topic. '/ |
|
23 |
!function $contribute_messages() |
|
24 |
partition "contribute messages" { |
|
25 |
fork |
|
26 |
:set next pointer of topic's latest message to first message to contribute; |
|
27 |
fork again |
|
28 |
:set next pointer of last message to contribute to the message after the topic's latest message; |
|
29 |
endfork |
|
30 |
} |
|
31 |
!endfunction |
|
32 |
|
doc/activitydiagrams/node/_main.svg | ||
---|---|---|
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="231px" preserveAspectRatio="none" style="width:347px;height:231px;" version="1.1" viewBox="0 0 347 231" width="347px" zoomAndPan="magnify"><defs><filter height="300%" id="f26rqh0ndbjfe" 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="128" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="66" x="139.5" y="47.6611">_main()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="175.5" y="68.6143"/><path d="M10,72.8594 L10,138.2578 L335,138.2578 L335,82.8594 L325,72.8594 L10,72.8594 " fill="#FBFB77" filter="url(#f26rqh0ndbjfe)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M325,72.8594 L325,82.8594 L335,82.8594 L325,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="133.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="137.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="25" x="137.5" y="89.4263">arg</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="166.5" y="89.4263">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="211.5" x2="335" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="304" x="16" y="105.0591">Optional Argument to the thread main function.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="335" y1="113.125" y2="113.125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="335" y1="115.125" y2="115.125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="127" y1="125.6914" y2="125.6914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="131" y="129.6919"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="131" y="129.6919">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="180" y="129.6919">: void</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="218" x2="335" y1="125.6914" y2="125.6914"/><ellipse cx="172.5" cy="168.2578" fill="#000000" filter="url(#f26rqh0ndbjfe)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><ellipse cx="172.5" cy="209.2578" fill="#FFFFFF" filter="url(#f26rqh0ndbjfe)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="172.5" cy="209.2578" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="172.5" x2="172.5" y1="138.2578" y2="158.2578"/><polygon fill="#A80036" points="168.5,148.2578,172.5,158.2578,176.5,148.2578,172.5,152.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="172.5" x2="172.5" y1="178.2578" y2="198.2578"/><polygon fill="#A80036" points="168.5,188.2578,172.5,198.2578,176.5,188.2578,172.5,192.2578" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a5c7c5c139192c185c6c2afaa3cf1663]
|
|
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="1630px" preserveAspectRatio="none" style="width:821px;height:1630px;" version="1.1" viewBox="0 0 821 1630" width="821px" zoomAndPan="magnify"><defs><filter height="300%" id="f18z385qfrf5hk" 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="365" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="66" x="376.5" y="47.6611">_main()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="412.5" y="68.6143"/><path d="M219,72.8594 L219,153.3906 L761,153.3906 L761,82.8594 L751,72.8594 L219,72.8594 " fill="#FBFB77" filter="url(#f18z385qfrf5hk)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M751,72.8594 L751,82.8594 L761,82.8594 L751,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="219" x2="451" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="455" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="25" x="455" y="89.4263">arg</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="484" y="89.4263">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="529" x2="761" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="332" x="225" y="105.0591">Optional Argument to the thread main function (see</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="561" y="105.0591">urt_osThreadFunction_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="9" x="737" y="105.0591">).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="239" x="225" y="120.1919">This functions expects no arguments.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="219" x2="761" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="219" x2="761" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="219" x2="444.5" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="448.5" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="448.5" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="497.5" y="144.8247">: void</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="535.5" x2="761" y1="140.8242" y2="140.8242"/><ellipse cx="490" cy="183.3906" fill="#000000" filter="url(#f18z385qfrf5hk)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FFFFFF" filter="url(#f18z385qfrf5hk)" height="600.9141" style="stroke: #000000; stroke-width: 2.0;" width="800" x="10" y="204.1924"/><path d="M60,205.1924 L60,213.4893 L50,223.4893 L10,223.4893 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="40" x="13" y="218.1875">setup</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="411.5" y="240.4893"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="421.5" y="261.6279">register to core event</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="402,294.458,578,294.458,590,306.458,578,318.458,402,318.458,390,306.458,402,294.458" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="402" y="310.2661">Node's</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="445" y="310.2661">setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="540" y="310.2661">is set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="370" y="303.8638">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="590" y="303.8638">no</text><path d="M30,332.876 L30,358.0088 A0,0 0 0 0 30,358.0088 L201,358.0088 A0,0 0 0 0 201,358.0088 L201,350.876 L221,345.4424 L201,342.876 L201,342.876 L191,332.876 L30,332.876 A0,0 0 0 0 30,332.876 " fill="#FBFB77" filter="url(#f18z385qfrf5hk)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M191,332.876 L191,342.876 L201,342.876 L191,332.876 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="150" x="36" y="349.9429">Callback must not loop.</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="221" y="328.458"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="231" y="349.5967">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="105" x="285" y="349.5967">setupcallback()</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="283" x="169" y="430.8291"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="179" y="451.9678">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="204" y="451.9678">urtCoreStopNodes(URT_STATUS_ERROR)</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="124,382.4268,497,382.4268,509,394.4268,497,406.4268,124,406.4268,112,394.4268,124,382.4268" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="314.5" y="416.6372">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="124" y="398.2349">Event mask returned by</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="264" y="398.2349">setupcallback()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="373" y="398.2349">redefines core event?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="509" y="391.8325">no</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="310.5,484.7979,322.5,496.7979,310.5,508.7979,298.5,496.7979,310.5,484.7979" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="257" x="541" y="328.458"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="551" y="349.5967">act as if</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="605" y="349.5967">stupcallback</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="693" y="349.5967">returned 0xF..F</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,514.7979,502,526.7979,490,538.7979,478,526.7979,490,514.7979" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="361" y="607.2002"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="371" y="628.3389">suspend all child threads (recursively)</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="341" x="319.5" y="661.1689"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="329.5" y="682.3076">synchronize by calling</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="182" x="468.5" y="682.3076">urtCoreSynchronizeNodes(1)</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="364.5" y="715.1377"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="374.5" y="736.2764">resume all child threads (recursively)</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="399,558.7979,581,558.7979,593,570.7979,581,582.7979,399,582.7979,387,570.7979,399,558.7979" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="494" y="593.0083">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="81" x="399" y="574.606">Core status is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="484" y="574.606">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="575" y="574.606">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="593" y="568.2036">no</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,769.1064,502,781.1064,490,793.1064,478,781.1064,490,769.1064" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f18z385qfrf5hk)" height="467.7183" style="stroke: #000000; stroke-width: 2.0;" width="581" x="169" y="815.9082"/><path d="M209,816.9082 L209,825.2051 L199,835.2051 L169,835.2051 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="172" y="829.9033">loop</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="370" y="907.9155"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="220" x="380" y="929.0542">Wait for a specified or a core event</text><path d="M213,1014.7046 L213,1039.8374 A0,0 0 0 0 213,1039.8374 L384,1039.8374 A0,0 0 0 0 384,1039.8374 L384,1032.7046 L404,1027.271 L384,1024.7046 L384,1024.7046 L374,1014.7046 L213,1014.7046 A0,0 0 0 0 213,1014.7046 " fill="#FBFB77" filter="url(#f18z385qfrf5hk)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M374,1014.7046 L374,1024.7046 L384,1024.7046 L374,1014.7046 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="150" x="219" y="1031.7715">Callback must not loop.</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="404" y="1010.2866"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="414" y="1031.4253">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="98" x="468" y="1031.4253">loopcallback()</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="283" x="348.5" y="1127.6577"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="358.5" y="1148.7964">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="383.5" y="1148.7964">urtCoreStopNodes(URT_STATUS_ERROR)</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="307,1079.2554,673,1079.2554,685,1091.2554,673,1103.2554,307,1103.2554,295,1091.2554,307,1079.2554" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="494" y="1113.4658">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="307" y="1095.0635">Event mask returned by</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="447" y="1095.0635">loopcallback()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="549" y="1095.0635">redefines core event?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="685" y="1088.6611">no</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,1181.6265,502,1193.6265,490,1205.6265,478,1193.6265,490,1181.6265" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="430,961.8843,550,961.8843,562,973.8843,550,985.8843,430,985.8843,418,973.8843,430,961.8843" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="494" y="996.0947">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="430" y="977.6924">Core event received?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="562" y="971.29">yes</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,1225.6265,502,1237.6265,490,1249.6265,478,1237.6265,490,1225.6265" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="401.5,852.2051,578.5,852.2051,590.5,864.2051,578.5,876.2051,401.5,876.2051,389.5,864.2051,401.5,852.2051" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="494" y="886.4155">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="177" x="401.5" y="868.0132">Thread termination requested?</text><rect fill="#FFFFFF" filter="url(#f18z385qfrf5hk)" height="282.6055" style="stroke: #000000; stroke-width: 2.0;" width="451" x="270.5" y="1294.4282"/><path d="M317.5,1295.4282 L317.5,1303.7251 L307.5,1313.7251 L270.5,1313.7251 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="37" x="273.5" y="1308.4233">outro</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="399" x="290.5" y="1379.1274"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="300.5" y="1400.2661">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="126" x="354.5" y="1400.2661">shutdowncallback()</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="195" x="484.5" y="1400.2661">with core's status as argument</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="391.5,1330.7251,588.5,1330.7251,600.5,1342.7251,588.5,1354.7251,391.5,1354.7251,379.5,1342.7251,391.5,1330.7251" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="494" y="1364.9355">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="391.5" y="1346.5332">Node's</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="434.5" y="1346.5332">shutdowncallback</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="550.5" y="1346.5332">is set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="600.5" y="1340.1309">no</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,1433.0962,502,1445.0962,490,1457.0962,478,1445.0962,490,1433.0962" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="188" x="396" y="1477.0962"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="168" x="406" y="1498.2349">unregister from core event</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="305" x="337.5" y="1531.0649"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="285" x="347.5" y="1552.2036">terminate node thread (and all child threads)</text><ellipse cx="490" cy="1608.0337" fill="#FFFFFF" filter="url(#f18z385qfrf5hk)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="490" cy="1608.0337" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="153.3906" y2="173.3906"/><polygon fill="#A80036" points="486,163.3906,490,173.3906,494,163.3906,490,167.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="406.4268" y2="430.8291"/><polygon fill="#A80036" points="306.5,420.8291,310.5,430.8291,314.5,420.8291,310.5,424.8291" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="509" x2="521" y1="394.4268" y2="394.4268"/><polygon fill="#A80036" points="517,437.8135,521,447.8135,525,437.8135,521,441.8135" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="521" x2="521" y1="394.4268" y2="496.7979"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="521" x2="322.5" y1="496.7979" y2="496.7979"/><polygon fill="#A80036" points="332.5,492.7979,322.5,496.7979,332.5,500.7979,328.5,496.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="464.7979" y2="484.7979"/><polygon fill="#A80036" points="306.5,474.7979,310.5,484.7979,314.5,474.7979,310.5,478.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="362.4268" y2="382.4268"/><polygon fill="#A80036" points="306.5,372.4268,310.5,382.4268,314.5,372.4268,310.5,376.4268" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="390" x2="310.5" y1="306.458" y2="306.458"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="306.458" y2="328.458"/><polygon fill="#A80036" points="306.5,318.458,310.5,328.458,314.5,318.458,310.5,322.458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="590" x2="669.5" y1="306.458" y2="306.458"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="669.5" x2="669.5" y1="306.458" y2="328.458"/><polygon fill="#A80036" points="665.5,318.458,669.5,328.458,673.5,318.458,669.5,322.458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="508.7979" y2="526.7979"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="478" y1="526.7979" y2="526.7979"/><polygon fill="#A80036" points="468,522.7979,478,526.7979,468,530.7979,472,526.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="669.5" x2="669.5" y1="362.4268" y2="526.7979"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="669.5" x2="502" y1="526.7979" y2="526.7979"/><polygon fill="#A80036" points="512,522.7979,502,526.7979,512,530.7979,508,526.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="274.458" y2="294.458"/><polygon fill="#A80036" points="486,284.458,490,294.458,494,284.458,490,288.458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="641.1689" y2="661.1689"/><polygon fill="#A80036" points="486,651.1689,490,661.1689,494,651.1689,490,655.1689" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="695.1377" y2="715.1377"/><polygon fill="#A80036" points="486,705.1377,490,715.1377,494,705.1377,490,709.1377" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="582.7979" y2="607.2002"/><polygon fill="#A80036" points="486,597.2002,490,607.2002,494,597.2002,490,601.2002" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="593" x2="670.5" y1="570.7979" y2="570.7979"/><polygon fill="#A80036" points="666.5,668.1533,670.5,678.1533,674.5,668.1533,670.5,672.1533" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.5" x2="670.5" y1="570.7979" y2="781.1064"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.5" x2="502" y1="781.1064" y2="781.1064"/><polygon fill="#A80036" points="512,777.1064,502,781.1064,512,785.1064,508,781.1064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="749.1064" y2="769.1064"/><polygon fill="#A80036" points="486,759.1064,490,769.1064,494,759.1064,490,763.1064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="538.7979" y2="558.7979"/><polygon fill="#A80036" points="486,548.7979,490,558.7979,494,548.7979,490,552.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="193.3906" y2="240.4893"/><polygon fill="#A80036" points="486,230.4893,490,240.4893,494,230.4893,490,234.4893" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1103.2554" y2="1127.6577"/><polygon fill="#A80036" points="486,1117.6577,490,1127.6577,494,1117.6577,490,1121.6577" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="685" x2="697" y1="1091.2554" y2="1091.2554"/><polygon fill="#A80036" points="693,1134.6421,697,1144.6421,701,1134.6421,697,1138.6421" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="697" x2="697" y1="1091.2554" y2="1193.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="697" x2="502" y1="1193.6265" y2="1193.6265"/><polygon fill="#A80036" points="512,1189.6265,502,1193.6265,512,1197.6265,508,1193.6265" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1161.6265" y2="1181.6265"/><polygon fill="#A80036" points="486,1171.6265,490,1181.6265,494,1171.6265,490,1175.6265" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1044.2554" y2="1079.2554"/><polygon fill="#A80036" points="486,1069.2554,490,1079.2554,494,1069.2554,490,1073.2554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="985.8843" y2="1010.2866"/><polygon fill="#A80036" points="486,1000.2866,490,1010.2866,494,1000.2866,490,1004.2866" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="562" x2="707" y1="973.8843" y2="973.8843"/><polygon fill="#A80036" points="703,1100.1577,707,1110.1577,711,1100.1577,707,1104.1577" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="707" x2="707" y1="973.8843" y2="1237.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="707" x2="502" y1="1237.6265" y2="1237.6265"/><polygon fill="#A80036" points="512,1233.6265,502,1237.6265,512,1241.6265,508,1237.6265" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1205.6265" y2="1225.6265"/><polygon fill="#A80036" points="486,1215.6265,490,1225.6265,494,1215.6265,490,1219.6265" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="941.8843" y2="961.8843"/><polygon fill="#A80036" points="486,951.8843,490,961.8843,494,951.8843,490,955.8843" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="876.2051" y2="907.9155"/><polygon fill="#A80036" points="486,897.9155,490,907.9155,494,897.9155,490,901.9155" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1249.6265" y2="1259.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="731" y1="1259.6265" y2="1259.6265"/><polygon fill="#A80036" points="727,1067.271,731,1057.271,735,1067.271,731,1063.271" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="731" x2="731" y1="864.2051" y2="1259.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="731" x2="590.5" y1="864.2051" y2="864.2051"/><polygon fill="#A80036" points="600.5,860.2051,590.5,864.2051,600.5,868.2051,596.5,864.2051" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="389.5" x2="191" y1="864.2051" y2="864.2051"/><polygon fill="#A80036" points="187,1053.271,191,1063.271,195,1053.271,191,1057.271" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="191" x2="191" y1="864.2051" y2="1271.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="191" x2="490" y1="1271.6265" y2="1271.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1271.6265" y2="1330.7251"/><polygon fill="#A80036" points="486,1320.7251,490,1330.7251,494,1320.7251,490,1324.7251" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="793.1064" y2="852.2051"/><polygon fill="#A80036" points="486,842.2051,490,852.2051,494,842.2051,490,846.2051" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1354.7251" y2="1379.1274"/><polygon fill="#A80036" points="486,1369.1274,490,1379.1274,494,1369.1274,490,1373.1274" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="600.5" x2="699.5" y1="1342.7251" y2="1342.7251"/><polygon fill="#A80036" points="695.5,1386.1118,699.5,1396.1118,703.5,1386.1118,699.5,1390.1118" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="699.5" x2="699.5" y1="1342.7251" y2="1445.0962"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="699.5" x2="502" y1="1445.0962" y2="1445.0962"/><polygon fill="#A80036" points="512,1441.0962,502,1445.0962,512,1449.0962,508,1445.0962" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1413.0962" y2="1433.0962"/><polygon fill="#A80036" points="486,1423.0962,490,1433.0962,494,1423.0962,490,1427.0962" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1457.0962" y2="1477.0962"/><polygon fill="#A80036" points="486,1467.0962,490,1477.0962,494,1467.0962,490,1471.0962" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1511.0649" y2="1531.0649"/><polygon fill="#A80036" points="486,1521.0649,490,1531.0649,494,1521.0649,490,1525.0649" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1565.0337" y2="1597.0337"/><polygon fill="#A80036" points="486,1587.0337,490,1597.0337,494,1587.0337,490,1591.0337" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[76359ecbe44076e6df4d6c6175398633]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\n_main()\n |
... | ... | |
6 | 6 |
|
7 | 7 |
note |
8 | 8 |
- - **arg** : void* - - |
9 |
Optional Argument to the thread main function. |
|
9 |
Optional Argument to the thread main function (see ""urt_osThreadFunction_t""). |
|
10 |
This functions expects no arguments. |
|
10 | 11 |
==== |
11 | 12 |
- - **return** : void - - |
12 | 13 |
endnote |
13 | 14 |
|
14 | 15 |
|
15 | 16 |
start |
17 |
partition "setup" { |
|
18 |
:register to core event; |
|
19 |
if (Node's ""setupcallback"" is set?) then (yes) |
|
20 |
:execute ""setupcallback()""; |
|
21 |
note |
|
22 |
Callback must not loop. |
|
23 |
endnote |
|
24 |
if (Event mask returned by ""setupcallback()"" redefines core event?) then (yes) |
|
25 |
:call ""urtCoreStopNodes(URT_STATUS_ERROR)""; |
|
26 |
else (no) |
|
27 |
endif |
|
28 |
else (no) |
|
29 |
:act as if ""stupcallback"" returned 0xF..F; |
|
30 |
endif |
|
31 |
if (Core status is ""URT_STATUS_OK""?) then (yes) |
|
32 |
:suspend all child threads (recursively); |
|
33 |
:synchronize by calling ""urtCoreSynchronizeNodes(1)""; |
|
34 |
:resume all child threads (recursively); |
|
35 |
else (no) |
|
36 |
endif |
|
37 |
} |
|
38 |
partition "loop" { |
|
39 |
while (Thread termination requested?) is (no) |
|
40 |
:Wait for a specified or a core event; |
|
41 |
if (Core event received?) then (yes) |
|
42 |
else (no) |
|
43 |
:execute ""loopcallback()""; |
|
44 |
note |
|
45 |
Callback must not loop. |
|
46 |
endnote |
|
47 |
if (Event mask returned by ""loopcallback()"" redefines core event?) then (yes) |
|
48 |
:call ""urtCoreStopNodes(URT_STATUS_ERROR)""; |
|
49 |
else (no) |
|
50 |
endif |
|
51 |
endif |
|
52 |
endwhile |
|
53 |
} |
|
54 |
partition "outro" { |
|
55 |
if (Node's ""shutdowncallback"" is set?) then (yes) |
|
56 |
:execute ""shutdowncallback()"" with core's status as argument; |
|
57 |
else (no) |
|
58 |
endif |
|
59 |
:unregister from core event; |
|
60 |
:terminate node thread (and all child threads); |
|
61 |
} |
|
16 | 62 |
stop |
17 | 63 |
|
18 | 64 |
|
doc/activitydiagrams/node/_main.uml | ||
---|---|---|
29 | 29 |
|
30 | 30 |
note |
31 | 31 |
-- **arg** : void* -- |
32 |
Optional Argument to the thread main function. |
|
32 |
Optional Argument to the thread main function (see ""urt_osThreadFunction_t""). |
|
33 |
This functions expects no arguments. |
|
33 | 34 |
==== |
34 | 35 |
-- **return** : void -- |
35 | 36 |
endnote |
... | ... | |
37 | 38 |
/'### PROCEDURE ##############################################################'/ |
38 | 39 |
|
39 | 40 |
start |
41 |
partition "setup" { |
|
42 |
:register to core event; |
|
43 |
if (Node's ""setupcallback"" is set?) then (yes) |
|
44 |
:execute ""setupcallback()""; |
|
45 |
note |
|
46 |
Callback must not loop. |
|
47 |
endnote |
|
48 |
if (Event mask returned by ""setupcallback()"" redefines core event?) then (yes) |
|
49 |
:call ""urtCoreStopNodes(URT_STATUS_ERROR)""; |
|
50 |
else (no) |
|
51 |
endif |
|
52 |
else (no) |
|
53 |
:act as if ""stupcallback"" returned 0xF..F; |
|
54 |
endif |
|
55 |
if (Core status is ""URT_STATUS_OK""?) then (yes) |
|
56 |
:suspend all child threads (recursively); |
|
57 |
:synchronize by calling ""urtCoreSynchronizeNodes(1)""; |
|
58 |
:resume all child threads (recursively); |
|
59 |
else (no) |
|
60 |
endif |
|
61 |
} |
|
62 |
partition "loop" { |
|
63 |
while (Thread termination requested?) is (no) |
|
64 |
:Wait for a specified or a core event; |
|
65 |
if (Core event received?) then (yes) |
|
66 |
else (no) |
|
67 |
:execute ""loopcallback()""; |
|
68 |
note |
|
69 |
Callback must not loop. |
|
70 |
endnote |
|
71 |
if (Event mask returned by ""loopcallback()"" redefines core event?) then (yes) |
|
72 |
:call ""urtCoreStopNodes(URT_STATUS_ERROR)""; |
|
73 |
else (no) |
|
74 |
endif |
|
75 |
endif |
|
76 |
endwhile |
|
77 |
} |
|
78 |
partition "outro" { |
|
79 |
if (Node's ""shutdowncallback"" is set?) then (yes) |
|
80 |
:execute ""shutdowncallback()"" with core's status as argument; |
|
81 |
else (no) |
|
82 |
endif |
|
83 |
:unregister from core event; |
|
84 |
:terminate node thread (and all child threads); |
|
85 |
} |
|
40 | 86 |
stop |
41 | 87 |
|
42 | 88 |
/'### OUTRO ##################################################################'/ |
43 | 89 |
|
44 | 90 |
@enduml |
91 |
|
doc/activitydiagrams/publisher/urtPublisherInit.svg | ||
---|---|---|
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="811px" preserveAspectRatio="none" style="width:1212px;height:811px;" version="1.1" viewBox="0 0 1212 811" width="1212px" zoomAndPan="magnify"><defs><filter height="300%" id="fcs9iivy1fmh7" 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="560.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="150" x="530" y="47.6611">urtPublisherInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="608" y="68.6143"/><path d="M368.5,72.8594 L368.5,289.5859 L819.5,289.5859 L819.5,82.8594 L809.5,72.8594 L368.5,72.8594 " fill="#FBFB77" filter="url(#fcs9iivy1fmh7)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M809.5,72.8594 L809.5,82.8594 L819.5,82.8594 L809.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="498.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="502.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="502.5" y="89.4263">publisher</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="575.5" y="89.4263">: urt_publisher_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="689.5" x2="819.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="374.5" y="105.0591">The publisher to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="374.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="454.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="486.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="528" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="532" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="532" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="573" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="660" x2="819.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="259" x="374.5" y="150.4575">The topic, this publisher is associated to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="374.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="454.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="486.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="495" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="499" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="499" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="578" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="693" x2="819.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="374.5" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="410.5" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="374.5" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="374.5" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="374.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="424.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="460.5" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="819.5" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="819.5" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="523" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="527" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="527" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="576" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="665" x2="819.5" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="374.5" y="281.52">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="471.5" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="575.5" y="281.52">.</text><ellipse cx="594" cy="319.5859" fill="#000000" filter="url(#fcs9iivy1fmh7)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M230.5,339.5859 L230.5,410.1172 A0,0 0 0 0 230.5,410.1172 L508.5,410.1172 A0,0 0 0 0 508.5,410.1172 L508.5,378.8516 L528.5,374.8516 L508.5,370.8516 L508.5,349.5859 L498.5,339.5859 L230.5,339.5859 A0,0 0 0 0 230.5,339.5859 " fill="#FBFB77" filter="url(#fcs9iivy1fmh7)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M498.5,339.5859 L498.5,349.5859 L508.5,349.5859 L498.5,339.5859 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="236.5" y="356.6528">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="277.5" y="356.6528">← topic</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="230.5" x2="241" y1="367.2852" y2="367.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="245" y="371.2856">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="498" x2="508.5" y1="367.2852" y2="367.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="123" x="236.5" y="386.9185">publishAttempts</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="363.5" y="386.9185">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="236.5" y="402.0513">publishFails</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="328.5" y="402.0513">← 0</text><rect fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="528.5" y="357.8672"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="538.5" y="379.0059">initialize members</text><rect fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="554" y="478.5195"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="564" y="499.6582">lock topic</text><rect fill="#FFFFFF" filter="url(#fcs9iivy1fmh7)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1166" x="10" y="523.29"/><path d="M167,524.29 L167,532.5869 L157,542.5869 L10,542.5869 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="13" y="537.2852">contribute messages</text><rect fill="#000000" filter="url(#fcs9iivy1fmh7)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1146" x="20" y="559.5869"/><rect fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="34" y="585.5869"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="44" y="606.7256">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="536" y="585.5869"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="546" y="606.7256">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#fcs9iivy1fmh7)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1146" x="20" y="639.5557"/><rect fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="546" y="677.5557"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="556" y="698.6943">unlock topic</text><polygon fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" points="524,430.1172,664,430.1172,676,442.1172,664,454.1172,524,454.1172,512,442.1172,524,430.1172" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="598" y="464.3276">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="524" y="445.9253">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="676" y="439.5229">no</text><polygon fill="#FEFECE" filter="url(#fcs9iivy1fmh7)" points="594,731.5244,606,743.5244,594,755.5244,582,743.5244,594,731.5244" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M381,773.958 L381,799.0908 A0,0 0 0 0 381,799.0908 L563,799.0908 A0,0 0 0 0 563,799.0908 L563,791.958 L583,786.5244 L563,783.958 L563,783.958 L553,773.958 L381,773.958 A0,0 0 0 0 381,773.958 " fill="#FBFB77" filter="url(#fcs9iivy1fmh7)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M553,773.958 L553,783.958 L563,783.958 L553,773.958 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="387" y="791.0249">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="440" y="791.0249">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="544" y="791.0249">.</text><ellipse cx="594" cy="786.5244" fill="#FFFFFF" filter="url(#fcs9iivy1fmh7)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="594" cy="786.5244" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="289.5859" y2="309.5859"/><polygon fill="#A80036" points="590,299.5859,594,309.5859,598,299.5859,594,303.5859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="329.5859" y2="357.8672"/><polygon fill="#A80036" points="590,347.8672,594,357.8672,598,347.8672,594,351.8672" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="271" x2="271" y1="565.5869" y2="585.5869"/><polygon fill="#A80036" points="267,575.5869,271,585.5869,275,575.5869,271,579.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="565.5869" y2="585.5869"/><polygon fill="#A80036" points="841,575.5869,845,585.5869,849,575.5869,845,579.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="271" x2="271" y1="619.5557" y2="639.5557"/><polygon fill="#A80036" points="267,629.5557,271,639.5557,275,629.5557,271,633.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="619.5557" y2="639.5557"/><polygon fill="#A80036" points="841,629.5557,845,639.5557,849,629.5557,845,633.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="512.4883" y2="559.5869"/><polygon fill="#A80036" points="590,549.5869,594,559.5869,598,549.5869,594,553.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="645.5557" y2="677.5557"/><polygon fill="#A80036" points="590,667.5557,594,677.5557,598,667.5557,594,671.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="454.1172" y2="478.5195"/><polygon fill="#A80036" points="590,468.5195,594,478.5195,598,468.5195,594,472.5195" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="1186" y1="442.1172" y2="442.1172"/><polygon fill="#A80036" points="1182,584.4229,1186,594.4229,1190,584.4229,1186,588.4229" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186" x2="1186" y1="442.1172" y2="743.5244"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186" x2="606" y1="743.5244" y2="743.5244"/><polygon fill="#A80036" points="616,739.5244,606,743.5244,616,747.5244,612,743.5244" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="711.5244" y2="731.5244"/><polygon fill="#A80036" points="590,721.5244,594,731.5244,598,721.5244,594,725.5244" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="391.8359" y2="430.1172"/><polygon fill="#A80036" points="590,420.1172,594,430.1172,598,420.1172,594,424.1172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="755.5244" y2="775.5244"/><polygon fill="#A80036" points="590,765.5244,594,775.5244,598,765.5244,594,769.5244" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[5c5b56038ceff1f6c77f1e7c43c99812]
|
|
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="811px" preserveAspectRatio="none" style="width:1212px;height:811px;" version="1.1" viewBox="0 0 1212 811" width="1212px" zoomAndPan="magnify"><defs><filter height="300%" id="fp6zrrwdh3uys" 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="560.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="150" x="530" y="47.6611">urtPublisherInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="608" y="68.6143"/><path d="M368.5,72.8594 L368.5,289.5859 L819.5,289.5859 L819.5,82.8594 L809.5,72.8594 L368.5,72.8594 " fill="#FBFB77" filter="url(#fp6zrrwdh3uys)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M809.5,72.8594 L809.5,82.8594 L819.5,82.8594 L809.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="498.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="502.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="69" x="502.5" y="89.4263">publisher</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="575.5" y="89.4263">: urt_publisher_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="689.5" x2="819.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="374.5" y="105.0591">The publisher to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="374.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="454.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="486.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="528" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="532" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="532" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="573" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="660" x2="819.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="259" x="374.5" y="150.4575">The topic, this publisher is associated to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="374.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="454.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="486.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="495" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="499" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="499" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="578" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="693" x2="819.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="374.5" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="410.5" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="374.5" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="374.5" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="374.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="424.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="460.5" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="819.5" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="819.5" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="368.5" x2="523" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="527" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="527" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="576" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="665" x2="819.5" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="374.5" y="281.52">Always returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="471.5" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="575.5" y="281.52">.</text><ellipse cx="594" cy="319.5859" fill="#000000" filter="url(#fp6zrrwdh3uys)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M230.5,339.5859 L230.5,410.1172 A0,0 0 0 0 230.5,410.1172 L508.5,410.1172 A0,0 0 0 0 508.5,410.1172 L508.5,378.8516 L528.5,374.8516 L508.5,370.8516 L508.5,349.5859 L498.5,339.5859 L230.5,339.5859 A0,0 0 0 0 230.5,339.5859 " fill="#FBFB77" filter="url(#fp6zrrwdh3uys)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M498.5,339.5859 L498.5,349.5859 L508.5,349.5859 L498.5,339.5859 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="236.5" y="356.6528">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="277.5" y="356.6528">← topic</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="230.5" x2="241" y1="367.2852" y2="367.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="245" y="371.2856">URT_CFG_PUBSUB_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="498" x2="508.5" y1="367.2852" y2="367.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="123" x="236.5" y="386.9185">publishAttempts</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="363.5" y="386.9185">← 0</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="88" x="236.5" y="402.0513">publishFails</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="328.5" y="402.0513">← 0</text><rect fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="528.5" y="357.8672"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="538.5" y="379.0059">initialize members</text><rect fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="554" y="478.5195"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="564" y="499.6582">lock topic</text><rect fill="#FFFFFF" filter="url(#fp6zrrwdh3uys)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1166" x="10" y="523.29"/><path d="M167,524.29 L167,532.5869 L157,542.5869 L10,542.5869 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="13" y="537.2852">contribute messages</text><rect fill="#000000" filter="url(#fp6zrrwdh3uys)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1146" x="20" y="559.5869"/><rect fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="34" y="585.5869"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="44" y="606.7256">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="536" y="585.5869"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="546" y="606.7256">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#fp6zrrwdh3uys)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1146" x="20" y="639.5557"/><rect fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="546" y="677.5557"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="556" y="698.6943">unlock topic</text><polygon fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" points="524,430.1172,664,430.1172,676,442.1172,664,454.1172,524,454.1172,512,442.1172,524,430.1172" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="598" y="464.3276">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="524" y="445.9253">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="676" y="439.5229">no</text><polygon fill="#FEFECE" filter="url(#fp6zrrwdh3uys)" points="594,731.5244,606,743.5244,594,755.5244,582,743.5244,594,731.5244" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M381,773.958 L381,799.0908 A0,0 0 0 0 381,799.0908 L563,799.0908 A0,0 0 0 0 563,799.0908 L563,791.958 L583,786.5244 L563,783.958 L563,783.958 L553,773.958 L381,773.958 A0,0 0 0 0 381,773.958 " fill="#FBFB77" filter="url(#fp6zrrwdh3uys)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M553,773.958 L553,783.958 L563,783.958 L553,773.958 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="387" y="791.0249">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="440" y="791.0249">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="544" y="791.0249">.</text><ellipse cx="594" cy="786.5244" fill="#FFFFFF" filter="url(#fp6zrrwdh3uys)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="594" cy="786.5244" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="289.5859" y2="309.5859"/><polygon fill="#A80036" points="590,299.5859,594,309.5859,598,299.5859,594,303.5859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="329.5859" y2="357.8672"/><polygon fill="#A80036" points="590,347.8672,594,357.8672,598,347.8672,594,351.8672" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="271" x2="271" y1="565.5869" y2="585.5869"/><polygon fill="#A80036" points="267,575.5869,271,585.5869,275,575.5869,271,579.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="565.5869" y2="585.5869"/><polygon fill="#A80036" points="841,575.5869,845,585.5869,849,575.5869,845,579.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="271" x2="271" y1="619.5557" y2="639.5557"/><polygon fill="#A80036" points="267,629.5557,271,639.5557,275,629.5557,271,633.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="619.5557" y2="639.5557"/><polygon fill="#A80036" points="841,629.5557,845,639.5557,849,629.5557,845,633.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="512.4883" y2="559.5869"/><polygon fill="#A80036" points="590,549.5869,594,559.5869,598,549.5869,594,553.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="645.5557" y2="677.5557"/><polygon fill="#A80036" points="590,667.5557,594,677.5557,598,667.5557,594,671.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="454.1172" y2="478.5195"/><polygon fill="#A80036" points="590,468.5195,594,478.5195,598,468.5195,594,472.5195" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="676" x2="1186" y1="442.1172" y2="442.1172"/><polygon fill="#A80036" points="1182,584.4229,1186,594.4229,1190,584.4229,1186,588.4229" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186" x2="1186" y1="442.1172" y2="743.5244"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1186" x2="606" y1="743.5244" y2="743.5244"/><polygon fill="#A80036" points="616,739.5244,606,743.5244,616,747.5244,612,743.5244" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="711.5244" y2="731.5244"/><polygon fill="#A80036" points="590,721.5244,594,731.5244,598,721.5244,594,725.5244" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="391.8359" y2="430.1172"/><polygon fill="#A80036" points="590,420.1172,594,430.1172,598,420.1172,594,424.1172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="594" x2="594" y1="755.5244" y2="775.5244"/><polygon fill="#A80036" points="590,765.5244,594,775.5244,598,765.5244,594,769.5244" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b5d53b61b9ef34bcf4f73737292c91ed]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtPublisherInit()\n |
5 | 5 |
|
6 | 6 |
|
7 |
|
|
8 |
|
|
9 |
|
|
7 | 10 |
note |
8 | 11 |
- - **publisher** : urt_publisher_t* - - |
9 | 12 |
The publisher to initialize. |
... | ... | |
32 | 35 |
endnote |
33 | 36 |
if (Messages to contribute?) then (yes) |
34 | 37 |
:lock topic; |
35 |
|
|
36 |
partition "contribute messages" { |
|
37 |
fork |
|
38 |
:set next pointer of topic's latest message to first message to contribute; |
|
39 |
fork again |
|
40 |
:set next pointer of last message to contribute to the message after the topic's latest message; |
|
41 |
endfork |
|
42 |
} |
|
43 |
|
|
38 |
partition "contribute messages" { |
|
39 |
fork |
|
40 |
:set next pointer of topic's latest message to first message to contribute; |
|
41 |
fork again |
|
42 |
:set next pointer of last message to contribute to the message after the topic's latest message; |
|
43 |
endfork |
|
44 |
} |
|
44 | 45 |
:unlock topic; |
45 | 46 |
else (no) |
46 | 47 |
endif |
doc/activitydiagrams/publisher/urtPublisherInit.uml | ||
---|---|---|
25 | 25 |
|
26 | 26 |
title **µRtWare**\nurtPublisherInit()\n |
27 | 27 |
|
28 |
!include ../functions.iuml |
|
29 |
|
|
28 | 30 |
/'### PARAMETERS & RETURN ####################################################'/ |
29 | 31 |
|
30 | 32 |
note |
... | ... | |
56 | 58 |
endnote |
57 | 59 |
if (Messages to contribute?) then (yes) |
58 | 60 |
:lock topic; |
59 |
!include ../contributemessages.iuml
|
|
61 |
$contribute_messages()
|
|
60 | 62 |
:unlock topic; |
61 | 63 |
else (no) |
62 | 64 |
endif |
doc/activitydiagrams/service/urtServiceCall.svg | ||
---|---|---|
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="454px" preserveAspectRatio="none" style="width:546px;height:454px;" version="1.1" viewBox="0 0 546 454" width="546px" zoomAndPan="magnify"><defs><filter height="300%" id="f12gw5c9e3tsgb" 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="227.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="139" x="202.5" y="47.6611">urtServiceCall()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="275" y="68.6143"/><path d="M100,72.8594 L100,304.7188 L534,304.7188 L534,82.8594 L524,72.8594 L100,72.8594 " fill="#FBFB77" filter="url(#f12gw5c9e3tsgb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M524,72.8594 L524,82.8594 L534,82.8594 L524,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="236.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="240.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="240.5" y="89.4263">service</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="296.5" y="89.4263">: urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="397.5" x2="534" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="118" x="106" y="105.0591">The service to call.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="106" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="186" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="218" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="278" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="282" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="25" x="282" y="134.8247">arg</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="311" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="356" x2="534" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="106" y="150.4575">Optional argument for the service call.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="106" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="156" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="233" x="192" y="165.5903">if the service expects no arguments.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="280" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="284" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="284" y="180.2231">ret</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="309" y="180.2231">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="354" x2="534" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="222" x="106" y="195.856">Pointer to an optional return value.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="106" y="210.9888">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="156" y="210.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="188" y="210.9888">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="243" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="247" y="225.6216"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="57" x="247" y="225.6216">timeout</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="308" y="225.6216">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="391" x2="534" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="361" x="106" y="241.2544">Timeout delay to be propagated to the callback function.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="413" x="106" y="256.3872">Whether timeout is considered depends on the callback function.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="534" y1="264.4531" y2="264.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="534" y1="266.4531" y2="266.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="246" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="250" y="281.02"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="250" y="281.02">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="299" y="281.02">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="388" x2="534" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="106" y="296.6528">Returns the exact output status of the service call.</text><ellipse cx="317" cy="334.7188" fill="#000000" filter="url(#f12gw5c9e3tsgb)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f12gw5c9e3tsgb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="180" x="227" y="364.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="160" x="237" y="385.8574">execute callback function</text><path d="M10,417.1211 L10,442.2539 A0,0 0 0 0 10,442.2539 L286,442.2539 A0,0 0 0 0 286,442.2539 L286,435.1211 L306,429.6875 L286,427.1211 L286,427.1211 L276,417.1211 L10,417.1211 A0,0 0 0 0 10,417.1211 " fill="#FBFB77" filter="url(#f12gw5c9e3tsgb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M276,417.1211 L276,427.1211 L286,427.1211 L276,417.1211 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="255" x="16" y="434.188">Returns the return value of the callback.</text><ellipse cx="317" cy="429.6875" fill="#FFFFFF" filter="url(#f12gw5c9e3tsgb)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="317" cy="429.6875" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="313,314.7188,317,324.7188,321,314.7188,317,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="313,354.7188,317,364.7188,321,354.7188,317,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="398.6875" y2="418.6875"/><polygon fill="#A80036" points="313,408.6875,317,418.6875,321,408.6875,317,412.6875" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[561aede012ef94c363a6341bbfb3ac5f]
|
|
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="454px" preserveAspectRatio="none" style="width:546px;height:454px;" version="1.1" viewBox="0 0 546 454" width="546px" zoomAndPan="magnify"><defs><filter height="300%" id="f16q4gx290h24v" 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="227.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="139" x="202.5" y="47.6611">urtServiceCall()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="275" y="68.6143"/><path d="M100,72.8594 L100,304.7188 L534,304.7188 L534,82.8594 L524,72.8594 L100,72.8594 " fill="#FBFB77" filter="url(#f16q4gx290h24v)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M524,72.8594 L524,82.8594 L534,82.8594 L524,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="236.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="240.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="240.5" y="89.4263">service</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="296.5" y="89.4263">: urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="397.5" x2="534" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="118" x="106" y="105.0591">The service to call.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="106" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="186" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="218" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="278" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="282" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="25" x="282" y="134.8247">arg</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="311" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="356" x2="534" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="244" x="106" y="150.4575">Optional argument for the service call.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="106" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="156" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="233" x="192" y="165.5903">if the service expects no arguments.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="280" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="284" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="284" y="180.2231">ret</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="309" y="180.2231">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="354" x2="534" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="222" x="106" y="195.856">Pointer to an optional return value.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="106" y="210.9888">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="156" y="210.9888">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="188" y="210.9888">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="243" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="247" y="225.6216"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="57" x="247" y="225.6216">timeout</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="308" y="225.6216">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="391" x2="534" y1="221.6211" y2="221.6211"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="361" x="106" y="241.2544">Timeout delay to be propagated to the callback function.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="413" x="106" y="256.3872">Whether timeout is considered depends on the callback function.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="534" y1="264.4531" y2="264.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="534" y1="266.4531" y2="266.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="100" x2="246" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="250" y="281.02"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="250" y="281.02">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="299" y="281.02">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="388" x2="534" y1="277.0195" y2="277.0195"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="322" x="106" y="296.6528">Returns the exact output status of the service call.</text><ellipse cx="317" cy="334.7188" fill="#000000" filter="url(#f16q4gx290h24v)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f16q4gx290h24v)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="188" y="364.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="123" x="198" y="385.8574">execute the service</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="56" x="325" y="385.8574">callback</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="51" x="385" y="385.8574">function</text><path d="M10,417.1211 L10,442.2539 A0,0 0 0 0 10,442.2539 L286,442.2539 A0,0 0 0 0 286,442.2539 L286,435.1211 L306,429.6875 L286,427.1211 L286,427.1211 L276,417.1211 L10,417.1211 A0,0 0 0 0 10,417.1211 " fill="#FBFB77" filter="url(#f16q4gx290h24v)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M276,417.1211 L276,427.1211 L286,427.1211 L276,417.1211 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="255" x="16" y="434.188">Returns the return value of the callback.</text><ellipse cx="317" cy="429.6875" fill="#FFFFFF" filter="url(#f16q4gx290h24v)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="317" cy="429.6875" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="313,314.7188,317,324.7188,321,314.7188,317,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="313,354.7188,317,364.7188,321,354.7188,317,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="398.6875" y2="418.6875"/><polygon fill="#A80036" points="313,408.6875,317,418.6875,321,408.6875,317,412.6875" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[94e5d863c1a936c9a03c45d8e869c617]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtServiceCall()\n |
... | ... | |
24 | 24 |
|
25 | 25 |
|
26 | 26 |
start |
27 |
:execute callback function;
|
|
27 |
:execute the service ""callback"" function;
|
|
28 | 28 |
stop |
29 | 29 |
note |
30 | 30 |
Returns the return value of the callback. |
doc/activitydiagrams/service/urtServiceCall.uml | ||
---|---|---|
48 | 48 |
/'### PROCEDURE ##############################################################'/ |
49 | 49 |
|
50 | 50 |
start |
51 |
:execute callback function;
|
|
51 |
:execute the service ""callback"" function;
|
|
52 | 52 |
stop |
53 | 53 |
note |
54 | 54 |
Returns the return value of the callback. |
doc/activitydiagrams/subscriber/fetchmessage.iuml | ||
---|---|---|
1 |
/' |
|
2 |
µRtWare is a lightweight publish/subscribe middleware for real-time |
|
3 |
applications. It was developed as part of the software habitat for the |
|
4 |
Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well. |
|
5 |
|
|
6 |
Copyright (C) 2018..2020 Thomas Schöpping et al. |
|
7 |
|
|
8 |
This program is free software: you can redistribute it and/or modify |
|
9 |
it under the terms of the GNU General Public License as published by |
|
10 |
the Free Software Foundation, either version 3 of the License, or |
|
11 |
(at your option) any later version. |
|
12 |
|
|
13 |
This program is distributed in the hope that it will be useful, |
|
14 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
15 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
16 |
GNU General Public License for more details. |
|
17 |
|
|
18 |
You should have received a copy of the GNU General Public License |
|
19 |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
20 |
'/ |
|
21 |
|
|
22 |
partition "fetch message" { |
|
23 |
fork |
|
24 |
:update message pointer; |
|
25 |
fork again |
|
26 |
:copy timestamp of message; |
|
27 |
fork again |
|
28 |
:copy message payload; |
|
29 |
fork again |
|
30 |
if (Optional output argument ""latency"" given?) then (yes) |
|
31 |
:set ""latency"" value (now - message origin time); |
|
32 |
else (no) |
|
33 |
endif |
|
34 |
endfork |
|
35 |
} |
|
36 |
|
doc/activitydiagrams/subscriber/findlatestmessage.iuml | ||
---|---|---|
1 |
/' |
|
2 |
µRtWare is a lightweight publish/subscribe middleware for real-time |
|
3 |
applications. It was developed as part of the software habitat for the |
|
4 |
Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well. |
|
5 |
|
|
6 |
Copyright (C) 2018..2020 Thomas Schöpping et al. |
|
7 |
|
|
8 |
This program is free software: you can redistribute it and/or modify |
|
9 |
it under the terms of the GNU General Public License as published by |
|
10 |
the Free Software Foundation, either version 3 of the License, or |
|
11 |
(at your option) any later version. |
|
12 |
|
|
13 |
This program is distributed in the hope that it will be useful, |
|
14 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
15 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
16 |
GNU General Public License for more details. |
|
17 |
|
|
18 |
You should have received a copy of the GNU General Public License |
|
19 |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
20 |
'/ |
|
21 |
|
|
22 |
partition "find latest message" { |
|
23 |
:access last read message; |
|
24 |
while (Timestamp of next message is younger?) is (yes) |
|
25 |
:proceed to next message; |
|
26 |
endwhile (no) |
|
27 |
} |
|
28 |
|
doc/activitydiagrams/subscriber/findoldestvalidmessage.iuml | ||
---|---|---|
1 |
/' |
|
2 |
µRtWare is a lightweight publish/subscribe middleware for real-time |
|
3 |
applications. It was developed as part of the software habitat for the |
|
4 |
Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well. |
|
5 |
|
|
6 |
Copyright (C) 2018..2020 Thomas Schöpping et al. |
|
7 |
|
|
8 |
This program is free software: you can redistribute it and/or modify |
|
9 |
it under the terms of the GNU General Public License as published by |
|
10 |
the Free Software Foundation, either version 3 of the License, or |
|
11 |
(at your option) any later version. |
|
12 |
|
|
13 |
This program is distributed in the hope that it will be useful, |
|
14 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
15 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
16 |
GNU General Public License for more details. |
|
17 |
|
|
18 |
You should have received a copy of the GNU General Public License |
|
19 |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
20 |
'/ |
|
21 |
|
|
22 |
partition "find oldest valid message" { |
|
23 |
if (Timestamp of last read message euqals local copy?) then (yes) |
|
24 |
else (no) |
|
25 |
while (Timestamp of next message is younger?) is (yes) |
|
26 |
:proceed to next message; |
|
27 |
endwhile (no) |
|
28 |
endif |
|
29 |
:proceed to next message; |
|
30 |
} |
|
31 |
|
doc/activitydiagrams/subscriber/functions.iuml | ||
---|---|---|
1 |
/' |
|
2 |
µRtWare is a lightweight publish/subscribe middleware for real-time |
|
3 |
applications. It was developed as part of the software habitat for the |
|
4 |
Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well. |
|
5 |
|
|
6 |
Copyright (C) 2018..2020 Thomas Schöpping et al. |
|
7 |
|
|
8 |
This program is free software: you can redistribute it and/or modify |
|
9 |
it under the terms of the GNU General Public License as published by |
|
10 |
the Free Software Foundation, either version 3 of the License, or |
|
11 |
(at your option) any later version. |
|
12 |
|
|
13 |
This program is distributed in the hope that it will be useful, |
|
14 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
15 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
16 |
GNU General Public License for more details. |
|
17 |
|
|
18 |
You should have received a copy of the GNU General Public License |
|
19 |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
20 |
'/ |
|
21 |
|
|
22 |
/' Fetch a message and update/copy all data. '/ |
|
23 |
!function $fetch_message() |
|
24 |
partition "fetch message" { |
|
25 |
fork |
|
26 |
:update message pointer; |
|
27 |
fork again |
|
28 |
:copy timestamp of message; |
|
29 |
fork again |
|
30 |
:copy message payload; |
|
31 |
fork again |
|
32 |
if (Optional output argument ""latency"" given?) then (yes) |
|
33 |
:set ""latency"" value (now - message origin time); |
|
34 |
else (no) |
|
35 |
endif |
|
36 |
endfork |
|
37 |
} |
|
38 |
!endfunction |
|
39 |
|
|
40 |
/' Find the latest message in the circular message buffer. '/ |
|
41 |
!function $find_latest_message() |
|
42 |
partition "find latest message" { |
|
43 |
:access last read message; |
|
44 |
while (Timestamp of next message is younger?) is (yes) |
|
45 |
:proceed to next message; |
|
46 |
endwhile (no) |
|
47 |
} |
|
48 |
!endfunction |
|
49 |
|
|
50 |
/' Find the oldest message in the circular message buffer. '/ |
|
51 |
!function $find_oldest_message() |
|
52 |
partition "find oldest valid message" { |
|
53 |
if (Timestamp of last read message euqals local copy?) then (yes) |
|
54 |
else (no) |
|
55 |
while (Timestamp of next message is younger?) is (yes) |
|
56 |
:proceed to next message; |
|
57 |
endwhile (no) |
|
58 |
endif |
|
59 |
:proceed to next message; |
|
60 |
} |
|
61 |
!endfunction |
|
62 |
|
doc/activitydiagrams/subscriber/urtFrtSubscriberFetchLatestMessage.svg | ||
---|---|---|
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="fcmotovz3iuec" 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="334" x="472.5" y="47.6611">urtFrtSubscriberFetchLatestMessage()</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(#fcmotovz3iuec)" 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="764" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="768" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="768" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="850" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="986" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="310" x="637" y="105.0591">The FRT 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(#fcmotovz3iuec)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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(#fcmotovz3iuec)" 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=[271dc44f0aadb6f058470fd3cb27a9e8]
|
|
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="fi2c2go6bvdbz" 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="334" x="472.5" y="47.6611">urtFrtSubscriberFetchLatestMessage()</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(#fi2c2go6bvdbz)" 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="764" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="768" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="768" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="850" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="986" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="310" x="637" y="105.0591">The FRT 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(#fi2c2go6bvdbz)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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(#fi2c2go6bvdbz)" 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=[86fb41979e84fe247440f8c6b27e16c2]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtFrtSubscriberFetchLatestMessage()\n |
5 | 5 |
|
6 | 6 |
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
7 | 12 |
note |
8 | 13 |
- - **subscriber** : urt_frtsubscriber_t* - - |
9 | 14 |
The FRT subscriber that shall fetch the message. |
... | ... | |
26 | 31 |
start |
27 | 32 |
if (Associated to a topic?) then (yes) |
28 | 33 |
: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 |
|
|
34 |
partition "find latest message" { |
|
35 |
:access last read message; |
|
36 |
while (Timestamp of next message is younger?) is (yes) |
|
37 |
:proceed to next message; |
|
38 |
endwhile (no) |
|
39 |
} |
|
40 |
partition "fetch message" { |
|
41 |
fork |
|
42 |
:update message pointer; |
|
43 |
fork again |
|
44 |
:copy timestamp of message; |
|
45 |
fork again |
|
46 |
:copy message payload; |
|
47 |
fork again |
|
48 |
if (Optional output argument ""latency"" given?) then (yes) |
|
49 |
:set ""latency"" value (now - message origin time); |
|
50 |
else (no) |
|
51 |
endif |
|
52 |
endfork |
|
53 |
} |
|
53 | 54 |
:unlock topic; |
54 | 55 |
stop |
55 | 56 |
note |
doc/activitydiagrams/subscriber/urtFrtSubscriberFetchLatestMessage.uml | ||
---|---|---|
25 | 25 |
|
26 | 26 |
title **µRtWare**\nurtFrtSubscriberFetchLatestMessage()\n |
27 | 27 |
|
28 |
!include ./functions.iuml |
|
29 |
|
|
28 | 30 |
/'### PARAMETERS & RETURN ####################################################'/ |
29 | 31 |
|
30 | 32 |
note |
... | ... | |
50 | 52 |
start |
51 | 53 |
if (Associated to a topic?) then (yes) |
52 | 54 |
:lock topic; |
53 |
!include findlatestmessage.iuml
|
|
54 |
!include fetchmessage.iuml
|
|
55 |
$find_latest_message()
|
|
56 |
$fetch_message()
|
|
55 | 57 |
:unlock topic; |
56 | 58 |
stop |
57 | 59 |
note |
doc/activitydiagrams/subscriber/urtFrtSubscriberFetchNextMessage.svg | ||
---|---|---|
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="1098px" preserveAspectRatio="none" style="width:1281px;height:1098px;" version="1.1" viewBox="0 0 1281 1098" width="1281px" zoomAndPan="magnify"><defs><filter height="300%" id="f11i1t03a8jckr" 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="324" x="477.5" y="47.6611">urtFrtSubscriberFetchNextMessage()</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(#f11i1t03a8jckr)" 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="764" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="768" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="768" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="850" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="986" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="310" x="637" y="105.0591">The FRT 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(#f11i1t03a8jckr)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f11i1t03a8jckr)" 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(#f11i1t03a8jckr)" 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(#f11i1t03a8jckr)" height="307.7651" style="stroke: #000000; stroke-width: 2.0;" width="365.5" x="322" y="443.4893"/><path d="M506,444.4893 L506,452.7861 L496,462.7861 L322,462.7861 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="325" y="457.4844">find oldest valid message</text><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="585.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="606.4556">proceed to next message</text><polygon fill="#FEFECE" filter="url(#f11i1t03a8jckr)" points="378,528.1885,612,528.1885,624,540.1885,612,552.1885,378,552.1885,366,540.1885,378,528.1885" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="499" y="562.3989">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="378" y="543.9966">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="352" y="537.5942">no</text><polygon fill="#FEFECE" filter="url(#f11i1t03a8jckr)" points="345.5,479.7861,644.5,479.7861,656.5,491.7861,644.5,503.7861,345.5,503.7861,333.5,491.7861,345.5,479.7861" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="499" y="513.9966">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="299" x="345.5" y="495.5942">Timestamp of last read message euqals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="656.5" y="489.1919">yes</text><polygon fill="#FEFECE" filter="url(#f11i1t03a8jckr)" points="495,661.2856,507,673.2856,495,685.2856,483,673.2856,495,661.2856" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="705.2856"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="726.4243">proceed to next message</text><rect fill="#FFFFFF" filter="url(#f11i1t03a8jckr)" height="226.668" style="stroke: #000000; stroke-width: 2.0;" width="988" x="10" y="762.0562"/><path d="M123,763.0562 L123,771.353 L113,781.353 L10,781.353 " 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="776.0513">fetch message</text><rect fill="#000000" filter="url(#f11i1t03a8jckr)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="798.353"/><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="34" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="44" y="893.894">update message pointer</text><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="219" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="229" y="893.894">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="443" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="453" y="893.894">copy message payload</text><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="644" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="654" y="893.894">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="678" y="893.894">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="731" y="893.894">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f11i1t03a8jckr)" points="678.5,824.353,917.5,824.353,929.5,836.353,917.5,848.353,678.5,848.353,666.5,836.353,678.5,824.353" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="802" y="858.5635">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="678.5" y="840.1611">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="828.5" y="840.1611">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="881.5" y="840.1611">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="929.5" y="833.7588">no</text><polygon fill="#FEFECE" filter="url(#f11i1t03a8jckr)" points="798,926.7241,810,938.7241,798,950.7241,786,938.7241,798,926.7241" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f11i1t03a8jckr)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="970.7241"/><rect fill="#FEFECE" filter="url(#f11i1t03a8jckr)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="447" y="1008.7241"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="457" y="1029.8628">unlock topic</text><path d="M282,1061.1265 L282,1086.2593 A0,0 0 0 0 282,1086.2593 L464,1086.2593 A0,0 0 0 0 464,1086.2593 L464,1079.1265 L484,1073.6929 L464,1071.1265 L464,1071.1265 L454,1061.1265 L282,1061.1265 A0,0 0 0 0 282,1061.1265 " fill="#FBFB77" filter="url(#f11i1t03a8jckr)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454,1061.1265 L454,1071.1265 L464,1071.1265 L454,1061.1265 " 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="1078.1934">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="341" y="1078.1934">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="445" y="1078.1934">.</text><ellipse cx="495" cy="1073.6929" fill="#FFFFFF" filter="url(#f11i1t03a8jckr)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="495" cy="1073.6929" 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(#f11i1t03a8jckr)" 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(#f11i1t03a8jckr)" 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="552.1885" y2="585.3169"/><polygon fill="#A80036" points="491,575.3169,495,585.3169,499,575.3169,495,579.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="619.2856" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="636" y1="629.2856" y2="629.2856"/><polygon fill="#A80036" points="632,593.8989,636,583.8989,640,593.8989,636,589.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="636" y1="540.1885" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="624" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="634,536.1885,624,540.1885,634,544.1885,630,540.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="354" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="350,579.8989,354,589.8989,358,579.8989,354,583.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="540.1885" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="495" y1="641.2856" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="641.2856" y2="661.2856"/><polygon fill="#A80036" points="491,651.2856,495,661.2856,499,651.2856,495,655.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="503.7861" y2="528.1885"/><polygon fill="#A80036" points="491,518.1885,495,528.1885,499,518.1885,495,522.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656.5" x2="668.5" y1="491.7861" y2="491.7861"/><polygon fill="#A80036" points="664.5,573.8989,668.5,583.8989,672.5,573.8989,668.5,577.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="668.5" y1="491.7861" y2="673.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="507" y1="673.2856" y2="673.2856"/><polygon fill="#A80036" points="517,669.2856,507,673.2856,517,677.2856,513,673.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="685.2856" y2="705.2856"/><polygon fill="#A80036" points="491,695.2856,495,705.2856,499,695.2856,495,699.2856" 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="848.353" y2="872.7554"/><polygon fill="#A80036" points="794,862.7554,798,872.7554,802,862.7554,798,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="929.5" x2="962" y1="836.353" y2="836.353"/><polygon fill="#A80036" points="958,879.7397,962,889.7397,966,879.7397,962,883.7397" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="962" y1="836.353" y2="938.7241"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="810" y1="938.7241" y2="938.7241"/><polygon fill="#A80036" points="820,934.7241,810,938.7241,820,942.7241,816,938.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="906.7241" y2="926.7241"/><polygon fill="#A80036" points="794,916.7241,798,926.7241,802,916.7241,798,920.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="117.5,862.7554,121.5,872.7554,125.5,862.7554,121.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="313,862.7554,317,872.7554,321,862.7554,317,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="520.5,862.7554,524.5,872.7554,528.5,862.7554,524.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="804.353" y2="824.353"/><polygon fill="#A80036" points="794,814.353,798,824.353,802,814.353,798,818.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="117.5,960.7241,121.5,970.7241,125.5,960.7241,121.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="313,960.7241,317,970.7241,321,960.7241,317,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="520.5,960.7241,524.5,970.7241,528.5,960.7241,524.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="950.7241" y2="970.7241"/><polygon fill="#A80036" points="794,960.7241,798,970.7241,802,960.7241,798,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="739.2544" y2="798.353"/><polygon fill="#A80036" points="491,788.353,495,798.353,499,788.353,495,792.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="976.7241" y2="1008.7241"/><polygon fill="#A80036" points="491,998.7241,495,1008.7241,499,998.7241,495,1002.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="1042.6929" y2="1062.6929"/><polygon fill="#A80036" points="491,1052.6929,495,1062.6929,499,1052.6929,495,1056.6929" 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=[81c080bf6e2a7ec37676ee40800d6be7]
|
|
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="1098px" preserveAspectRatio="none" style="width:1281px;height:1098px;" version="1.1" viewBox="0 0 1281 1098" width="1281px" zoomAndPan="magnify"><defs><filter height="300%" id="fhsp3n667pfg2" 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="324" x="477.5" y="47.6611">urtFrtSubscriberFetchNextMessage()</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(#fhsp3n667pfg2)" 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="764" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="768" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="768" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="850" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="986" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="310" x="637" y="105.0591">The FRT 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(#fhsp3n667pfg2)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fhsp3n667pfg2)" 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(#fhsp3n667pfg2)" 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(#fhsp3n667pfg2)" height="307.7651" style="stroke: #000000; stroke-width: 2.0;" width="365.5" x="322" y="443.4893"/><path d="M506,444.4893 L506,452.7861 L496,462.7861 L322,462.7861 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="325" y="457.4844">find oldest valid message</text><rect fill="#FEFECE" filter="url(#fhsp3n667pfg2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="585.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="606.4556">proceed to next message</text><polygon fill="#FEFECE" filter="url(#fhsp3n667pfg2)" points="378,528.1885,612,528.1885,624,540.1885,612,552.1885,378,552.1885,366,540.1885,378,528.1885" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="499" y="562.3989">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="378" y="543.9966">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="352" y="537.5942">no</text><polygon fill="#FEFECE" filter="url(#fhsp3n667pfg2)" points="345.5,479.7861,644.5,479.7861,656.5,491.7861,644.5,503.7861,345.5,503.7861,333.5,491.7861,345.5,479.7861" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="499" y="513.9966">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="299" x="345.5" y="495.5942">Timestamp of last read message euqals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="656.5" y="489.1919">yes</text><polygon fill="#FEFECE" filter="url(#fhsp3n667pfg2)" points="495,661.2856,507,673.2856,495,685.2856,483,673.2856,495,661.2856" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fhsp3n667pfg2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="705.2856"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="726.4243">proceed to next message</text><rect fill="#FFFFFF" filter="url(#fhsp3n667pfg2)" height="226.668" style="stroke: #000000; stroke-width: 2.0;" width="988" x="10" y="762.0562"/><path d="M123,763.0562 L123,771.353 L113,781.353 L10,781.353 " 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="776.0513">fetch message</text><rect fill="#000000" filter="url(#fhsp3n667pfg2)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="798.353"/><rect fill="#FEFECE" filter="url(#fhsp3n667pfg2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="34" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="44" y="893.894">update message pointer</text><rect fill="#FEFECE" filter="url(#fhsp3n667pfg2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="219" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="229" y="893.894">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#fhsp3n667pfg2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="443" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="453" y="893.894">copy message payload</text><rect fill="#FEFECE" filter="url(#fhsp3n667pfg2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="644" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="654" y="893.894">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="678" y="893.894">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="731" y="893.894">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#fhsp3n667pfg2)" points="678.5,824.353,917.5,824.353,929.5,836.353,917.5,848.353,678.5,848.353,666.5,836.353,678.5,824.353" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="802" y="858.5635">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="678.5" y="840.1611">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="828.5" y="840.1611">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="881.5" y="840.1611">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="929.5" y="833.7588">no</text><polygon fill="#FEFECE" filter="url(#fhsp3n667pfg2)" points="798,926.7241,810,938.7241,798,950.7241,786,938.7241,798,926.7241" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fhsp3n667pfg2)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="970.7241"/><rect fill="#FEFECE" filter="url(#fhsp3n667pfg2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="447" y="1008.7241"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="457" y="1029.8628">unlock topic</text><path d="M282,1061.1265 L282,1086.2593 A0,0 0 0 0 282,1086.2593 L464,1086.2593 A0,0 0 0 0 464,1086.2593 L464,1079.1265 L484,1073.6929 L464,1071.1265 L464,1071.1265 L454,1061.1265 L282,1061.1265 A0,0 0 0 0 282,1061.1265 " fill="#FBFB77" filter="url(#fhsp3n667pfg2)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454,1061.1265 L454,1071.1265 L464,1071.1265 L454,1061.1265 " 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="1078.1934">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="341" y="1078.1934">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="445" y="1078.1934">.</text><ellipse cx="495" cy="1073.6929" fill="#FFFFFF" filter="url(#fhsp3n667pfg2)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="495" cy="1073.6929" 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(#fhsp3n667pfg2)" 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(#fhsp3n667pfg2)" 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="552.1885" y2="585.3169"/><polygon fill="#A80036" points="491,575.3169,495,585.3169,499,575.3169,495,579.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="619.2856" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="636" y1="629.2856" y2="629.2856"/><polygon fill="#A80036" points="632,593.8989,636,583.8989,640,593.8989,636,589.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="636" y1="540.1885" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="624" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="634,536.1885,624,540.1885,634,544.1885,630,540.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="354" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="350,579.8989,354,589.8989,358,579.8989,354,583.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="540.1885" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="495" y1="641.2856" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="641.2856" y2="661.2856"/><polygon fill="#A80036" points="491,651.2856,495,661.2856,499,651.2856,495,655.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="503.7861" y2="528.1885"/><polygon fill="#A80036" points="491,518.1885,495,528.1885,499,518.1885,495,522.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656.5" x2="668.5" y1="491.7861" y2="491.7861"/><polygon fill="#A80036" points="664.5,573.8989,668.5,583.8989,672.5,573.8989,668.5,577.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="668.5" y1="491.7861" y2="673.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="507" y1="673.2856" y2="673.2856"/><polygon fill="#A80036" points="517,669.2856,507,673.2856,517,677.2856,513,673.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="685.2856" y2="705.2856"/><polygon fill="#A80036" points="491,695.2856,495,705.2856,499,695.2856,495,699.2856" 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="848.353" y2="872.7554"/><polygon fill="#A80036" points="794,862.7554,798,872.7554,802,862.7554,798,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="929.5" x2="962" y1="836.353" y2="836.353"/><polygon fill="#A80036" points="958,879.7397,962,889.7397,966,879.7397,962,883.7397" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="962" y1="836.353" y2="938.7241"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="810" y1="938.7241" y2="938.7241"/><polygon fill="#A80036" points="820,934.7241,810,938.7241,820,942.7241,816,938.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="906.7241" y2="926.7241"/><polygon fill="#A80036" points="794,916.7241,798,926.7241,802,916.7241,798,920.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="117.5,862.7554,121.5,872.7554,125.5,862.7554,121.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="313,862.7554,317,872.7554,321,862.7554,317,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="520.5,862.7554,524.5,872.7554,528.5,862.7554,524.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="804.353" y2="824.353"/><polygon fill="#A80036" points="794,814.353,798,824.353,802,814.353,798,818.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="117.5,960.7241,121.5,970.7241,125.5,960.7241,121.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="313,960.7241,317,970.7241,321,960.7241,317,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="520.5,960.7241,524.5,970.7241,528.5,960.7241,524.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="950.7241" y2="970.7241"/><polygon fill="#A80036" points="794,960.7241,798,970.7241,802,960.7241,798,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="739.2544" y2="798.353"/><polygon fill="#A80036" points="491,788.353,495,798.353,499,788.353,495,792.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="976.7241" y2="1008.7241"/><polygon fill="#A80036" points="491,998.7241,495,1008.7241,499,998.7241,495,1002.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="1042.6929" y2="1062.6929"/><polygon fill="#A80036" points="491,1052.6929,495,1062.6929,499,1052.6929,495,1056.6929" 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=[b4d8deb4bdd0e27d6df9418617a46e52]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtFrtSubscriberFetchNextMessage()\n |
5 | 5 |
|
6 | 6 |
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
7 | 12 |
note |
8 | 13 |
- - **subscriber** : urt_frtsubscriber_t* - - |
9 | 14 |
The FRT subscriber that shall fetch the message. |
... | ... | |
26 | 31 |
start |
27 | 32 |
if (Associated to a topic?) then (yes) |
28 | 33 |
:lock topic; |
29 |
|
|
30 |
partition "find oldest valid message" { |
|
31 |
if (Timestamp of last read message euqals local copy?) then (yes) |
|
32 |
else (no) |
|
33 |
while (Timestamp of next message is younger?) is (yes) |
|
34 |
:proceed to next message; |
|
35 |
endwhile (no) |
|
36 |
endif |
|
37 |
:proceed to next message; |
|
38 |
} |
|
39 |
|
|
40 |
|
|
41 |
partition "fetch message" { |
|
42 |
fork |
|
43 |
:update message pointer; |
|
44 |
fork again |
|
45 |
:copy timestamp of message; |
|
46 |
fork again |
|
47 |
:copy message payload; |
|
48 |
fork again |
|
49 |
if (Optional output argument ""latency"" given?) then (yes) |
|
50 |
:set ""latency"" value (now - message origin time); |
|
34 |
partition "find oldest valid message" { |
|
35 |
if (Timestamp of last read message euqals local copy?) then (yes) |
|
51 | 36 |
else (no) |
37 |
while (Timestamp of next message is younger?) is (yes) |
|
38 |
:proceed to next message; |
|
39 |
endwhile (no) |
|
52 | 40 |
endif |
53 |
endfork |
|
54 |
} |
|
55 |
|
|
41 |
:proceed to next message; |
|
42 |
} |
|
43 |
partition "fetch message" { |
|
44 |
fork |
|
45 |
:update message pointer; |
|
46 |
fork again |
|
47 |
:copy timestamp of message; |
|
48 |
fork again |
|
49 |
:copy message payload; |
|
50 |
fork again |
|
51 |
if (Optional output argument ""latency"" given?) then (yes) |
|
52 |
:set ""latency"" value (now - message origin time); |
|
53 |
else (no) |
|
54 |
endif |
|
55 |
endfork |
|
56 |
} |
|
56 | 57 |
:unlock topic; |
57 | 58 |
stop |
58 | 59 |
note |
doc/activitydiagrams/subscriber/urtFrtSubscriberFetchNextMessage.uml | ||
---|---|---|
25 | 25 |
|
26 | 26 |
title **µRtWare**\nurtFrtSubscriberFetchNextMessage()\n |
27 | 27 |
|
28 |
!include ./functions.iuml |
|
29 |
|
|
28 | 30 |
/'### PARAMETERS & RETURN ####################################################'/ |
29 | 31 |
|
30 | 32 |
note |
... | ... | |
50 | 52 |
start |
51 | 53 |
if (Associated to a topic?) then (yes) |
52 | 54 |
:lock topic; |
53 |
!include findoldestvalidmessage.iuml
|
|
54 |
!include fetchmessage.iuml
|
|
55 |
$find_oldest_message()
|
|
56 |
$fetch_message()
|
|
55 | 57 |
:unlock topic; |
56 | 58 |
stop |
57 | 59 |
note |
doc/activitydiagrams/subscriber/urtFrtSubscriberSubscribe.svg | ||
---|---|---|
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="1035px" preserveAspectRatio="none" style="width:2404px;height:1035px;" version="1.1" viewBox="0 0 2404 1035" width="2404px" zoomAndPan="magnify"><defs><filter height="300%" id="f19oi12a0nldwh" 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="1156.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="243" x="1079.5" y="47.6611">urtFrtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1204" y="68.6143"/><path d="M432.25,72.8594 L432.25,395.5156 L1132.25,395.5156 L1132.25,82.8594 L1122.25,72.8594 L432.25,72.8594 " fill="#FBFB77" filter="url(#f19oi12a0nldwh)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1122.25,72.8594 L1122.25,82.8594 L1132.25,82.8594 L1122.25,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="671.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="675.25" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="675.25" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="757.25" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="893.25" x2="1132.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="324" x="438.25" y="105.0591">The FRT subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="438.25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="518.25" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="550.25" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="716.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="720.25" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="720.25" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="761.25" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="848.25" x2="1132.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="438.25" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="438.25" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="518.25" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="550.25" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="683.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="687.25" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="687.25" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="766.25" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="881.25" x2="1132.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="438.25" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="474.25" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="438.25" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="438.25" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="438.25" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="488.25" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="524.25" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="704.75" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="708.75" y="255.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="708.75" y="255.8872">deadline</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="776.75" y="255.8872">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="859.75" x2="1132.25" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="438.25" y="271.52">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="325" x="438.25" y="286.6528">A value of 0 indicates that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="719.25" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723.25" y="301.2856"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="35" x="723.25" y="301.2856">jitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="762.25" y="301.2856">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="845.25" x2="1132.25" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="438.25" y="316.9185">Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="438.25" y="332.0513">A value of 0 indicates that jitter is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="1132.25" y1="340.1172" y2="340.1172"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="1132.25" y1="342.1172" y2="342.1172"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="711.25" y1="352.6836" y2="352.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="715.25" y="356.6841"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="715.25" y="356.6841">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="764.25" y="356.6841">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="853.25" x2="1132.25" y1="352.6836" y2="352.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="438.25" y="372.3169">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="491.25" y="372.3169">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="599.25" y="372.3169">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="438.25" y="387.4497">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="491.25" y="387.4497">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="623.25" y="387.4497">if the subscriber is already associated to a topic.</text><ellipse cx="782.25" cy="425.5156" fill="#000000" filter="url(#f19oi12a0nldwh)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f19oi12a0nldwh)" points="724.75,455.5156,839.75,455.5156,851.75,467.5156,839.75,479.5156,724.75,479.5156,712.75,467.5156,724.75,455.5156" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="724.75" y="471.3237">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="692.75" y="464.9214">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="851.75" y="464.9214">no</text><path d="M10,489.5156 L10,514.6484 A0,0 0 0 0 10,514.6484 L216,514.6484 A0,0 0 0 0 216,514.6484 L216,507.5156 L236,502.082 L216,499.5156 L216,499.5156 L206,489.5156 L10,489.5156 A0,0 0 0 0 10,489.5156 " fill="#FBFB77" filter="url(#f19oi12a0nldwh)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M206,489.5156 L206,499.5156 L216,499.5156 L206,489.5156 " 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="506.5825">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="69" y="506.5825">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="197" y="506.5825">.</text><ellipse cx="247" cy="502.082" fill="#FFFFFF" filter="url(#f19oi12a0nldwh)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="247" cy="502.082" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="432" x="1123.5" y="489.5156"/><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1137.5" y="515.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1147.5" y="536.6543">set topic</text><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="1240.5" y="515.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1250.5" y="536.6543">set deadline offset</text><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="135" x="1406.5" y="515.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="1416.5" y="536.6543">set maximum jitter</text><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="432" x="1123.5" y="569.4844"/><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1299.5" y="595.4844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1309.5" y="616.623">lock topic</text><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2125" x="268" y="649.4531"/><rect fill="#FFFFFF" filter="url(#f19oi12a0nldwh)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1168" x="280" y="721.9653"/><path d="M437,722.9653 L437,731.2622 L427,741.2622 L280,741.2622 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="283" y="735.9604">contribute messages</text><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="758.2622"/><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="304" y="784.2622"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="314" y="805.4009">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="806" y="784.2622"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="816" y="805.4009">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="838.231"/><polygon fill="#FEFECE" filter="url(#f19oi12a0nldwh)" points="794,675.4531,934,675.4531,946,687.4531,934,699.4531,794,699.4531,782,687.4531,794,675.4531" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="868" y="709.6636">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="794" y="691.2612">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="946" y="684.8589">no</text><polygon fill="#FEFECE" filter="url(#f19oi12a0nldwh)" points="864,876.231,876,888.231,864,900.231,852,888.231,864,876.231" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="656" x="1498" y="750.1138"/><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1512" y="776.1138"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1522" y="797.2524">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="297" x="1845" y="776.1138"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="277" x="1855" y="797.2524">copy timestamp from topic's latest message</text><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="656" x="1498" y="830.0825"/><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="2164" y="776.1138"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="2174" y="797.2524">register to topic's event source</text><rect fill="#000000" filter="url(#f19oi12a0nldwh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2125" x="268" y="920.231"/><rect fill="#FEFECE" filter="url(#f19oi12a0nldwh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1291.5" y="946.231"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1301.5" y="967.3696">unlock topic</text><path d="M1126.5,998.6333 L1126.5,1023.7661 A0,0 0 0 0 1126.5,1023.7661 L1308.5,1023.7661 A0,0 0 0 0 1308.5,1023.7661 L1308.5,1016.6333 L1328.5,1011.1997 L1308.5,1008.6333 L1308.5,1008.6333 L1298.5,998.6333 L1126.5,998.6333 A0,0 0 0 0 1126.5,998.6333 " fill="#FBFB77" filter="url(#f19oi12a0nldwh)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1298.5,998.6333 L1298.5,1008.6333 L1308.5,1008.6333 L1298.5,998.6333 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1132.5" y="1015.7002">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1185.5" y="1015.7002">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1289.5" y="1015.7002">.</text><ellipse cx="1339.5" cy="1011.1997" fill="#FFFFFF" filter="url(#f19oi12a0nldwh)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1339.5" cy="1011.1997" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782.25" x2="782.25" y1="395.5156" y2="415.5156"/><polygon fill="#A80036" points="778.25,405.5156,782.25,415.5156,786.25,405.5156,782.25,409.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1175" x2="1175" y1="495.5156" y2="515.5156"/><polygon fill="#A80036" points="1171,505.5156,1175,515.5156,1179,505.5156,1175,509.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1309.5" x2="1309.5" y1="495.5156" y2="515.5156"/><polygon fill="#A80036" points="1305.5,505.5156,1309.5,515.5156,1313.5,505.5156,1309.5,509.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1474" x2="1474" y1="495.5156" y2="515.5156"/><polygon fill="#A80036" points="1470,505.5156,1474,515.5156,1478,505.5156,1474,509.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1175" x2="1175" y1="549.4844" y2="569.4844"/><polygon fill="#A80036" points="1171,559.4844,1175,569.4844,1179,559.4844,1175,563.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1309.5" x2="1309.5" y1="549.4844" y2="569.4844"/><polygon fill="#A80036" points="1305.5,559.4844,1309.5,569.4844,1313.5,559.4844,1309.5,563.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1474" x2="1474" y1="549.4844" y2="569.4844"/><polygon fill="#A80036" points="1470,559.4844,1474,569.4844,1478,559.4844,1474,563.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="575.4844" y2="595.4844"/><polygon fill="#A80036" points="1335.5,585.4844,1339.5,595.4844,1343.5,585.4844,1339.5,589.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="764.2622" y2="784.2622"/><polygon fill="#A80036" points="537,774.2622,541,784.2622,545,774.2622,541,778.2622" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="764.2622" y2="784.2622"/><polygon fill="#A80036" points="1111,774.2622,1115,784.2622,1119,774.2622,1115,778.2622" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="818.231" y2="838.231"/><polygon fill="#A80036" points="537,828.231,541,838.231,545,828.231,541,832.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="818.231" y2="838.231"/><polygon fill="#A80036" points="1111,828.231,1115,838.231,1119,828.231,1115,832.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="699.4531" y2="758.2622"/><polygon fill="#A80036" points="860,748.2622,864,758.2622,868,748.2622,864,752.2622" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="946" x2="1458" y1="687.4531" y2="687.4531"/><polygon fill="#A80036" points="1454,783.0981,1458,793.0981,1462,783.0981,1458,787.0981" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="1458" y1="687.4531" y2="888.231"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="876" y1="888.231" y2="888.231"/><polygon fill="#A80036" points="886,884.231,876,888.231,886,892.231,882,888.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="844.231" y2="876.231"/><polygon fill="#A80036" points="860,866.231,864,876.231,868,866.231,864,870.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="756.1138" y2="776.1138"/><polygon fill="#A80036" points="1664.5,766.1138,1668.5,776.1138,1672.5,766.1138,1668.5,770.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1993.5" x2="1993.5" y1="756.1138" y2="776.1138"/><polygon fill="#A80036" points="1989.5,766.1138,1993.5,776.1138,1997.5,766.1138,1993.5,770.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="810.0825" y2="830.0825"/><polygon fill="#A80036" points="1664.5,820.0825,1668.5,830.0825,1672.5,820.0825,1668.5,824.0825" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1993.5" x2="1993.5" y1="810.0825" y2="830.0825"/><polygon fill="#A80036" points="1989.5,820.0825,1993.5,830.0825,1997.5,820.0825,1993.5,824.0825" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="655.4531" y2="675.4531"/><polygon fill="#A80036" points="860,665.4531,864,675.4531,868,665.4531,864,669.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="655.4531" y2="750.1138"/><polygon fill="#A80036" points="1827,740.1138,1831,750.1138,1835,740.1138,1831,744.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2272.5" x2="2272.5" y1="655.4531" y2="776.1138"/><polygon fill="#A80036" points="2268.5,766.1138,2272.5,776.1138,2276.5,766.1138,2272.5,770.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="900.231" y2="920.231"/><polygon fill="#A80036" points="860,910.231,864,920.231,868,910.231,864,914.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="836.0825" y2="920.231"/><polygon fill="#A80036" points="1827,910.231,1831,920.231,1835,910.231,1831,914.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2272.5" x2="2272.5" y1="810.0825" y2="920.231"/><polygon fill="#A80036" points="2268.5,910.231,2272.5,920.231,2276.5,910.231,2272.5,914.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="629.4531" y2="649.4531"/><polygon fill="#A80036" points="1335.5,639.4531,1339.5,649.4531,1343.5,639.4531,1339.5,643.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="926.231" y2="946.231"/><polygon fill="#A80036" points="1335.5,936.231,1339.5,946.231,1343.5,936.231,1339.5,940.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="980.1997" y2="1000.1997"/><polygon fill="#A80036" points="1335.5,990.1997,1339.5,1000.1997,1343.5,990.1997,1339.5,994.1997" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="712.75" x2="247" y1="467.5156" y2="467.5156"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247" x2="247" y1="467.5156" y2="491.082"/><polygon fill="#A80036" points="243,481.082,247,491.082,251,481.082,247,485.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="851.75" x2="1339.5" y1="467.5156" y2="467.5156"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="467.5156" y2="489.5156"/><polygon fill="#A80036" points="1335.5,479.5156,1339.5,489.5156,1343.5,479.5156,1339.5,483.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782.25" x2="782.25" y1="435.5156" y2="455.5156"/><polygon fill="#A80036" points="778.25,445.5156,782.25,455.5156,786.25,445.5156,782.25,449.5156" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[d2cdae428bfc3464d46583b094e505d6]
|
|
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="1035px" preserveAspectRatio="none" style="width:2404px;height:1035px;" version="1.1" viewBox="0 0 2404 1035" width="2404px" zoomAndPan="magnify"><defs><filter height="300%" id="fdt0hhoc1gw70" 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="1156.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="243" x="1079.5" y="47.6611">urtFrtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1204" y="68.6143"/><path d="M432.25,72.8594 L432.25,395.5156 L1132.25,395.5156 L1132.25,82.8594 L1122.25,72.8594 L432.25,72.8594 " fill="#FBFB77" filter="url(#fdt0hhoc1gw70)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1122.25,72.8594 L1122.25,82.8594 L1132.25,82.8594 L1122.25,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="671.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="675.25" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="675.25" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="757.25" y="89.4263">: urt_frtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="893.25" x2="1132.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="324" x="438.25" y="105.0591">The FRT subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="438.25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="518.25" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="550.25" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="716.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="720.25" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="720.25" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="761.25" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="848.25" x2="1132.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="438.25" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="438.25" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="518.25" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="550.25" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="683.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="687.25" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="687.25" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="766.25" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="881.25" x2="1132.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="438.25" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="474.25" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="438.25" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="438.25" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="438.25" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="488.25" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="524.25" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="704.75" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="708.75" y="255.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="708.75" y="255.8872">deadline</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="776.75" y="255.8872">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="859.75" x2="1132.25" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="438.25" y="271.52">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="325" x="438.25" y="286.6528">A value of 0 indicates that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="719.25" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="723.25" y="301.2856"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="35" x="723.25" y="301.2856">jitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="762.25" y="301.2856">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="845.25" x2="1132.25" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="438.25" y="316.9185">Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="438.25" y="332.0513">A value of 0 indicates that jitter is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="1132.25" y1="340.1172" y2="340.1172"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="1132.25" y1="342.1172" y2="342.1172"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="432.25" x2="711.25" y1="352.6836" y2="352.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="715.25" y="356.6841"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="715.25" y="356.6841">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="764.25" y="356.6841">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="853.25" x2="1132.25" y1="352.6836" y2="352.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="438.25" y="372.3169">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="491.25" y="372.3169">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="599.25" y="372.3169">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="438.25" y="387.4497">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="491.25" y="387.4497">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="623.25" y="387.4497">if the subscriber is already associated to a topic.</text><ellipse cx="782.25" cy="425.5156" fill="#000000" filter="url(#fdt0hhoc1gw70)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" points="724.75,455.5156,839.75,455.5156,851.75,467.5156,839.75,479.5156,724.75,479.5156,712.75,467.5156,724.75,455.5156" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="724.75" y="471.3237">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="692.75" y="464.9214">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="851.75" y="464.9214">no</text><path d="M10,489.5156 L10,514.6484 A0,0 0 0 0 10,514.6484 L216,514.6484 A0,0 0 0 0 216,514.6484 L216,507.5156 L236,502.082 L216,499.5156 L216,499.5156 L206,489.5156 L10,489.5156 A0,0 0 0 0 10,489.5156 " fill="#FBFB77" filter="url(#fdt0hhoc1gw70)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M206,489.5156 L206,499.5156 L216,499.5156 L206,489.5156 " 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="506.5825">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="69" y="506.5825">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="197" y="506.5825">.</text><ellipse cx="247" cy="502.082" fill="#FFFFFF" filter="url(#fdt0hhoc1gw70)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="247" cy="502.082" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#fdt0hhoc1gw70)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="432" x="1123.5" y="489.5156"/><rect fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1137.5" y="515.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1147.5" y="536.6543">set topic</text><rect fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="1240.5" y="515.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1250.5" y="536.6543">set deadline offset</text><rect fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="135" x="1406.5" y="515.5156"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="1416.5" y="536.6543">set maximum jitter</text><rect fill="#000000" filter="url(#fdt0hhoc1gw70)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="432" x="1123.5" y="569.4844"/><rect fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1299.5" y="595.4844"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1309.5" y="616.623">lock topic</text><rect fill="#000000" filter="url(#fdt0hhoc1gw70)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2125" x="268" y="649.4531"/><rect fill="#FFFFFF" filter="url(#fdt0hhoc1gw70)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1168" x="280" y="721.9653"/><path d="M437,722.9653 L437,731.2622 L427,741.2622 L280,741.2622 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="283" y="735.9604">contribute messages</text><rect fill="#000000" filter="url(#fdt0hhoc1gw70)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="758.2622"/><rect fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="304" y="784.2622"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="314" y="805.4009">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="806" y="784.2622"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="816" y="805.4009">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#fdt0hhoc1gw70)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="838.231"/><polygon fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" points="794,675.4531,934,675.4531,946,687.4531,934,699.4531,794,699.4531,782,687.4531,794,675.4531" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="868" y="709.6636">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="794" y="691.2612">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="946" y="684.8589">no</text><polygon fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" points="864,876.231,876,888.231,864,900.231,852,888.231,864,876.231" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fdt0hhoc1gw70)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="656" x="1498" y="750.1138"/><rect fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1512" y="776.1138"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1522" y="797.2524">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="297" x="1845" y="776.1138"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="277" x="1855" y="797.2524">copy timestamp from topic's latest message</text><rect fill="#000000" filter="url(#fdt0hhoc1gw70)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="656" x="1498" y="830.0825"/><rect fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="2164" y="776.1138"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="2174" y="797.2524">register to topic's event source</text><rect fill="#000000" filter="url(#fdt0hhoc1gw70)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2125" x="268" y="920.231"/><rect fill="#FEFECE" filter="url(#fdt0hhoc1gw70)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1291.5" y="946.231"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1301.5" y="967.3696">unlock topic</text><path d="M1126.5,998.6333 L1126.5,1023.7661 A0,0 0 0 0 1126.5,1023.7661 L1308.5,1023.7661 A0,0 0 0 0 1308.5,1023.7661 L1308.5,1016.6333 L1328.5,1011.1997 L1308.5,1008.6333 L1308.5,1008.6333 L1298.5,998.6333 L1126.5,998.6333 A0,0 0 0 0 1126.5,998.6333 " fill="#FBFB77" filter="url(#fdt0hhoc1gw70)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1298.5,998.6333 L1298.5,1008.6333 L1308.5,1008.6333 L1298.5,998.6333 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1132.5" y="1015.7002">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1185.5" y="1015.7002">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1289.5" y="1015.7002">.</text><ellipse cx="1339.5" cy="1011.1997" fill="#FFFFFF" filter="url(#fdt0hhoc1gw70)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1339.5" cy="1011.1997" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782.25" x2="782.25" y1="395.5156" y2="415.5156"/><polygon fill="#A80036" points="778.25,405.5156,782.25,415.5156,786.25,405.5156,782.25,409.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1175" x2="1175" y1="495.5156" y2="515.5156"/><polygon fill="#A80036" points="1171,505.5156,1175,515.5156,1179,505.5156,1175,509.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1309.5" x2="1309.5" y1="495.5156" y2="515.5156"/><polygon fill="#A80036" points="1305.5,505.5156,1309.5,515.5156,1313.5,505.5156,1309.5,509.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1474" x2="1474" y1="495.5156" y2="515.5156"/><polygon fill="#A80036" points="1470,505.5156,1474,515.5156,1478,505.5156,1474,509.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1175" x2="1175" y1="549.4844" y2="569.4844"/><polygon fill="#A80036" points="1171,559.4844,1175,569.4844,1179,559.4844,1175,563.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1309.5" x2="1309.5" y1="549.4844" y2="569.4844"/><polygon fill="#A80036" points="1305.5,559.4844,1309.5,569.4844,1313.5,559.4844,1309.5,563.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1474" x2="1474" y1="549.4844" y2="569.4844"/><polygon fill="#A80036" points="1470,559.4844,1474,569.4844,1478,559.4844,1474,563.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="575.4844" y2="595.4844"/><polygon fill="#A80036" points="1335.5,585.4844,1339.5,595.4844,1343.5,585.4844,1339.5,589.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="764.2622" y2="784.2622"/><polygon fill="#A80036" points="537,774.2622,541,784.2622,545,774.2622,541,778.2622" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="764.2622" y2="784.2622"/><polygon fill="#A80036" points="1111,774.2622,1115,784.2622,1119,774.2622,1115,778.2622" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="818.231" y2="838.231"/><polygon fill="#A80036" points="537,828.231,541,838.231,545,828.231,541,832.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="818.231" y2="838.231"/><polygon fill="#A80036" points="1111,828.231,1115,838.231,1119,828.231,1115,832.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="699.4531" y2="758.2622"/><polygon fill="#A80036" points="860,748.2622,864,758.2622,868,748.2622,864,752.2622" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="946" x2="1458" y1="687.4531" y2="687.4531"/><polygon fill="#A80036" points="1454,783.0981,1458,793.0981,1462,783.0981,1458,787.0981" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="1458" y1="687.4531" y2="888.231"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="876" y1="888.231" y2="888.231"/><polygon fill="#A80036" points="886,884.231,876,888.231,886,892.231,882,888.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="844.231" y2="876.231"/><polygon fill="#A80036" points="860,866.231,864,876.231,868,866.231,864,870.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="756.1138" y2="776.1138"/><polygon fill="#A80036" points="1664.5,766.1138,1668.5,776.1138,1672.5,766.1138,1668.5,770.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1993.5" x2="1993.5" y1="756.1138" y2="776.1138"/><polygon fill="#A80036" points="1989.5,766.1138,1993.5,776.1138,1997.5,766.1138,1993.5,770.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="810.0825" y2="830.0825"/><polygon fill="#A80036" points="1664.5,820.0825,1668.5,830.0825,1672.5,820.0825,1668.5,824.0825" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1993.5" x2="1993.5" y1="810.0825" y2="830.0825"/><polygon fill="#A80036" points="1989.5,820.0825,1993.5,830.0825,1997.5,820.0825,1993.5,824.0825" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="655.4531" y2="675.4531"/><polygon fill="#A80036" points="860,665.4531,864,675.4531,868,665.4531,864,669.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="655.4531" y2="750.1138"/><polygon fill="#A80036" points="1827,740.1138,1831,750.1138,1835,740.1138,1831,744.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2272.5" x2="2272.5" y1="655.4531" y2="776.1138"/><polygon fill="#A80036" points="2268.5,766.1138,2272.5,776.1138,2276.5,766.1138,2272.5,770.1138" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="900.231" y2="920.231"/><polygon fill="#A80036" points="860,910.231,864,920.231,868,910.231,864,914.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="836.0825" y2="920.231"/><polygon fill="#A80036" points="1827,910.231,1831,920.231,1835,910.231,1831,914.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2272.5" x2="2272.5" y1="810.0825" y2="920.231"/><polygon fill="#A80036" points="2268.5,910.231,2272.5,920.231,2276.5,910.231,2272.5,914.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="629.4531" y2="649.4531"/><polygon fill="#A80036" points="1335.5,639.4531,1339.5,649.4531,1343.5,639.4531,1339.5,643.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="926.231" y2="946.231"/><polygon fill="#A80036" points="1335.5,936.231,1339.5,946.231,1343.5,936.231,1339.5,940.231" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="980.1997" y2="1000.1997"/><polygon fill="#A80036" points="1335.5,990.1997,1339.5,1000.1997,1343.5,990.1997,1339.5,994.1997" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="712.75" x2="247" y1="467.5156" y2="467.5156"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247" x2="247" y1="467.5156" y2="491.082"/><polygon fill="#A80036" points="243,481.082,247,491.082,251,481.082,247,485.082" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="851.75" x2="1339.5" y1="467.5156" y2="467.5156"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1339.5" x2="1339.5" y1="467.5156" y2="489.5156"/><polygon fill="#A80036" points="1335.5,479.5156,1339.5,489.5156,1343.5,479.5156,1339.5,483.5156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="782.25" x2="782.25" y1="435.5156" y2="455.5156"/><polygon fill="#A80036" points="778.25,445.5156,782.25,455.5156,786.25,445.5156,782.25,449.5156" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8d235bee0d837548ac1e8f5d50f6a727]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtFrtSubscriberSubscribe()\n |
5 | 5 |
|
6 | 6 |
|
7 |
|
|
8 |
|
|
9 |
|
|
7 | 10 |
note |
8 | 11 |
- - **subscriber** : urt_frtsubscriber_t* - - |
9 | 12 |
The FRT subscriber which shall subscribe to a topic. |
... | ... | |
46 | 49 |
:lock topic; |
47 | 50 |
fork |
48 | 51 |
if (Messages to contribute?) then (yes) |
49 |
|
|
50 |
partition "contribute messages" { |
|
51 |
fork |
|
52 |
:set next pointer of topic's latest message to first message to contribute; |
|
53 |
fork again |
|
54 |
:set next pointer of last message to contribute to the message after the topic's latest message; |
|
55 |
endfork |
|
56 |
} |
|
57 |
|
|
52 |
partition "contribute messages" { |
|
53 |
fork |
|
54 |
:set next pointer of topic's latest message to first message to contribute; |
|
55 |
fork again |
|
56 |
:set next pointer of last message to contribute to the message after the topic's latest message; |
|
57 |
endfork |
|
58 |
} |
|
58 | 59 |
else (no) |
59 | 60 |
endif |
60 | 61 |
fork again |
doc/activitydiagrams/subscriber/urtFrtSubscriberSubscribe.uml | ||
---|---|---|
25 | 25 |
|
26 | 26 |
title **µRtWare**\nurtFrtSubscriberSubscribe()\n |
27 | 27 |
|
28 |
!include ../functions.iuml |
|
29 |
|
|
28 | 30 |
/'### PARAMETERS & RETURN ####################################################'/ |
29 | 31 |
|
30 | 32 |
note |
... | ... | |
70 | 72 |
:lock topic; |
71 | 73 |
fork |
72 | 74 |
if (Messages to contribute?) then (yes) |
73 |
!include ../contributemessages.iuml
|
|
75 |
$contribute_messages()
|
|
74 | 76 |
else (no) |
75 | 77 |
endif |
76 | 78 |
fork again |
doc/activitydiagrams/subscriber/urtHrtSubscriberFetchLatestMessage.svg | ||
---|---|---|
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="1073px" preserveAspectRatio="none" style="width:1782px;height:1073px;" version="1.1" viewBox="0 0 1782 1073" width="1782px" zoomAndPan="magnify"><defs><filter height="300%" id="f1amcfo5x9amkf" 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="845.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="338" x="721" y="47.6611">urtHrtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="893" y="68.6143"/><path d="M1009.25,72.8594 L1009.25,304.7188 L1497.25,304.7188 L1497.25,82.8594 L1487.25,72.8594 L1009.25,72.8594 " fill="#FBFB77" filter="url(#f1amcfo5x9amkf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1487.25,72.8594 L1487.25,82.8594 L1497.25,82.8594 L1487.25,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1140.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1144.25" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="1144.25" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1226.25" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1366.25" x2="1497.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="1015.25" y="105.0591">The HRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1015.25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1095.25" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1127.25" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1197.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1201.25" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1201.25" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1264.25" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1309.25" x2="1497.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="1015.25" 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="1015.25" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1065.25" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1101.25" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1204.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1208.25" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1208.25" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1253.25" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1302.25" x2="1497.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="1015.25" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1177.75" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1181.75" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="1181.75" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1238.75" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1328.75" x2="1497.25" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="1015.25" 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="1015.25" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1065.25" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1097.25" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1497.25" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1497.25" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1182.25" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1186.25" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1186.25" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1235.25" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1324.25" x2="1497.25" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1015.25" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1068.25" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1176.25" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1015.25" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1068.25" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1200.25" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="1253.25" cy="334.7188" fill="#000000" filter="url(#f1amcfo5x9amkf)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" points="1190.75,364.7188,1315.75,364.7188,1327.75,376.7188,1315.75,388.7188,1190.75,388.7188,1178.75,376.7188,1190.75,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1190.75" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1158.75" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1327.75" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="700.5" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="710.5" y="419.8574">lock topic</text><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="648" y="452.6875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="658" y="473.8262">access last read message</text><rect fill="#000000" filter="url(#f1amcfo5x9amkf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="508" x="486.5" y="562.3667"/><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="500.5" y="588.3667"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="510.5" y="609.5054">proceed to next message</text><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="271" x="709.5" y="588.3667"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="251" x="719.5" y="609.5054">decrement next message's HRT counter</text><rect fill="#000000" filter="url(#f1amcfo5x9amkf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="508" x="486.5" y="642.3354"/><polygon fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" points="623.5,506.6563,857.5,506.6563,869.5,518.6563,857.5,530.6563,623.5,530.6563,611.5,518.6563,623.5,506.6563" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="744.5" y="540.8667">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="623.5" y="522.4644">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="597.5" y="516.062">no</text><rect fill="#000000" filter="url(#f1amcfo5x9amkf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1499" x="10" y="690.3354"/><rect fill="#FFFFFF" filter="url(#f1amcfo5x9amkf)" height="231.0703" style="stroke: #000000; stroke-width: 2.0;" width="970" x="22" y="707.1372"/><path d="M135,708.1372 L135,716.4341 L125,726.4341 L22,726.4341 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="25" y="721.1323">fetch message</text><rect fill="#000000" filter="url(#f1amcfo5x9amkf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="950" x="32" y="743.4341"/><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="46" y="817.8364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="56" y="838.9751">update message pointer</text><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="231" y="817.8364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="241" y="838.9751">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="437" y="817.8364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="447" y="838.9751">copy message payload</text><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="638" y="817.8364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="648" y="838.9751">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="672" y="838.9751">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="725" y="838.9751">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" points="672.5,769.4341,911.5,769.4341,923.5,781.4341,911.5,793.4341,672.5,793.4341,660.5,781.4341,672.5,769.4341" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="796" y="803.6445">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="672.5" y="785.2422">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="822.5" y="785.2422">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="875.5" y="785.2422">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="923.5" y="778.8398">no</text><polygon fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" points="792,876.2075,804,888.2075,792,900.2075,780,888.2075,792,876.2075" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1amcfo5x9amkf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="950" x="32" y="920.2075"/><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1051.5" y="809.688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1061.5" y="830.8267">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" points="1032,761.2856,1288,761.2856,1300,773.2856,1288,785.2856,1032,785.2856,1020,773.2856,1032,761.2856" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1164" y="795.4961">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="256" x="1032" y="777.0938">The HRT counter of any message became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1300" y="770.6914">no</text><polygon fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" points="1160,868.0591,1172,880.0591,1160,892.0591,1148,880.0591,1160,868.0591" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="1340" y="809.688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="1350" y="830.8267">reset QoS delay timer</text><rect fill="#000000" filter="url(#f1amcfo5x9amkf)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1499" x="10" y="958.2075"/><rect fill="#FEFECE" filter="url(#f1amcfo5x9amkf)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="692.5" y="984.2075"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="702.5" y="1005.3462">unlock topic</text><path d="M527.5,1036.6099 L527.5,1061.7427 A0,0 0 0 0 527.5,1061.7427 L709.5,1061.7427 A0,0 0 0 0 709.5,1061.7427 L709.5,1054.6099 L729.5,1049.1763 L709.5,1046.6099 L709.5,1046.6099 L699.5,1036.6099 L527.5,1036.6099 A0,0 0 0 0 527.5,1036.6099 " fill="#FBFB77" filter="url(#f1amcfo5x9amkf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M699.5,1036.6099 L699.5,1046.6099 L709.5,1046.6099 L699.5,1036.6099 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="533.5" y="1053.6768">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="586.5" y="1053.6768">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="690.5" y="1053.6768">.</text><ellipse cx="740.5" cy="1049.1763" fill="#FFFFFF" filter="url(#f1amcfo5x9amkf)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="740.5" cy="1049.1763" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1519,398.7188 L1519,423.8516 A0,0 0 0 0 1519,423.8516 L1725,423.8516 A0,0 0 0 0 1725,423.8516 L1725,416.7188 L1745,411.2852 L1725,408.7188 L1725,408.7188 L1715,398.7188 L1519,398.7188 A0,0 0 0 0 1519,398.7188 " fill="#FBFB77" filter="url(#f1amcfo5x9amkf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1715,398.7188 L1715,408.7188 L1725,408.7188 L1715,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="1525" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1578" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1706" y="415.7856">.</text><ellipse cx="1756" cy="411.2852" fill="#FFFFFF" filter="url(#f1amcfo5x9amkf)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1756" 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="1253.25" x2="1253.25" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="1249.25,314.7188,1253.25,324.7188,1257.25,314.7188,1253.25,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="432.6875" y2="452.6875"/><polygon fill="#A80036" points="736.5,442.6875,740.5,452.6875,744.5,442.6875,740.5,446.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="591" x2="591" y1="568.3667" y2="588.3667"/><polygon fill="#A80036" points="587,578.3667,591,588.3667,595,578.3667,591,582.3667" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="568.3667" y2="588.3667"/><polygon fill="#A80036" points="841,578.3667,845,588.3667,849,578.3667,845,582.3667" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="591" x2="591" y1="622.3354" y2="642.3354"/><polygon fill="#A80036" points="587,632.3354,591,642.3354,595,632.3354,591,636.3354" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="622.3354" y2="642.3354"/><polygon fill="#A80036" points="841,632.3354,845,642.3354,849,632.3354,845,636.3354" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="530.6563" y2="562.3667"/><polygon fill="#A80036" points="736.5,552.3667,740.5,562.3667,744.5,552.3667,740.5,556.3667" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="648.3354" y2="658.3354"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="1006.5" y1="658.3354" y2="658.3354"/><polygon fill="#A80036" points="1002.5,596.9487,1006.5,586.9487,1010.5,596.9487,1006.5,592.9487" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1006.5" x2="1006.5" y1="518.6563" y2="658.3354"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1006.5" x2="869.5" y1="518.6563" y2="518.6563"/><polygon fill="#A80036" points="879.5,514.6563,869.5,518.6563,879.5,522.6563,875.5,518.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="611.5" x2="474.5" y1="518.6563" y2="518.6563"/><polygon fill="#A80036" points="470.5,582.9487,474.5,592.9487,478.5,582.9487,474.5,586.9487" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="474.5" x2="474.5" y1="518.6563" y2="670.3354"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="474.5" x2="740.5" y1="670.3354" y2="670.3354"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="670.3354" y2="690.3354"/><polygon fill="#A80036" points="736.5,680.3354,740.5,690.3354,744.5,680.3354,740.5,684.3354" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="486.6563" y2="506.6563"/><polygon fill="#A80036" points="736.5,496.6563,740.5,506.6563,744.5,496.6563,740.5,500.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="793.4341" y2="817.8364"/><polygon fill="#A80036" points="788,807.8364,792,817.8364,796,807.8364,792,811.8364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="923.5" x2="956" y1="781.4341" y2="781.4341"/><polygon fill="#A80036" points="952,824.8208,956,834.8208,960,824.8208,956,828.8208" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="956" y1="781.4341" y2="888.2075"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="804" y1="888.2075" y2="888.2075"/><polygon fill="#A80036" points="814,884.2075,804,888.2075,814,892.2075,810,888.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="851.8052" y2="876.2075"/><polygon fill="#A80036" points="788,866.2075,792,876.2075,796,866.2075,792,870.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="749.4341" y2="817.8364"/><polygon fill="#A80036" points="129.5,807.8364,133.5,817.8364,137.5,807.8364,133.5,811.8364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="749.4341" y2="817.8364"/><polygon fill="#A80036" points="325,807.8364,329,817.8364,333,807.8364,329,811.8364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="749.4341" y2="817.8364"/><polygon fill="#A80036" points="514.5,807.8364,518.5,817.8364,522.5,807.8364,518.5,811.8364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="749.4341" y2="769.4341"/><polygon fill="#A80036" points="788,759.4341,792,769.4341,796,759.4341,792,763.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="851.8052" y2="920.2075"/><polygon fill="#A80036" points="129.5,910.2075,133.5,920.2075,137.5,910.2075,133.5,914.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="851.8052" y2="920.2075"/><polygon fill="#A80036" points="325,910.2075,329,920.2075,333,910.2075,329,914.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="851.8052" y2="920.2075"/><polygon fill="#A80036" points="514.5,910.2075,518.5,920.2075,522.5,910.2075,518.5,914.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="900.2075" y2="920.2075"/><polygon fill="#A80036" points="788,910.2075,792,920.2075,796,910.2075,792,914.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1160" x2="1160" y1="785.2856" y2="809.688"/><polygon fill="#A80036" points="1156,799.688,1160,809.688,1164,799.688,1160,803.688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1312" y1="773.2856" y2="773.2856"/><polygon fill="#A80036" points="1308,816.6724,1312,826.6724,1316,816.6724,1312,820.6724" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1312" x2="1312" y1="773.2856" y2="880.0591"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1312" x2="1172" y1="880.0591" y2="880.0591"/><polygon fill="#A80036" points="1182,876.0591,1172,880.0591,1182,884.0591,1178,880.0591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1160" x2="1160" y1="843.6567" y2="868.0591"/><polygon fill="#A80036" points="1156,858.0591,1160,868.0591,1164,858.0591,1160,862.0591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="696.3354" y2="743.4341"/><polygon fill="#A80036" points="485,733.4341,489,743.4341,493,733.4341,489,737.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1160" x2="1160" y1="696.3354" y2="761.2856"/><polygon fill="#A80036" points="1156,751.2856,1160,761.2856,1164,751.2856,1160,755.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1417.5" x2="1417.5" y1="696.3354" y2="809.688"/><polygon fill="#A80036" points="1413.5,799.688,1417.5,809.688,1421.5,799.688,1417.5,803.688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="926.2075" y2="958.2075"/><polygon fill="#A80036" points="485,948.2075,489,958.2075,493,948.2075,489,952.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1160" x2="1160" y1="892.0591" y2="958.2075"/><polygon fill="#A80036" points="1156,948.2075,1160,958.2075,1164,948.2075,1160,952.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1417.5" x2="1417.5" y1="843.6567" y2="958.2075"/><polygon fill="#A80036" points="1413.5,948.2075,1417.5,958.2075,1421.5,948.2075,1417.5,952.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="964.2075" y2="984.2075"/><polygon fill="#A80036" points="736.5,974.2075,740.5,984.2075,744.5,974.2075,740.5,978.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="1018.1763" y2="1038.1763"/><polygon fill="#A80036" points="736.5,1028.1763,740.5,1038.1763,744.5,1028.1763,740.5,1032.1763" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1178.75" x2="740.5" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="736.5,388.7188,740.5,398.7188,744.5,388.7188,740.5,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1327.75" x2="1756" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1756" x2="1756" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1752,390.2852,1756,400.2852,1760,390.2852,1756,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.25" x2="1253.25" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="1249.25,354.7188,1253.25,364.7188,1257.25,354.7188,1253.25,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[080eede79bda26c90de47e9a9980273c]
|
|
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="1073px" preserveAspectRatio="none" style="width:1782px;height:1073px;" version="1.1" viewBox="0 0 1782 1073" width="1782px" zoomAndPan="magnify"><defs><filter height="300%" id="f1kuww1o7v9986" 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="845.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="338" x="721" y="47.6611">urtHrtSubscriberFetchLatestMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="893" y="68.6143"/><path d="M1009.25,72.8594 L1009.25,304.7188 L1497.25,304.7188 L1497.25,82.8594 L1487.25,72.8594 L1009.25,72.8594 " fill="#FBFB77" filter="url(#f1kuww1o7v9986)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1487.25,72.8594 L1487.25,82.8594 L1497.25,82.8594 L1487.25,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1140.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1144.25" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="1144.25" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1226.25" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1366.25" x2="1497.25" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="1015.25" y="105.0591">The HRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1015.25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1095.25" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1127.25" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1197.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1201.25" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1201.25" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1264.25" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1309.25" x2="1497.25" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="1015.25" 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="1015.25" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1065.25" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1101.25" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1204.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1208.25" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1208.25" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1253.25" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1302.25" x2="1497.25" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="1015.25" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1177.75" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1181.75" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="1181.75" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1238.75" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1328.75" x2="1497.25" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="1015.25" 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="1015.25" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1065.25" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1097.25" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1497.25" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1497.25" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.25" x2="1182.25" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1186.25" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1186.25" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1235.25" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1324.25" x2="1497.25" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1015.25" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1068.25" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1176.25" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1015.25" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1068.25" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1200.25" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="1253.25" cy="334.7188" fill="#000000" filter="url(#f1kuww1o7v9986)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1kuww1o7v9986)" points="1190.75,364.7188,1315.75,364.7188,1327.75,376.7188,1315.75,388.7188,1190.75,388.7188,1178.75,376.7188,1190.75,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1190.75" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1158.75" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1327.75" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#f1kuww1o7v9986)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="700.5" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="710.5" y="419.8574">lock topic</text><rect fill="#FEFECE" filter="url(#f1kuww1o7v9986)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="648" y="452.6875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="165" x="658" y="473.8262">access last read message</text><rect fill="#000000" filter="url(#f1kuww1o7v9986)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="508" x="486.5" y="562.3667"/><rect fill="#FEFECE" filter="url(#f1kuww1o7v9986)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="500.5" y="588.3667"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="510.5" y="609.5054">proceed to next message</text><rect fill="#FEFECE" filter="url(#f1kuww1o7v9986)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="271" x="709.5" y="588.3667"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="251" x="719.5" y="609.5054">decrement next message's HRT counter</text><rect fill="#000000" filter="url(#f1kuww1o7v9986)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="508" x="486.5" y="642.3354"/><polygon fill="#FEFECE" filter="url(#f1kuww1o7v9986)" points="623.5,506.6563,857.5,506.6563,869.5,518.6563,857.5,530.6563,623.5,530.6563,611.5,518.6563,623.5,506.6563" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="744.5" y="540.8667">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="623.5" y="522.4644">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="597.5" y="516.062">no</text><rect fill="#000000" filter="url(#f1kuww1o7v9986)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1499" x="10" y="690.3354"/><rect fill="#FFFFFF" filter="url(#f1kuww1o7v9986)" height="231.0703" style="stroke: #000000; stroke-width: 2.0;" width="970" x="22" y="707.1372"/><path d="M135,708.1372 L135,716.4341 L125,726.4341 L22,726.4341 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="25" y="721.1323">fetch message</text><rect fill="#000000" filter="url(#f1kuww1o7v9986)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="950" x="32" y="743.4341"/><rect fill="#FEFECE" filter="url(#f1kuww1o7v9986)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="46" y="817.8364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="56" y="838.9751">update message pointer</text><rect fill="#FEFECE" filter="url(#f1kuww1o7v9986)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="231" y="817.8364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="241" y="838.9751">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1kuww1o7v9986)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="437" y="817.8364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="447" y="838.9751">copy message payload</text><rect fill="#FEFECE" filter="url(#f1kuww1o7v9986)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="638" y="817.8364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="648" y="838.9751">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="672" y="838.9751">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="725" y="838.9751">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1kuww1o7v9986)" points="672.5,769.4341,911.5,769.4341,923.5,781.4341,911.5,793.4341,672.5,793.4341,660.5,781.4341,672.5,769.4341" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="796" y="803.6445">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="672.5" y="785.2422">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="822.5" y="785.2422">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="875.5" y="785.2422">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="923.5" y="778.8398">no</text><polygon fill="#FEFECE" filter="url(#f1kuww1o7v9986)" points="792,876.2075,804,888.2075,792,900.2075,780,888.2075,792,876.2075" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1kuww1o7v9986)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="950" x="32" y="920.2075"/><rect fill="#FEFECE" filter="url(#f1kuww1o7v9986)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1051.5" y="809.688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1061.5" y="830.8267">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1kuww1o7v9986)" points="1032,761.2856,1288,761.2856,1300,773.2856,1288,785.2856,1032,785.2856,1020,773.2856,1032,761.2856" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1164" y="795.4961">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="256" x="1032" y="777.0938">The HRT counter of any message became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1300" y="770.6914">no</text><polygon fill="#FEFECE" filter="url(#f1kuww1o7v9986)" points="1160,868.0591,1172,880.0591,1160,892.0591,1148,880.0591,1160,868.0591" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1kuww1o7v9986)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="1340" y="809.688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="1350" y="830.8267">reset QoS delay timer</text><rect fill="#000000" filter="url(#f1kuww1o7v9986)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1499" x="10" y="958.2075"/><rect fill="#FEFECE" filter="url(#f1kuww1o7v9986)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="692.5" y="984.2075"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="702.5" y="1005.3462">unlock topic</text><path d="M527.5,1036.6099 L527.5,1061.7427 A0,0 0 0 0 527.5,1061.7427 L709.5,1061.7427 A0,0 0 0 0 709.5,1061.7427 L709.5,1054.6099 L729.5,1049.1763 L709.5,1046.6099 L709.5,1046.6099 L699.5,1036.6099 L527.5,1036.6099 A0,0 0 0 0 527.5,1036.6099 " fill="#FBFB77" filter="url(#f1kuww1o7v9986)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M699.5,1036.6099 L699.5,1046.6099 L709.5,1046.6099 L699.5,1036.6099 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="533.5" y="1053.6768">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="586.5" y="1053.6768">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="690.5" y="1053.6768">.</text><ellipse cx="740.5" cy="1049.1763" fill="#FFFFFF" filter="url(#f1kuww1o7v9986)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="740.5" cy="1049.1763" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1519,398.7188 L1519,423.8516 A0,0 0 0 0 1519,423.8516 L1725,423.8516 A0,0 0 0 0 1725,423.8516 L1725,416.7188 L1745,411.2852 L1725,408.7188 L1725,408.7188 L1715,398.7188 L1519,398.7188 A0,0 0 0 0 1519,398.7188 " fill="#FBFB77" filter="url(#f1kuww1o7v9986)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1715,398.7188 L1715,408.7188 L1725,408.7188 L1715,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="1525" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1578" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1706" y="415.7856">.</text><ellipse cx="1756" cy="411.2852" fill="#FFFFFF" filter="url(#f1kuww1o7v9986)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1756" 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="1253.25" x2="1253.25" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="1249.25,314.7188,1253.25,324.7188,1257.25,314.7188,1253.25,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="432.6875" y2="452.6875"/><polygon fill="#A80036" points="736.5,442.6875,740.5,452.6875,744.5,442.6875,740.5,446.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="591" x2="591" y1="568.3667" y2="588.3667"/><polygon fill="#A80036" points="587,578.3667,591,588.3667,595,578.3667,591,582.3667" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="568.3667" y2="588.3667"/><polygon fill="#A80036" points="841,578.3667,845,588.3667,849,578.3667,845,582.3667" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="591" x2="591" y1="622.3354" y2="642.3354"/><polygon fill="#A80036" points="587,632.3354,591,642.3354,595,632.3354,591,636.3354" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="845" x2="845" y1="622.3354" y2="642.3354"/><polygon fill="#A80036" points="841,632.3354,845,642.3354,849,632.3354,845,636.3354" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="530.6563" y2="562.3667"/><polygon fill="#A80036" points="736.5,552.3667,740.5,562.3667,744.5,552.3667,740.5,556.3667" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="648.3354" y2="658.3354"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="1006.5" y1="658.3354" y2="658.3354"/><polygon fill="#A80036" points="1002.5,596.9487,1006.5,586.9487,1010.5,596.9487,1006.5,592.9487" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1006.5" x2="1006.5" y1="518.6563" y2="658.3354"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1006.5" x2="869.5" y1="518.6563" y2="518.6563"/><polygon fill="#A80036" points="879.5,514.6563,869.5,518.6563,879.5,522.6563,875.5,518.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="611.5" x2="474.5" y1="518.6563" y2="518.6563"/><polygon fill="#A80036" points="470.5,582.9487,474.5,592.9487,478.5,582.9487,474.5,586.9487" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="474.5" x2="474.5" y1="518.6563" y2="670.3354"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="474.5" x2="740.5" y1="670.3354" y2="670.3354"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="670.3354" y2="690.3354"/><polygon fill="#A80036" points="736.5,680.3354,740.5,690.3354,744.5,680.3354,740.5,684.3354" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="486.6563" y2="506.6563"/><polygon fill="#A80036" points="736.5,496.6563,740.5,506.6563,744.5,496.6563,740.5,500.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="793.4341" y2="817.8364"/><polygon fill="#A80036" points="788,807.8364,792,817.8364,796,807.8364,792,811.8364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="923.5" x2="956" y1="781.4341" y2="781.4341"/><polygon fill="#A80036" points="952,824.8208,956,834.8208,960,824.8208,956,828.8208" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="956" y1="781.4341" y2="888.2075"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="804" y1="888.2075" y2="888.2075"/><polygon fill="#A80036" points="814,884.2075,804,888.2075,814,892.2075,810,888.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="851.8052" y2="876.2075"/><polygon fill="#A80036" points="788,866.2075,792,876.2075,796,866.2075,792,870.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="749.4341" y2="817.8364"/><polygon fill="#A80036" points="129.5,807.8364,133.5,817.8364,137.5,807.8364,133.5,811.8364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="749.4341" y2="817.8364"/><polygon fill="#A80036" points="325,807.8364,329,817.8364,333,807.8364,329,811.8364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="749.4341" y2="817.8364"/><polygon fill="#A80036" points="514.5,807.8364,518.5,817.8364,522.5,807.8364,518.5,811.8364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="749.4341" y2="769.4341"/><polygon fill="#A80036" points="788,759.4341,792,769.4341,796,759.4341,792,763.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="851.8052" y2="920.2075"/><polygon fill="#A80036" points="129.5,910.2075,133.5,920.2075,137.5,910.2075,133.5,914.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="851.8052" y2="920.2075"/><polygon fill="#A80036" points="325,910.2075,329,920.2075,333,910.2075,329,914.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="851.8052" y2="920.2075"/><polygon fill="#A80036" points="514.5,910.2075,518.5,920.2075,522.5,910.2075,518.5,914.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="900.2075" y2="920.2075"/><polygon fill="#A80036" points="788,910.2075,792,920.2075,796,910.2075,792,914.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1160" x2="1160" y1="785.2856" y2="809.688"/><polygon fill="#A80036" points="1156,799.688,1160,809.688,1164,799.688,1160,803.688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1300" x2="1312" y1="773.2856" y2="773.2856"/><polygon fill="#A80036" points="1308,816.6724,1312,826.6724,1316,816.6724,1312,820.6724" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1312" x2="1312" y1="773.2856" y2="880.0591"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1312" x2="1172" y1="880.0591" y2="880.0591"/><polygon fill="#A80036" points="1182,876.0591,1172,880.0591,1182,884.0591,1178,880.0591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1160" x2="1160" y1="843.6567" y2="868.0591"/><polygon fill="#A80036" points="1156,858.0591,1160,868.0591,1164,858.0591,1160,862.0591" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="696.3354" y2="743.4341"/><polygon fill="#A80036" points="485,733.4341,489,743.4341,493,733.4341,489,737.4341" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1160" x2="1160" y1="696.3354" y2="761.2856"/><polygon fill="#A80036" points="1156,751.2856,1160,761.2856,1164,751.2856,1160,755.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1417.5" x2="1417.5" y1="696.3354" y2="809.688"/><polygon fill="#A80036" points="1413.5,799.688,1417.5,809.688,1421.5,799.688,1417.5,803.688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="926.2075" y2="958.2075"/><polygon fill="#A80036" points="485,948.2075,489,958.2075,493,948.2075,489,952.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1160" x2="1160" y1="892.0591" y2="958.2075"/><polygon fill="#A80036" points="1156,948.2075,1160,958.2075,1164,948.2075,1160,952.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1417.5" x2="1417.5" y1="843.6567" y2="958.2075"/><polygon fill="#A80036" points="1413.5,948.2075,1417.5,958.2075,1421.5,948.2075,1417.5,952.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="964.2075" y2="984.2075"/><polygon fill="#A80036" points="736.5,974.2075,740.5,984.2075,744.5,974.2075,740.5,978.2075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="1018.1763" y2="1038.1763"/><polygon fill="#A80036" points="736.5,1028.1763,740.5,1038.1763,744.5,1028.1763,740.5,1032.1763" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1178.75" x2="740.5" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="740.5" x2="740.5" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="736.5,388.7188,740.5,398.7188,744.5,388.7188,740.5,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1327.75" x2="1756" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1756" x2="1756" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1752,390.2852,1756,400.2852,1760,390.2852,1756,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.25" x2="1253.25" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="1249.25,354.7188,1253.25,364.7188,1257.25,354.7188,1253.25,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[39e4eac4a6857ceedd985567d009f759]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtHrtSubscriberFetchLatestMessage()\n |
5 | 5 |
|
6 | 6 |
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
7 | 12 |
note |
8 | 13 |
- - **subscriber** : urt_hrtsubscriber_t* - - |
9 | 14 |
The HRT subscriber that shall fetch the message. |
... | ... | |
35 | 40 |
endfork |
36 | 41 |
endwhile (no) |
37 | 42 |
fork |
38 |
|
|
39 |
partition "fetch message" { |
|
40 |
fork |
|
41 |
:update message pointer; |
|
42 |
fork again |
|
43 |
:copy timestamp of message; |
|
44 |
fork again |
|
45 |
:copy message payload; |
|
46 |
fork again |
|
47 |
if (Optional output argument ""latency"" given?) then (yes) |
|
48 |
:set ""latency"" value (now - message origin time); |
|
49 |
else (no) |
|
50 |
endif |
|
51 |
endfork |
|
52 |
} |
|
53 |
|
|
43 |
partition "fetch message" { |
|
44 |
fork |
|
45 |
:update message pointer; |
|
46 |
fork again |
|
47 |
:copy timestamp of message; |
|
48 |
fork again |
|
49 |
:copy message payload; |
|
50 |
fork again |
|
51 |
if (Optional output argument ""latency"" given?) then (yes) |
|
52 |
:set ""latency"" value (now - message origin time); |
|
53 |
else (no) |
|
54 |
endif |
|
55 |
endfork |
|
56 |
} |
|
54 | 57 |
fork again |
55 | 58 |
if (The HRT counter of any message became 0?) then (yes) |
56 | 59 |
:signal topic's condition variable; |
doc/activitydiagrams/subscriber/urtHrtSubscriberFetchLatestMessage.uml | ||
---|---|---|
25 | 25 |
|
26 | 26 |
title **µRtWare**\nurtHrtSubscriberFetchLatestMessage()\n |
27 | 27 |
|
28 |
!include ./functions.iuml |
|
29 |
|
|
28 | 30 |
/'### PARAMETERS & RETURN ####################################################'/ |
29 | 31 |
|
30 | 32 |
note |
... | ... | |
59 | 61 |
endfork |
60 | 62 |
endwhile (no) |
61 | 63 |
fork |
62 |
!include fetchmessage.iuml
|
|
64 |
$fetch_message()
|
|
63 | 65 |
fork again |
64 | 66 |
if (The HRT counter of any message became 0?) then (yes) |
65 | 67 |
:signal topic's condition variable; |
doc/activitydiagrams/subscriber/urtHrtSubscriberFetchNextMessage.svg | ||
---|---|---|
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="890px" preserveAspectRatio="none" style="width:1865px;height:890px;" version="1.1" viewBox="0 0 1865 890" width="1865px" zoomAndPan="magnify"><defs><filter height="300%" id="f58ooogjib9ui" 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="887.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="328" x="767.75" y="47.6611">urtHrtSubscriberFetchNextMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="934.75" y="68.6143"/><path d="M1072.375,72.8594 L1072.375,304.7188 L1560.375,304.7188 L1560.375,82.8594 L1550.375,72.8594 L1072.375,72.8594 " fill="#FBFB77" filter="url(#f58ooogjib9ui)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1550.375,72.8594 L1550.375,82.8594 L1560.375,82.8594 L1550.375,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1203.375" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1207.375" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="1207.375" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1289.375" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1429.375" x2="1560.375" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="1078.375" y="105.0591">The HRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1078.375" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1158.375" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1190.375" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1260.375" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1264.375" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1264.375" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1327.375" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1372.375" x2="1560.375" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="1078.375" 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="1078.375" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1128.375" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1164.375" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1267.375" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1271.375" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1271.375" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1316.375" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1365.375" x2="1560.375" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="1078.375" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1240.875" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1244.875" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="1244.875" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1301.875" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1391.875" x2="1560.375" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="1078.375" 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="1078.375" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1128.375" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1160.375" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1560.375" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1560.375" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1245.375" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1249.375" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1249.375" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1298.375" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1387.375" x2="1560.375" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1078.375" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1131.375" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1239.375" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1078.375" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1131.375" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1263.375" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="1316.375" cy="334.7188" fill="#000000" filter="url(#f58ooogjib9ui)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1253.875,364.7188,1378.875,364.7188,1390.875,376.7188,1378.875,388.7188,1253.875,388.7188,1241.875,376.7188,1253.875,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1253.875" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1221.875" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1390.875" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="761.25" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="771.25" y="419.8574">lock topic</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="710.75" y="452.6875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="720.75" y="473.8262">proceed to next message</text><rect fill="#000000" filter="url(#f58ooogjib9ui)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1582.5" x="10" y="506.6563"/><rect fill="#FFFFFF" filter="url(#f58ooogjib9ui)" height="231.4063" style="stroke: #000000; stroke-width: 2.0;" width="960" x="22" y="523.458"/><path d="M135,524.458 L135,532.7549 L125,542.7549 L22,542.7549 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="25" y="537.4531">fetch message</text><rect fill="#000000" filter="url(#f58ooogjib9ui)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="940" x="32" y="559.7549"/><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="46" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="56" y="655.2959">update message pointer</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="231" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="241" y="655.2959">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="437" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="447" y="655.2959">copy message payload</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="638" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="648" y="655.2959">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="672" y="655.2959">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="725" y="655.2959">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="672.5,585.7549,911.5,585.7549,923.5,597.7549,911.5,609.7549,672.5,609.7549,660.5,597.7549,672.5,585.7549" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="796" y="619.9653">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="672.5" y="601.563">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="822.5" y="601.563">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="875.5" y="601.563">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="923.5" y="595.1606">no</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="792,692.5283,804,704.5283,792,716.5283,780,704.5283,792,692.5283" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f58ooogjib9ui)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="940" x="32" y="736.5283"/><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="992" y="543.1221"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="220" x="1002" y="564.2607">decrement message's HRT counter</text><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1003.5" y="660.4932"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1013.5" y="681.6318">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1044.5,612.0908,1179.5,612.0908,1191.5,624.0908,1179.5,636.0908,1044.5,636.0908,1032.5,624.0908,1044.5,612.0908" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1116" y="646.3013">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1044.5" y="627.8989">HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1191.5" y="621.4966">yes</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1112,718.8643,1124,730.8643,1112,742.8643,1100,730.8643,1112,718.8643" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="1280.5" y="626.0088"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="1290.5" y="647.1475">update QoS delay timer wrt. next message</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1306.5,577.6064,1540.5,577.6064,1552.5,589.6064,1540.5,601.6064,1306.5,601.6064,1294.5,589.6064,1306.5,577.6064" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1427.5" y="611.8169">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="1306.5" y="593.4146">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1552.5" y="587.0122">no</text><polygon fill="#FEFECE" filter="url(#f58ooogjib9ui)" points="1423.5,684.3799,1435.5,696.3799,1423.5,708.3799,1411.5,696.3799,1423.5,684.3799" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f58ooogjib9ui)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1582.5" x="10" y="774.8643"/><rect fill="#FEFECE" filter="url(#f58ooogjib9ui)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="753.25" y="800.8643"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="763.25" y="822.0029">unlock topic</text><path d="M588.25,853.2666 L588.25,878.3994 A0,0 0 0 0 588.25,878.3994 L770.25,878.3994 A0,0 0 0 0 770.25,878.3994 L770.25,871.2666 L790.25,865.833 L770.25,863.2666 L770.25,863.2666 L760.25,853.2666 L588.25,853.2666 A0,0 0 0 0 588.25,853.2666 " fill="#FBFB77" filter="url(#f58ooogjib9ui)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M760.25,853.2666 L760.25,863.2666 L770.25,863.2666 L760.25,853.2666 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="594.25" y="870.3335">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="647.25" y="870.3335">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="751.25" y="870.3335">.</text><ellipse cx="801.25" cy="865.833" fill="#FFFFFF" filter="url(#f58ooogjib9ui)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="801.25" cy="865.833" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1602.5,398.7188 L1602.5,423.8516 A0,0 0 0 0 1602.5,423.8516 L1808.5,423.8516 A0,0 0 0 0 1808.5,423.8516 L1808.5,416.7188 L1828.5,411.2852 L1808.5,408.7188 L1808.5,408.7188 L1798.5,398.7188 L1602.5,398.7188 A0,0 0 0 0 1602.5,398.7188 " fill="#FBFB77" filter="url(#f58ooogjib9ui)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1798.5,398.7188 L1798.5,408.7188 L1808.5,408.7188 L1798.5,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="1608.5" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1661.5" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1789.5" y="415.7856">.</text><ellipse cx="1839.5" cy="411.2852" fill="#FFFFFF" filter="url(#f58ooogjib9ui)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1839.5" 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="1316.375" x2="1316.375" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="1312.375,314.7188,1316.375,324.7188,1320.375,314.7188,1316.375,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="432.6875" y2="452.6875"/><polygon fill="#A80036" points="797.25,442.6875,801.25,452.6875,805.25,442.6875,801.25,446.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="609.7549" y2="634.1572"/><polygon fill="#A80036" points="788,624.1572,792,634.1572,796,624.1572,792,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="923.5" x2="956" y1="597.7549" y2="597.7549"/><polygon fill="#A80036" points="952,641.1416,956,651.1416,960,641.1416,956,645.1416" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="956" y1="597.7549" y2="704.5283"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="804" y1="704.5283" y2="704.5283"/><polygon fill="#A80036" points="814,700.5283,804,704.5283,814,708.5283,810,704.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="668.126" y2="692.5283"/><polygon fill="#A80036" points="788,682.5283,792,692.5283,796,682.5283,792,686.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="129.5,624.1572,133.5,634.1572,137.5,624.1572,133.5,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="325,624.1572,329,634.1572,333,624.1572,329,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="514.5,624.1572,518.5,634.1572,522.5,624.1572,518.5,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="565.7549" y2="585.7549"/><polygon fill="#A80036" points="788,575.7549,792,585.7549,796,575.7549,792,579.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="129.5,726.5283,133.5,736.5283,137.5,726.5283,133.5,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="325,726.5283,329,736.5283,333,726.5283,329,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="514.5,726.5283,518.5,736.5283,522.5,726.5283,518.5,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="716.5283" y2="736.5283"/><polygon fill="#A80036" points="788,726.5283,792,736.5283,796,726.5283,792,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="636.0908" y2="660.4932"/><polygon fill="#A80036" points="1108,650.4932,1112,660.4932,1116,650.4932,1112,654.4932" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1191.5" x2="1230.5" y1="624.0908" y2="624.0908"/><polygon fill="#A80036" points="1226.5,667.4775,1230.5,677.4775,1234.5,667.4775,1230.5,671.4775" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1230.5" x2="1230.5" y1="624.0908" y2="730.8643"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1230.5" x2="1124" y1="730.8643" y2="730.8643"/><polygon fill="#A80036" points="1134,726.8643,1124,730.8643,1134,734.8643,1130,730.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="694.4619" y2="718.8643"/><polygon fill="#A80036" points="1108,708.8643,1112,718.8643,1116,708.8643,1112,712.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="577.0908" y2="612.0908"/><polygon fill="#A80036" points="1108,602.0908,1112,612.0908,1116,602.0908,1112,606.0908" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="601.6064" y2="626.0088"/><polygon fill="#A80036" points="1419.5,616.0088,1423.5,626.0088,1427.5,616.0088,1423.5,620.0088" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1552.5" x2="1576.5" y1="589.6064" y2="589.6064"/><polygon fill="#A80036" points="1572.5,632.9932,1576.5,642.9932,1580.5,632.9932,1576.5,636.9932" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1576.5" x2="1576.5" y1="589.6064" y2="696.3799"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1576.5" x2="1435.5" y1="696.3799" y2="696.3799"/><polygon fill="#A80036" points="1445.5,692.3799,1435.5,696.3799,1445.5,700.3799,1441.5,696.3799" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="659.9775" y2="684.3799"/><polygon fill="#A80036" points="1419.5,674.3799,1423.5,684.3799,1427.5,674.3799,1423.5,678.3799" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="512.6563" y2="559.7549"/><polygon fill="#A80036" points="485,549.7549,489,559.7549,493,549.7549,489,553.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="512.6563" y2="543.1221"/><polygon fill="#A80036" points="1108,533.1221,1112,543.1221,1116,533.1221,1112,537.1221" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="512.6563" y2="577.6064"/><polygon fill="#A80036" points="1419.5,567.6064,1423.5,577.6064,1427.5,567.6064,1423.5,571.6064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="742.5283" y2="774.8643"/><polygon fill="#A80036" points="485,764.8643,489,774.8643,493,764.8643,489,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="742.8643" y2="774.8643"/><polygon fill="#A80036" points="1108,764.8643,1112,774.8643,1116,764.8643,1112,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="708.3799" y2="774.8643"/><polygon fill="#A80036" points="1419.5,764.8643,1423.5,774.8643,1427.5,764.8643,1423.5,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="486.6563" y2="506.6563"/><polygon fill="#A80036" points="797.25,496.6563,801.25,506.6563,805.25,496.6563,801.25,500.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="780.8643" y2="800.8643"/><polygon fill="#A80036" points="797.25,790.8643,801.25,800.8643,805.25,790.8643,801.25,794.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="834.833" y2="854.833"/><polygon fill="#A80036" points="797.25,844.833,801.25,854.833,805.25,844.833,801.25,848.833" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1241.875" x2="801.25" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="797.25,388.7188,801.25,398.7188,805.25,388.7188,801.25,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1390.875" x2="1839.5" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1839.5" x2="1839.5" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1835.5,390.2852,1839.5,400.2852,1843.5,390.2852,1839.5,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1316.375" x2="1316.375" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="1312.375,354.7188,1316.375,364.7188,1320.375,354.7188,1316.375,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0cf0d9213faec1a02d649e7da5b2dff1]
|
|
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="890px" preserveAspectRatio="none" style="width:1865px;height:890px;" version="1.1" viewBox="0 0 1865 890" width="1865px" zoomAndPan="magnify"><defs><filter height="300%" id="f1utu8khfxyd7p" 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="887.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="328" x="767.75" y="47.6611">urtHrtSubscriberFetchNextMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="934.75" y="68.6143"/><path d="M1072.375,72.8594 L1072.375,304.7188 L1560.375,304.7188 L1560.375,82.8594 L1550.375,72.8594 L1072.375,72.8594 " fill="#FBFB77" filter="url(#f1utu8khfxyd7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1550.375,72.8594 L1550.375,82.8594 L1560.375,82.8594 L1550.375,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1203.375" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1207.375" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="1207.375" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="1289.375" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1429.375" x2="1560.375" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="1078.375" y="105.0591">The HRT subscriber that shall fetch the message.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="1078.375" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1158.375" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1190.375" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1260.375" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1264.375" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="1264.375" y="134.8247">payload</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="1327.375" y="134.8247">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1372.375" x2="1560.375" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="1078.375" 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="1078.375" y="165.5903">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1128.375" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="1164.375" y="165.5903">for messages without payload.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1267.375" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1271.375" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="1271.375" y="180.2231">bytes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="1316.375" y="180.2231">: size_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1365.375" x2="1560.375" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="137" x="1078.375" y="195.856">Payload size in bytes.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1240.875" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1244.875" y="210.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="53" x="1244.875" y="210.4888">latency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1301.875" y="210.4888">: urt_delay_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1391.875" x2="1560.375" y1="206.4883" y2="206.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="1078.375" 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="1078.375" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1128.375" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1160.375" y="241.2544">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1560.375" y1="249.3203" y2="249.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1560.375" y1="251.3203" y2="251.3203"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1072.375" x2="1245.375" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="1249.375" y="265.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="1249.375" y="265.8872">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1298.375" y="265.8872">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1387.375" x2="1560.375" y1="261.8867" y2="261.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1078.375" y="281.52">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1131.375" y="281.52">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1239.375" y="281.52">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1078.375" y="296.6528">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1131.375" y="296.6528">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="282" x="1263.375" y="296.6528">if the subscriber is not associated to a topic.</text><ellipse cx="1316.375" cy="334.7188" fill="#000000" filter="url(#f1utu8khfxyd7p)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="1253.875,364.7188,1378.875,364.7188,1390.875,376.7188,1378.875,388.7188,1253.875,388.7188,1241.875,376.7188,1253.875,364.7188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1253.875" y="380.5269">Associated to a topic?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1221.875" y="374.1245">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1390.875" y="374.1245">no</text><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="761.25" y="398.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="771.25" y="419.8574">lock topic</text><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="710.75" y="452.6875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="720.75" y="473.8262">proceed to next message</text><rect fill="#000000" filter="url(#f1utu8khfxyd7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1582.5" x="10" y="506.6563"/><rect fill="#FFFFFF" filter="url(#f1utu8khfxyd7p)" height="231.4063" style="stroke: #000000; stroke-width: 2.0;" width="960" x="22" y="523.458"/><path d="M135,524.458 L135,532.7549 L125,542.7549 L22,542.7549 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="25" y="537.4531">fetch message</text><rect fill="#000000" filter="url(#f1utu8khfxyd7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="940" x="32" y="559.7549"/><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="46" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="56" y="655.2959">update message pointer</text><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="231" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="241" y="655.2959">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="437" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="447" y="655.2959">copy message payload</text><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="638" y="634.1572"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="648" y="655.2959">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="672" y="655.2959">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="725" y="655.2959">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="672.5,585.7549,911.5,585.7549,923.5,597.7549,911.5,609.7549,672.5,609.7549,660.5,597.7549,672.5,585.7549" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="796" y="619.9653">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="672.5" y="601.563">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="822.5" y="601.563">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="875.5" y="601.563">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="923.5" y="595.1606">no</text><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="792,692.5283,804,704.5283,792,716.5283,780,704.5283,792,692.5283" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1utu8khfxyd7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="940" x="32" y="736.5283"/><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="992" y="543.1221"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="220" x="1002" y="564.2607">decrement message's HRT counter</text><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="1003.5" y="660.4932"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="1013.5" y="681.6318">signal topic's condition variable</text><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="1044.5,612.0908,1179.5,612.0908,1191.5,624.0908,1179.5,636.0908,1044.5,636.0908,1032.5,624.0908,1044.5,612.0908" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1116" y="646.3013">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1044.5" y="627.8989">HRT counter became 0?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1191.5" y="621.4966">yes</text><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="1112,718.8643,1124,730.8643,1112,742.8643,1100,730.8643,1112,718.8643" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="1280.5" y="626.0088"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="1290.5" y="647.1475">update QoS delay timer wrt. next message</text><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="1306.5,577.6064,1540.5,577.6064,1552.5,589.6064,1540.5,601.6064,1306.5,601.6064,1294.5,589.6064,1306.5,577.6064" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1427.5" y="611.8169">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="1306.5" y="593.4146">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1552.5" y="587.0122">no</text><polygon fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" points="1423.5,684.3799,1435.5,696.3799,1423.5,708.3799,1411.5,696.3799,1423.5,684.3799" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1utu8khfxyd7p)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1582.5" x="10" y="774.8643"/><rect fill="#FEFECE" filter="url(#f1utu8khfxyd7p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="753.25" y="800.8643"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="763.25" y="822.0029">unlock topic</text><path d="M588.25,853.2666 L588.25,878.3994 A0,0 0 0 0 588.25,878.3994 L770.25,878.3994 A0,0 0 0 0 770.25,878.3994 L770.25,871.2666 L790.25,865.833 L770.25,863.2666 L770.25,863.2666 L760.25,853.2666 L588.25,853.2666 A0,0 0 0 0 588.25,853.2666 " fill="#FBFB77" filter="url(#f1utu8khfxyd7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M760.25,853.2666 L760.25,863.2666 L770.25,863.2666 L760.25,853.2666 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="594.25" y="870.3335">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="647.25" y="870.3335">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="751.25" y="870.3335">.</text><ellipse cx="801.25" cy="865.833" fill="#FFFFFF" filter="url(#f1utu8khfxyd7p)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="801.25" cy="865.833" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M1602.5,398.7188 L1602.5,423.8516 A0,0 0 0 0 1602.5,423.8516 L1808.5,423.8516 A0,0 0 0 0 1808.5,423.8516 L1808.5,416.7188 L1828.5,411.2852 L1808.5,408.7188 L1808.5,408.7188 L1798.5,398.7188 L1602.5,398.7188 A0,0 0 0 0 1602.5,398.7188 " fill="#FBFB77" filter="url(#f1utu8khfxyd7p)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1798.5,398.7188 L1798.5,408.7188 L1808.5,408.7188 L1798.5,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="1608.5" y="415.7856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1661.5" y="415.7856">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1789.5" y="415.7856">.</text><ellipse cx="1839.5" cy="411.2852" fill="#FFFFFF" filter="url(#f1utu8khfxyd7p)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1839.5" 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="1316.375" x2="1316.375" y1="304.7188" y2="324.7188"/><polygon fill="#A80036" points="1312.375,314.7188,1316.375,324.7188,1320.375,314.7188,1316.375,318.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="432.6875" y2="452.6875"/><polygon fill="#A80036" points="797.25,442.6875,801.25,452.6875,805.25,442.6875,801.25,446.6875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="609.7549" y2="634.1572"/><polygon fill="#A80036" points="788,624.1572,792,634.1572,796,624.1572,792,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="923.5" x2="956" y1="597.7549" y2="597.7549"/><polygon fill="#A80036" points="952,641.1416,956,651.1416,960,641.1416,956,645.1416" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="956" y1="597.7549" y2="704.5283"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="956" x2="804" y1="704.5283" y2="704.5283"/><polygon fill="#A80036" points="814,700.5283,804,704.5283,814,708.5283,810,704.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="668.126" y2="692.5283"/><polygon fill="#A80036" points="788,682.5283,792,692.5283,796,682.5283,792,686.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="129.5,624.1572,133.5,634.1572,137.5,624.1572,133.5,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="325,624.1572,329,634.1572,333,624.1572,329,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="565.7549" y2="634.1572"/><polygon fill="#A80036" points="514.5,624.1572,518.5,634.1572,522.5,624.1572,518.5,628.1572" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="565.7549" y2="585.7549"/><polygon fill="#A80036" points="788,575.7549,792,585.7549,796,575.7549,792,579.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="133.5" x2="133.5" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="129.5,726.5283,133.5,736.5283,137.5,726.5283,133.5,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="329" x2="329" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="325,726.5283,329,736.5283,333,726.5283,329,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="518.5" x2="518.5" y1="668.126" y2="736.5283"/><polygon fill="#A80036" points="514.5,726.5283,518.5,736.5283,522.5,726.5283,518.5,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="716.5283" y2="736.5283"/><polygon fill="#A80036" points="788,726.5283,792,736.5283,796,726.5283,792,730.5283" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="636.0908" y2="660.4932"/><polygon fill="#A80036" points="1108,650.4932,1112,660.4932,1116,650.4932,1112,654.4932" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1191.5" x2="1230.5" y1="624.0908" y2="624.0908"/><polygon fill="#A80036" points="1226.5,667.4775,1230.5,677.4775,1234.5,667.4775,1230.5,671.4775" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1230.5" x2="1230.5" y1="624.0908" y2="730.8643"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1230.5" x2="1124" y1="730.8643" y2="730.8643"/><polygon fill="#A80036" points="1134,726.8643,1124,730.8643,1134,734.8643,1130,730.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="694.4619" y2="718.8643"/><polygon fill="#A80036" points="1108,708.8643,1112,718.8643,1116,708.8643,1112,712.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="577.0908" y2="612.0908"/><polygon fill="#A80036" points="1108,602.0908,1112,612.0908,1116,602.0908,1112,606.0908" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="601.6064" y2="626.0088"/><polygon fill="#A80036" points="1419.5,616.0088,1423.5,626.0088,1427.5,616.0088,1423.5,620.0088" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1552.5" x2="1576.5" y1="589.6064" y2="589.6064"/><polygon fill="#A80036" points="1572.5,632.9932,1576.5,642.9932,1580.5,632.9932,1576.5,636.9932" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1576.5" x2="1576.5" y1="589.6064" y2="696.3799"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1576.5" x2="1435.5" y1="696.3799" y2="696.3799"/><polygon fill="#A80036" points="1445.5,692.3799,1435.5,696.3799,1445.5,700.3799,1441.5,696.3799" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="659.9775" y2="684.3799"/><polygon fill="#A80036" points="1419.5,674.3799,1423.5,684.3799,1427.5,674.3799,1423.5,678.3799" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="512.6563" y2="559.7549"/><polygon fill="#A80036" points="485,549.7549,489,559.7549,493,549.7549,489,553.7549" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="512.6563" y2="543.1221"/><polygon fill="#A80036" points="1108,533.1221,1112,543.1221,1116,533.1221,1112,537.1221" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="512.6563" y2="577.6064"/><polygon fill="#A80036" points="1419.5,567.6064,1423.5,577.6064,1427.5,567.6064,1423.5,571.6064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="489" y1="742.5283" y2="774.8643"/><polygon fill="#A80036" points="485,764.8643,489,774.8643,493,764.8643,489,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1112" y1="742.8643" y2="774.8643"/><polygon fill="#A80036" points="1108,764.8643,1112,774.8643,1116,764.8643,1112,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1423.5" x2="1423.5" y1="708.3799" y2="774.8643"/><polygon fill="#A80036" points="1419.5,764.8643,1423.5,774.8643,1427.5,764.8643,1423.5,768.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="486.6563" y2="506.6563"/><polygon fill="#A80036" points="797.25,496.6563,801.25,506.6563,805.25,496.6563,801.25,500.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="780.8643" y2="800.8643"/><polygon fill="#A80036" points="797.25,790.8643,801.25,800.8643,805.25,790.8643,801.25,794.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="834.833" y2="854.833"/><polygon fill="#A80036" points="797.25,844.833,801.25,854.833,805.25,844.833,801.25,848.833" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1241.875" x2="801.25" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.25" x2="801.25" y1="376.7188" y2="398.7188"/><polygon fill="#A80036" points="797.25,388.7188,801.25,398.7188,805.25,388.7188,801.25,392.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1390.875" x2="1839.5" y1="376.7188" y2="376.7188"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1839.5" x2="1839.5" y1="376.7188" y2="400.2852"/><polygon fill="#A80036" points="1835.5,390.2852,1839.5,400.2852,1843.5,390.2852,1839.5,394.2852" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1316.375" x2="1316.375" y1="344.7188" y2="364.7188"/><polygon fill="#A80036" points="1312.375,354.7188,1316.375,364.7188,1320.375,354.7188,1316.375,358.7188" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9a32ada93c85a2de37bae5a43857d6cb]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtHrtSubscriberFetchNextMessage()\n |
5 | 5 |
|
6 | 6 |
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
7 | 12 |
note |
8 | 13 |
- - **subscriber** : urt_hrtsubscriber_t* - - |
9 | 14 |
The HRT subscriber that shall fetch the message. |
... | ... | |
28 | 33 |
:lock topic; |
29 | 34 |
:proceed to next message; |
30 | 35 |
fork |
31 |
|
|
32 |
partition "fetch message" { |
|
33 |
fork |
|
34 |
:update message pointer; |
|
35 |
fork again |
|
36 |
:copy timestamp of message; |
|
37 |
fork again |
|
38 |
:copy message payload; |
|
39 |
fork again |
|
40 |
if (Optional output argument ""latency"" given?) then (yes) |
|
41 |
:set ""latency"" value (now - message origin time); |
|
42 |
else (no) |
|
43 |
endif |
|
44 |
endfork |
|
45 |
} |
|
46 |
|
|
36 |
partition "fetch message" { |
|
37 |
fork |
|
38 |
:update message pointer; |
|
39 |
fork again |
|
40 |
:copy timestamp of message; |
|
41 |
fork again |
|
42 |
:copy message payload; |
|
43 |
fork again |
|
44 |
if (Optional output argument ""latency"" given?) then (yes) |
|
45 |
:set ""latency"" value (now - message origin time); |
|
46 |
else (no) |
|
47 |
endif |
|
48 |
endfork |
|
49 |
} |
|
47 | 50 |
fork again |
48 | 51 |
:decrement message's HRT counter; |
49 | 52 |
if (HRT counter became 0?) then (yes) |
doc/activitydiagrams/subscriber/urtHrtSubscriberFetchNextMessage.uml | ||
---|---|---|
25 | 25 |
|
26 | 26 |
title **µRtWare**\nurtHrtSubscriberFetchNextMessage()\n |
27 | 27 |
|
28 |
!include ./functions.iuml |
|
29 |
|
|
28 | 30 |
/'### PARAMETERS & RETURN ####################################################'/ |
29 | 31 |
|
30 | 32 |
note |
... | ... | |
52 | 54 |
:lock topic; |
53 | 55 |
:proceed to next message; |
54 | 56 |
fork |
55 |
!include fetchmessage.iuml
|
|
57 |
$fetch_message()
|
|
56 | 58 |
fork again |
57 | 59 |
:decrement message's HRT counter; |
58 | 60 |
if (HRT counter became 0?) then (yes) |
doc/activitydiagrams/subscriber/urtHrtSubscriberSubscribe.svg | ||
---|---|---|
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="1081px" preserveAspectRatio="none" style="width:3055px;height:1081px;" version="1.1" viewBox="0 0 3055 1081" width="3055px" zoomAndPan="magnify"><defs><filter height="300%" id="fnkdh20ze193k" 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="1482.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="247" x="1403.25" y="47.6611">urtHrtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1529.75" y="68.6143"/><path d="M600.5,72.8594 L600.5,440.9141 L1300.5,440.9141 L1300.5,82.8594 L1290.5,72.8594 L600.5,72.8594 " fill="#FBFB77" filter="url(#fnkdh20ze193k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1290.5,72.8594 L1290.5,82.8594 L1300.5,82.8594 L1290.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="837.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="841.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="841.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="923.5" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1063.5" x2="1300.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="327" x="606.5" y="105.0591">The HRT subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="606.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="686.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="718.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="884.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="888.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="888.5" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="929.5" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1016.5" x2="1300.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="606.5" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="606.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="686.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="718.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="851.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="855.5" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="855.5" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="934.5" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1049.5" x2="1300.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="606.5" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="642.5" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="606.5" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="606.5" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="606.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="656.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="692.5" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="873" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="877" y="255.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="877" y="255.8872">deadline</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="945" y="255.8872">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1028" x2="1300.5" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="606.5" y="271.52">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="325" x="606.5" y="286.6528">A value of 0 indicates that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="887.5" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="891.5" y="301.2856"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="35" x="891.5" y="301.2856">jitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="930.5" y="301.2856">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1013.5" x2="1300.5" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="606.5" y="316.9185">Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="606.5" y="332.0513">A value of 0 indicates that jitter is of no concern.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="10" x="606.5" y="347.1841">--</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="620.5" y="347.1841">rate</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="77" x="654.5" y="347.1841">: urt-delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="621" x="606.5" y="362.3169">Expected minimum rate of new messages (= mamximum time between consecutive messages).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="309" x="606.5" y="377.4497">A value of 0 indicates, that rate is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="1300.5" y1="385.5156" y2="385.5156"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="1300.5" y1="387.5156" y2="387.5156"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="879.5" y1="398.082" y2="398.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="883.5" y="402.0825"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="883.5" y="402.0825">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="932.5" y="402.0825">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1021.5" x2="1300.5" y1="398.082" y2="398.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="606.5" y="417.7153">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="659.5" y="417.7153">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="767.5" y="417.7153">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="606.5" y="432.8481">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="659.5" y="432.8481">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="791.5" y="432.8481">if the subscriber is already associated to a topic.</text><ellipse cx="950.5" cy="470.9141" fill="#000000" filter="url(#fnkdh20ze193k)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fnkdh20ze193k)" points="893,500.9141,1008,500.9141,1020,512.9141,1008,524.9141,893,524.9141,881,512.9141,893,500.9141" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="893" y="516.7222">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="861" y="510.3198">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1020" y="510.3198">no</text><path d="M10,534.9141 L10,560.0469 A0,0 0 0 0 10,560.0469 L216,560.0469 A0,0 0 0 0 216,560.0469 L216,552.9141 L236,547.4805 L216,544.9141 L216,544.9141 L206,534.9141 L10,534.9141 A0,0 0 0 0 10,534.9141 " fill="#FBFB77" filter="url(#fnkdh20ze193k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M206,534.9141 L206,544.9141 L216,544.9141 L206,534.9141 " 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="551.981">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="69" y="551.981">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="197" y="551.981">.</text><ellipse cx="247" cy="547.4805" fill="#FFFFFF" filter="url(#fnkdh20ze193k)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="247" cy="547.4805" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="592" x="1380" y="534.9141"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1394" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1404" y="582.0527">set topic</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="1497" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1507" y="582.0527">set deadline offset</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="135" x="1663" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="1673" y="582.0527">set maximum jitter</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="1826" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1836" y="582.0527">set expected rate</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="592" x="1380" y="614.8828"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1636" y="640.8828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1646" y="662.0215">lock topic</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2776.5" x="268" y="694.8516"/><rect fill="#FFFFFF" filter="url(#fnkdh20ze193k)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1168" x="280" y="767.3638"/><path d="M437,768.3638 L437,776.6606 L427,786.6606 L280,786.6606 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="283" y="781.3589">contribute messages</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="803.6606"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="304" y="829.6606"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="314" y="850.7993">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="806" y="829.6606"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="816" y="850.7993">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="883.6294"/><polygon fill="#FEFECE" filter="url(#fnkdh20ze193k)" points="794,720.8516,934,720.8516,946,732.8516,934,744.8516,794,744.8516,782,732.8516,794,720.8516" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="868" y="755.062">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="794" y="736.6597">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="946" y="730.2573">no</text><polygon fill="#FEFECE" filter="url(#fnkdh20ze193k)" points="864,921.6294,876,933.6294,864,945.6294,852,933.6294,864,921.6294" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="664" x="1498" y="795.5122"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1512" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1522" y="842.6509">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="297" x="1853" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="277" x="1863" y="842.6509">copy timestamp from topic's latest message</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="664" x="1498" y="875.481"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="2172" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="2182" y="842.6509">register to topic's event source</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="633.5" x="2399" y="795.5122"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="287" x="2411" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="2421" y="842.6509">insert self to topic's list of HRT subscribers</text><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="302" x="2718.5" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="282" x="2728.5" y="842.6509">increment topic's counter of HRT subscribers</text><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="633.5" x="2399" y="875.481"/><rect fill="#000000" filter="url(#fnkdh20ze193k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2776.5" x="268" y="965.6294"/><rect fill="#FEFECE" filter="url(#fnkdh20ze193k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1628" y="991.6294"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1638" y="1012.7681">unlock topic</text><path d="M1463,1044.0317 L1463,1069.1646 A0,0 0 0 0 1463,1069.1646 L1645,1069.1646 A0,0 0 0 0 1645,1069.1646 L1645,1062.0317 L1665,1056.5981 L1645,1054.0317 L1645,1054.0317 L1635,1044.0317 L1463,1044.0317 A0,0 0 0 0 1463,1044.0317 " fill="#FBFB77" filter="url(#fnkdh20ze193k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1635,1044.0317 L1635,1054.0317 L1645,1054.0317 L1635,1044.0317 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1469" y="1061.0986">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1522" y="1061.0986">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1626" y="1061.0986">.</text><ellipse cx="1676" cy="1056.5981" fill="#FFFFFF" filter="url(#fnkdh20ze193k)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1676" cy="1056.5981" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="950.5" x2="950.5" y1="440.9141" y2="460.9141"/><polygon fill="#A80036" points="946.5,450.9141,950.5,460.9141,954.5,450.9141,950.5,454.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.5" x2="1431.5" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1427.5,550.9141,1431.5,560.9141,1435.5,550.9141,1431.5,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1566" x2="1566" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1562,550.9141,1566,560.9141,1570,550.9141,1566,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1730.5" x2="1730.5" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1726.5,550.9141,1730.5,560.9141,1734.5,550.9141,1730.5,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1892" x2="1892" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1888,550.9141,1892,560.9141,1896,550.9141,1892,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.5" x2="1431.5" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1427.5,604.8828,1431.5,614.8828,1435.5,604.8828,1431.5,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1566" x2="1566" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1562,604.8828,1566,614.8828,1570,604.8828,1566,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1730.5" x2="1730.5" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1726.5,604.8828,1730.5,614.8828,1734.5,604.8828,1730.5,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1892" x2="1892" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1888,604.8828,1892,614.8828,1896,604.8828,1892,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="620.8828" y2="640.8828"/><polygon fill="#A80036" points="1672,630.8828,1676,640.8828,1680,630.8828,1676,634.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="809.6606" y2="829.6606"/><polygon fill="#A80036" points="537,819.6606,541,829.6606,545,819.6606,541,823.6606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="809.6606" y2="829.6606"/><polygon fill="#A80036" points="1111,819.6606,1115,829.6606,1119,819.6606,1115,823.6606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="863.6294" y2="883.6294"/><polygon fill="#A80036" points="537,873.6294,541,883.6294,545,873.6294,541,877.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="863.6294" y2="883.6294"/><polygon fill="#A80036" points="1111,873.6294,1115,883.6294,1119,873.6294,1115,877.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="744.8516" y2="803.6606"/><polygon fill="#A80036" points="860,793.6606,864,803.6606,868,793.6606,864,797.6606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="946" x2="1458" y1="732.8516" y2="732.8516"/><polygon fill="#A80036" points="1454,828.4966,1458,838.4966,1462,828.4966,1458,832.4966" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="1458" y1="732.8516" y2="933.6294"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="876" y1="933.6294" y2="933.6294"/><polygon fill="#A80036" points="886,929.6294,876,933.6294,886,937.6294,882,933.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="889.6294" y2="921.6294"/><polygon fill="#A80036" points="860,911.6294,864,921.6294,868,911.6294,864,915.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="1664.5,811.5122,1668.5,821.5122,1672.5,811.5122,1668.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2001.5" x2="2001.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="1997.5,811.5122,2001.5,821.5122,2005.5,811.5122,2001.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="1664.5,865.481,1668.5,875.481,1672.5,865.481,1668.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2001.5" x2="2001.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="1997.5,865.481,2001.5,875.481,2005.5,865.481,2001.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2554.5" x2="2554.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="2550.5,811.5122,2554.5,821.5122,2558.5,811.5122,2554.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2869.5" x2="2869.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="2865.5,811.5122,2869.5,821.5122,2873.5,811.5122,2869.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2554.5" x2="2554.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="2550.5,865.481,2554.5,875.481,2558.5,865.481,2554.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2869.5" x2="2869.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="2865.5,865.481,2869.5,875.481,2873.5,865.481,2869.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="700.8516" y2="720.8516"/><polygon fill="#A80036" points="860,710.8516,864,720.8516,868,710.8516,864,714.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="700.8516" y2="795.5122"/><polygon fill="#A80036" points="1827,785.5122,1831,795.5122,1835,785.5122,1831,789.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2280.5" x2="2280.5" y1="700.8516" y2="821.5122"/><polygon fill="#A80036" points="2276.5,811.5122,2280.5,821.5122,2284.5,811.5122,2280.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2712" x2="2712" y1="700.8516" y2="795.5122"/><polygon fill="#A80036" points="2708,785.5122,2712,795.5122,2716,785.5122,2712,789.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="945.6294" y2="965.6294"/><polygon fill="#A80036" points="860,955.6294,864,965.6294,868,955.6294,864,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="881.481" y2="965.6294"/><polygon fill="#A80036" points="1827,955.6294,1831,965.6294,1835,955.6294,1831,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2280.5" x2="2280.5" y1="855.481" y2="965.6294"/><polygon fill="#A80036" points="2276.5,955.6294,2280.5,965.6294,2284.5,955.6294,2280.5,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2712" x2="2712" y1="881.481" y2="965.6294"/><polygon fill="#A80036" points="2708,955.6294,2712,965.6294,2716,955.6294,2712,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="674.8516" y2="694.8516"/><polygon fill="#A80036" points="1672,684.8516,1676,694.8516,1680,684.8516,1676,688.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="971.6294" y2="991.6294"/><polygon fill="#A80036" points="1672,981.6294,1676,991.6294,1680,981.6294,1676,985.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="1025.5981" y2="1045.5981"/><polygon fill="#A80036" points="1672,1035.5981,1676,1045.5981,1680,1035.5981,1676,1039.5981" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="881" x2="247" y1="512.9141" y2="512.9141"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247" x2="247" y1="512.9141" y2="536.4805"/><polygon fill="#A80036" points="243,526.4805,247,536.4805,251,526.4805,247,530.4805" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1020" x2="1676" y1="512.9141" y2="512.9141"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="512.9141" y2="534.9141"/><polygon fill="#A80036" points="1672,524.9141,1676,534.9141,1680,524.9141,1676,528.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="950.5" x2="950.5" y1="480.9141" y2="500.9141"/><polygon fill="#A80036" points="946.5,490.9141,950.5,500.9141,954.5,490.9141,950.5,494.9141" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[05ea0b8d1b8acbc1342e2094f7f7a925]
|
|
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="1081px" preserveAspectRatio="none" style="width:3055px;height:1081px;" version="1.1" viewBox="0 0 3055 1081" width="3055px" zoomAndPan="magnify"><defs><filter height="300%" id="f4iggha7yinpv" 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="1482.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="247" x="1403.25" y="47.6611">urtHrtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1529.75" y="68.6143"/><path d="M600.5,72.8594 L600.5,440.9141 L1300.5,440.9141 L1300.5,82.8594 L1290.5,72.8594 L600.5,72.8594 " fill="#FBFB77" filter="url(#f4iggha7yinpv)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1290.5,72.8594 L1290.5,82.8594 L1300.5,82.8594 L1290.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="837.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="841.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="841.5" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="923.5" y="89.4263">: urt_hrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1063.5" x2="1300.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="327" x="606.5" y="105.0591">The HRT subscriber which shall subscribe to a topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="606.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="686.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="718.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="884.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="888.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="888.5" y="134.8247">topic</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="929.5" y="134.8247">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1016.5" x2="1300.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="606.5" y="150.4575">The topic to subscribe to.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="606.5" y="165.5903">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="686.5" y="165.5903">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="718.5" y="165.5903">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="851.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="855.5" y="180.2231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="855.5" y="180.2231">messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="934.5" y="180.2231">: urt_message_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1049.5" x2="1300.5" y1="176.2227" y2="176.2227"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="606.5" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="346" x="642.5" y="195.856">terminated list of messages to contribute to the topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="329" x="606.5" y="210.9888">Messages must not be associated to another topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="430" x="606.5" y="226.1216">Once a message has been contributed, it cannot be removed later.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="606.5" y="241.2544">May be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="656.5" y="241.2544">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="692.5" y="241.2544">(no messages to contribute).</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="873" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="877" y="255.8872"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="877" y="255.8872">deadline</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="945" y="255.8872">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1028" x2="1300.5" y1="251.8867" y2="251.8867"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="606.5" y="271.52">Maximum latency to consume messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="325" x="606.5" y="286.6528">A value of 0 indicates that latency is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="887.5" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="891.5" y="301.2856"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="35" x="891.5" y="301.2856">jitter</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="930.5" y="301.2856">: urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1013.5" x2="1300.5" y1="297.2852" y2="297.2852"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="679" x="606.5" y="316.9185">Maximum allowed jitter (difference between maximum and minimum latency) when consuming messages.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="606.5" y="332.0513">A value of 0 indicates that jitter is of no concern.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="10" x="606.5" y="347.1841">--</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="620.5" y="347.1841">rate</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="77" x="654.5" y="347.1841">: urt-delay_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="621" x="606.5" y="362.3169">Expected minimum rate of new messages (= mamximum time between consecutive messages).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="309" x="606.5" y="377.4497">A value of 0 indicates, that rate is of no concern.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="1300.5" y1="385.5156" y2="385.5156"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="1300.5" y1="387.5156" y2="387.5156"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="600.5" x2="879.5" y1="398.082" y2="398.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="883.5" y="402.0825"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="883.5" y="402.0825">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="932.5" y="402.0825">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1021.5" x2="1300.5" y1="398.082" y2="398.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="606.5" y="417.7153">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="659.5" y="417.7153">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="767.5" y="417.7153">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="606.5" y="432.8481">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="659.5" y="432.8481">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="308" x="791.5" y="432.8481">if the subscriber is already associated to a topic.</text><ellipse cx="950.5" cy="470.9141" fill="#000000" filter="url(#f4iggha7yinpv)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f4iggha7yinpv)" points="893,500.9141,1008,500.9141,1020,512.9141,1008,524.9141,893,524.9141,881,512.9141,893,500.9141" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="893" y="516.7222">Is topic already set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="861" y="510.3198">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1020" y="510.3198">no</text><path d="M10,534.9141 L10,560.0469 A0,0 0 0 0 10,560.0469 L216,560.0469 A0,0 0 0 0 216,560.0469 L216,552.9141 L236,547.4805 L216,544.9141 L216,544.9141 L206,534.9141 L10,534.9141 A0,0 0 0 0 10,534.9141 " fill="#FBFB77" filter="url(#f4iggha7yinpv)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M206,534.9141 L206,544.9141 L216,544.9141 L206,534.9141 " 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="551.981">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="69" y="551.981">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="197" y="551.981">.</text><ellipse cx="247" cy="547.4805" fill="#FFFFFF" filter="url(#f4iggha7yinpv)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="247" cy="547.4805" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#f4iggha7yinpv)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="592" x="1380" y="534.9141"/><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="1394" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="1404" y="582.0527">set topic</text><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="1497" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1507" y="582.0527">set deadline offset</text><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="135" x="1663" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="1673" y="582.0527">set maximum jitter</text><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="1826" y="560.9141"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1836" y="582.0527">set expected rate</text><rect fill="#000000" filter="url(#f4iggha7yinpv)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="592" x="1380" y="614.8828"/><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1636" y="640.8828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1646" y="662.0215">lock topic</text><rect fill="#000000" filter="url(#f4iggha7yinpv)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2776.5" x="268" y="694.8516"/><rect fill="#FFFFFF" filter="url(#f4iggha7yinpv)" height="134.2656" style="stroke: #000000; stroke-width: 2.0;" width="1168" x="280" y="767.3638"/><path d="M437,768.3638 L437,776.6606 L427,786.6606 L280,786.6606 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="283" y="781.3589">contribute messages</text><rect fill="#000000" filter="url(#f4iggha7yinpv)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="803.6606"/><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="304" y="829.6606"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="454" x="314" y="850.7993">set next pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="618" x="806" y="829.6606"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="598" x="816" y="850.7993">set next pointer of last message to contribute to the message after the topic's latest message</text><rect fill="#000000" filter="url(#f4iggha7yinpv)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1148" x="290" y="883.6294"/><polygon fill="#FEFECE" filter="url(#f4iggha7yinpv)" points="794,720.8516,934,720.8516,946,732.8516,934,744.8516,794,744.8516,782,732.8516,794,720.8516" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="868" y="755.062">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="794" y="736.6597">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="946" y="730.2573">no</text><polygon fill="#FEFECE" filter="url(#f4iggha7yinpv)" points="864,921.6294,876,933.6294,864,945.6294,852,933.6294,864,921.6294" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f4iggha7yinpv)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="664" x="1498" y="795.5122"/><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="1512" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="1522" y="842.6509">set message pointer to topic's latest message</text><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="297" x="1853" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="277" x="1863" y="842.6509">copy timestamp from topic's latest message</text><rect fill="#000000" filter="url(#f4iggha7yinpv)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="664" x="1498" y="875.481"/><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="217" x="2172" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="197" x="2182" y="842.6509">register to topic's event source</text><rect fill="#000000" filter="url(#f4iggha7yinpv)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="633.5" x="2399" y="795.5122"/><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="287" x="2411" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="2421" y="842.6509">insert self to topic's list of HRT subscribers</text><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="302" x="2718.5" y="821.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="282" x="2728.5" y="842.6509">increment topic's counter of HRT subscribers</text><rect fill="#000000" filter="url(#f4iggha7yinpv)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="633.5" x="2399" y="875.481"/><rect fill="#000000" filter="url(#f4iggha7yinpv)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2776.5" x="268" y="965.6294"/><rect fill="#FEFECE" filter="url(#f4iggha7yinpv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1628" y="991.6294"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1638" y="1012.7681">unlock topic</text><path d="M1463,1044.0317 L1463,1069.1646 A0,0 0 0 0 1463,1069.1646 L1645,1069.1646 A0,0 0 0 0 1645,1069.1646 L1645,1062.0317 L1665,1056.5981 L1645,1054.0317 L1645,1054.0317 L1635,1044.0317 L1463,1044.0317 A0,0 0 0 0 1463,1044.0317 " fill="#FBFB77" filter="url(#f4iggha7yinpv)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1635,1044.0317 L1635,1054.0317 L1645,1054.0317 L1635,1044.0317 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="1469" y="1061.0986">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="1522" y="1061.0986">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1626" y="1061.0986">.</text><ellipse cx="1676" cy="1056.5981" fill="#FFFFFF" filter="url(#f4iggha7yinpv)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1676" cy="1056.5981" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="950.5" x2="950.5" y1="440.9141" y2="460.9141"/><polygon fill="#A80036" points="946.5,450.9141,950.5,460.9141,954.5,450.9141,950.5,454.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.5" x2="1431.5" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1427.5,550.9141,1431.5,560.9141,1435.5,550.9141,1431.5,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1566" x2="1566" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1562,550.9141,1566,560.9141,1570,550.9141,1566,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1730.5" x2="1730.5" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1726.5,550.9141,1730.5,560.9141,1734.5,550.9141,1730.5,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1892" x2="1892" y1="540.9141" y2="560.9141"/><polygon fill="#A80036" points="1888,550.9141,1892,560.9141,1896,550.9141,1892,554.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.5" x2="1431.5" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1427.5,604.8828,1431.5,614.8828,1435.5,604.8828,1431.5,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1566" x2="1566" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1562,604.8828,1566,614.8828,1570,604.8828,1566,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1730.5" x2="1730.5" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1726.5,604.8828,1730.5,614.8828,1734.5,604.8828,1730.5,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1892" x2="1892" y1="594.8828" y2="614.8828"/><polygon fill="#A80036" points="1888,604.8828,1892,614.8828,1896,604.8828,1892,608.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="620.8828" y2="640.8828"/><polygon fill="#A80036" points="1672,630.8828,1676,640.8828,1680,630.8828,1676,634.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="809.6606" y2="829.6606"/><polygon fill="#A80036" points="537,819.6606,541,829.6606,545,819.6606,541,823.6606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="809.6606" y2="829.6606"/><polygon fill="#A80036" points="1111,819.6606,1115,829.6606,1119,819.6606,1115,823.6606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="541" y1="863.6294" y2="883.6294"/><polygon fill="#A80036" points="537,873.6294,541,883.6294,545,873.6294,541,877.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1115" x2="1115" y1="863.6294" y2="883.6294"/><polygon fill="#A80036" points="1111,873.6294,1115,883.6294,1119,873.6294,1115,877.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="744.8516" y2="803.6606"/><polygon fill="#A80036" points="860,793.6606,864,803.6606,868,793.6606,864,797.6606" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="946" x2="1458" y1="732.8516" y2="732.8516"/><polygon fill="#A80036" points="1454,828.4966,1458,838.4966,1462,828.4966,1458,832.4966" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="1458" y1="732.8516" y2="933.6294"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1458" x2="876" y1="933.6294" y2="933.6294"/><polygon fill="#A80036" points="886,929.6294,876,933.6294,886,937.6294,882,933.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="889.6294" y2="921.6294"/><polygon fill="#A80036" points="860,911.6294,864,921.6294,868,911.6294,864,915.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="1664.5,811.5122,1668.5,821.5122,1672.5,811.5122,1668.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2001.5" x2="2001.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="1997.5,811.5122,2001.5,821.5122,2005.5,811.5122,2001.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1668.5" x2="1668.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="1664.5,865.481,1668.5,875.481,1672.5,865.481,1668.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2001.5" x2="2001.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="1997.5,865.481,2001.5,875.481,2005.5,865.481,2001.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2554.5" x2="2554.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="2550.5,811.5122,2554.5,821.5122,2558.5,811.5122,2554.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2869.5" x2="2869.5" y1="801.5122" y2="821.5122"/><polygon fill="#A80036" points="2865.5,811.5122,2869.5,821.5122,2873.5,811.5122,2869.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2554.5" x2="2554.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="2550.5,865.481,2554.5,875.481,2558.5,865.481,2554.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2869.5" x2="2869.5" y1="855.481" y2="875.481"/><polygon fill="#A80036" points="2865.5,865.481,2869.5,875.481,2873.5,865.481,2869.5,869.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="700.8516" y2="720.8516"/><polygon fill="#A80036" points="860,710.8516,864,720.8516,868,710.8516,864,714.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="700.8516" y2="795.5122"/><polygon fill="#A80036" points="1827,785.5122,1831,795.5122,1835,785.5122,1831,789.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2280.5" x2="2280.5" y1="700.8516" y2="821.5122"/><polygon fill="#A80036" points="2276.5,811.5122,2280.5,821.5122,2284.5,811.5122,2280.5,815.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2712" x2="2712" y1="700.8516" y2="795.5122"/><polygon fill="#A80036" points="2708,785.5122,2712,795.5122,2716,785.5122,2712,789.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="864" x2="864" y1="945.6294" y2="965.6294"/><polygon fill="#A80036" points="860,955.6294,864,965.6294,868,955.6294,864,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1831" x2="1831" y1="881.481" y2="965.6294"/><polygon fill="#A80036" points="1827,955.6294,1831,965.6294,1835,955.6294,1831,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2280.5" x2="2280.5" y1="855.481" y2="965.6294"/><polygon fill="#A80036" points="2276.5,955.6294,2280.5,965.6294,2284.5,955.6294,2280.5,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2712" x2="2712" y1="881.481" y2="965.6294"/><polygon fill="#A80036" points="2708,955.6294,2712,965.6294,2716,955.6294,2712,959.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="674.8516" y2="694.8516"/><polygon fill="#A80036" points="1672,684.8516,1676,694.8516,1680,684.8516,1676,688.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="971.6294" y2="991.6294"/><polygon fill="#A80036" points="1672,981.6294,1676,991.6294,1680,981.6294,1676,985.6294" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="1025.5981" y2="1045.5981"/><polygon fill="#A80036" points="1672,1035.5981,1676,1045.5981,1680,1035.5981,1676,1039.5981" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="881" x2="247" y1="512.9141" y2="512.9141"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="247" x2="247" y1="512.9141" y2="536.4805"/><polygon fill="#A80036" points="243,526.4805,247,536.4805,251,526.4805,247,530.4805" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1020" x2="1676" y1="512.9141" y2="512.9141"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1676" x2="1676" y1="512.9141" y2="534.9141"/><polygon fill="#A80036" points="1672,524.9141,1676,534.9141,1680,524.9141,1676,528.9141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="950.5" x2="950.5" y1="480.9141" y2="500.9141"/><polygon fill="#A80036" points="946.5,490.9141,950.5,500.9141,954.5,490.9141,950.5,494.9141" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[c8f63816b1db501b954d0752706889fe]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtHrtSubscriberSubscribe()\n |
5 | 5 |
|
6 | 6 |
|
7 |
|
|
8 |
|
|
9 |
|
|
7 | 10 |
note |
8 | 11 |
- - **subscriber** : urt_hrtsubscriber_t* - - |
9 | 12 |
The HRT subscriber which shall subscribe to a topic. |
... | ... | |
51 | 54 |
:lock topic; |
52 | 55 |
fork |
53 | 56 |
if (Messages to contribute?) then (yes) |
54 |
|
|
55 |
partition "contribute messages" { |
|
56 |
fork |
|
57 |
:set next pointer of topic's latest message to first message to contribute; |
|
58 |
fork again |
|
59 |
:set next pointer of last message to contribute to the message after the topic's latest message; |
|
60 |
endfork |
|
61 |
} |
|
62 |
|
|
57 |
partition "contribute messages" { |
|
58 |
fork |
|
59 |
:set next pointer of topic's latest message to first message to contribute; |
|
60 |
fork again |
|
61 |
:set next pointer of last message to contribute to the message after the topic's latest message; |
|
62 |
endfork |
|
63 |
} |
|
63 | 64 |
else (no) |
64 | 65 |
endif |
65 | 66 |
fork again |
doc/activitydiagrams/subscriber/urtHrtSubscriberSubscribe.uml | ||
---|---|---|
25 | 25 |
|
26 | 26 |
title **µRtWare**\nurtHrtSubscriberSubscribe()\n |
27 | 27 |
|
28 |
!include ../functions.iuml |
|
29 |
|
|
28 | 30 |
/'### PARAMETERS & RETURN ####################################################'/ |
29 | 31 |
|
30 | 32 |
note |
... | ... | |
75 | 77 |
:lock topic; |
76 | 78 |
fork |
77 | 79 |
if (Messages to contribute?) then (yes) |
78 |
!include ../contributemessages.iuml
|
|
80 |
$contribute_messages()
|
|
79 | 81 |
else (no) |
80 | 82 |
endif |
81 | 83 |
fork again |
doc/activitydiagrams/subscriber/urtNrtSubscriberFetchLatestMessage.svg | ||
---|---|---|
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="fvbyyh65aotbg" 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="338" x="470.5" y="47.6611">urtNrtSubscriberFetchLatestMessage()</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(#fvbyyh65aotbg)" 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" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="766" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="766" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="848" y="89.4263">: urt_nrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="988" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="637" y="105.0591">The NRT 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(#fvbyyh65aotbg)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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(#fvbyyh65aotbg)" 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=[9338bb38111e7d0e17815aa538a75e04]
|
|
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="f1hw6rsuz7hl8p" 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="338" x="470.5" y="47.6611">urtNrtSubscriberFetchLatestMessage()</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(#f1hw6rsuz7hl8p)" 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" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="766" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="766" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="848" y="89.4263">: urt_nrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="988" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="637" y="105.0591">The NRT 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(#f1hw6rsuz7hl8p)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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(#f1hw6rsuz7hl8p)" 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=[3cbc5e89d764c184543133de2e08462c]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtNrtSubscriberFetchLatestMessage()\n |
5 | 5 |
|
6 | 6 |
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
7 | 12 |
note |
8 | 13 |
- - **subscriber** : urt_nrtsubscriber_t* - - |
9 | 14 |
The NRT subscriber that shall fetch the message. |
... | ... | |
26 | 31 |
start |
27 | 32 |
if (Associated to a topic?) then (yes) |
28 | 33 |
: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 |
|
|
34 |
partition "find latest message" { |
|
35 |
:access last read message; |
|
36 |
while (Timestamp of next message is younger?) is (yes) |
|
37 |
:proceed to next message; |
|
38 |
endwhile (no) |
|
39 |
} |
|
40 |
partition "fetch message" { |
|
41 |
fork |
|
42 |
:update message pointer; |
|
43 |
fork again |
|
44 |
:copy timestamp of message; |
|
45 |
fork again |
|
46 |
:copy message payload; |
|
47 |
fork again |
|
48 |
if (Optional output argument ""latency"" given?) then (yes) |
|
49 |
:set ""latency"" value (now - message origin time); |
|
50 |
else (no) |
|
51 |
endif |
|
52 |
endfork |
|
53 |
} |
|
53 | 54 |
:unlock topic; |
54 | 55 |
stop |
55 | 56 |
note |
doc/activitydiagrams/subscriber/urtNrtSubscriberFetchLatestMessage.uml | ||
---|---|---|
25 | 25 |
|
26 | 26 |
title **µRtWare**\nurtNrtSubscriberFetchLatestMessage()\n |
27 | 27 |
|
28 |
!include ./functions.iuml |
|
29 |
|
|
28 | 30 |
/'### PARAMETERS & RETURN ####################################################'/ |
29 | 31 |
|
30 | 32 |
note |
... | ... | |
50 | 52 |
start |
51 | 53 |
if (Associated to a topic?) then (yes) |
52 | 54 |
:lock topic; |
53 |
!include findlatestmessage.iuml
|
|
54 |
!include fetchmessage.iuml
|
|
55 |
$find_latest_message()
|
|
56 |
$fetch_message()
|
|
55 | 57 |
:unlock topic; |
56 | 58 |
stop |
57 | 59 |
note |
doc/activitydiagrams/subscriber/urtNrtSubscriberFetchNextMessage.svg | ||
---|---|---|
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="1098px" preserveAspectRatio="none" style="width:1281px;height:1098px;" version="1.1" viewBox="0 0 1281 1098" width="1281px" zoomAndPan="magnify"><defs><filter height="300%" id="f3xl0a4xh0ckd" 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="328" x="475.5" y="47.6611">urtNrtSubscriberFetchNextMessage()</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(#f3xl0a4xh0ckd)" 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" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="766" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="766" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="848" y="89.4263">: urt_nrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="988" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="637" y="105.0591">The NRT 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(#f3xl0a4xh0ckd)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" 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(#f3xl0a4xh0ckd)" 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(#f3xl0a4xh0ckd)" height="307.7651" style="stroke: #000000; stroke-width: 2.0;" width="365.5" x="322" y="443.4893"/><path d="M506,444.4893 L506,452.7861 L496,462.7861 L322,462.7861 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="325" y="457.4844">find oldest valid message</text><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="585.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="606.4556">proceed to next message</text><polygon fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" points="378,528.1885,612,528.1885,624,540.1885,612,552.1885,378,552.1885,366,540.1885,378,528.1885" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="499" y="562.3989">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="378" y="543.9966">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="352" y="537.5942">no</text><polygon fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" points="345.5,479.7861,644.5,479.7861,656.5,491.7861,644.5,503.7861,345.5,503.7861,333.5,491.7861,345.5,479.7861" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="499" y="513.9966">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="299" x="345.5" y="495.5942">Timestamp of last read message euqals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="656.5" y="489.1919">yes</text><polygon fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" points="495,661.2856,507,673.2856,495,685.2856,483,673.2856,495,661.2856" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="705.2856"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="726.4243">proceed to next message</text><rect fill="#FFFFFF" filter="url(#f3xl0a4xh0ckd)" height="226.668" style="stroke: #000000; stroke-width: 2.0;" width="988" x="10" y="762.0562"/><path d="M123,763.0562 L123,771.353 L113,781.353 L10,781.353 " 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="776.0513">fetch message</text><rect fill="#000000" filter="url(#f3xl0a4xh0ckd)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="798.353"/><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="34" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="44" y="893.894">update message pointer</text><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="219" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="229" y="893.894">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="443" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="453" y="893.894">copy message payload</text><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="644" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="654" y="893.894">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="678" y="893.894">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="731" y="893.894">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" points="678.5,824.353,917.5,824.353,929.5,836.353,917.5,848.353,678.5,848.353,666.5,836.353,678.5,824.353" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="802" y="858.5635">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="678.5" y="840.1611">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="828.5" y="840.1611">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="881.5" y="840.1611">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="929.5" y="833.7588">no</text><polygon fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" points="798,926.7241,810,938.7241,798,950.7241,786,938.7241,798,926.7241" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f3xl0a4xh0ckd)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="970.7241"/><rect fill="#FEFECE" filter="url(#f3xl0a4xh0ckd)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="447" y="1008.7241"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="457" y="1029.8628">unlock topic</text><path d="M282,1061.1265 L282,1086.2593 A0,0 0 0 0 282,1086.2593 L464,1086.2593 A0,0 0 0 0 464,1086.2593 L464,1079.1265 L484,1073.6929 L464,1071.1265 L464,1071.1265 L454,1061.1265 L282,1061.1265 A0,0 0 0 0 282,1061.1265 " fill="#FBFB77" filter="url(#f3xl0a4xh0ckd)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454,1061.1265 L454,1071.1265 L464,1071.1265 L454,1061.1265 " 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="1078.1934">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="341" y="1078.1934">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="445" y="1078.1934">.</text><ellipse cx="495" cy="1073.6929" fill="#FFFFFF" filter="url(#f3xl0a4xh0ckd)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="495" cy="1073.6929" 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(#f3xl0a4xh0ckd)" 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(#f3xl0a4xh0ckd)" 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="552.1885" y2="585.3169"/><polygon fill="#A80036" points="491,575.3169,495,585.3169,499,575.3169,495,579.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="619.2856" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="636" y1="629.2856" y2="629.2856"/><polygon fill="#A80036" points="632,593.8989,636,583.8989,640,593.8989,636,589.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="636" y1="540.1885" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="624" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="634,536.1885,624,540.1885,634,544.1885,630,540.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="354" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="350,579.8989,354,589.8989,358,579.8989,354,583.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="540.1885" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="495" y1="641.2856" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="641.2856" y2="661.2856"/><polygon fill="#A80036" points="491,651.2856,495,661.2856,499,651.2856,495,655.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="503.7861" y2="528.1885"/><polygon fill="#A80036" points="491,518.1885,495,528.1885,499,518.1885,495,522.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656.5" x2="668.5" y1="491.7861" y2="491.7861"/><polygon fill="#A80036" points="664.5,573.8989,668.5,583.8989,672.5,573.8989,668.5,577.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="668.5" y1="491.7861" y2="673.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="507" y1="673.2856" y2="673.2856"/><polygon fill="#A80036" points="517,669.2856,507,673.2856,517,677.2856,513,673.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="685.2856" y2="705.2856"/><polygon fill="#A80036" points="491,695.2856,495,705.2856,499,695.2856,495,699.2856" 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="848.353" y2="872.7554"/><polygon fill="#A80036" points="794,862.7554,798,872.7554,802,862.7554,798,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="929.5" x2="962" y1="836.353" y2="836.353"/><polygon fill="#A80036" points="958,879.7397,962,889.7397,966,879.7397,962,883.7397" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="962" y1="836.353" y2="938.7241"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="810" y1="938.7241" y2="938.7241"/><polygon fill="#A80036" points="820,934.7241,810,938.7241,820,942.7241,816,938.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="906.7241" y2="926.7241"/><polygon fill="#A80036" points="794,916.7241,798,926.7241,802,916.7241,798,920.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="117.5,862.7554,121.5,872.7554,125.5,862.7554,121.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="313,862.7554,317,872.7554,321,862.7554,317,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="520.5,862.7554,524.5,872.7554,528.5,862.7554,524.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="804.353" y2="824.353"/><polygon fill="#A80036" points="794,814.353,798,824.353,802,814.353,798,818.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="117.5,960.7241,121.5,970.7241,125.5,960.7241,121.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="313,960.7241,317,970.7241,321,960.7241,317,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="520.5,960.7241,524.5,970.7241,528.5,960.7241,524.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="950.7241" y2="970.7241"/><polygon fill="#A80036" points="794,960.7241,798,970.7241,802,960.7241,798,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="739.2544" y2="798.353"/><polygon fill="#A80036" points="491,788.353,495,798.353,499,788.353,495,792.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="976.7241" y2="1008.7241"/><polygon fill="#A80036" points="491,998.7241,495,1008.7241,499,998.7241,495,1002.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="1042.6929" y2="1062.6929"/><polygon fill="#A80036" points="491,1052.6929,495,1062.6929,499,1052.6929,495,1056.6929" 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=[6b83aa3cffa582beba3a19fba35340cf]
|
|
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="1098px" preserveAspectRatio="none" style="width:1281px;height:1098px;" version="1.1" viewBox="0 0 1281 1098" width="1281px" zoomAndPan="magnify"><defs><filter height="300%" id="ferp6vel2a26e" 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="328" x="475.5" y="47.6611">urtNrtSubscriberFetchNextMessage()</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(#ferp6vel2a26e)" 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" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="766" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="78" x="766" y="89.4263">subscriber</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="848" y="89.4263">: urt_nrtsubscriber_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="988" x2="1119" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="637" y="105.0591">The NRT 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(#ferp6vel2a26e)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#ferp6vel2a26e)" 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(#ferp6vel2a26e)" 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(#ferp6vel2a26e)" height="307.7651" style="stroke: #000000; stroke-width: 2.0;" width="365.5" x="322" y="443.4893"/><path d="M506,444.4893 L506,452.7861 L496,462.7861 L322,462.7861 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="325" y="457.4844">find oldest valid message</text><rect fill="#FEFECE" filter="url(#ferp6vel2a26e)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="585.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="606.4556">proceed to next message</text><polygon fill="#FEFECE" filter="url(#ferp6vel2a26e)" points="378,528.1885,612,528.1885,624,540.1885,612,552.1885,378,552.1885,366,540.1885,378,528.1885" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="499" y="562.3989">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="234" x="378" y="543.9966">Timestamp of next message is younger?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="352" y="537.5942">no</text><polygon fill="#FEFECE" filter="url(#ferp6vel2a26e)" points="345.5,479.7861,644.5,479.7861,656.5,491.7861,644.5,503.7861,345.5,503.7861,333.5,491.7861,345.5,479.7861" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="499" y="513.9966">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="299" x="345.5" y="495.5942">Timestamp of last read message euqals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="656.5" y="489.1919">yes</text><polygon fill="#FEFECE" filter="url(#ferp6vel2a26e)" points="495,661.2856,507,673.2856,495,685.2856,483,673.2856,495,661.2856" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#ferp6vel2a26e)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="404.5" y="705.2856"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="161" x="414.5" y="726.4243">proceed to next message</text><rect fill="#FFFFFF" filter="url(#ferp6vel2a26e)" height="226.668" style="stroke: #000000; stroke-width: 2.0;" width="988" x="10" y="762.0562"/><path d="M123,763.0562 L123,771.353 L113,781.353 L10,781.353 " 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="776.0513">fetch message</text><rect fill="#000000" filter="url(#ferp6vel2a26e)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="798.353"/><rect fill="#FEFECE" filter="url(#ferp6vel2a26e)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="34" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="44" y="893.894">update message pointer</text><rect fill="#FEFECE" filter="url(#ferp6vel2a26e)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="219" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="229" y="893.894">copy timestamp of message</text><rect fill="#FEFECE" filter="url(#ferp6vel2a26e)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="443" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="453" y="893.894">copy message payload</text><rect fill="#FEFECE" filter="url(#ferp6vel2a26e)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="308" x="644" y="872.7554"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="654" y="893.894">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="678" y="893.894">latency</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="731" y="893.894">value (now - message origin time)</text><polygon fill="#FEFECE" filter="url(#ferp6vel2a26e)" points="678.5,824.353,917.5,824.353,929.5,836.353,917.5,848.353,678.5,848.353,666.5,836.353,678.5,824.353" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="802" y="858.5635">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="678.5" y="840.1611">Optional output argument</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="828.5" y="840.1611">latency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="881.5" y="840.1611">given?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="929.5" y="833.7588">no</text><polygon fill="#FEFECE" filter="url(#ferp6vel2a26e)" points="798,926.7241,810,938.7241,798,950.7241,786,938.7241,798,926.7241" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#ferp6vel2a26e)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="968" x="20" y="970.7241"/><rect fill="#FEFECE" filter="url(#ferp6vel2a26e)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="447" y="1008.7241"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="457" y="1029.8628">unlock topic</text><path d="M282,1061.1265 L282,1086.2593 A0,0 0 0 0 282,1086.2593 L464,1086.2593 A0,0 0 0 0 464,1086.2593 L464,1079.1265 L484,1073.6929 L464,1071.1265 L464,1071.1265 L454,1061.1265 L282,1061.1265 A0,0 0 0 0 282,1061.1265 " fill="#FBFB77" filter="url(#ferp6vel2a26e)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454,1061.1265 L454,1071.1265 L464,1071.1265 L454,1061.1265 " 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="1078.1934">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="341" y="1078.1934">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="445" y="1078.1934">.</text><ellipse cx="495" cy="1073.6929" fill="#FFFFFF" filter="url(#ferp6vel2a26e)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="495" cy="1073.6929" 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(#ferp6vel2a26e)" 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(#ferp6vel2a26e)" 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="552.1885" y2="585.3169"/><polygon fill="#A80036" points="491,575.3169,495,585.3169,499,575.3169,495,579.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="619.2856" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="636" y1="629.2856" y2="629.2856"/><polygon fill="#A80036" points="632,593.8989,636,583.8989,640,593.8989,636,589.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="636" y1="540.1885" y2="629.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="636" x2="624" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="634,536.1885,624,540.1885,634,544.1885,630,540.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366" x2="354" y1="540.1885" y2="540.1885"/><polygon fill="#A80036" points="350,579.8989,354,589.8989,358,579.8989,354,583.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="354" y1="540.1885" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="354" x2="495" y1="641.2856" y2="641.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="641.2856" y2="661.2856"/><polygon fill="#A80036" points="491,651.2856,495,661.2856,499,651.2856,495,655.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="503.7861" y2="528.1885"/><polygon fill="#A80036" points="491,518.1885,495,528.1885,499,518.1885,495,522.1885" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="656.5" x2="668.5" y1="491.7861" y2="491.7861"/><polygon fill="#A80036" points="664.5,573.8989,668.5,583.8989,672.5,573.8989,668.5,577.8989" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="668.5" y1="491.7861" y2="673.2856"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="668.5" x2="507" y1="673.2856" y2="673.2856"/><polygon fill="#A80036" points="517,669.2856,507,673.2856,517,677.2856,513,673.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="685.2856" y2="705.2856"/><polygon fill="#A80036" points="491,695.2856,495,705.2856,499,695.2856,495,699.2856" 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="848.353" y2="872.7554"/><polygon fill="#A80036" points="794,862.7554,798,872.7554,802,862.7554,798,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="929.5" x2="962" y1="836.353" y2="836.353"/><polygon fill="#A80036" points="958,879.7397,962,889.7397,966,879.7397,962,883.7397" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="962" y1="836.353" y2="938.7241"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="962" x2="810" y1="938.7241" y2="938.7241"/><polygon fill="#A80036" points="820,934.7241,810,938.7241,820,942.7241,816,938.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="906.7241" y2="926.7241"/><polygon fill="#A80036" points="794,916.7241,798,926.7241,802,916.7241,798,920.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="117.5,862.7554,121.5,872.7554,125.5,862.7554,121.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="313,862.7554,317,872.7554,321,862.7554,317,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="804.353" y2="872.7554"/><polygon fill="#A80036" points="520.5,862.7554,524.5,872.7554,528.5,862.7554,524.5,866.7554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="804.353" y2="824.353"/><polygon fill="#A80036" points="794,814.353,798,824.353,802,814.353,798,818.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="117.5,960.7241,121.5,970.7241,125.5,960.7241,121.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="317" x2="317" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="313,960.7241,317,970.7241,321,960.7241,317,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524.5" x2="524.5" y1="906.7241" y2="970.7241"/><polygon fill="#A80036" points="520.5,960.7241,524.5,970.7241,528.5,960.7241,524.5,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="798" y1="950.7241" y2="970.7241"/><polygon fill="#A80036" points="794,960.7241,798,970.7241,802,960.7241,798,964.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="739.2544" y2="798.353"/><polygon fill="#A80036" points="491,788.353,495,798.353,499,788.353,495,792.353" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="976.7241" y2="1008.7241"/><polygon fill="#A80036" points="491,998.7241,495,1008.7241,499,998.7241,495,1002.7241" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="495" y1="1042.6929" y2="1062.6929"/><polygon fill="#A80036" points="491,1052.6929,495,1062.6929,499,1052.6929,495,1056.6929" 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=[2cfbd245cc09e98e9209b64fef75ec1b]
|
|
2 | 2 |
@startuml |
3 | 3 |
|
4 | 4 |
title **µRtWare**\nurtNrtSubscriberFetchNextMessage()\n |
5 | 5 |
|
6 | 6 |
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
7 | 12 |
note |
8 | 13 |
- - **subscriber** : urt_nrtsubscriber_t* - - |
9 | 14 |
The NRT subscriber that shall fetch the message. |
... | ... | |
26 | 31 |
start |
27 | 32 |
if (Associated to a topic?) then (yes) |
28 | 33 |
:lock topic; |
29 |
|
|
30 |
partition "find oldest valid message" { |
|
31 |
if (Timestamp of last read message euqals local copy?) then (yes) |
|
32 |
else (no) |
|
33 |
while (Timestamp of next message is younger?) is (yes) |
|
34 |
:proceed to next message; |
|
35 |
endwhile (no) |
|
36 |
endif |
|
37 |
:proceed to next message; |
|
38 |
} |
|
39 |
|
|
40 |
|
|
41 |
partition "fetch message" { |
|
42 |
fork |
|
43 |
:update message pointer; |
|
44 |
fork again |
|
45 |
:copy timestamp of message; |
|
46 |
fork again |
|
47 |
:copy message payload; |
|
48 |
fork again |
|
49 |
if (Optional output argument ""latency"" given?) then (yes) |
|
50 |
:set ""latency"" value (now - message origin time); |
|
34 |
partition "find oldest valid message" { |
|
35 |
if (Timestamp of last read message euqals local copy?) then (yes) |
Also available in: Unified diff