mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-17 09:36:24 +00:00
100 lines
1.7 KiB
Java
100 lines
1.7 KiB
Java
|
package SQLite;
|
||
|
|
||
|
/**
|
||
|
* Class wrapping an SQLite backup object.
|
||
|
*/
|
||
|
|
||
|
public class Backup {
|
||
|
|
||
|
/**
|
||
|
* Internal handle for the native SQLite API.
|
||
|
*/
|
||
|
|
||
|
protected long handle = 0;
|
||
|
|
||
|
/**
|
||
|
* Finish a backup.
|
||
|
*/
|
||
|
|
||
|
protected void finish() throws SQLite.Exception {
|
||
|
synchronized(this) {
|
||
|
_finalize();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Destructor for object.
|
||
|
*/
|
||
|
|
||
|
protected void finalize() {
|
||
|
synchronized(this) {
|
||
|
try {
|
||
|
_finalize();
|
||
|
} catch (SQLite.Exception e) {
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected native void _finalize() throws SQLite.Exception;
|
||
|
|
||
|
/**
|
||
|
* Perform a backup step.
|
||
|
*
|
||
|
* @param n number of pages to backup
|
||
|
* @return true when backup completed
|
||
|
*/
|
||
|
|
||
|
public boolean step(int n) throws SQLite.Exception {
|
||
|
synchronized(this) {
|
||
|
return _step(n);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private native boolean _step(int n) throws SQLite.Exception;
|
||
|
|
||
|
/**
|
||
|
* Perform the backup in one step.
|
||
|
*/
|
||
|
|
||
|
public void backup() throws SQLite.Exception {
|
||
|
synchronized(this) {
|
||
|
_step(-1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Return number of remaining pages to be backed up.
|
||
|
*/
|
||
|
|
||
|
public int remaining() throws SQLite.Exception {
|
||
|
synchronized(this) {
|
||
|
return _remaining();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private native int _remaining() throws SQLite.Exception;
|
||
|
|
||
|
/**
|
||
|
* Return the total number of pages in the backup source database.
|
||
|
*/
|
||
|
|
||
|
public int pagecount() throws SQLite.Exception {
|
||
|
synchronized(this) {
|
||
|
return _pagecount();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private native int _pagecount() throws SQLite.Exception;
|
||
|
|
||
|
/**
|
||
|
* Internal native initializer.
|
||
|
*/
|
||
|
|
||
|
private static native void internal_init();
|
||
|
|
||
|
static {
|
||
|
internal_init();
|
||
|
}
|
||
|
}
|
||
|
|