org.tmatesoft.sqljet.core.internal
Interface ISqlJetFileSystem

All Known Implementing Classes:
SqlJetFileSystem

public interface ISqlJetFileSystem

File System Interface. An instance of the ISqlJetFileSystem object defines the interface between the SqlJet core and the underlying file system. The randomness(), sleep(), and currentTime() interfaces are not strictly a part of the filesystem, but they are included in the ISqlJetFileSystem structure for completeness.


Method Summary
 boolean access(java.io.File path, SqlJetFileAccesPermission permission)
          The flags argument to access() may be SqlJetFileAccesPermission.EXISTS to test for the existence of a file, or SqlJetFileAccesPermission.READWRITE to test whether a file is readable and writable, or SqlJetFileAccesPermission#READ to test whether a file is at least readable.
 long currentTime()
          The currentTime() method returns a Julian Day Number for the current date and time.
 boolean delete(java.io.File path, boolean sync)
          Delete the file.
 java.lang.String getFullPath(java.io.File filename)
           
 java.lang.String getName()
          The getName() returns the name of the FS module.
 java.io.File getTempFile()
           
 ISqlJetFile memJournalOpen()
          Open a memory journal file.
 ISqlJetFile open(java.io.File path, SqlJetFileType type, java.util.Set<SqlJetFileOpenPermission> permissions)
          The flags argument to open() includes all set in the flags argument to ISqlJet.open().
 byte[] randomness(int numBytes)
          The randomness() function returns numBytes bytes of good-quality randomness.
 long sleep(long microseconds)
          The sleep() method causes the calling thread to sleep for at least the number of microseconds given.
 

Method Detail

getName

java.lang.String getName()
The getName() returns the name of the FS module. The name must be unique across all FS modules.

Returns:

open

ISqlJetFile open(java.io.File path,
                 SqlJetFileType type,
                 java.util.Set<SqlJetFileOpenPermission> permissions)
                 throws SqlJetException
The flags argument to open() includes all set in the flags argument to ISqlJet.open(). Flags includes at least SqlJetFileOpenPermission.READWRITE and SqlJetFileOpenPermission.CREATE. If open() opens a file read-only then it sets flags in ISqlJetFile.getPermissions() to include SqlJetFileOpenPermission.READONLY. Other permissions may be set. SqlJet will also add one of the following flags to the open() call, depending on the object being opened: The file I/O implementation can use the object type flags to change the way it deals with files. For example, an application that does not care about crash recovery or rollback might make the open of a journal file a no-op. Writes to this journal would also be no-ops, and any attempt to read the journal would throws SqlJetIOException. Or the implementation might recognize that a database file will be doing page-aligned sector reads and writes in a random order and set up its I/O subsystem accordingly. SqlJet might also add one of the following flags to the open() method: The SqlJetFileOpenPermission.DELETEONCLOSE flag means the file should be deleted when it is closed. The SqlJetFileOpenPermission.DELETEONCLOSE will be set for TEMP databases, journals and for subjournals. The SqlJetFileOpenPermission.EXCLUSIVE flag means the file should be opened for exclusive access. This flag is set for all files except for the main database file.

Parameters:
path - File or NULL. If NULL then open() must invite its own temporary name for the file. Whenever the filename parameter is NULL it will also be the case that the flags parameter will include SqlJetFileOpenPermission.DELETEONCLOSE.
permissions - Exactly one of the SqlJetFileOpenPermission.READWRITE and SqlJetFileOpenPermission.READONLY flags must be set, and if SqlJetFileOpenPermission.CREATE is set, then SqlJetFileOpenPermission.READWRITE must also be set, and if SqlJetFileOpenPermission.EXCLUSIVE is set, then SqlJetFileOpenPermission.CREATE must also be set. if SqlJetFileOpenPermission.DELETEONCLOSE is set, then SqlJetFileOpenPermission.CREATE must also be set.
Returns:
Opened file.
Throws:
SqlJetException - If it is impossible to open file.

memJournalOpen

ISqlJetFile memJournalOpen()
Open a memory journal file.


delete

boolean delete(java.io.File path,
               boolean sync)
               throws SqlJetException
Delete the file. If the sync argument is true, sync() the directory after deleting the file.

Parameters:
path -
sync -
Returns:
Throws:
SqlJetException

access

boolean access(java.io.File path,
               SqlJetFileAccesPermission permission)
               throws SqlJetException
The flags argument to access() may be SqlJetFileAccesPermission.EXISTS to test for the existence of a file, or SqlJetFileAccesPermission.READWRITE to test whether a file is readable and writable, or SqlJetFileAccesPermission#READ to test whether a file is at least readable. The file can be a directory. Test the existance of or access permissions of file. The test performed depends on the value of flags: SqlJetFileAccesPermission.EXISTS: Return true if the file exists SqlJetFileAccesPermission.READWRITE: Return true if the file is read and writable. SqlJetFileAccesPermission#READ: Return true if the file is readable. Otherwise return false.

Parameters:
path -
permission -
Returns:
Throws:
SqlJetException

randomness

byte[] randomness(int numBytes)
The randomness() function returns numBytes bytes of good-quality randomness.

Parameters:
numBytes -
Returns:

sleep

long sleep(long microseconds)
The sleep() method causes the calling thread to sleep for at least the number of microseconds given.

Parameters:
microseconds -
Returns:

currentTime

long currentTime()
The currentTime() method returns a Julian Day Number for the current date and time.

Returns:

getTempFile

java.io.File getTempFile()
                         throws java.io.IOException
Throws:
java.io.IOException

getFullPath

java.lang.String getFullPath(java.io.File filename)
                             throws SqlJetException
Throws:
SqlJetException