void OnJobStatusChanged(IJob job, JobStatus status)
{
StopCurrentJob();
var sourceItems = this.CurrentBuildOrder.SourceItems;
for (int i = 0; i < sourceItems.Length; ++i)
{
Debug.Assert(sourceItems[i].ReservedBy == this);
sourceItems[i].ReservedBy = null;
sourceItems[i] = null;
}
switch (status)
{
case JobStatus.Done:
trace.TraceInformation("build job done");
if (this.CurrentBuildOrder.IsRepeat == false)
RemoveBuildOrder(this.CurrentBuildOrder);
else
MoveToNextBuildOrder();
break;
case JobStatus.Abort:
trace.TraceError("Build item aborted");
MoveToNextBuildOrder();
break;
case JobStatus.Fail:
trace.TraceError("Build item failed");
RemoveBuildOrder(this.CurrentBuildOrder);
break;
default:
throw new Exception();
}
}