dol: initial dol commit
[jump.git] / dol / src / dol / visitor / rtems / RtemsShaperVisitor.java
1 /* $Id: RtemsShaperVisitor.java 1 2010-02-24 13:03:05Z haidw $ */
2 package dol.visitor.rtems;
3
4 import java.util.HashMap;
5
6 import dol.datamodel.pn.Process;
7 import dol.datamodel.pn.ProcessNetwork;
8 import dol.util.Sed;
9 import dol.visitor.PNVisitor;
10
11 /**
12  * This class is a class for a visitor that is used to generate
13  * a wrapper class for the traffic shaper.
14  */
15 public class RtemsShaperVisitor extends PNVisitor {
16
17     /**
18      * Constructor.
19      *
20      * @param dir target directory
21      */
22     public RtemsShaperVisitor(String dir, HashMap<Process, Integer> sinkMap) {
23         _dir = dir;
24         _sinkMap = sinkMap;
25     }
26
27     /**
28      *
29      * @param x process network that needs to be processed
30      */
31     public void visitComponent(ProcessNetwork x) {
32         try {
33             String filename = _dir + _delimiter + "traffic_shaping.h";
34
35             Sed sed = new Sed();
36             String tmp = "NUMBER_OF_QUEUES " + x.getChannelList().size();
37             sed.sed(filename, "@NUMBER_OF_QUEUES@", tmp);
38             tmp = "NUMBER_OF_SINKS " + _sinkMap.size();
39             sed.sed(filename, "@NUMBER_OF_SINKS@", tmp);
40         }
41         catch (Exception e) {
42             System.out.println("RtemsProcessVisitor: exception "
43                     + "occured: " + e.getMessage());
44             e.printStackTrace();
45         }
46     }
47
48     protected String _dir = null;
49     protected HashMap<Process, Integer> _sinkMap;
50 }