protected ByteBuffer newBuffer(int size, int limit) { size = factory.calculateBlockSize(size); limit = factory.calculateBlockSize(limit); ByteBuffer buffer = factory.newBuffer(size); buffer.limit(limit); return buffer; }
@Override protected ByteBuffer newBuffer(int size, int limit) { size = factory.calculateBlockSize(size); limit = factory.calculateBlockSize(limit); ByteBuffer buffer = factory.newBuffer(size); buffer.limit(limit); return buffer; }
@Override protected ByteBuffer newBuffer(int size, int limit) { size = factory.calculateBlockSize(size); limit = factory.calculateBlockSize(limit); ByteBuffer buffer = factory.newBuffer(size); buffer.limit(limit); return buffer; }
protected ByteBuffer newBuffer(int size, int limit) { size = factory.calculateBlockSize(size); limit = factory.calculateBlockSize(limit); ByteBuffer buffer = factory.newBuffer(size); buffer.limit(limit); return buffer; }
/** * Note: Parameter sync is not used on AIO */ @Override public void writeDirect(final ByteBuffer bytes, final boolean sync, final IOCallback callback) { try { checkOpened(); } catch (Exception e) { ActiveMQJournalLogger.LOGGER.warn(e.getMessage(), e); callback.onError(-1, e.getMessage()); return; } final int bytesToWrite = factory.calculateBlockSize(bytes.limit()); final long positionToWrite = position.getAndAdd(bytesToWrite); AIOSequentialFileFactory.AIOSequentialCallback runnableCallback = getCallback(callback, bytes); runnableCallback.initWrite(positionToWrite, bytesToWrite); runnableCallback.run(); }
/** * Note: Parameter sync is not used on AIO */ @Override public void writeDirect(final ByteBuffer bytes, final boolean sync, final IOCallback callback) { try { checkOpened(); } catch (Exception e) { ActiveMQJournalLogger.LOGGER.warn(e.getMessage(), e); callback.onError(-1, e.getMessage()); return; } final int bytesToWrite = factory.calculateBlockSize(bytes.limit()); final long positionToWrite = position.getAndAdd(bytesToWrite); AIOSequentialFileFactory.AIOSequentialCallback runnableCallback = getCallback(callback, bytes); runnableCallback.initWrite(positionToWrite, bytesToWrite); runnableCallback.run(); }
@Override public void blockingWriteDirect(ByteBuffer bytes,boolean sync, boolean releaseBuffer) throws Exception { if (logger.isTraceEnabled()) { logger.trace("Write Direct, Sync: true File: " + getFileName()); } final SimpleWaitIOCallback completion = new SimpleWaitIOCallback(); try { checkOpened(); } catch (Exception e) { ActiveMQJournalLogger.LOGGER.warn(e.getMessage(), e); completion.onError(-1, e.getMessage()); return; } final int bytesToWrite = factory.calculateBlockSize(bytes.limit()); final long positionToWrite = position.getAndAdd(bytesToWrite); final AIOSequentialFileFactory.AIOSequentialCallback runnableCallback = getCallback(completion, bytes, releaseBuffer); runnableCallback.initWrite(positionToWrite, bytesToWrite); runnableCallback.run(); completion.waitCompletion(); }
@Override public void blockingWriteDirect(ByteBuffer bytes,boolean sync, boolean releaseBuffer) throws Exception { if (logger.isTraceEnabled()) { logger.trace("Write Direct, Sync: true File: " + getFileName()); } final SimpleWaitIOCallback completion = new SimpleWaitIOCallback(); try { checkOpened(); } catch (Exception e) { ActiveMQJournalLogger.LOGGER.warn(e.getMessage(), e); completion.onError(-1, e.getMessage()); return; } final int bytesToWrite = factory.calculateBlockSize(bytes.limit()); final long positionToWrite = position.getAndAdd(bytesToWrite); final AIOSequentialFileFactory.AIOSequentialCallback runnableCallback = getCallback(completion, bytes, releaseBuffer); runnableCallback.initWrite(positionToWrite, bytesToWrite); runnableCallback.run(); completion.waitCompletion(); }