Ejemplo n.º 1
0
        public VisualNode(string id, string displayText, params ICausalityNode[] nodes)
        {
            Contract.Requires(nodes.Length != 0, "nodes.Length != 0");

            Id          = id;
            DisplayText = displayText;
            _lastOrSingleCausalityNode = nodes.Last();
            CausalityNodes             = new HashSet <ICausalityNode>(nodes);
        }
Ejemplo n.º 2
0
            static bool shouldCollapse(ICausalityNode?previousNode, ICausalityNode node)
            {
                if (!isCollapseable(previousNode, node))
                {
                    // If the current node is not collapseable, then the we should collapse the currenttly accumulated items.
                    return(true);
                }

                var shouldCollapse = node.Dependencies.Count > 1 || node.Dependents.Count > 1 ||
                                     previousNode != null && !previousNode.Dependencies.Contains(node);

                return(shouldCollapse);
            }
Ejemplo n.º 3
0
        public static bool IsRoot(this ICausalityNode node)
        {
            if (node.Dependents.Count == 0)
            {
                return(true);
            }

            //if (node is ThreadNode) { return true; }

            //if (node is AsyncStateMachineNode stateMachine && stateMachine.Dependents.Count != 0) { return true; }

            //if (Dependents.Count == 0) return true;
            return(false);
        }
Ejemplo n.º 4
0
            static bool isCollapseable(ICausalityNode?previousNode, ICausalityNode node)
            {
                var isCollapsable = node.Dependencies.Count <= 1 && node.Kind != NodeKind.Thread;

                return(isCollapsable);
            }
Ejemplo n.º 5
0
 public static IEnumerable <ICausalityNode> EnumerateNeighborsAndSelfDepthFirst(this ICausalityNode current)
 {
     return(EnumerateNeighborsAndSelfDepthFirst(current, n => n.Dependencies.Concat(n.Dependents)));
 }
Ejemplo n.º 6
0
 public static bool IsLeaf(this ICausalityNode node) => node.Dependencies.Count == 0;
Ejemplo n.º 7
0
 private static bool IsVisible(ICausalityNode node) => true;