blob: d8fa0f586b7a2df547616e172ae3d2271bb4928f [file] [log] [blame]
package android.app.backup;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.ParcelFileDescriptor;
/**
* Provides the interface through which a {@link BackupAgent} writes entire files
* to a full backup data set, via its {@link BackupAgent#onFullBackup(FullBackupDataOutput)}
* method.
*/
public class FullBackupDataOutput {
// Currently a name-scoping shim around BackupDataOutput
@UnsupportedAppUsage
private final BackupDataOutput mData;
private final long mQuota;
private final int mTransportFlags;
private long mSize;
/**
* Returns the quota in bytes for the application's current backup operation. The
* value can vary for each operation.
*
* @see BackupDataOutput#getQuota()
*/
public long getQuota() {
return mQuota;
}
/**
* Returns flags with additional information about the backup transport. For supported flags see
* {@link android.app.backup.BackupAgent}
*
* @see BackupDataOutput#getTransportFlags()
*/
public int getTransportFlags() {
return mTransportFlags;
}
/** @hide - used only in measure operation */
public FullBackupDataOutput(long quota) {
mData = null;
mQuota = quota;
mSize = 0;
mTransportFlags = 0;
}
/** @hide - used only in measure operation */
public FullBackupDataOutput(long quota, int transportFlags) {
mData = null;
mQuota = quota;
mSize = 0;
mTransportFlags = transportFlags;
}
/** @hide */
public FullBackupDataOutput(ParcelFileDescriptor fd, long quota) {
mData = new BackupDataOutput(fd.getFileDescriptor(), quota, 0);
mQuota = quota;
mTransportFlags = 0;
}
/** @hide */
public FullBackupDataOutput(ParcelFileDescriptor fd, long quota, int transportFlags) {
mData = new BackupDataOutput(fd.getFileDescriptor(), quota, transportFlags);
mQuota = quota;
mTransportFlags = transportFlags;
}
/** @hide - used only internally to the backup manager service's stream construction */
@UnsupportedAppUsage
public FullBackupDataOutput(ParcelFileDescriptor fd) {
this(fd, /*quota=*/ -1, /*transportFlags=*/ 0);
}
/** @hide */
@UnsupportedAppUsage
public BackupDataOutput getData() { return mData; }
/** @hide - used for measurement pass */
@UnsupportedAppUsage
public void addSize(long size) {
if (size > 0) {
mSize += size;
}
}
/** @hide - used for measurement pass */
public long getSize() { return mSize; }
}