Statistics
| Branch: | Revision:

urtware / doc / activitydiagrams / service / urtServiceTryAcquireRequest.uml @ cd0cba58

History | View | Annotate | Download (2.132 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**\nurtServiceTryAcquireRequest()\n
27

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

    
30
note
31
  -- **service** : urt_service_t* --
32
  The service that shall acquire the request.
33
  Must not be ""NULL"".
34
  -- **request** : urt_baserequest_t* --
35
  The request to be acquired.
36
  Must not be ""NULL"".
37
  ====
38
  -- **return** : urt_status_t --
39
  Returns ""URT_STATUS_OK"" in case of success.
40
  Returns ""URT_STATUS_REQUEST_BADOWNER"" if the service has lost ownership of the request.
41
  Returns ""URT_STATUS_REQUEST_LOCKED"" if the request's mutex is already locked.
42
endnote
43

    
44
/'### PROCEDURE ##############################################################'/
45

    
46
start
47
:lock request;
48
note
49
  Does not block.
50
endnote
51
if (Request could be locked?) then (yes)
52
  if (This service is owner of the request?) then (yes)
53
    stop
54
    note
55
      Returns ""URT_STATUS_OK"".
56
    endnote
57
  else (no)
58
    :unlock request;
59
    stop
60
    note
61
      Returns ""URT_STATUS_REQUEST_BADOWNER"".
62
    endnote
63
  endif
64
else (no)
65
  stop
66
  note
67
    Returns ""URT_STATUS_REQUEST_LOCKED"".
68
  endnote
69
endif
70

    
71
/'### OUTRO ##################################################################'/
72

    
73
@enduml