Class AsyncFileIO
- java.lang.Object
-
- org.apache.ignite.internal.processors.cache.persistence.file.AbstractFileIO
-
- org.apache.ignite.internal.processors.cache.persistence.file.AsyncFileIO
-
- All Implemented Interfaces:
AutoCloseable,FileIO
public class AsyncFileIO extends AbstractFileIO
File I/O implementation based onAsynchronousFileChannel.
-
-
Constructor Summary
Constructors Constructor Description AsyncFileIO(File file, ThreadLocal<org.apache.ignite.internal.processors.cache.persistence.file.AsyncFileIO.ChannelOpFuture> holder, OpenOption... modes)Creates I/O implementation for specifiedfile
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Truncates current file to zero length and resets current file position to zero.voidclose()Closes current file.voidforce()Forces any updates of this file to be written to the storage device that contains it.voidforce(boolean withMetadata)Forces any updates of this file to be written to the storage device that contains it.intgetFileSystemBlockSize()longgetSparseSize()MappedByteBuffermap(int sizeBytes)Allocates memory mapped buffer for this file with given size.longposition()Returns current file position.voidposition(long newPosition)Sets new current file position.intpunchHole(long position, int len)intread(byte[] buf, int off, int length)Reads a up tolengthbytes from this file into thebuffer.intread(ByteBuffer destBuf)Reads a sequence of bytes from this file into thedestinationBuffer.intread(ByteBuffer destBuf, long position)Reads a sequence of bytes from this file into thedestinationBufferstarting from specified fileposition.longsize()Returns current file size in bytes.intwrite(byte[] buf, int off, int len)Writeslengthbytes from thebufferstarting at offsetoffto this file.intwrite(ByteBuffer srcBuf)Writes a sequence of bytes to this file from thesourceBuffer.intwrite(ByteBuffer srcBuf, long position)Writes a sequence of bytes to this file from thesourceBufferstarting from specified fileposition-
Methods inherited from class org.apache.ignite.internal.processors.cache.persistence.file.AbstractFileIO
readFully, readFully, readFully, writeFully, writeFully, writeFully
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.ignite.internal.processors.cache.persistence.file.FileIO
transferFrom, transferTo
-
-
-
-
Constructor Detail
-
AsyncFileIO
public AsyncFileIO(File file, ThreadLocal<org.apache.ignite.internal.processors.cache.persistence.file.AsyncFileIO.ChannelOpFuture> holder, OpenOption... modes) throws IOException
Creates I/O implementation for specifiedfile- Parameters:
file- Random access filemodes- Open modes.- Throws:
IOException
-
-
Method Detail
-
getFileSystemBlockSize
public int getFileSystemBlockSize()
- Returns:
- File system block size or negative value if unknown.
-
getSparseSize
public long getSparseSize()
- Returns:
- Approximate system dependent size of the storage or negative value if not supported.
- See Also:
FileIO.punchHole(long, int)
-
punchHole
public int punchHole(long position, int len)- Parameters:
position- Starting file position.len- Number of bytes to free.- Returns:
- The actual freed size or negative value if not supported.
-
position
public long position() throws IOExceptionReturns current file position.- Returns:
- Current file position, a non-negative integer counting the number of bytes from the beginning of the file to the current position.
- Throws:
IOException- If some I/O error occurs.
-
position
public void position(long newPosition) throws IOExceptionSets new current file position.- Parameters:
newPosition- The new position, a non-negative integer counting the number of bytes from the beginning of the file.- Throws:
IOException- If some I/O error occurs.
-
read
public int read(ByteBuffer destBuf) throws IOException
Reads a sequence of bytes from this file into thedestinationBuffer.- Parameters:
destBuf- Destination byte buffer.- Returns:
- Number of read bytes, or -1 if the given position is greater than or equal to the file's current size
- Throws:
IOException- If some I/O error occurs.
-
read
public int read(ByteBuffer destBuf, long position) throws IOException
Reads a sequence of bytes from this file into thedestinationBufferstarting from specified fileposition.- Parameters:
destBuf- Destination byte buffer.position- Starting position of file.- Returns:
- Number of read bytes, possibly zero, or -1 if the given position is greater than or equal to the file's current size
- Throws:
IOException- If some I/O error occurs.
-
read
public int read(byte[] buf, int off, int length) throws IOExceptionReads a up tolengthbytes from this file into thebuffer.- Parameters:
buf- Destination byte array.off- The start offset in arraybat which the data is written.length- Maximum number of bytes read.- Returns:
- Number of read bytes.
- Throws:
IOException- If some I/O error occurs.
-
write
public int write(ByteBuffer srcBuf) throws IOException
Writes a sequence of bytes to this file from thesourceBuffer.- Parameters:
srcBuf- Source buffer.- Returns:
- Number of written bytes.
- Throws:
IOException- If some I/O error occurs.
-
write
public int write(ByteBuffer srcBuf, long position) throws IOException
Writes a sequence of bytes to this file from thesourceBufferstarting from specified fileposition- Parameters:
srcBuf- Source buffer.position- Starting file position.- Returns:
- Number of written bytes.
- Throws:
IOException- If some I/O error occurs.
-
write
public int write(byte[] buf, int off, int len) throws IOExceptionWriteslengthbytes from thebufferstarting at offsetoffto this file.- Parameters:
buf- Source byte array.off- Start offset in thebuffer.len- Number of bytes to write.- Returns:
- Number of written bytes.
- Throws:
IOException- If some I/O error occurs.
-
map
public MappedByteBuffer map(int sizeBytes) throws IOException
Allocates memory mapped buffer for this file with given size.- Parameters:
sizeBytes- Size of buffer.- Returns:
- Instance of mapped byte buffer.
- Throws:
IOException- If some I/O error occurs.
-
force
public void force() throws IOExceptionForces any updates of this file to be written to the storage device that contains it.- Throws:
IOException- If some I/O error occurs.
-
force
public void force(boolean withMetadata) throws IOExceptionForces any updates of this file to be written to the storage device that contains it.- Parameters:
withMetadata- Iftrueforce also file metadata.- Throws:
IOException- If some I/O error occurs.
-
size
public long size() throws IOExceptionReturns current file size in bytes.- Returns:
- File size.
- Throws:
IOException- If some I/O error occurs.
-
clear
public void clear() throws IOExceptionTruncates current file to zero length and resets current file position to zero.- Throws:
IOException- If some I/O error occurs.
-
close
public void close() throws IOExceptionCloses current file.- Throws:
IOException- If some I/O error occurs.
-
-