Revision c22d21ad doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.uml
doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.uml | ||
---|---|---|
48 | 48 |
|
49 | 49 |
:lock topic; |
50 | 50 |
if (Is HRT subscriber?) then (yes) |
51 |
:lock next message;
|
|
51 |
:access next message;
|
|
52 | 52 |
else (no) |
53 | 53 |
if (Has a message been read before?) then (yes) |
54 |
:lock last read message;
|
|
54 |
:access last read message;
|
|
55 | 55 |
if (Message timestamp equals local copy?) then (yes) |
56 | 56 |
else (no) |
57 | 57 |
partition "find oldest valid message" { |
58 |
:lock next message; |
|
59 |
note: Locked two messages ahead. |
|
58 |
:access next message; |
|
60 | 59 |
while (Timestamp of next message is younger than of current?) is (yes) |
61 |
fork |
|
62 |
:unlock current message; |
|
63 |
fork again |
|
64 |
:lock one message further ahead; |
|
65 |
endfork |
|
60 |
:iterate by one message; |
|
66 | 61 |
endwhile (no) |
67 |
:unlock next message; |
|
68 |
note: One message still locked. |
|
69 | 62 |
} |
70 | 63 |
endif |
71 | 64 |
else (no) |
72 |
:lock message after topic's latest message;
|
|
65 |
:access message after topic's latest message;
|
|
73 | 66 |
endif |
74 | 67 |
endif |
75 | 68 |
fork |
... | ... | |
99 | 92 |
else (no) |
100 | 93 |
endif |
101 | 94 |
endfork |
102 |
:unlock message; |
|
103 | 95 |
:unlock topic; |
104 | 96 |
|
105 | 97 |
/'### STOP & RETURN ##########################################################'/ |
Also available in: Unified diff