@Override public void noop(final MessageQueue queue) throws IOException { BufferHelper.encodeAndWriteNoop(queue.getBuffer(), queue.getBufferColor()); }
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); } } }
@Override public boolean deliver(final MessageQueue queue, final Message message) throws IOException { try { final Buffer buffer = queue.getBuffer(); final BufferColor bufferColor = queue.getBufferColor(); BufferHelper.encodeAndWrite(buffer, bufferColor, message); } finally { queue.incrementMessageCount(); queue.fireActivationCallback(); } return true; }
@Override public boolean copyFromBuffer(final MessageQueue queue, final ByteWriteAdapter toAdapter) throws IOException { final MarkedByteWriteAdapter markedOutputStream = new MarkedByteWriteAdapter(toAdapter); try { queue.getBuffer().read(markedOutputStream, queue.getBufferColor(), new MultiMessageFilter()); if (markedOutputStream.dataWasWritten() && markedOutputStream.getBytesWritten() > 2) { queue.resetMessageCount(); return true; } } catch (BufferOverflowException e) { queue.getBufferColor().getSequence().set(queue.getBuffer().getHeadSequence()); log.warn("buffer data was evicted for session " + queue.getSession().getSessionId() + " due to overflow condition. (consider increasing buffer size with errai.bus.buffer_size " + "in ErraiService.properties)"); } return false; }
@Override public boolean copyFromBuffer(TimeUnit timeUnit, int timeout, MessageQueue queue, ByteWriteAdapter toAdapter) throws IOException { final MarkedByteWriteAdapter markedOutputStream = new MarkedByteWriteAdapter(toAdapter); try { queue.getBuffer().readWait(timeUnit, timeout, markedOutputStream, queue.getBufferColor(), new MultiMessageFilter()); if (markedOutputStream.dataWasWritten() && markedOutputStream.getBytesWritten() > 2) { queue.resetMessageCount(); return true; } } catch (BufferOverflowException e) { queue.getBufferColor().getSequence().set(queue.getBuffer().getHeadSequence()); log.warn("buffer data was evicted for session " + queue.getSession().getSessionId() + " due to overflow condition. (consider increasing buffer size with errai.bus.buffer_size " + "in ErraiService.properties)"); } catch (InterruptedException e) { e.printStackTrace(); } return false; } }
@Override public void onWake(MessageQueue queue) throws IOException { UnwrappedByteArrayOutputStream outputStream = new UnwrappedByteArrayOutputStream(); ByteWriteAdapter adapter = new OutputStreamWriteAdapter(outputStream); queue.getBuffer().read(adapter, queue.getBufferColor(), new MultiMessageFilter()); directSocketChannel.write(new String(outputStream.toByteArray(), 0, outputStream.size())); }
@Override public void noop(final MessageQueue queue) throws IOException { BufferHelper.encodeAndWriteNoop(queue.getBuffer(), queue.getBufferColor()); }
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); } } }
@Override public boolean deliver(final MessageQueue queue, final Message message) throws IOException { try { final Buffer buffer = queue.getBuffer(); final BufferColor bufferColor = queue.getBufferColor(); BufferHelper.encodeAndWrite(buffer, bufferColor, message); } finally { queue.incrementMessageCount(); queue.fireActivationCallback(); } return true; }
@Override public boolean copyFromBuffer(TimeUnit timeUnit, int timeout, MessageQueue queue, ByteWriteAdapter toAdapter) throws IOException { final MarkedByteWriteAdapter markedOutputStream = new MarkedByteWriteAdapter(toAdapter); try { queue.getBuffer().readWait(timeUnit, timeout, markedOutputStream, queue.getBufferColor(), new MultiMessageFilter()); if (markedOutputStream.dataWasWritten() && markedOutputStream.getBytesWritten() > 2) { queue.resetMessageCount(); return true; } } catch (BufferOverflowException e) { queue.getBufferColor().getSequence().set(queue.getBuffer().getHeadSequence()); log.warn("buffer data was evicted for session " + queue.getSession().getSessionId() + " due to overflow condition. (consider increasing buffer size with errai.bus.buffer_size " + "in ErraiService.properties)"); } catch (InterruptedException e) { e.printStackTrace(); } return false; } }
@Override public boolean copyFromBuffer(final MessageQueue queue, final ByteWriteAdapter toAdapter) throws IOException { final MarkedByteWriteAdapter markedOutputStream = new MarkedByteWriteAdapter(toAdapter); try { queue.getBuffer().read(markedOutputStream, queue.getBufferColor(), new MultiMessageFilter()); if (markedOutputStream.dataWasWritten() && markedOutputStream.getBytesWritten() > 2) { queue.resetMessageCount(); return true; } } catch (BufferOverflowException e) { queue.getBufferColor().getSequence().set(queue.getBuffer().getHeadSequence()); log.warn("buffer data was evicted for session " + queue.getSession().getSessionId() + " due to overflow condition. (consider increasing buffer size with errai.bus.buffer_size " + "in ErraiService.properties)"); } return false; }
@Override public void onWake(MessageQueue queue) throws IOException { UnwrappedByteArrayOutputStream outputStream = new UnwrappedByteArrayOutputStream(); ByteWriteAdapter adapter = new OutputStreamWriteAdapter(outputStream); queue.getBuffer().read(adapter, queue.getBufferColor(), new MultiMessageFilter()); directSocketChannel.write(new String(outputStream.toByteArray(), 0, outputStream.size())); }