public static void readInPageFile(final MessageQueue queue, final ByteWriteAdapter outputStream, final BufferFilter callback) { synchronized (queue.getPageLock()) { try { if (queue.isPaged()) { final File pageFile = new File(getPageFileName(queue)); if (!pageFile.exists()) { queue.setPaged(false); return; } final InputStream inputStream = new BufferedInputStream(new FileInputStream(pageFile)); callback.before(outputStream); int read; while ((read = inputStream.read()) != -1) { outputStream.write(callback.each(read, outputStream)); } inputStream.close(); callback.after(outputStream); queue.setPaged(false); } } catch (Exception e) { throw new RuntimeException("paging error", e); } } }
public static boolean pageWaitingToDisk(final MessageQueue queue) { synchronized (queue.getPageLock()) { try { final boolean alreadyPaged = queue.isPaged(); final OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(getOrCreatePageFile(queue), alreadyPaged)); final ByteWriteAdapter writeAdapter = new OutputStreamWriteAdapter(outputStream); queue.getBuffer().read(writeAdapter, queue.getBufferColor()); outputStream.flush(); outputStream.close(); queue.setPaged(true); return alreadyPaged; } catch (IOException e) { throw new RuntimeException("paging error", e); } } }
public static boolean pageWaitingToDisk(final MessageQueue queue) { synchronized (queue.getPageLock()) { try { final boolean alreadyPaged = queue.isPaged(); final OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(getOrCreatePageFile(queue), alreadyPaged)); final ByteWriteAdapter writeAdapter = new OutputStreamWriteAdapter(outputStream); queue.getBuffer().read(writeAdapter, queue.getBufferColor()); outputStream.flush(); outputStream.close(); queue.setPaged(true); return alreadyPaged; } catch (IOException e) { throw new RuntimeException("paging error", e); } } }
public static void readInPageFile(final MessageQueue queue, final ByteWriteAdapter outputStream, final BufferFilter callback) { synchronized (queue.getPageLock()) { try { if (queue.isPaged()) { final File pageFile = new File(getPageFileName(queue)); if (!pageFile.exists()) { queue.setPaged(false); return; } final InputStream inputStream = new BufferedInputStream(new FileInputStream(pageFile)); callback.before(outputStream); int read; while ((read = inputStream.read()) != -1) { outputStream.write(callback.each(read, outputStream)); } inputStream.close(); callback.after(outputStream); queue.setPaged(false); } } catch (Exception e) { throw new RuntimeException("paging error", e); } } }