internal ActivityTraceModeAnalyzerParameters(ActivityTraceModeAnalyzerParameters param)
 {
     if (param != null)
     {
         foreach (long key in param.ExpandingTransfers.Keys)
         {
             expandingTransfers.Add(key, param.ExpandingTransfers[key]);
         }
         foreach (long key2 in param.ExpandingTransferTraceLevels.Keys)
         {
             expandingTransferTraceLevel.Add(key2, param.ExpandingTransferTraceLevels[key2]);
         }
         foreach (long key3 in param.CollapsingTransfers.Keys)
         {
             collapsingTransfers.Add(key3, param.CollapsingTransfers[key3]);
         }
         foreach (string key4 in param.ExpandingActivities.Keys)
         {
             expandingActivities.Add(key4, param.ExpandingActivities[key4]);
         }
         foreach (int key5 in param.SuppressedExecutions.Keys)
         {
             suppressedExecutions.Add(key5, param.SuppressedExecutions[key5]);
         }
         foreach (int item in param.executionItemOrder)
         {
             if (!executionItemOrder.Contains(item))
             {
                 executionItemOrder.AddLast(item);
             }
         }
     }
 }
コード例 #2
0
        private void activityPlusBox_Click(object sender, EventArgs e)
        {
            if (sender != null && sender is PictureBox && ((PictureBox)sender).Tag != null)
            {
                PictureBox pictureBox = (PictureBox)sender;
                if (pictureBox.Tag != null && pictureBox.Tag is ActivityLabelTag)
                {
                    ActivityLabelTag activityLabelTag = (ActivityLabelTag)pictureBox.Tag;
                    switch (activityLabelTag.expectedExpandingLevel)
                    {
                    case ExpandingLevel.ExpandAll:
                    {
                        ActivityTraceModeAnalyzerParameters parameters2 = activityLabelTag.analyzer.Parameters;
                        parameters2 = ((parameters2 != null) ? new ActivityTraceModeAnalyzerParameters(parameters2) : new ActivityTraceModeAnalyzerParameters());
                        parameters2.AppendExpandingActivity(activityLabelTag.activityColumnItem.CurrentActivity.Id, ExpandingLevel.ExpandAll);
                        container.AnalysisActivityInTraceMode(activityLabelTag.analyzer.ActiveActivity, null, parameters2);
                        break;
                    }

                    case ExpandingLevel.ExpandTransferOut:
                    {
                        ActivityTraceModeAnalyzerParameters parameters = activityLabelTag.analyzer.Parameters;
                        parameters = ((parameters != null) ? new ActivityTraceModeAnalyzerParameters(parameters) : new ActivityTraceModeAnalyzerParameters());
                        parameters.AppendExpandingActivity(activityLabelTag.activityColumnItem.CurrentActivity.Id, ExpandingLevel.ExpandTransferOut);
                        container.AnalysisActivityInTraceMode(activityLabelTag.analyzer.ActiveActivity, null, parameters);
                        break;
                    }
                    }
                }
            }
        }
コード例 #3
0
 internal override bool BeforePerformAnalysis(object parameters)
 {
     if (parameters != null && parameters is ActivityTraceModeAnalyzerParameters)
     {
         this.parameters = (ActivityTraceModeAnalyzerParameters)parameters;
     }
     return(true);
 }
コード例 #4
0
        private void menuItem_Click(object sender, EventArgs e)
        {
            ActivityTraceModeAnalyzerParameters parameters = CurrentExecutionColumnItem.Analyzer.Parameters;

            parameters = ((parameters != null) ? new ActivityTraceModeAnalyzerParameters(parameters) : new ActivityTraceModeAnalyzerParameters());
            parameters.AppendSuppressedExecution(CurrentExecutionColumnItem.CurrentExecutionInfo);
            base.Container.AnalysisActivityInTraceMode(CurrentExecutionColumnItem.Analyzer.ActiveActivity, null, parameters);
        }
