Methods Summary |
---|
private static native long | ctor()
|
private static native void | dtor(long ptr)
|
protected void | finalize()
try {
dtor(mPtr);
} finally {
super.finalize();
}
|
boolean | isKeyInList(java.lang.String key, java.lang.String[] list)
for (String s: list) {
if (s.equals(key)) {
return true;
}
}
return false;
|
static void | performBackup_checked(android.os.ParcelFileDescriptor oldState, BackupDataOutput data, android.os.ParcelFileDescriptor newState, java.lang.String[] files, java.lang.String[] keys)Check the parameters so the native code doesn't have to throw all the exceptions
since it's easier to do that from Java.
if (files.length == 0) {
return;
}
// files must be all absolute paths
for (String f: files) {
if (f.charAt(0) != '/") {
throw new RuntimeException("files must have all absolute paths: " + f);
}
}
// the length of files and keys must be the same
if (files.length != keys.length) {
throw new RuntimeException("files.length=" + files.length
+ " keys.length=" + keys.length);
}
// oldStateFd can be null
FileDescriptor oldStateFd = oldState != null ? oldState.getFileDescriptor() : null;
FileDescriptor newStateFd = newState.getFileDescriptor();
if (newStateFd == null) {
throw new NullPointerException();
}
int err = performBackup_native(oldStateFd, data.mBackupWriter, newStateFd, files, keys);
if (err != 0) {
// TODO: more here
throw new RuntimeException("Backup failed 0x" + Integer.toHexString(err));
}
|
private static native int | performBackup_native(java.io.FileDescriptor oldState, long data, java.io.FileDescriptor newState, java.lang.String[] files, java.lang.String[] keys)
|
boolean | writeFile(java.io.File f, BackupDataInputStream in)
int result = -1;
// Create the enclosing directory.
File parent = f.getParentFile();
parent.mkdirs();
result = writeFile_native(mPtr, f.getAbsolutePath(), in.mData.mBackupReader);
if (result != 0) {
// Bail on this entity. Only log one failure per helper object.
if (!mExceptionLogged) {
Log.e(TAG, "Failed restoring file '" + f + "' for app '"
+ mContext.getPackageName() + "\' result=0x"
+ Integer.toHexString(result));
mExceptionLogged = true;
}
}
return (result == 0);
|
private static native int | writeFile_native(long ptr, java.lang.String filename, long backupReader)
|
public void | writeNewStateDescription(android.os.ParcelFileDescriptor fd)
int result = writeSnapshot_native(mPtr, fd.getFileDescriptor());
// TODO: Do something with the error.
|
private static native int | writeSnapshot_native(long ptr, java.io.FileDescriptor fd)
|