public RendererRun(Graph graph) throws IOException { this.graph = graph; destFile = new File(tmpDir, Integer.toHexString(graph.hashCode()) + ".png"); }
public void render(Graph graph) throws IOException { if(!rendered.containsKey(graph.hashCode())) { synchronized (rendered) { if(!rendered.containsKey(graph.hashCode())) { RendererRun runRender = new RendererRun(graph); // Create graphics object rendered.put(graph.hashCode(), runRender); try { tpool.execute(runRender); } catch (RejectedExecutionException ex) { logger.warn("Render thread dropped for graph " + graph); } logger.debug("wants to render " + runRender); } } } }
public boolean isReady(Graph graph) { RendererRun runRender = rendered.get(graph.hashCode()); if(runRender == null) { try { render(graph); runRender = rendered.get(graph.hashCode()); } // If cannot launch render, will always be false catch (IOException e) { logger.error("graph " + graph + " will not be calculated:" + e); runRender = null; } } return (runRender != null) && runRender.isReady(); }
public FileChannel sendInfo(Graph graph) { RendererRun runRender = null; try { runRender = rendered.get(graph.hashCode()); } catch (Exception e) { logger.error("Error with probe: " + e); } if(runRender != null && runRender.isReady()) { try { return FileChannel.open(runRender.destFile.toPath(), StandardOpenOption.READ); } catch (IOException e) { logger.error("Can't read graph cache file: " + e.getMessage()); return null; } } else { return null; } }
public void send(Graph graph, OutputStream out) throws IOException { RendererRun runRender = null; try { runRender = rendered.get(graph.hashCode()); } catch (Exception e) { logger.error("Error with probe: " + e); } if(runRender != null && runRender.isReady()) { runRender.send(out); } else { logger.info("No valid precalculated render found for " + graph); // No precalculation found, so we do it right now graph.writePng(out); } }
args.put("gid", g.hashCode()); if(hostlist.getGraphById(g.getNode().hashCode()) != null) { args.put("id", g.getNode().hashCode());
String eTagBaseString = getServletName() + graph.hashCode(); res.addHeader("ETag", Base64.encodeBytes(eTagBaseString.getBytes())); ServletOutputStream out = res.getOutputStream();
@Test public void compare() throws IOException, InvocationTargetException { GraphNode gn = new GraphNode(p, GetMoke.getGraphDesc()); Period pr = new Period(); Graph g1 = new Graph(gn); g1.setPeriod(pr); Graph g2 = new Graph(gn); g2.setPeriod(pr); Assert.assertEquals(g1.hashCode(), g2.hashCode()); Assert.assertEquals(g1, g2); }