@Override public ByteBuffer allocateDirectBuffer(int size) { return journalFF.allocateDirectBuffer(size); }
private static ByteBuffer allocateDirectBufferIfNeeded(final SequentialFileFactory fileFactory, final int requiredCapacity, final AtomicReference<ByteBuffer> bufferRef) { ByteBuffer buffer = bufferRef != null ? bufferRef.get() : null; if (buffer != null && buffer.capacity() < requiredCapacity) { fileFactory.releaseDirectBuffer(buffer); buffer = null; } if (buffer == null) { buffer = fileFactory.allocateDirectBuffer(requiredCapacity); } else { buffer.clear().limit(requiredCapacity); } if (bufferRef != null) { bufferRef.lazySet(buffer); } return buffer; }
private static ByteBuffer allocateDirectBufferIfNeeded(final SequentialFileFactory fileFactory, final int requiredCapacity, final AtomicReference<ByteBuffer> bufferRef) { ByteBuffer buffer = bufferRef != null ? bufferRef.get() : null; if (buffer != null && buffer.capacity() < requiredCapacity) { fileFactory.releaseDirectBuffer(buffer); buffer = null; } if (buffer == null) { buffer = fileFactory.allocateDirectBuffer(requiredCapacity); } else { buffer.clear().limit(requiredCapacity); } if (bufferRef != null) { bufferRef.lazySet(buffer); } return buffer; }
/** * @throws Exception */ protected void openFile() throws Exception { flush(false); currentFile = filesRepository.openFileCMP(); sequentialFile = currentFile.getFile(); sequentialFile.open(1, false); currentFile = new JournalFileImpl(sequentialFile, nextOrderingID++, JournalImpl.FORMAT_VERSION); final int fileSize = journal.getFileSize(); if (bufferWrite != null && bufferWrite.capacity() < fileSize) { fileFactory.releaseDirectBuffer(bufferWrite); bufferWrite = null; writingChannel = null; } if (bufferWrite == null) { final ByteBuffer bufferWrite = fileFactory.allocateDirectBuffer(fileSize); this.bufferWrite = bufferWrite; writingChannel = ActiveMQBuffers.wrappedBuffer(bufferWrite); } else { writingChannel.clear(); bufferWrite.clear(); } JournalImpl.writeHeader(writingChannel, journal.getUserVersion(), currentFile.getFileID()); }
/** * @throws Exception */ protected void openFile() throws Exception { flush(false); currentFile = filesRepository.openFileCMP(); sequentialFile = currentFile.getFile(); sequentialFile.open(1, false); currentFile = new JournalFileImpl(sequentialFile, nextOrderingID++, JournalImpl.FORMAT_VERSION); final int fileSize = journal.getFileSize(); if (bufferWrite != null && bufferWrite.capacity() < fileSize) { fileFactory.releaseDirectBuffer(bufferWrite); bufferWrite = null; writingChannel = null; } if (bufferWrite == null) { final ByteBuffer bufferWrite = fileFactory.allocateDirectBuffer(fileSize); this.bufferWrite = bufferWrite; writingChannel = ActiveMQBuffers.wrappedBuffer(bufferWrite); } else { writingChannel.clear(); bufferWrite.clear(); } JournalImpl.writeHeader(writingChannel, journal.getUserVersion(), currentFile.getFileID()); }