1 /* $Id: PNSystemCVisitor.java 1 2010-02-24 13:03:05Z haidw $ */
2 package dol.visitor.systemC;
5 import java.io.FileNotFoundException;
6 import java.io.IOException;
8 import dol.datamodel.pn.ProcessNetwork;
9 import dol.util.CodePrintStream;
10 import dol.util.Copier;
11 import dol.visitor.PNVisitor;
14 * This class is a class for a visitor that is used to generate
17 public class PNSystemCVisitor extends PNVisitor {
22 * @param packageName Name of the SystemC directory
24 public PNSystemCVisitor(String packageName) {
25 _packageName = packageName;
30 * @param x process network that needs to be rendered.
32 public void visitComponent(ProcessNetwork x) {
34 //_packageName = x.getName() + "SystemCPackage";
35 _generateDirHierarchy();
37 x.accept(new MakefileVisitor(_srcDir));
38 x.accept(new SCModuleVisitor(_srcDir));
39 x.accept(new ProcessVisitor(_wrapperDir));
43 System.out.println(" SystemC PN Visitor: exception "
44 + "occured: " + e.getMessage());
52 protected void _generateDirHierarchy()
53 throws IOException, FileNotFoundException {
54 File dir = new File(_packageName);
57 _srcDir = _packageName + _delimiter + _srcDirName;
58 dir = new File(_srcDir);
61 _libDir = _srcDir + _delimiter + _libDirName;
62 dir = new File(_libDir);
65 _processDir = _srcDir + _delimiter + _processDirName;
66 dir = new File(_processDir);
69 _wrapperDir = _srcDir + _delimiter + _wrapperDirName;
70 dir = new File(_wrapperDir);
74 File source = new File(_ui.getMySystemCLib());
75 File destination = new File(_libDir);
76 new Copier().copy(source, destination);
78 //copy process source code
79 source = new File(_srcDirName);
80 destination = new File(_processDir);
81 new Copier().copy(source, destination);
84 protected String _packageName = null;
86 protected String _srcDir = "";
87 protected static String _srcDirName = "src";
89 protected String _libDir = "";
90 protected static String _libDirName = "lib";
92 protected String _processDir = "";
93 protected static String _processDirName = "processes";
95 protected String _wrapperDir = "";
96 protected static String _wrapperDirName = "sc_wrappers";
98 protected String _threadPostfix = "_thread";
100 protected CodePrintStream _mainPS = null;