1 /* $Id: PipeAndFilterProcessVisitor.java 1 2010-02-24 13:03:05Z haidw $ */
2 package dol.visitor.PipeAndFilter;
4 import java.io.FileOutputStream;
5 import java.io.OutputStream;
6 import java.util.Vector;
8 import dol.datamodel.pn.Process;
9 import dol.datamodel.pn.ProcessNetwork;
10 import dol.util.CodePrintStream;
11 import dol.visitor.PNVisitor;
12 import dol.visitor.hds.HdsProcessVisitor;
17 public class PipeAndFilterProcessVisitor extends PNVisitor {
22 public PipeAndFilterProcessVisitor(String dir) {
29 public void visitComponent(ProcessNetwork x) {
30 HdsProcessVisitor visitor = new HdsProcessVisitor(_dir);
34 String filename = _dir + _delimiter + "wrappers.h";
35 OutputStream file = new FileOutputStream(filename);
36 _wrapperHeader = new CodePrintStream(file);
37 _wrapperHeader.printPrefixln("#ifndef WRAPPERS_H");
38 _wrapperHeader.printPrefixln("#define WRAPPERS_H");
39 _wrapperHeader.println();
40 Vector<String> pList = new Vector<String>();
41 for (Process p : x.getProcessList()) {
42 String basename = p.getBasename();
43 if (!pList.contains(basename)) {
45 _wrapperHeader.printPrefixln("#include \""
46 + p.getBasename() + "_wrapper.h\"");
49 _wrapperHeader.println();
50 _wrapperHeader.printPrefixln("#endif");
51 } catch (Exception e) {
52 System.out.println("Process Visitor: exception " +
53 "occured: " + e.getMessage());
58 protected String _dir = null;
59 CodePrintStream _wrapperHeader;