Statistics
| Branch: | Revision:

urtware / doc / activitydiagrams / core / urtCoreStopNodes.uml @ e87bd7c7

History | View | Annotate | Download (1.872 KB)

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**\nurtCoreStopNodes()\n
27

    
28
/'### PARAMETERS & RETURN ####################################################'/
29

    
30
note
31
  -- **reason** : urt_status_t --
32
  The reason why the function was called.
33
  For normal shutdown ""URT_STATUS_OK"" should be used.
34
  ====
35
  -- **return** : urt_status_t --
36
  Always returns ""URT_STATUS_OK"".
37
endnote
38

    
39
/'### PROCEDURE ##############################################################'/
40

    
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;
54
stop
55
note
56
  Returns ""URT_STATUS_OK"".
57
endnote
58

    
59
/'### OUTRO ##################################################################'/
60

    
61
@enduml