Revision ee83a495
| 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/urtCoreGetService.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="596px" preserveAspectRatio="none" style="width:499px;height:596px;" version="1.1" viewBox="0 0 499 596" width="499px" zoomAndPan="magnify"><defs><filter height="300%" id="f1s3gz6elyl2re" 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="204" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="181" x="158" y="47.6611">urtCoreGetService()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="251.5" y="68.6143"/><path d="M157,72.8594 L157,168.5234 L487,168.5234 L487,82.8594 L477,72.8594 L157,72.8594 " fill="#FBFB77" filter="url(#f1s3gz6elyl2re)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M477,72.8594 L477,82.8594 L487,82.8594 L477,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="157" x2="258.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="262.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="262.5" y="89.4263">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="101" x="280.5" y="89.4263">: urt_serviceid_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="385.5" x2="487" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="163" y="105.0591">Identifier of the service to retrieve.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="157" x2="487" y1="113.125" y2="113.125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="157" x2="487" y1="115.125" y2="115.125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="157" x2="245" y1="125.6914" y2="125.6914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="249" y="129.6919"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="249" y="129.6919">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="298" y="129.6919">: urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="399" x2="487" y1="125.6914" y2="125.6914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="274" x="163" y="145.3247">Returns a pointer to the requested service.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="163" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="216" y="160.4575">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="220" x="252" y="160.4575">if no service matches the given ID.</text><ellipse cx="322" cy="198.5234" fill="#000000" filter="url(#f1s3gz6elyl2re)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1s3gz6elyl2re)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="283.5" y="228.5234"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="293.5" y="249.6621">lock core</text><rect fill="#FEFECE" filter="url(#f1s3gz6elyl2re)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="252" y="282.4922"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="262" y="303.6309">access first service</text><rect fill="#FEFECE" filter="url(#f1s3gz6elyl2re)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="168" x="238" y="393.7808"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="248" y="414.9194">proceed to next service</text><polygon fill="#FEFECE" filter="url(#f1s3gz6elyl2re)" points="254,336.4609,390,336.4609,402,349.2656,390,362.0703,254,362.0703,242,349.2656,254,336.4609" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="326" y="372.2808">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="254" y="346.6714">Service is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="336" y="346.6714">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="254" y="359.4761">and service ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="228" y="346.6714">no</text><rect fill="#FEFECE" filter="url(#f1s3gz6elyl2re)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="275.5" y="469.7495"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="285.5" y="490.8882">unlock core</text><polygon fill="#FEFECE" filter="url(#f1s3gz6elyl2re)" points="252,523.7183,392,523.7183,404,536.5229,392,549.3276,252,549.3276,240,536.5229,252,523.7183" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="252" y="533.9287">Service is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="334" y="533.9287">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="252" y="546.7334">and service ID matches?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="220" y="533.9287">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="404" y="533.9287">no</text><path d="M10,559.3276 L10,584.4604 A0,0 0 0 0 10,584.4604 L199,584.4604 A0,0 0 0 0 199,584.4604 L199,577.3276 L219,571.894 L199,569.3276 L199,569.3276 L189,559.3276 L10,559.3276 A0,0 0 0 0 10,559.3276 " fill="#FBFB77" filter="url(#f1s3gz6elyl2re)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M189,559.3276 L189,569.3276 L199,569.3276 L189,559.3276 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="168" x="16" y="576.3945">Returns pointer to service.</text><ellipse cx="230" cy="571.894" fill="#FFFFFF" filter="url(#f1s3gz6elyl2re)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="230" cy="571.894" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M273,559.3276 L273,584.4604 A0,0 0 0 0 273,584.4604 L383,584.4604 A0,0 0 0 0 383,584.4604 L383,577.3276 L403,571.894 L383,569.3276 L383,569.3276 L373,559.3276 L273,559.3276 A0,0 0 0 0 273,559.3276 " fill="#FBFB77" filter="url(#f1s3gz6elyl2re)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M373,559.3276 L373,569.3276 L383,569.3276 L373,559.3276 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="279" y="576.3945">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="332" y="576.3945">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="364" y="576.3945">.</text><ellipse cx="414" cy="571.894" fill="#FFFFFF" filter="url(#f1s3gz6elyl2re)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="414" cy="571.894" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="168.5234" y2="188.5234"/><polygon fill="#A80036" points="318,178.5234,322,188.5234,326,178.5234,322,182.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="208.5234" y2="228.5234"/><polygon fill="#A80036" points="318,218.5234,322,228.5234,326,218.5234,322,222.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="262.4922" y2="282.4922"/><polygon fill="#A80036" points="318,272.4922,322,282.4922,326,272.4922,322,276.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="362.0703" y2="393.7808"/><polygon fill="#A80036" points="318,383.7808,322,393.7808,326,383.7808,322,387.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="427.7495" y2="437.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="418" y1="437.7495" y2="437.7495"/><polygon fill="#A80036" points="414,401.9604,418,391.9604,422,401.9604,418,397.9604" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="418" x2="418" y1="349.2656" y2="437.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="418" x2="402" y1="349.2656" y2="349.2656"/><polygon fill="#A80036" points="412,345.2656,402,349.2656,412,353.2656,408,349.2656" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="242" x2="226" y1="349.2656" y2="349.2656"/><polygon fill="#A80036" points="222,387.9604,226,397.9604,230,387.9604,226,391.9604" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="226" x2="226" y1="349.2656" y2="449.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="226" x2="322" y1="449.7495" y2="449.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="449.7495" y2="469.7495"/><polygon fill="#A80036" points="318,459.7495,322,469.7495,326,459.7495,322,463.7495" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="316.4609" y2="336.4609"/><polygon fill="#A80036" points="318,326.4609,322,336.4609,326,326.4609,322,330.4609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="240" x2="230" y1="536.5229" y2="536.5229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="230" x2="230" y1="536.5229" y2="560.894"/><polygon fill="#A80036" points="226,550.894,230,560.894,234,550.894,230,554.894" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="404" x2="414" y1="536.5229" y2="536.5229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="414" x2="414" y1="536.5229" y2="560.894"/><polygon fill="#A80036" points="410,550.894,414,560.894,418,550.894,414,554.894" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="322" x2="322" y1="503.7183" y2="523.7183"/><polygon fill="#A80036" points="318,513.7183,322,523.7183,326,513.7183,322,517.7183" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7678d951c90c7df700bc271ce4fad75f] |
|
| 2 |
@startuml |
|
| 3 |
|
|
| 4 |
title **µRtWare**\nurtCoreGetService()\n |
|
| 5 |
|
|
| 6 |
|
|
| 7 |
note |
|
| 8 |
- - **id** : urt_serviceid_t - - |
|
| 9 |
Identifier of the service to retrieve. |
|
| 10 |
==== |
|
| 11 |
- - **return** : urt_service_t* - - |
|
| 12 |
Returns a pointer to the requested service. |
|
| 13 |
Returns ""NULL"" if no service matches the given ID. |
|
| 14 |
endnote |
|
| 15 |
|
|
| 16 |
|
|
| 17 |
start |
|
| 18 |
:lock core; |
|
| 19 |
:access first service; |
|
| 20 |
while (Service is not ""NULL""\nand service ID is lower?) is (yes) |
|
| 21 |
:proceed to next service; |
|
| 22 |
endwhile (no) |
|
| 23 |
:unlock core; |
|
| 24 |
if (Service is not ""NULL""\nand service ID matches?) then (yes) |
|
| 25 |
stop |
|
| 26 |
note |
|
| 27 |
Returns pointer to service. |
|
| 28 |
endnote |
|
| 29 |
else (no) |
|
| 30 |
stop |
|
| 31 |
note |
|
| 32 |
Returns ""NULL"". |
|
| 33 |
endnote |
|
| 34 |
endif |
|
| 35 |
|
|
| 36 |
|
|
| 37 |
@enduml |
|
| 38 |
|
|
| 39 |
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020) |
|
| 40 |
(GPL source distribution) |
|
| 41 |
Java Runtime: OpenJDK Runtime Environment |
|
| 42 |
JVM: OpenJDK 64-Bit Server VM |
|
| 43 |
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1 |
|
| 44 |
Operating System: Linux |
|
| 45 |
Default Encoding: UTF-8 |
|
| 46 |
Language: en |
|
| 47 |
Country: US |
|
| 48 |
--></g></svg> |
|
| doc/activitydiagrams/core/urtCoreGetService.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**\nurtCoreGetService()\n |
|
| 27 |
|
|
| 28 |
/'### PARAMETERS & RETURN ####################################################'/ |
|
| 29 |
|
|
| 30 |
note |
|
| 31 |
-- **id** : urt_serviceid_t -- |
|
| 32 |
Identifier of the service to retrieve. |
|
| 33 |
==== |
|
| 34 |
-- **return** : urt_service_t* -- |
|
| 35 |
Returns a pointer to the requested service. |
|
| 36 |
Returns ""NULL"" if no service matches the given ID. |
|
| 37 |
endnote |
|
| 38 |
|
|
| 39 |
/'### PROCEDURE ##############################################################'/ |
|
| 40 |
|
|
| 41 |
start |
|
| 42 |
:lock core; |
|
| 43 |
:access first service; |
|
| 44 |
while (Service is not ""NULL""\nand service ID is lower?) is (yes) |
|
| 45 |
:proceed to next service; |
|
| 46 |
endwhile (no) |
|
| 47 |
:unlock core; |
|
| 48 |
if (Service is not ""NULL""\nand service ID matches?) then (yes) |
|
| 49 |
stop |
|
| 50 |
note |
|
| 51 |
Returns pointer to service. |
|
| 52 |
endnote |
|
| 53 |
else (no) |
|
| 54 |
stop |
|
| 55 |
note |
|
| 56 |
Returns ""NULL"". |
|
| 57 |
endnote |
|
| 58 |
endif |
|
| 59 |
|
|
| 60 |
/'### OUTRO ##################################################################'/ |
|
| 61 |
|
|
| 62 |
@enduml |
|
| doc/activitydiagrams/core/urtCoreGetTopic.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="596px" preserveAspectRatio="none" style="width:472px;height:596px;" version="1.1" viewBox="0 0 472 596" width="472px" zoomAndPan="magnify"><defs><filter height="300%" id="fsrkmh5myir7y" 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="190.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="163" x="153.5" y="47.6611">urtCoreGetTopic()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="238" y="68.6143"/><path d="M144,72.8594 L144,168.5234 L460,168.5234 L460,82.8594 L450,72.8594 L144,72.8594 " fill="#FBFB77" filter="url(#fsrkmh5myir7y)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M450,72.8594 L450,82.8594 L460,82.8594 L450,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="144" x2="245.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="249.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="249.5" y="89.4263">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="87" x="267.5" y="89.4263">: urt_topicid_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="358.5" x2="460" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="205" x="150" y="105.0591">Identifier of the topic to retrieve.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="144" x2="460" y1="113.125" y2="113.125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="144" x2="460" y1="115.125" y2="115.125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="144" x2="232" y1="125.6914" y2="125.6914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="236" y="129.6919"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="236" y="129.6919">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="285" y="129.6919">: urt_topic_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="372" x2="460" y1="125.6914" y2="125.6914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="260" x="150" y="145.3247">Returns a pointer to the requested topic.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="150" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="203" y="160.4575">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="206" x="239" y="160.4575">if no topic matches the given ID.</text><ellipse cx="302" cy="198.5234" fill="#000000" filter="url(#fsrkmh5myir7y)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fsrkmh5myir7y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="263.5" y="228.5234"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="273.5" y="249.6621">lock core</text><rect fill="#FEFECE" filter="url(#fsrkmh5myir7y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="238.5" y="282.4922"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="107" x="248.5" y="303.6309">access first topic</text><rect fill="#FEFECE" filter="url(#fsrkmh5myir7y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="224.5" y="393.7808"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="234.5" y="414.9194">proceed to next topic</text><polygon fill="#FEFECE" filter="url(#fsrkmh5myir7y)" points="241,336.4609,363,336.4609,375,349.2656,363,362.0703,241,362.0703,229,349.2656,241,336.4609" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="306" y="372.2808">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70" x="241" y="346.6714">Topic ist not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="315" y="346.6714">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="241" y="359.4761">and topic ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="215" y="346.6714">no</text><rect fill="#FEFECE" filter="url(#fsrkmh5myir7y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="255.5" y="469.7495"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="265.5" y="490.8882">unlock core</text><polygon fill="#FEFECE" filter="url(#fsrkmh5myir7y)" points="239,523.7183,365,523.7183,377,536.5229,365,549.3276,239,549.3276,227,536.5229,239,523.7183" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="66" x="239" y="533.9287">Topic is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="309" y="533.9287">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="239" y="546.7334">and topic ID matches?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="207" y="533.9287">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="377" y="533.9287">no</text><path d="M10,559.3276 L10,584.4604 A0,0 0 0 0 10,584.4604 L185,584.4604 A0,0 0 0 0 185,584.4604 L185,577.3276 L205,571.894 L185,569.3276 L185,569.3276 L175,559.3276 L10,559.3276 A0,0 0 0 0 10,559.3276 " fill="#FBFB77" filter="url(#fsrkmh5myir7y)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M175,559.3276 L175,569.3276 L185,569.3276 L175,559.3276 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="154" x="16" y="576.3945">Returns pointer to topic.</text><ellipse cx="216" cy="571.894" fill="#FFFFFF" filter="url(#fsrkmh5myir7y)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="216" cy="571.894" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><path d="M247,559.3276 L247,584.4604 A0,0 0 0 0 247,584.4604 L357,584.4604 A0,0 0 0 0 357,584.4604 L357,577.3276 L377,571.894 L357,569.3276 L357,569.3276 L347,559.3276 L247,559.3276 A0,0 0 0 0 247,559.3276 " fill="#FBFB77" filter="url(#fsrkmh5myir7y)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M347,559.3276 L347,569.3276 L357,569.3276 L347,559.3276 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="253" y="576.3945">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="306" y="576.3945">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="338" y="576.3945">.</text><ellipse cx="388" cy="571.894" fill="#FFFFFF" filter="url(#fsrkmh5myir7y)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="388" cy="571.894" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="168.5234" y2="188.5234"/><polygon fill="#A80036" points="298,178.5234,302,188.5234,306,178.5234,302,182.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="208.5234" y2="228.5234"/><polygon fill="#A80036" points="298,218.5234,302,228.5234,306,218.5234,302,222.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="262.4922" y2="282.4922"/><polygon fill="#A80036" points="298,272.4922,302,282.4922,306,272.4922,302,276.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="362.0703" y2="393.7808"/><polygon fill="#A80036" points="298,383.7808,302,393.7808,306,383.7808,302,387.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="427.7495" y2="437.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="391.5" y1="437.7495" y2="437.7495"/><polygon fill="#A80036" points="387.5,401.9604,391.5,391.9604,395.5,401.9604,391.5,397.9604" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="391.5" x2="391.5" y1="349.2656" y2="437.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="391.5" x2="375" y1="349.2656" y2="349.2656"/><polygon fill="#A80036" points="385,345.2656,375,349.2656,385,353.2656,381,349.2656" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="229" x2="212.5" y1="349.2656" y2="349.2656"/><polygon fill="#A80036" points="208.5,387.9604,212.5,397.9604,216.5,387.9604,212.5,391.9604" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212.5" x2="212.5" y1="349.2656" y2="449.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212.5" x2="302" y1="449.7495" y2="449.7495"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="449.7495" y2="469.7495"/><polygon fill="#A80036" points="298,459.7495,302,469.7495,306,459.7495,302,463.7495" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="316.4609" y2="336.4609"/><polygon fill="#A80036" points="298,326.4609,302,336.4609,306,326.4609,302,330.4609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="227" x2="216" y1="536.5229" y2="536.5229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="216" x2="216" y1="536.5229" y2="560.894"/><polygon fill="#A80036" points="212,550.894,216,560.894,220,550.894,216,554.894" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="377" x2="388" y1="536.5229" y2="536.5229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="388" x2="388" y1="536.5229" y2="560.894"/><polygon fill="#A80036" points="384,550.894,388,560.894,392,550.894,388,554.894" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="302" x2="302" y1="503.7183" y2="523.7183"/><polygon fill="#A80036" points="298,513.7183,302,523.7183,306,513.7183,302,517.7183" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e10488ce6407e6aad5cae1b04658f332] |
|
| 2 |
@startuml |
|
| 3 |
|
|
| 4 |
title **µRtWare**\nurtCoreGetTopic()\n |
|
| 5 |
|
|
| 6 |
|
|
| 7 |
note |
|
| 8 |
- - **id** : urt_topicid_t - - |
|
| 9 |
Identifier of the topic to retrieve. |
|
| 10 |
==== |
|
| 11 |
- - **return** : urt_topic_t* - - |
|
| 12 |
Returns a pointer to the requested topic. |
|
| 13 |
Returns ""NULL"" if no topic matches the given ID. |
|
| 14 |
endnote |
|
| 15 |
|
|
| 16 |
|
|
| 17 |
start |
|
| 18 |
:lock core; |
|
| 19 |
:access first topic; |
|
| 20 |
while (Topic ist not ""NULL""\nand topic ID is lower?) is (yes) |
|
| 21 |
:proceed to next topic; |
|
| 22 |
endwhile (no) |
|
| 23 |
:unlock core; |
|
| 24 |
if (Topic is not ""NULL""\nand topic ID matches?) then (yes) |
|
| 25 |
stop |
|
| 26 |
note |
|
| 27 |
Returns pointer to topic. |
|
| 28 |
endnote |
|
| 29 |
else (no) |
|
| 30 |
stop |
|
| 31 |
note |
|
| 32 |
Returns ""NULL"". |
|
| 33 |
endnote |
|
| 34 |
endif |
|
| 35 |
|
|
| 36 |
|
|
| 37 |
@enduml |
|
| 38 |
|
|
| 39 |
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020) |
|
| 40 |
(GPL source distribution) |
|
| 41 |
Java Runtime: OpenJDK Runtime Environment |
|
| 42 |
JVM: OpenJDK 64-Bit Server VM |
|
| 43 |
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1 |
|
| 44 |
Operating System: Linux |
|
| 45 |
Default Encoding: UTF-8 |
|
| 46 |
Language: en |
|
| 47 |
Country: US |
|
| 48 |
--></g></svg> |
|
| doc/activitydiagrams/core/urtCoreGetTopic.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**\nurtCoreGetTopic()\n |
|
| 27 |
|
|
| 28 |
/'### PARAMETERS & RETURN ####################################################'/ |
|
| 29 |
|
|
| 30 |
note |
|
| 31 |
-- **id** : urt_topicid_t -- |
|
| 32 |
Identifier of the topic to retrieve. |
|
| 33 |
==== |
|
| 34 |
-- **return** : urt_topic_t* -- |
|
| 35 |
Returns a pointer to the requested topic. |
|
| 36 |
Returns ""NULL"" if no topic matches the given ID. |
|
| 37 |
endnote |
|
| 38 |
|
|
| 39 |
/'### PROCEDURE ##############################################################'/ |
|
| 40 |
|
|
| 41 |
start |
|
| 42 |
:lock core; |
|
| 43 |
:access first topic; |
|
| 44 |
while (Topic ist not ""NULL""\nand topic ID is lower?) is (yes) |
|
| 45 |
:proceed to next topic; |
|
| 46 |
endwhile (no) |
|
| 47 |
:unlock core; |
|
| 48 |
if (Topic is not ""NULL""\nand topic ID matches?) then (yes) |
|
| 49 |
stop |
|
| 50 |
note |
|
| 51 |
Returns pointer to topic. |
|
| 52 |
endnote |
|
| 53 |
else (no) |
|
| 54 |
stop |
|
| 55 |
note |
|
| 56 |
Returns ""NULL"". |
|
| 57 |
endnote |
|
| 58 |
endif |
|
| 59 |
|
|
| 60 |
/'### OUTRO ##################################################################'/ |
|
| 61 |
|
|
| 62 |
@enduml |
|
| doc/activitydiagrams/core/urtCoreInit.svg | ||
|---|---|---|
| 1 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg&q | |