get rid of ugly globals in DataFlowGraph
[fleet.git] / src / edu / berkeley / fleet / dataflow / DataFlowGraph.java
1 package edu.berkeley.fleet.dataflow;
2 import java.util.*;
3 import edu.berkeley.fleet.loops.*;
4 import edu.berkeley.fleet.api.*;
5 import java.util.*;
6 import java.net.*;
7
8 // public class ReplaceNode extends Node { }
9 // public class CountMergeNode extends Node { }
10 // public class SortMergeNode extends Node { }
11 // public class FanOutNode extends Node { }
12 // public class DoneNode extends Node { }
13
14 public class DataFlowGraph {
15
16     public final Fleet    fleet;
17     public final ShipPool pool;
18     private HashSet<Node> nodes = new HashSet<Node>();
19
20     public DataFlowGraph(Fleet fleet) { this(fleet, new ShipPool(fleet)); }
21     public DataFlowGraph(Fleet fleet, ShipPool pool) {
22         this.fleet = fleet;
23         this.pool  = pool;
24     }
25
26     public void addNode(Node node) { this.nodes.add(node); }
27
28     public void build(Context ctx) {
29         for(Node mod : nodes)
30             mod.build(ctx);
31     }
32     public int reset(Context ctx, int phase, Destination ackDestination, HashSet<Dock> sendTorpedoesTo) {
33         int ret = 0;
34         for(Node mod : nodes)
35             ret += mod.reset(ctx, phase, ackDestination, sendTorpedoesTo);
36         return ret;
37     }
38 }
39
40