The valid state transitions specified for the DomainDownload Program are specified in Table A.1. Each of the transitions defines a start state and end state for the transition and is identified by a unique number. Five of the transitions are from the base ProgramStateMachineType and retain the transition identifier numbers specified for Programs. The additional transitions relate the base Program states with the subordinate states defined for the DomainDownload. These states have been assigned unique transition identifier numbers that distinguish them from the base Program transition identifiers. In cases where transitions occur between substates and the Program’s base states, two transitions are specified. One transition identifies the base state change and a second substate change. For example, ReadyToRunning and ToOpening occur at the same time.

Table A.1 also specifies the defined states, causes for the transitions, and the effects of each transition. Program Control Methods are used by the Client to “run” the DomainDownload. The Methods cause or trigger the specified transitions. The transition effects are the specified EventTypes which notify the Client of Program activity.

Table A.1 – DomainDownload states

No.

Transition name

Cause

From State

To State

Effect

2

ReadyToRunning

Start Method

Ready

Running

Report Transition 2 Event/Result

3

RunningToHalted

Halt Method/Error or Internal.

Running

Halted

Report Transition 3 Event/Result

5

RunningToSuspended

Suspend Method

Running

Suspended

Report Transition 5 Event/Result

6

SuspendedToRunning

Resume Method

Suspended

Running

Report Transition 6 Event/Result

7

SuspendedToHalted

Halt Method

Suspended

Halted

Report Transition 7 Event/Result

10

OpeningToSending

Internal

Opening

Sending

Report Transition 10 Event/Result

11

SendingToSending

Internal

Sending

Sending

Report Transition 11 Event/Result

12

SendingToClosing

Internal

Sending

Closing

Report Transition 12 Event/Result

13

SendingToAborted

Halt Method/Error

Opening

Aborted

Report Transition 13 Event/Result

14

ClosingToCompleted

Internal

Closing

Completed

Report Transition 14 Event/Result

15

SendingToSuspended

Suspend Method

Sending

Suspended

Report Transition 16 Event/Result

16

SuspendedToSending

Resume Method

Suspended

Sending

Report Transition 17 Event/Result

18

SuspendedToAborted

Halt Method

Suspended

Aborted

Report Transition 18 Event/Result

17

ToOpening

Internal

Ready

Opening

Report Transition 19 Event/Result