private void step1()
        {
            var o2AssessmentDataItemsToProcess = new List <O2AssessmentData_OunceV6>();

            foreach (O2AssessmentData_OunceV6 o2AssessmentData in lbTargetSavedAssessmentFiles.Items)
            {
                o2AssessmentDataItemsToProcess.Add(o2AssessmentData);
            }

            btCreateTraces.Enabled = false;
            JoinTracesUtils.proccessLoadedFiles(o2AssessmentDataItemsToProcess, cbMakeLostSinksIntoSinks.Checked,
                                                (_dO2TraceBlock, _tvRawData) =>
            {
                dO2TraceBlock = _dO2TraceBlock;
                tvRawData     = _tvRawData;
                this.invokeOnThread(
                    () =>
                {
                    step2();
                    step3();
                    //btProcessLoadedFiles.Enabled = true;
                });
                return(true);
            });
        }
Exemple #2
0
 public void LoadFile(String sFileToLoad)
 {
     if (Path.GetExtension(sFileToLoad).ToLower() == ".cirdata")
     {
         cdCirData            = CirLoad.loadSerializedO2CirDataObject(sFileToLoad);
         lbCirFileLoaded.Text = Path.GetFileName(sFileToLoad);
     }
     else
     {
         if (Path.GetExtension(sFileToLoad).ToLower() == ".xml" ||
             Path.GetExtension(sFileToLoad).ToLower() == ".ozasmt")
         {
             var oadO2AssessmentDataOunceV6 = JoinTracesUtils.loadAssessmentRunFileAndAddItToList(sFileToLoad);
             if (oadO2AssessmentDataOunceV6 != null)
             {
                 foreach (object oItem in lbTargetSavedAssessmentFiles.Items)
                 {
                     if (oItem.ToString() == oadO2AssessmentDataOunceV6.ToString())
                     {
                         DI.log.error(
                             "in loadAssessmentRunFileAndAddItToList, file is already in the list of F1AssessmentRun objects");
                         return;
                     }
                 }
                 lbTargetSavedAssessmentFiles.Items.Add(oadO2AssessmentDataOunceV6);
             }
         }
         else
         {
             DI.log.debug("Skipping loading file (since it is one of type: .cirdata, .xml or .ozasmt: {0}",
                          sFileToLoad);
         }
     }
 }
        private void step3()
        {
            btCreateTraces.Enabled = false;
            DI.log.debug("Creating Traces");
            O2Timer tTimer = new O2Timer("Creating Traces").start();


            string textFilter = "";
            //TreeView _tvRawData = tvRawData;
            ICirData _cdCirData = cdCirData;
            Dictionary <String, O2TraceBlock_OunceV6> _dO2TraceBlock = dO2TraceBlock;
            Dictionary <string, O2TraceBlock_OunceV6> dRawData       = JoinTracesUtils.calculateDictionaryWithRawData(tvRawData);
            const bool bOnlyProcessTracesWithNoCallers = false;

            string     targetFolder                = DI.config.O2TempDir;
            string     fileNamePrefix              = Path.GetFileNameWithoutExtension(lbCirFileLoaded.Text);
            const bool bCreateFileWithAllTraces    = true;
            const bool bCreateFileWithUniqueTraces = false;
            const bool bDropDuplicateSmartTraces   = false;
            const bool bIgnoreRootCallInvocation   = false;

            JoinTracesUtils.createAssessessmentFileWithJoinnedTraces(
                textFilter, dRawData, _cdCirData, _dO2TraceBlock,
                bOnlyProcessTracesWithNoCallers, targetFolder, fileNamePrefix, bCreateFileWithAllTraces,
                bCreateFileWithUniqueTraces, bDropDuplicateSmartTraces, bIgnoreRootCallInvocation, null,
                sAssessmentFile =>
            {
                this.invokeOnThread(
                    () =>
                {
                    lbCreatedAssessmentFile.Text    = sAssessmentFile;
                    lbCreatedAssessmentFile.Visible = true;

                    btCreateTraces.Enabled = true;
                });
                tTimer.stop();
                if (sAssessmentFile != "")
                {
                    findingsViewerfor_JoinnedTraces.loadO2Assessment(sAssessmentFile);
                }
                return(sAssessmentFile);
            });
        }
        private void btCreateTraces_Click(object sender, EventArgs e)
        {
            btCreateTraces.Enabled = false;
            DI.log.debug("Creating Traces");
            O2Timer tTimer = new O2Timer("Creating Traces").start();


            string textFilter = tbCreateTracesForKeyword.Text;
            //TreeView _tvRawData = tvRawData;
            ICirData _cdCirData = cdCirData;
            Dictionary <String, O2TraceBlock_OunceV6> _dO2TraceBlock = dO2TraceBlock;
            Dictionary <string, O2TraceBlock_OunceV6> dRawData       = JoinTracesUtils.calculateDictionaryWithRawData(tvRawData);
            bool bOnlyProcessTracesWithNoCallers = cbOnlyProcessTracesWithNoCallers.Checked;

            string targetFolder                = tbFolderToSaveAssessment.Text;
            string fileNamePrefix              = Path.GetFileNameWithoutExtension(lbCirFileLoaded.Text);
            bool   bCreateFileWithAllTraces    = cbCreateFileWithAllTraces.Checked;
            bool   bCreateFileWithUniqueTraces = cbCreateFileWithUniqueTraces.Checked;
            bool   bDropDuplicateSmartTraces   = cbDropDuplicateSmartTraces.Checked;
            bool   bIgnoreRootCallInvocation   = cbIgnoreRootCallInvocation.Checked;

            JoinTracesUtils.createAssessessmentFileWithJoinnedTraces(
                textFilter, dRawData, _cdCirData, _dO2TraceBlock,
                bOnlyProcessTracesWithNoCallers, targetFolder, fileNamePrefix, bCreateFileWithAllTraces,
                bCreateFileWithUniqueTraces, bDropDuplicateSmartTraces, bIgnoreRootCallInvocation, previewCreatedTraces,
                sAssessmentFile =>
            {
                this.invokeOnThread(
                    () =>
                {
                    lbCreatedAssessmentFile.Text    = sAssessmentFile;
                    lbCreatedAssessmentFile.Visible = true;

                    btCreateTraces.Enabled = true;
                });
                tTimer.stop();
                if (sAssessmentFile != "")
                {
                    findingsViewerfor_JoinnedTraces.loadO2Assessment(sAssessmentFile);
                }
                return(sAssessmentFile);
            });
        }
        private void btProcessLoadedFiles_Click(object sender, EventArgs e)
        {
            var o2AssessmentDataItemsToProcess = new List <O2AssessmentData_OunceV6>();

            foreach (O2AssessmentData_OunceV6 o2AssessmentData in lbTargetSavedAssessmentFiles.Items)
            {
                o2AssessmentDataItemsToProcess.Add(o2AssessmentData);
            }

            btProcessLoadedFiles.Enabled = false;
            JoinTracesUtils.proccessLoadedFiles(o2AssessmentDataItemsToProcess, cbMakeLostSinksIntoSinks.Checked,
                                                (_dO2TraceBlock, _tvRawData) =>
            {
                dO2TraceBlock = _dO2TraceBlock;
                tvRawData     = _tvRawData;
                this.invokeOnThread(
                    () =>
                    { btProcessLoadedFiles.Enabled = true;
                      laNumberOfTracesProcessed.Text = dO2TraceBlock.Count + " TraceBlock : " +
                                                       tvRawData.Nodes.Count + " Nodes"; });
                return(true);
            });
        }
 private void tvSinksView_BeforeExpand(object sender, TreeViewCancelEventArgs e)
 {
     if (e.Node.Parent == null && e.Node.Tag == null) // means we have not processed this node
     {
         foreach (TreeNode tnChildNode in e.Node.Nodes)
         {
             if (tnChildNode.Text != "")
             {
                 var fviFindingViewItem         = (FindingViewItem)tnChildNode.Tag;
                 var otbO2TraceBlockOfChildNode = (O2TraceBlock_OunceV6)tvRawData.Nodes[tnChildNode.Text].Tag;
                 analyzer.addCompatibleTracesToNode_recursive(tnChildNode, fviFindingViewItem,
                                                              otbO2TraceBlockOfChildNode, "Sinks", JoinTracesUtils.calculateDictionaryWithRawData(tvRawData));
             }
             //  fviFindingViewItem
         }
     }
 }
        private void btShowNormalizedTracesFor_Click(object sender, EventArgs e)
        {
            var nomalizedTraces = analyzer.ResolveNormalizeTraceFor(tbNormalizedTracesFor.Text, JoinTracesUtils.calculateDictionaryWithRawData(tvRawData), cdCirData,
                                                                    dO2TraceBlock, cbOnlyProcessTracesWithNoCallers.Checked);

            tvNormalizedTracesView.Nodes.Clear();
            foreach (var normalizedTrace in nomalizedTraces)
            {
                tvNormalizedTracesView.Nodes.Add(normalizedTrace);
            }
            viewing.ProcessNormalizedTracesAndDisplayResults(tvProcessedNormalizedTraces, tvNormalizedTracesView);
        }