X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=Robust%2Fsrc%2FInterface%2FWebInterface.java;h=069527bd47c1dbc14dfb56872a4a392d5fc6dfc8;hb=cdcf09c40af1419fa42932aae249cb79b69b5daf;hp=9b4d49c258d5794295ef54ba95737fe28f912a66;hpb=0091b84d8649d93060656cfbbd99b6183c9a05f9;p=IRC.git diff --git a/Robust/src/Interface/WebInterface.java b/Robust/src/Interface/WebInterface.java deleted file mode 100644 index 9b4d49c2..00000000 --- a/Robust/src/Interface/WebInterface.java +++ /dev/null @@ -1,260 +0,0 @@ -package Interface; -import java.io.*; -import Analysis.TaskStateAnalysis.*; -import IR.*; -import java.util.*; -import Util.Namer; - -public class WebInterface { - TaskAnalysis taskanalysis; - TaskGraph taskgraph; - State state; - Hashtable flagstatemap; - Hashtable taskgraphmap; - Hashtable sourcenodemap; //to hold the filenames for each of the pages linked to the source nodes. - Hashtable taskmap; // to hold the filenames for each of the pages linked to tasks in the program. - GarbageAnalysis garbageanalysis; - - public WebInterface(State state, TaskAnalysis taskanalysis, TaskGraph taskgraph, GarbageAnalysis garbageanalysis) { - this.state=state; - this.taskanalysis=taskanalysis; - this.taskgraph=taskgraph; - this.garbageanalysis=garbageanalysis; - - flagstatemap=new Hashtable(); - taskgraphmap=new Hashtable(); - taskmap = new Hashtable(); - sourcenodemap=new Hashtable(); - - for(Iterator it_tasks=state.getTaskSymbolTable().getDescriptorsIterator();it_tasks.hasNext();){ - TaskDescriptor td=(TaskDescriptor)it_tasks.next(); - taskmap.put("/"+td.getSymbol()+".html",td); - } - - for(Iterator it_classes=state.getClassSymbolTable().getDescriptorsIterator();it_classes.hasNext();) { - ClassDescriptor cd=(ClassDescriptor) it_classes.next(); - if(cd.hasFlags()){ - Vector rootnodes=taskanalysis.getRootNodes(cd); - - if(rootnodes!=null) - for(Iterator it_rootnodes=rootnodes.iterator();it_rootnodes.hasNext();){ - FlagState root=(FlagState)it_rootnodes.next(); - Vector cd_nodeid=new Vector(); //Vector is designed to contain only 2 elements: ClassDescriptor,Node label - // Both the values are required to correctly resolve the rootnode. - // Should think of a better way to do this, instead of using a vector(maybe a class) - cd_nodeid.addElement(cd); //adding the ClassDescriptor - cd_nodeid.addElement(root.getLabel()); //adding the Node label - sourcenodemap.put("/"+cd.getSymbol()+"_"+root.getLabel()+".html",cd_nodeid); - } - } - } - } - - public boolean specialRequest(String filename) { - System.out.println(filename); - if (filename.equals("/index.html")) - return true; - if (filename.equals("/UnifiedTaskGraph.html")) - return true; - if (flagstatemap.containsKey(filename)) - return true; - if (taskgraphmap.containsKey(filename)) - return true; - if (taskmap.containsKey(filename)) - return true; - if (sourcenodemap.containsKey(filename)) - return true; - return false; - } - - public String handleresponse(String filename, OutputStream out, HTTPResponse resp) { - if (filename.equals("/index.html")) - return indexpage(out, resp); - if (filename.equals("/UnifiedTaskGraph.html")) - return unifiedTaskGraph(out,resp); - if (flagstatemap.containsKey(filename)) - return flagstate((ClassDescriptor) flagstatemap.get(filename), out, resp); - if (taskgraphmap.containsKey(filename)) - return taskstate((ClassDescriptor) taskgraphmap.get(filename), out, resp); - if (taskmap.containsKey(filename)) - return task((TaskDescriptor)taskmap.get(filename),out,resp); - if (sourcenodemap.containsKey(filename)) - return sourcenode((Vector) sourcenodemap.get(filename), out, resp); - return "NORESP"; - } - - private String task(TaskDescriptor td, OutputStream out, HTTPResponse resp){ - try{ - PrintWriter pw=new PrintWriter(out); - pw.println("

Task:   "+td.toString()+"


"); - printTask(td,pw); - pw.flush(); - } catch (Exception e) {e.printStackTrace();System.exit(-1);} - return null; - } - - private String printTask(TaskDescriptor td, PrintWriter pw){ - try{ - - for(int i=0; i < td.numParameters();i++){ - pw.println("FlagState Graph:  "+td.getParamType(i)+"
"); - pw.println("Task Graph:        " - +td.getParamType(i)+"
"); - } - pw.flush(); - }catch(Exception e) {e.printStackTrace();System.exit(-1);} - return null; - } - - private String sourcenode(Vector cd_nodeid,OutputStream out, HTTPResponse resp){ - Vector rootnodes=taskanalysis.getRootNodes((ClassDescriptor)cd_nodeid.elementAt(0)); - for(Iterator it_rootnodes=rootnodes.iterator();it_rootnodes.hasNext();){ - FlagState root=(FlagState)it_rootnodes.next(); - if (root.getLabel().equals((String)cd_nodeid.elementAt(1))){ - try{ - PrintWriter pw=new PrintWriter(out); - pw.println("

Allocating tasks for "+root.getTextLabel()+":


"); - Vector tasks=root.getAllocatingTasks(); - for(Iterator it_tasks=tasks.iterator();it_tasks.hasNext();){ - TaskDescriptor td=(TaskDescriptor)it_tasks.next(); - pw.println("
Task:   "+td.toString()+"
"); - printTask(td,pw); - } - - } catch (Exception e) {e.printStackTrace();System.exit(-1);} - break; - } - - } - return null; - } - - private String flagstate(ClassDescriptor cd, OutputStream out, HTTPResponse resp) { - Set objects=taskanalysis.getFlagStates(cd); - File file=new File(cd.getSymbol()+".dot"); - File mapfile; - String str; - Vector namers=new Vector(); - namers.add(new Namer()); - namers.add(garbageanalysis); - namers.add(new Allocations()); - namers.add(new TaskEdges()); - try { - //Generate jpg - Runtime r=Runtime.getRuntime(); - - FileOutputStream dotstream=new FileOutputStream(file,false); - FlagState.DOTVisitor.visit(dotstream, objects, namers); - dotstream.close(); - Process p=r.exec("dot -Tcmapx -o"+cd.getSymbol()+".map -Tjpg -o"+cd.getSymbol()+".jpg "+cd.getSymbol()+".dot"); - p.waitFor(); - p=r.exec("dot -Tps "+cd.getSymbol()+".dot -o"+cd.getSymbol()+".ps"); - p.waitFor(); - - mapfile=new File(cd.getSymbol()+".map"); - BufferedReader mapbr=new BufferedReader(new FileReader(mapfile)); - PrintWriter pw=new PrintWriter(out); - pw.println("ps
"); - //pw.println(""); - pw.println(""); - while((str=mapbr.readLine())!=null){ - pw.println(str); - } - - pw.flush(); - } catch (Exception e) {e.printStackTrace();System.exit(-1);} - return null; - } - - private String taskstate(ClassDescriptor cd, OutputStream out, HTTPResponse resp) { - Set objects=taskgraph.getTaskNodes(cd); - File file=new File(cd.getSymbol()+"-t.dot"); - File mapfile; - String str; - Vector namers=new Vector(); - namers.add(new Namer()); - namers.add(new TaskNodeNamer()); - - try { - //Generate jpg - Runtime r=Runtime.getRuntime(); - FileOutputStream dotstream=new FileOutputStream(file,false); - FlagState.DOTVisitor.visit(dotstream, objects,namers); - dotstream.close(); - Process p=r.exec("dot -Tcmapx -o"+cd.getSymbol()+"-t.map -Tjpg -o"+cd.getSymbol()+"-t.jpg "+cd.getSymbol()+"-t.dot"); - p.waitFor(); - p=r.exec("dot -Tps "+cd.getSymbol()+".dot -o"+cd.getSymbol()+"-t.ps"); - - p.waitFor(); - - mapfile=new File(cd.getSymbol()+"-t.map"); - BufferedReader mapbr=new BufferedReader(new FileReader(mapfile)); - PrintWriter pw=new PrintWriter(out); - pw.println("ps
"); - // pw.println(""); - pw.println(""); - - while((str=mapbr.readLine())!=null){ - pw.println(str); - } - pw.flush(); - } catch (Exception e) {e.printStackTrace();System.exit(-1);} - return null; - } - - /* public void taskgraph( -*/ - - private String indexpage(OutputStream out, HTTPResponse resp) { - - PrintWriter pw=new PrintWriter(out); - for(Iterator it_classes=state.getClassSymbolTable().getDescriptorsIterator();it_classes.hasNext();) { - ClassDescriptor cd=(ClassDescriptor) it_classes.next(); - if (taskanalysis.getFlagStates(cd)!=null) { - pw.println(""+ cd.getSymbol() +""); - pw.println("
"); - flagstatemap.put("/"+cd.getSymbol()+".html", cd); - } - if (taskgraph.getTaskNodes(cd)!=null) { - pw.println("Task Graph "+ cd.getSymbol() +""); - pw.println("
"); - taskgraphmap.put("/"+cd.getSymbol()+"-t.html", cd); - } - } - pw.println("

Program flow"); - pw.flush(); - return null; - } - - private String unifiedTaskGraph(OutputStream out, HTTPResponse resp){ - Set objects=taskgraph.getAllTaskNodes(); - File file=new File("UnifiedTaskGraph.dot"); - /*File mapfile; - String str; - Vector namers=new Vector(); - namers.add(new Namer()); - namers.add(new TaskNodeNamer()); -*/ - try { - //Generate jpg - Runtime r=Runtime.getRuntime(); - FileOutputStream dotstream=new FileOutputStream(file,false); - FlagState.DOTVisitor.visit(dotstream, objects); - dotstream.close(); - Process p=r.exec("dot -Tjpg -oUnifiedTaskGraph.jpg UnifiedTaskGraph.dot"); - p.waitFor(); - p=r.exec("dot -Tps UnifiedTaskGraph.dot -oUnifiedTaskGraph.ps"); - - p.waitFor(); - - PrintWriter pw=new PrintWriter(out); - pw.println("ps
"); - // pw.println(""); - pw.println(""); - - pw.flush(); - } catch (Exception e) {e.printStackTrace();System.exit(-1);} - return null; - } - -}