The basic state model for the DomainDownload Programis presented in Figure A.2. The Programhas three primary states, Ready, Running, and Halted which are aligned with the standard states of a ProgramStateMachineType. Additionally, the DomainDownloadTypeextends the ProgramStateMachineTypeby defining subordinate State Machinesfor the Program’sRunning and Halted states. The subordinate states describe the download operations in greater detail and allow the Clientto monitor the activity of the download at a finer resolution.
An instance (Program Invocation) of a DomainDownload Programis created by the Clienteach time a download is to be performed. The instance exists until explicitly removed by the Client. The initial state of the Programis Ready and the terminal state is Halted. The DomainDownload can be temporarily suspended and then resumed or aborted. Once halted, the program may not be restarted.
The sequence of state transitions is illustrated in Figure A.2. Once the download is started, The Programprogresses to the Opening state. After the source of the data is opened, a sequence of transfers occurs in the Sending state. When the transfer completes the Objectsare closed in the Closing state. If the transfer is terminated before all of the data is downloaded or an error is encountered then the download is halted and the Programtransitions to the Aborted state; otherwise the Programhalts in the Completed state. The states are presented in Table A.1along with the state transitions.