Exemple #1
0
        private void RunComparison()
        {
            // Does the output file already exist? If so, try to delete it.
            // If not, then carry on.
            if (iInputs.OutputFile.File.Exists)
            {
                // If deletion fails then return an error by way of heap analyser exception.
                try
                {
                    iInputs.OutputFile.File.Delete();
                }
                catch (Exception)
                {
                    throw new HAUIException("Could not overwrite output file", HAUIException.KErrCommandLineAnalysisOutputInvalid);
                }
            }

            ComparisonEngineHeapData comparisonEngine = base.Engine.ComparisonEngineData;
            //
            string file1 = iInputs.SourceFiles[0].File.FullName;

            comparisonEngine.DataSource1 = PrepareDataSource(file1);
            //
            string file2 = iInputs.SourceFiles[1].File.FullName;

            comparisonEngine.DataSource2 = PrepareDataSource(file2);
            //
            comparisonEngine.OutputFileName = iInputs.OutputFile.File.FullName;
            base.Engine.ComparisonEngineData.CreateReconstructors();
            ComparisonProgressDialogData.Compare(comparisonEngine.Reconstructor1,
                                                 comparisonEngine.Reconstructor2,
                                                 comparisonEngine.OutputFileName);
        }
        public override Form HandleFormClosed(object aSender, EventArgs aArgs)
        {
            Form ret = null;

            //
            if (aSender is HASetupWizard)
            {
                // Check if the wizard finished successfully...
                string result = base.Settings["Wizard", "DialogResult"];
                if (result == DialogResult.OK.ToString())
                {
                    // Decide which form to show next
                    if (base.Engine.OperationType == HeapWizardEngine.TOperationType.EOperationTypeAnalyseAndView)
                    {
                        base.Engine.AnalysisEngine.CreateParser();
                        //
                        iAnalysisViewerForm = new HeapViewerForm(base.Engine.AnalysisEngine.Reconstructor, base.Settings);
                        ret = this.iAnalysisViewerForm;
                    }
                    else if (base.Engine.OperationType == HeapWizardEngine.TOperationType.EOperationTypeCompareHeapDumps)
                    {
                        // NB: Shows progress dialog immediately
                        base.Engine.ComparisonEngineData.CreateReconstructors();
                        ComparisonProgressDialogData.Compare(base.Engine.ComparisonEngineData.Reconstructor1,
                                                             base.Engine.ComparisonEngineData.Reconstructor2,
                                                             base.Engine.ComparisonEngineData.OutputFileName);
                    }
                    else if (base.Engine.OperationType == HeapWizardEngine.TOperationType.EOperationTypeCompareHeapCSV)
                    {
                        // NB: Shows progress dialog immediately
                        ComparisonProgressDialogCSV.Compare(base.Engine.ComparisonEngineCSV.SourceFileNames, base.Engine.ComparisonEngineCSV.OutputDirectory);
                    }
                }
            }
            //
            return(ret);
        }