Class FilePageArray
java.lang.Object
org.cojen.tupl.io.PageArray
org.cojen.tupl.io.FilePageArray
- All Implemented Interfaces:
Closeable, AutoCloseable, CauseCloseable
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidintReturns a positive page size if not using direct I/O, else negate to get the page size to allocate for direct I/O.voidexpandPageCount(long count) Attempt to expand the total count of pages.factory(int pageSize, File file, EnumSet<OpenOption> options) booleanisClosed()booleanisEmpty()booleanlongReturns the total count of pages in the array, or Long.MAX_VALUE if not applicable.voidreadPage(long index, long dstAddr, int offset, int length) voidsync(boolean metadata) Durably flushes all writes to the underlying device.voidtruncatePageCount(long count) Attempt to truncate the total count of pages.voidwritePage(long index, long srcAddr, int offset) Writes a page, which is lazily flushed.Methods inherited from class PageArray
close, copyPage, copyPageFromAddress, directPageAddress, dirtyPage, evictPage, isDirectIO, isFullyMapped, pageCountLimit, pageSize, readPage, syncPage, writePage
-
Constructor Details
-
FilePageArray
-
-
Method Details
-
factory
-
directPageSize
public int directPageSize()Description copied from class:PageArrayReturns a positive page size if not using direct I/O, else negate to get the page size to allocate for direct I/O.- Overrides:
directPageSizein classPageArray
-
isReadOnly
public boolean isReadOnly()- Specified by:
isReadOnlyin classPageArray
-
isEmpty
- Specified by:
isEmptyin classPageArray- Throws:
IOException
-
pageCount
Description copied from class:PageArrayReturns the total count of pages in the array, or Long.MAX_VALUE if not applicable.- Specified by:
pageCountin classPageArray- Throws:
IOException
-
truncatePageCount
Description copied from class:PageArrayAttempt to truncate the total count of pages. Array implementation might not support truncating the page count, in which case this method does nothing.- Specified by:
truncatePageCountin classPageArray- Throws:
IOException
-
expandPageCount
Description copied from class:PageArrayAttempt to expand the total count of pages. Array implementation might not support expanding the page count, in which case this method does nothing.- Specified by:
expandPageCountin classPageArray- Throws:
IOException
-
readPage
- Specified by:
readPagein classPageArray- Parameters:
index- zero-based page index to readdstAddr- receives read dataoffset- offset into data buffer- Throws:
IOException- if index is greater than or equal to page count
-
writePage
Description copied from class:PageArrayWrites a page, which is lazily flushed. The array grows automatically if the index is greater than or equal to the current page count. If array supports caching, page must be immediately copied into it.- Specified by:
writePagein classPageArray- Parameters:
index- zero-based page index to writesrcAddr- data to writeoffset- offset into data buffer- Throws:
IOException
-
sync
Description copied from class:PageArrayDurably flushes all writes to the underlying device.- Specified by:
syncin classPageArray- Parameters:
metadata- pass true to flush all file metadata- Throws:
IOException
-
close
- Specified by:
closein interfaceCauseCloseable- Specified by:
closein classPageArray- Parameters:
cause- null if close is not caused by a failure- Throws:
IOException
-
isClosed
-