private void Service_Copy_And_Hash() { switch ( m_BackgroundTask.Get_Completion_Status() ) { case EWorkStatus.CompletionFailure: case EWorkStatus.Invalid: throw new Exception( "Attempt to copy and hash package failed" ); case EWorkStatus.CompletionSuccess: Console.WriteLine( "Successfully built output: " + Config.Tag ); Update_Output_Hashes( ( m_BackgroundTask as CCopyAndHashWorker ).CumulativeHash ); State = EOutputPackageState.Finished; m_BackgroundTask = null; break; } }
// Private interface private void Service_Waiting_On_Input() { CPackageInputState input = CPackageManager.Get_Package_Input( InputID ); if ( input.State == EInputPackageState.Finished ) { State = EOutputPackageState.CopyAndHash; m_BackgroundTask = new CCopyAndHashWorker( CPackageManager.UnpackDirectory + @"/" + Config.Source, Config.Destination ); m_BackgroundTask.RunWorkerAsync(); Console.WriteLine( "Building output: " + Config.Tag ); } }
public static uint Get_Output_Packages_In_State_Count( EOutputPackageState state ) { return (uint) m_PackageOutputs.Values.Where( n => n.State == state ).Count(); }