Revision c22d21ad doc/activitydiagrams/subscriber/urtSubscriberFetchNextMessage.uml

View differences:

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