Exemplo n.º 1
0
 public GameEventUsers(string usedMethod, string displayName, GameEventUsageDescription owner)
 {
     this.usedMethod  = usedMethod;
     this.displayName = displayName;
     this.owner       = owner;
     users            = new List <GameEventUser>();
 }
Exemplo n.º 2
0
    internal void CreateCallGraph()
    {
        graph      = new GeometryGraph();
        eventNodes = new Dictionary <string, Node>();
        userNodes  = new Dictionary <string, Node>();

        GameEventUsageDescription description = new GameEventUsageDescription();

        foreach (var unused in description.unusedEvents)
        {
            CreateEventNode(unused, NodeType.UnusedEvent, Color.red);
        }

        var usedEvents = description.invokers.users.Select(u => u.eventName)
                         .Concat(description.listeners.users.Select(u => u.eventName));

        foreach (var used in usedEvents.Distinct())
        {
            CreateEventNode(used, NodeType.UsedEvent, Color.blue);
        }

        var users = description.invokers.users.Select(u => u.usingType.Name)
                    .Concat(description.listeners.users.Select(u => u.usingType.Name));

        foreach (var user in users.Distinct())
        {
            CreateUserNode(user);
        }
        foreach (var user in description.listeners.users)
        {
            graph.Edges.Add(new Edge(eventNodes[user.eventName], userNodes[user.usingType.Name]));
        }

        foreach (var user in description.invokers.users)
        {
            graph.Edges.Add(new Edge(userNodes[user.usingType.Name], eventNodes[user.eventName]));
        }
    }