コード例 #5
0
 internal void PerformCollapse()
 {
     if (isToChildActivity && CurrentTraceRecordItem.CurrentTraceRecord != null && CurrentTraceRecordItem.CurrentTraceRecord.IsTransfer && CurrentTraceRecordItem.CurrentTraceRecord.DataSource != null && CurrentTraceRecordItem.CurrentTraceRecord.DataSource.Activities.ContainsKey(CurrentTraceRecordItem.CurrentTraceRecord.RelatedActivityID))
     {
         ActivityTraceModeAnalyzerParameters parameters = CurrentTraceRecordItem.Analyzer.Parameters;
         parameters = ((parameters != null) ? new ActivityTraceModeAnalyzerParameters(parameters) : new ActivityTraceModeAnalyzerParameters());
         try
         {
             parameters.AppendCollapsingTransfer(CurrentTraceRecordItem.CurrentTraceRecord);
         }
         catch (TraceViewerException ex)
         {
             base.ErrorReport.ReportErrorToUser(SR.GetString("SL_FailCollapseTransfer") + ex.Message);
         }
         base.Container.AnalysisActivityInTraceMode(CurrentActivityColumnItem.Analyzer.ActiveActivity, CurrentTraceRecordItem.CurrentTraceRecord, parameters);
     }
 }
コード例 #6
0
 private void ProcessListItem_Click(object sender, EventArgs e)
 {
     if (sender != null && sender is ToolStripMenuItem && ((ToolStripMenuItem)sender).Tag != null && ((ToolStripMenuItem)sender).Tag is ExecutionColumnItem)
     {
         ExecutionColumnItem executionColumnItem = (ExecutionColumnItem)((ToolStripMenuItem)sender).Tag;
         if (currentAnalyzer != null)
         {
             ActivityTraceModeAnalyzerParameters activityTraceModeAnalyzerParameters = currentAnalyzer.Parameters;
             activityTraceModeAnalyzerParameters = ((activityTraceModeAnalyzerParameters != null) ? new ActivityTraceModeAnalyzerParameters(activityTraceModeAnalyzerParameters) : new ActivityTraceModeAnalyzerParameters());
             ((ToolStripMenuItem)sender).Checked = !((ToolStripMenuItem)sender).Checked;
             if (((ToolStripMenuItem)sender).Checked)
             {
                 activityTraceModeAnalyzerParameters.RemoveSuppressedExecution(executionColumnItem.CurrentExecutionInfo);
             }
             else
             {
                 activityTraceModeAnalyzerParameters.AppendSuppressedExecution(executionColumnItem.CurrentExecutionInfo);
             }
             base.Container.AnalysisActivityInTraceMode(currentAnalyzer.ActiveActivity, null, activityTraceModeAnalyzerParameters);
         }
     }
 }
コード例 #7
0
 public ActivityTraceModeAnalyzer(Activity activeActivity, TraceDataSource dataSource, bool containsActivityBoundary, bool containsVerboseTraces, ActivityTraceModeAnalyzerParameters parameters, IErrorReport errorReport)
 {
     if (activeActivity != null && dataSource != null)
     {
         this.containsActivityBoundary = containsActivityBoundary;
         this.containsVerboseTraces    = containsVerboseTraces;
         this.activeActivity           = activeActivity;
         this.dataSource  = dataSource;
         this.parameters  = parameters;
         this.errorReport = errorReport;
         RuntimeHelpers.PrepareConstrainedRegions();
         try
         {
             AnalysisRootActivity(ActiveActivity);
             ExpandTransfers();
             CollapseTransfers();
             ExpandActivities();
             CheckSuppressedActivities();
             SortResults();
             UpdateParameters();
         }
         catch (LogFileException e)
         {
             throw new TraceViewerException(SR.GetString("SL_ERROR_LOAD_TRACE"), e);
         }
         catch (TraceViewerException ex)
         {
             throw ex;
         }
         catch (Exception e2)
         {
             ExceptionManager.GeneralExceptionFilter(e2);
             throw new TraceViewerException(SR.GetString("SL_UnknownException"), e2);
         }
     }
 }
