AI-generated Key Takeaways
- 
          SnapshotContents is a data interface for representing Snapshot contents and implements Parcelable. 
- 
          You can retrieve the ParcelFileDescriptor associated with the underlying file for this snapshot contents. 
- 
          You can check if the snapshot contents have been closed using the isClosed method. 
- 
          You can modify or replace the data within the snapshot using modifyBytes and writeBytes methods. 
- 
          You can read the entire contents of the snapshot using the readFully method. 
Data interface for a representation of Snapshot
      contents.
Inherited Constant Summary
Public Method Summary
| abstract ParcelFileDescriptor | 
                  
                  getParcelFileDescriptor()
                   
                    Retrieve the  ParcelFileDescriptorassociated 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
- The ParcelFileDescriptorfor this snapshot, or null if the snapshot is not opened.
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.