Class FileIODecorator
- java.lang.Object
-
- org.apache.ignite.internal.processors.cache.persistence.file.AbstractFileIO
-
- org.apache.ignite.internal.processors.cache.persistence.file.FileIODecorator
-
- All Implemented Interfaces:
AutoCloseable,FileIO
- Direct Known Subclasses:
BufferedFileIO,SegmentIO
public class FileIODecorator extends AbstractFileIO
Decorator class for File I/O
-
-
Constructor Summary
Constructors Constructor Description FileIODecorator(FileIO delegate)
-
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 pos, int len)intread(byte[] buf, int off, int len)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.longtransferFrom(ReadableByteChannel src, long position, long count)longtransferTo(long position, long count, WritableByteChannel target)This method will transfers the content of file to the specified channel.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
-
-
-
-
Field Detail
-
delegate
protected final FileIO delegate
File I/O delegate
-
-
Constructor Detail
-
FileIODecorator
public FileIODecorator(FileIO delegate)
- Parameters:
delegate- File I/O delegate
-
-
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 pos, int len)- Parameters:
pos- 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 len) 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.len- 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.
-
transferTo
public long transferTo(long position, long count, WritableByteChannel target) throws IOExceptionThis method will transfers the content of file to the specified channel. This is a synchronous operation, so performing it on asynchronous channels makes no sense and not provied.- Parameters:
position- The relative offset of the file where the transfer begins from.count- The number of bytes to be transferred.target- Destination channel of the transfer.- Returns:
- Count of bytes which was successfully transferred.
- Throws:
IOException- If fails.
-
transferFrom
public long transferFrom(ReadableByteChannel src, long position, long count) throws IOException
- Parameters:
src- The source channel.position- The position within the file at which the transfer is to begin.count- The maximum number of bytes to be transferred.- Returns:
- The number of bytes, possibly zero, that were actually transferred.
- Throws:
IOException- If fails.
-
-