コード例 #8
0
        private void SortResults()
        {
            Dictionary <int, List <TraceRecord> > dictionary  = new Dictionary <int, List <TraceRecord> >();
            Dictionary <int, List <TraceRecord> > dictionary2 = new Dictionary <int, List <TraceRecord> >();
            long          num           = 0L;
            ExecutionInfo executionInfo = null;
            DateTime      t             = DateTime.MaxValue;

            foreach (TraceRecord value in results.Values)
            {
                if (Parameters == null || !Parameters.SuppressedExecutions.ContainsKey(value.Execution.ExecutionID))
                {
                    num += value.TraceID;
                }
                if (value.Time < t)
                {
                    executionInfo = value.Execution;
                    t             = value.Time;
                }
                if (!dictionary.ContainsKey(value.Execution.ExecutionID))
                {
                    dictionary.Add(value.Execution.ExecutionID, new List <TraceRecord>());
                }
                dictionary[value.Execution.ExecutionID].Add(value);
            }
            renderingHashCode = (int)num;
            SortedList <TraceRecord, int> sortedList = new SortedList <TraceRecord, int>(new TraceRecordComparer());

            foreach (int key in dictionary.Keys)
            {
                sortedList.Add(dictionary[key][0], key);
            }
            for (int i = 0; i < sortedList.Count; i++)
            {
                dictionary2.Add(sortedList.Values[i], dictionary[sortedList.Values[i]]);
            }
            int num2 = (executionInfo != null) ? 1 : 0;
            Queue <ExecutionColumnItem> queue = new Queue <ExecutionColumnItem>();
            ExecutionColumnItem         executionColumnItem = null;

            foreach (int key2 in dictionary2.Keys)
            {
                dictionary2[key2].Sort(new TraceRecordComparer());
                ExecutionColumnItem executionColumnItem2 = null;
                if (executionInfo == null)
                {
                    executionColumnItem2 = new ExecutionColumnItem(dictionary2[key2][0].Execution, ActiveActivity, AllActivities, num2++, suppressedActivityIds, this);
                    queue.Enqueue(executionColumnItem2);
                }
                else
                {
                    executionColumnItem2 = new ExecutionColumnItem(dictionary2[key2][0].Execution, ActiveActivity, AllActivities, (executionInfo.ExecutionID != dictionary2[key2][0].Execution.ExecutionID) ? num2++ : 0, suppressedActivityIds, this);
                    if (executionInfo.ExecutionID == dictionary2[key2][0].Execution.ExecutionID)
                    {
                        executionColumnItem = executionColumnItem2;
                    }
                    else
                    {
                        queue.Enqueue(executionColumnItem2);
                    }
                }
                foreach (TraceRecord item in dictionary2[key2])
                {
                    TraceRecordCellItem traceRecordCellItem = executionColumnItem2.AppendTraceRecord(item);
                    if (traceRecordCellItem != null && (traceRecordCellItem.CurrentTraceRecord.IsMessageSentRecord || traceRecordCellItem.CurrentTraceRecord.IsMessageReceivedRecord || traceRecordCellItem.CurrentTraceRecord.IsMessageLogged))
                    {
                        messageRelatedItems.Add(traceRecordCellItem);
                    }
                }
            }
            if (parameters == null)
            {
                parameters = new ActivityTraceModeAnalyzerParameters();
            }
            if (executionColumnItem != null && executionColumnItem.ActivityColumnCount != 0)
            {
                if (!Parameters.SuppressedExecutions.ContainsKey(executionColumnItem.CurrentExecutionInfo.ExecutionID))
                {
                    executionItems.Add(executionColumnItem);
                }
                allInvolvedExecutionItems.Add(executionColumnItem);
                Parameters.PushExecutionColumnItem(executionColumnItem);
            }
            while (queue.Count != 0)
            {
                ExecutionColumnItem executionColumnItem3 = queue.Dequeue();
                if (executionColumnItem3.ActivityColumnCount != 0)
                {
                    if (!Parameters.SuppressedExecutions.ContainsKey(executionColumnItem3.CurrentExecutionInfo.ExecutionID))
                    {
                        executionItems.Add(executionColumnItem3);
                    }
                    allInvolvedExecutionItems.Add(executionColumnItem3);
                    parameters.PushExecutionColumnItem(executionColumnItem3);
                }
            }
            Parameters.ReorderExecutionColumnItems(executionItems);
            AnalyzeCrossExecutionMessageExchange();
            AnalyzePairedActivities();
        }