public void CommitUpdate(ISavedGameMetadata metadata, SavedGameMetadataUpdate updateForMetadata, byte[] updatedBinaryData, Action <SavedGameRequestStatus, ISavedGameMetadata> callback) { Misc.CheckNotNull(metadata); Misc.CheckNotNull(updatedBinaryData); Misc.CheckNotNull(callback); callback = ToOnGameThread(callback); NativeSnapshotMetadata convertedMetadata = metadata as NativeSnapshotMetadata; if (convertedMetadata == null) { Logger.e("Encountered metadata that was not generated by this ISavedGameClient"); callback(SavedGameRequestStatus.BadInputError, null); return; } if (!convertedMetadata.IsOpen) { Logger.e("This method requires an open ISavedGameMetadata."); callback(SavedGameRequestStatus.BadInputError, null); return; } mSnapshotManager.Commit(convertedMetadata, AsMetadataChange(updateForMetadata), updatedBinaryData, response => { if (!response.RequestSucceeded()) { callback(AsRequestStatus(response.ResponseStatus()), null); } else { callback(SavedGameRequestStatus.Success, response.Data()); } } ); }