Example #1
0
 public Thread showSignatures(IEnumerable <String> _signatures)
 {
     if (lsSignatures != null)
     {
         lsSignatures = O2Linq.getUniqueSortedListOfStrings(_signatures, ref numberOfUniqueStrings);
         return(showView());
     }
     return(null);
 }
        // the method of calculating first the partial lists is a little bit faster than using a bit list (see getListOfUniqueSignatures_UsingUniqueList below)
        public static List <String> getListOfUniqueSignatures(List <IO2Finding> o2Findings)
        {
            var allSignatures = new List <String>();

            foreach (var o2Finding in o2Findings)
            {
                var findingUniqueList = new List <string>();
                getListOfUniqueSignatures(o2Finding.o2Traces, findingUniqueList);
                allSignatures.AddRange(findingUniqueList);
            }
            var numberOfUniqueSignatures = 0;
            var uniqueViaLinq            = O2Linq.getUniqueListOfStrings(allSignatures, ref numberOfUniqueSignatures);

            DI.log.info("Via Linq there were {0} unique signatures calculated", numberOfUniqueSignatures);
            return(uniqueViaLinq.ToList());

            /*var uniqueSignatures = new List<String>();
             * var partialLists = new List<List<String>>();
             * // calculate partial signatures
             * foreach (var o2Finding in o2Findings)
             * {
             *  var findingUniqueList = new List<string>();
             *  getListOfUniqueSignatures(o2Finding.o2Traces, findingUniqueList);
             *  partialLists.Add(findingUniqueList);
             * }
             * DI.log.info("Partial lists calculated, consolidating them");
             * var itemsProcessed = 0;
             * var itemsToProcess = o2Findings.Count;
             * foreach (var partialList in partialLists)
             * {
             *  foreach (var signature in partialList)
             *      if (false == uniqueSignatures.Contains(signature))
             *          uniqueSignatures.Add(signature);
             *
             *  if ((itemsProcessed++)%5000 == 0)
             *      DI.log.info("on [{0}/{1}] there are {2} unique signatures", itemsProcessed, itemsToProcess,
             *                  uniqueSignatures.Count);
             * }
             *
             * DI.log.info("There are {0} unique signatures", uniqueSignatures.Count);
             *
             * return uniqueSignatures; */
        }
Example #3
0
        private void filterByFilteredSignatures(List <FilteredSignature> filteredSignatures)
        {
            this.invokeOnThread(
                () =>
            {
                var filterToUse = cbFilter1.Text;

                O2Thread.mtaThread(
                    () =>
                {
                    var timer = new O2Timer("filterByFilteredSignatures").start();
                    List <string> listOfFilteredSignatures =
                        O2Linq.getListOfSignatures(filteredSignatures);
                    var newListOfO2Findings = new List <IO2Finding>();
                    foreach (IO2Finding o2Finding in currentO2Findings)
                    {
                        if (listOfFilteredSignatures.Contains(calculateTreeNodeText(o2Finding,
                                                                                    filterToUse, "")))
                        {
                            newListOfO2Findings.Add(o2Finding);
                        }
                    }
                    currentO2Findings = newListOfO2Findings;
                    timer.stop();
                    showCurrentO2Findings();
                });
            });


            /*
             *              this.invokeOnThread(
             *                  () =>
             *                      {
             *
             *                          tvFindings.Visible = false;
             *                          var nodesToRemove = new List<TreeNode>();
             *                          var nodesToAnalyze = new List<TreeNode>();
             *                          foreach (TreeNode treeNode in tvFindings.Nodes)
             *                              nodesToAnalyze.Add(treeNode);
             *
             *
             *                          nodesToRemove = removeFromTreeNodeCollectionOnFilteredSignatures(nodesToAnalyze,
             *                                                                                           listOfFilteredSignatures, currentFilteredTextMappings);
             *
             *
             *                          // and update indexes
             *                  /*        foreach (TreeNode currentTreeNode in tvFindings.Nodes)
             *                              if (currentTreeNode.Tag != null && currentTreeNode.Tag is List<TreeNode>)
             *                              {
             *                                  var subTreeNodesCount = ((List<TreeNode>) currentTreeNode.Tag).Count;
             *                                  if (subTreeNodesCount == 0)
             *                                      nodesToRemove.Add(currentTreeNode);
             *                                  else
             *                                  {
             *                                      currentTreeNode.Text += "   ... after filter (" + subTreeNodesCount +")";
             *                                      currentTreeNode.Collapse();
             *                                  }
             *                              }
             * /
             *                          // remove nodes from current tree
             *                          foreach (TreeNode treeNodeToRemove in nodesToRemove)
             *                              tvFindings.Nodes.Remove(treeNodeToRemove);
             *
             *                          tvFindings.Visible = true;
             *                          tvFindings.Refresh();
             *                          //    refreshView();
             *                      });
             *          });*/
        }