SnapshotContents

public interface SnapshotContents implements Parcelable

Data interface for a representation of Snapshot contents.

Inherited Constant Summary

Public Method Summary

abstract ParcelFileDescriptor
getParcelFileDescriptor()
Retrieve the ParcelFileDescriptor associated with the underlying file for this snapshot contents.
abstract boolean
isClosed()
Returns whether this snapshot contents has been closed.
abstract boolean
modifyBytes(int dstOffset, byte[] content, int srcOffset, int count)
Write the specified data into the snapshot.
abstract byte[]
readFully()
Read the contents of a snapshot.
abstract boolean
writeBytes(byte[] content)
Write the specified data into the snapshot.

Inherited Method Summary

Public Methods

public abstract ParcelFileDescriptor getParcelFileDescriptor ()

Retrieve the ParcelFileDescriptor associated with the underlying file for this snapshot contents. This object can be used to update the data of a snapshot, but the snapshot should still be committed using SnapshotsClient.commitAndClose(Snapshot, SnapshotMetadataChange) or SnapshotsClient.resolveConflict(String, Snapshot) (in case of conflict resolution).

If this SnapshotContents was not obtained via Snapshot.getSnapshotContents() or SnapshotsClient.SnapshotConflict.getResolutionSnapshotContents(), or if the contents have already been committed and closed via SnapshotsClient.commitAndClose(Snapshot, SnapshotMetadataChange) or SnapshotsClient.resolveConflict(String, Snapshot), this method will throw an exception.

Returns

public abstract boolean isClosed ()

Returns whether this snapshot contents has been closed.

public abstract boolean modifyBytes (int dstOffset, byte[] content, int srcOffset, int count)

Write the specified data into the snapshot. The contents of the snapshot will be replaced with the data provided in content. The data will be persisted on disk, but is not uploaded to the server until the snapshot is committed via SnapshotsClient.commitAndClose(Snapshot, SnapshotMetadataChange).

Note that this form of the API does not necessarily overwrite the entire contents of the file. If you are writing less data than was previously stored in the snapshot, the excess data will remain. Use writeBytes(byte[]) to fully overwrite the file.

If the snapshot was not opened via SnapshotsClient.open(SnapshotMetadata), or if the contents have already been committed via SnapshotsClient.commitAndClose(Snapshot, SnapshotMetadataChange), this method will throw an exception.

Parameters
dstOffset Position in the snapshot file to start writing data to. 0 indicates the head of the file.
content The data to write.
srcOffset Position in content to start writing from.
count Number of bytes from content to write to this snapshot.
Returns
  • Whether or not the data was successfully written to disk.

public abstract byte[] readFully ()

Read the contents of a snapshot.

If this snapshot was not opened via SnapshotsClient.open(SnapshotMetadata), or if the contents have already been committed via SnapshotsClient.commitAndClose(Snapshot, SnapshotMetadataChange) this method will throw an exception.

Returns
  • The bytes of the snapshot contents.
Throws
IOException if reading the snapshot failed.

public abstract boolean writeBytes (byte[] content)

Write the specified data into the snapshot. The contents of the snapshot will be replaced with the data provided in content. The data will be persisted on disk, but is not uploaded to the server until the snapshot is committed via SnapshotsClient.commitAndClose(Snapshot, SnapshotMetadataChange).

Note that this form of the API will fully overwrite the contents of the file. No previous data will be retained. Use modifyBytes(int, byte[], int, int) to overwrite parts of the file.

If the snapshot was not opened via SnapshotsClient.open(SnapshotMetadata), or if the contents have already been committed via SnapshotsClient.commitAndClose(Snapshot, SnapshotMetadataChange), this method will throw an exception.

Parameters
content The data to write.
Returns
  • Whether or not the data was successfully written to disk.