// Factory methods: public static MemoStorable load(Entity ent) { // long start = System.currentTimeMillis(); byte[] result; Key key = ent.getKey(); int size = 0; long spread = 0; // int count=0; try { Blob blob = (Blob) ent.getProperty("payload"); size = (int) ((Long) ent.getProperty("size") % Integer.MAX_VALUE); spread = ((Long) ent.getProperty("spread")); byte[] data = blob.getBytes(); result = Arrays.copyOf(data, data.length); // count++; while (ent.hasProperty("next")) { // Expensive, should not be used too much! Key next = (Key) ent.getProperty("next"); ent = datastore.get(next); blob = (Blob) ent.getProperty("payload"); data = blob.getBytes(); result = concat(data, result); // Add to front of result, due to // count++; // the storing order } } catch (EntityNotFoundException e) { e.printStackTrace(); return null; } MemoStorable res = _unserialize(result, size); res.spread = spread; res.storedSize = result.length; if (res != null) res.myKey = key; return res; }
/** * Executes a background task. * * <p>The task payload is either type Deferrable or Key; in the latter case, retrieve (then * delete) the Deferrable instance from the datastore. */ @Override public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { try { Object payload = deserialize(req); if (payload instanceof Key) { // get Deferrable from datastore Blob taskBlob = (Blob) getDatastoreService().get((Key) payload).getProperty(TASK_PROPERTY); deleteEntity((Key) payload); if (taskBlob != null) { payload = deserialize(taskBlob.getBytes()); } } if (payload instanceof Deferrable) { ((Deferrable) payload).doTask(); } else if (payload != null) { log.severe("invalid payload type: " + payload.getClass().getName()); // don't retry task } } catch (EntityNotFoundException e) { log.severe(e.toString()); // don't retry task } catch (PermanentTaskFailure e) { log.severe(e.toString()); // don't retry task } }
public InputStream getInputStream() throws IOException { ByteArrayInputStream bais; if (content != null) { bais = new ByteArrayInputStream(content.getBytes()); } else { bais = new ByteArrayInputStream(content_out.toByteArray()); } return bais; }
public Object process() throws xMethodException { int width = 2, height = 2; try { width = Integer.parseInt(getArguments("w")); } catch (Exception e) { } try { height = Integer.parseInt(getArguments("h")); } catch (Exception e) { } int color = 0xffffff; try { color = Integer.parseInt(getArguments("c"), 16); } catch (Exception e) { } int border_color = color; try { border_color = Integer.parseInt(getArguments("bc"), 16); } catch (Exception e) { } float opaque = 1f; try { opaque = Float.parseFloat(getArguments("o")); } catch (Exception e) { } int rc = -1; try { rc = Integer.parseInt(getArguments("rc")); } catch (Exception e) { } byte[] pngbytes = null; StringBuffer memkey = new StringBuffer(); memkey .append(width) .append(height) .append(color) .append(border_color) .append(rc) .append(opaque); Blob blob = (Blob) xMemCache.pngService().get(memkey); if (blob != null) pngbytes = blob.getBytes(); if (pngbytes == null || pngbytes.length == 0) { pngPixelSource ps = new pngPixelSource(width, height, color, border_color, rc, opaque); try { pngbytes = new PngWriter().generateImage(ps); xMemCache.pngService().put(memkey, new Blob(pngbytes)); } catch (IOException e) { e.printStackTrace(); } } // HttpServletResponse response = getServiceContext().customizeResponse(); response.setHeader("Cache-Control", "no-cache"); response.setContentType("image/png"); try { response.getOutputStream().write(pngbytes); } catch (IOException ioe) { ioe.printStackTrace(); throw createMethodException("QrcodeException", ioe.getLocalizedMessage()); } // return getServiceContext().doNextProcess(); }
public long getSize() { return (content != null) ? content.getBytes().length : content_out.size(); }
public byte[] get() { return (content != null) ? content.getBytes() : content_out.toByteArray(); }
public String getString(String arg0) throws UnsupportedEncodingException { return (content != null) ? new String(content.getBytes(), arg0) : new String(content_out.toByteArray(), arg0); }
public String getString() { return (content != null) ? new String(content.getBytes()) : new String(content_out.toByteArray()); }
/** @return the xml */ public byte[] getXml() { if (xml == null) return null; return xml.getBytes(); }
public byte[] getBytes() { return blob.getBytes(); }
public byte[] getImage() { if (image == null) return null; return image.getBytes(); }