summaryrefslogtreecommitdiffstats
path: root/docs/clamp/acm/api-protocol/puml/ParticipantStateChangeDialogue.puml
blob: af8779da3de8921bee6438ccbb9099ae15fec138 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@startuml

activate CLAMP_Runtime
CLAMP_Runtime -> CLAMP_Runtime: Build an ordered list of the Start Phases in the Automation Composition Instance
deactivate CLAMP_Runtime

alt "State Change UNDEPLOYED_to_DEPLOYED or LOCKED_to_UNLOCKED"
  loop over Start Phases list in increasing order
    CLAMP_Runtime -> Participant: Automation Composition State Change\n[to all Participants in Automation Composition with this Start Phase]
    CLAMP_Runtime -> CLAMP_Runtime: Asynchronously wait for answers from Participants
    CLAMP_Runtime <- Participant: Automation Composition State Change Ack [from each Participant in this Start Phase of Automation Composition]
    alt "State Change Ack reports success"
      CLAMP_Runtime -> CLAMP_Runtime: Log success
    else "State Change Ack reports an error"
      CLAMP_Runtime -> CLAMP_Runtime: Log error
      CLAMP_Runtime -> CLAMP_Runtime: Reset state of Automation Composition CLAMP_Runtime -> CLAMP_Runtime: Abort State Change operation
    end
  end
else "State Change DEPLOYED_to_UNDEPLOYED or UNLOCKED_to_LOCKED"
 loop over Start Phases list in decreasing order
    CLAMP_Runtime -> Participant: Automation Composition State Change\n[to all Participants in Automation Composition with this Start Phase]
    CLAMP_Runtime -> CLAMP_Runtime: Asynchronously wait for answers from Participants
    CLAMP_Runtime <- Participant: Automation Composition State Change Ack [from each Participant in this Start Phase of Automation Composition]
    alt "State Change Ack reports success"
      CLAMP_Runtime -> CLAMP_Runtime: Log success
    else "State Change Ack reports an error"
      CLAMP_Runtime -> CLAMP_Runtime: Log error
      CLAMP_Runtime -> CLAMP_Runtime: Reset state of Automation Composition CLAMP_Runtime -> CLAMP_Runtime: Abort State Change operation
    end
  end
end

CLAMP_Runtime -> CLAMP_Runtime: Set overall state of Automation Composition

@enduml