Class NIOSequentialFileFactory

java.lang.Object
org.apache.activemq.artemis.core.io.AbstractSequentialFileFactory
org.apache.activemq.artemis.core.io.nio.NIOSequentialFileFactory
All Implemented Interfaces:
SequentialFileFactory

public class NIOSequentialFileFactory extends AbstractSequentialFileFactory
  • Constructor Details

    • NIOSequentialFileFactory

      public NIOSequentialFileFactory(File journalDir, int maxIO)
    • NIOSequentialFileFactory

      public NIOSequentialFileFactory(File journalDir, IOCriticalErrorListener listener, int maxIO)
    • NIOSequentialFileFactory

      public NIOSequentialFileFactory(File journalDir, boolean buffered, int maxIO)
    • NIOSequentialFileFactory

      public NIOSequentialFileFactory(File journalDir, boolean buffered, IOCriticalErrorListener listener, int maxIO)
    • NIOSequentialFileFactory

      public NIOSequentialFileFactory(File journalDir, boolean buffered, int bufferSize, int bufferTimeout, int maxIO, boolean logRates)
    • NIOSequentialFileFactory

      public NIOSequentialFileFactory(File journalDir, boolean buffered, int bufferSize, int bufferTimeout, int maxIO, boolean logRates, IOCriticalErrorListener listener, org.apache.activemq.artemis.utils.critical.CriticalAnalyzer analyzer)
  • Method Details

    • allocateDirectByteBuffer

      public static ByteBuffer allocateDirectByteBuffer(int size)
    • enableBufferReuse

      public void enableBufferReuse()
    • disableBufferReuse

      public void disableBufferReuse()
    • createSequentialFile

      public SequentialFile createSequentialFile(String fileName)
    • isSupportsCallbacks

      public boolean isSupportsCallbacks()
    • allocateDirectBuffer

      public ByteBuffer allocateDirectBuffer(int size)
      Description copied from interface: SequentialFileFactory
      used for cases where you need direct buffer outside of the journal context. This is because the native layer has a method that can be reused in certain cases like paging
    • releaseDirectBuffer

      public void releaseDirectBuffer(ByteBuffer buffer)
      Description copied from interface: SequentialFileFactory
      used for cases where you need direct buffer outside of the journal context. This is because the native layer has a method that can be reused in certain cases like paging
    • newBuffer

      public ByteBuffer newBuffer(int size)
      Description copied from interface: SequentialFileFactory
      Note: You need to release the buffer if is used for reading operations. You don't need to do it if using writing operations (AIO Buffer Lister will take of writing operations)
      Returns:
      the allocated ByteBuffer
    • newBuffer

      public ByteBuffer newBuffer(int size, boolean zeroed)
      Description copied from interface: SequentialFileFactory
      Note: You need to release the buffer if is used for reading operations. You don't need to do it if using writing operations (AIO Buffer Lister will take of writing operations)
      Parameters:
      zeroed - if true the returned ByteBuffer must be zeroed, otherwise it tries to save zeroing it.
      Returns:
      the allocated ByteBuffer
    • releaseBuffer

      public void releaseBuffer(ByteBuffer buffer)
      Specified by:
      releaseBuffer in interface SequentialFileFactory
      Overrides:
      releaseBuffer in class AbstractSequentialFileFactory
    • clearBuffer

      public void clearBuffer(ByteBuffer buffer)
    • wrapBuffer

      public ByteBuffer wrapBuffer(byte[] bytes)
    • getAlignment

      public int getAlignment()
      Specified by:
      getAlignment in interface SequentialFileFactory
      Overrides:
      getAlignment in class AbstractSequentialFileFactory
    • calculateBlockSize

      public int calculateBlockSize(int bytes)