X-Git-Url: http://sraa.de/git/?a=blobdiff_plain;f=dol%2Fsrc%2Fdol%2Fvisitor%2FPipeAndFilter%2FPipeAndFilterProcessVisitor.java;fp=dol%2Fsrc%2Fdol%2Fvisitor%2FPipeAndFilter%2FPipeAndFilterProcessVisitor.java;h=a1ec83b2b7bf8b31a11ce3f10f4b06ccf555609a;hb=8c411cf24ed0eb889191aaeafd8fa1e69081df42;hp=0000000000000000000000000000000000000000;hpb=dea7a4fb1ed110d3ce6e6d9255103d724bd66c0e;p=jump.git diff --git a/dol/src/dol/visitor/PipeAndFilter/PipeAndFilterProcessVisitor.java b/dol/src/dol/visitor/PipeAndFilter/PipeAndFilterProcessVisitor.java new file mode 100644 index 0000000..a1ec83b --- /dev/null +++ b/dol/src/dol/visitor/PipeAndFilter/PipeAndFilterProcessVisitor.java @@ -0,0 +1,60 @@ +/* $Id: PipeAndFilterProcessVisitor.java 1 2010-02-24 13:03:05Z haidw $ */ +package dol.visitor.PipeAndFilter; + +import java.io.FileOutputStream; +import java.io.OutputStream; +import java.util.Vector; + +import dol.datamodel.pn.Process; +import dol.datamodel.pn.ProcessNetwork; +import dol.util.CodePrintStream; +import dol.visitor.PNVisitor; +import dol.visitor.hds.HdsProcessVisitor; + +/** + * + */ +public class PipeAndFilterProcessVisitor extends PNVisitor { + + /** + * Constructor. + */ + public PipeAndFilterProcessVisitor(String dir) { + _dir = dir; + } + + /** + * + */ + public void visitComponent(ProcessNetwork x) { + HdsProcessVisitor visitor = new HdsProcessVisitor(_dir); + x.accept(visitor); + + try { + String filename = _dir + _delimiter + "wrappers.h"; + OutputStream file = new FileOutputStream(filename); + _wrapperHeader = new CodePrintStream(file); + _wrapperHeader.printPrefixln("#ifndef WRAPPERS_H"); + _wrapperHeader.printPrefixln("#define WRAPPERS_H"); + _wrapperHeader.println(); + Vector pList = new Vector(); + for (Process p : x.getProcessList()) { + String basename = p.getBasename(); + if (!pList.contains(basename)) { + pList.add(basename); + _wrapperHeader.printPrefixln("#include \"" + + p.getBasename() + "_wrapper.h\""); + } + } + _wrapperHeader.println(); + _wrapperHeader.printPrefixln("#endif"); + } catch (Exception e) { + System.out.println("Process Visitor: exception " + + "occured: " + e.getMessage()); + e.printStackTrace(); + } + } + + protected String _dir = null; + CodePrintStream _wrapperHeader; +}