Table of Contents

Interface ISessionCommand

Namespace
Hi.SessionCommands
Assembly
HiNc.dll

Interface for commands that can be executed in a machining session.

public interface ISessionCommand : IMakeXmlSource
Inherited Members
Extension Methods

Methods

Run(SessionShell)

Runs the command, delegating execution to the provided session shell.

IEnumerable<Action> Run(SessionShell sessionShell)

Parameters

sessionShell SessionShell

Session shell that exposes the machining facade to commands.

Returns

IEnumerable<Action>

Sequence of actions to be executed. A command may do its work as it is enumerated and yield null between the pieces of it. The player invokes each action in order and paces after it – a Pause holds there, jobs queued for the run's pace point run there, and a Stop of its run ends the run there – and it ends a stopped run at a null item too, and before the next row of a ListCommand. An action is not checked for a Stop before it runs: one handed over after the Stop runs, and the run ends at the pace after it. Where the run ends, the player disposes the enumeration: the command's code after that item does not run, and what must run whatever happens belongs in a finally of the iterator. An exception that leaves the enumeration while the run is live ends the run as a fault: the player reports it as Player-Run–Fault, the run ends there as not finished, and no later row of a ListCommand runs; a command that catches and reports its own failure (a ScriptCommand‘s ScriptCommand-Run–Fault, the CSV mapping commands’ Map-SingleCsv–Fault and Map-SeriesCsv–Fault) lets the mission go on. Once the run is stopped, whatever leaves the enumeration – the run's own cancellation, or an exception its unwinding throws – is the Stop, and no message is said for it. A command that catches and reports its own failure still says it after the Stop: a ScriptCommand reports any exception other than a cancellation that comes out of its script's body – the body's own, or one the stopped run's unwinding throws inside the body – as ScriptCommand-Run–Fault, and the CSV mapping commands' catches let a cancellation through alone; the stopped run then starts no later row.