public class FileStore
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
protected long |
fileSize
The file size (cached).
|
protected FreeSpaceBitSet |
freeSpace
The free spaces between the chunks.
|
protected java.util.concurrent.atomic.AtomicLong |
readBytes
The number of read bytes.
|
protected java.util.concurrent.atomic.AtomicLong |
readCount
The number of read operations.
|
protected java.util.concurrent.atomic.AtomicLong |
writeBytes
The number of written bytes.
|
protected java.util.concurrent.atomic.AtomicLong |
writeCount
The number of write operations.
|
| Constructor and Description |
|---|
FileStore() |
| Modifier and Type | Method and Description |
|---|---|
void |
clear()
Mark the file as empty.
|
void |
close()
Close this store.
|
void |
free(long pos,
int length)
Mark the space as free.
|
int |
getDefaultRetentionTime()
Get the default retention time for this store in milliseconds.
|
java.nio.channels.FileChannel |
getEncryptedFile()
Get the encrypted file instance, if encryption is used.
|
java.nio.channels.FileChannel |
getFile()
Get the file instance in use.
|
java.lang.String |
getFileName()
Get the file name.
|
int |
getFillRate() |
int |
getProjectedFillRate(int vacatedBlocks)
Calculates a prospective fill rate, which store would have after rewrite
of sparsely populated chunk(s) and evacuation of still live data into a
new chunk.
|
long |
getReadBytes()
Get the number of read bytes since this store was opened.
|
long |
getReadCount()
Get the number of read operations since this store was opened.
|
long |
getWriteBytes()
Get the number of written bytes since this store was opened.
|
long |
getWriteCount()
Get the number of write operations since this store was opened.
|
boolean |
isReadOnly() |
void |
markUsed(long pos,
int length)
Mark the space as in use.
|
FileStore |
open(java.lang.String fileName,
boolean readOnly) |
void |
open(java.lang.String fileName,
boolean readOnly,
char[] encryptionKey)
Try to open the file.
|
java.nio.ByteBuffer |
readFully(long pos,
int len)
Read from the file.
|
long |
size()
Get the file size.
|
void |
sync()
Flush all changes.
|
java.lang.String |
toString() |
void |
truncate(long size)
Truncate the file.
|
void |
writeFully(long pos,
java.nio.ByteBuffer src)
Write to the file.
|
protected final java.util.concurrent.atomic.AtomicLong readCount
protected final java.util.concurrent.atomic.AtomicLong readBytes
protected final java.util.concurrent.atomic.AtomicLong writeCount
protected final java.util.concurrent.atomic.AtomicLong writeBytes
protected final FreeSpaceBitSet freeSpace
protected long fileSize
public java.lang.String toString()
toString in class java.lang.Objectpublic java.nio.ByteBuffer readFully(long pos,
int len)
pos - the write positionlen - the number of bytes to readpublic void writeFully(long pos,
java.nio.ByteBuffer src)
pos - the write positionsrc - the source bufferpublic void open(java.lang.String fileName,
boolean readOnly,
char[] encryptionKey)
fileName - the file namereadOnly - whether the file should only be opened in read-only mode,
even if the file is writableencryptionKey - the encryption key, or null if encryption is not
usedpublic FileStore open(java.lang.String fileName, boolean readOnly)
public void close()
public void sync()
public long size()
public void truncate(long size)
size - the new file sizepublic java.nio.channels.FileChannel getFile()
The application may read from the file (for example for online backup), but not write to it or truncate it.
public java.nio.channels.FileChannel getEncryptedFile()
The application may read from the file (for example for online backup), but not write to it or truncate it.
public long getWriteCount()
public long getWriteBytes()
public long getReadCount()
public long getReadBytes()
public boolean isReadOnly()
public int getDefaultRetentionTime()
public void markUsed(long pos,
int length)
pos - the position in byteslength - the number of bytespublic void free(long pos,
int length)
pos - the position in byteslength - the number of bytespublic int getFillRate()
public int getProjectedFillRate(int vacatedBlocks)
vacatedBlocks - number of blocks vacatedpublic void clear()
public java.lang.String getFileName()