public void CommitUpdate(ISavedGameMetadata metadata, SavedGameMetadataUpdate updateForMetadata, byte[] updatedBinaryData, Action <SavedGameRequestStatus, ISavedGameMetadata> callback) { Misc.CheckNotNull <ISavedGameMetadata>(metadata); Misc.CheckNotNull <byte[]>(updatedBinaryData); Misc.CheckNotNull <Action <SavedGameRequestStatus, ISavedGameMetadata> >(callback); callback = NativeSavedGameClient.ToOnGameThread <SavedGameRequestStatus, ISavedGameMetadata>(callback); NativeSnapshotMetadata metadata1 = metadata as NativeSnapshotMetadata; if (metadata1 == null) { Logger.e("Encountered metadata that was not generated by this ISavedGameClient"); callback(SavedGameRequestStatus.BadInputError, (ISavedGameMetadata)null); } else if (!metadata1.IsOpen) { Logger.e("This method requires an open ISavedGameMetadata."); callback(SavedGameRequestStatus.BadInputError, (ISavedGameMetadata)null); } else { this.mSnapshotManager.Commit(metadata1, NativeSavedGameClient.AsMetadataChange(updateForMetadata), updatedBinaryData, (Action <GooglePlayGames.Native.PInvoke.SnapshotManager.CommitResponse>)(response => { if (!response.RequestSucceeded()) { callback(NativeSavedGameClient.AsRequestStatus(response.ResponseStatus()), (ISavedGameMetadata)null); } else { callback(SavedGameRequestStatus.Success, (ISavedGameMetadata)response.Data()); } })); } }
public void ReadBinaryData(ISavedGameMetadata metadata, Action <SavedGameRequestStatus, byte[]> completedCallback) { Misc.CheckNotNull <ISavedGameMetadata>(metadata); Misc.CheckNotNull <Action <SavedGameRequestStatus, byte[]> >(completedCallback); completedCallback = NativeSavedGameClient.ToOnGameThread <SavedGameRequestStatus, byte[]>(completedCallback); NativeSnapshotMetadata metadata1 = metadata as NativeSnapshotMetadata; if (metadata1 == null) { Logger.e("Encountered metadata that was not generated by this ISavedGameClient"); completedCallback(SavedGameRequestStatus.BadInputError, (byte[])null); } else if (!metadata1.IsOpen) { Logger.e("This method requires an open ISavedGameMetadata."); completedCallback(SavedGameRequestStatus.BadInputError, (byte[])null); } else { this.mSnapshotManager.Read(metadata1, (Action <GooglePlayGames.Native.PInvoke.SnapshotManager.ReadResponse>)(response => { if (!response.RequestSucceeded()) { completedCallback(NativeSavedGameClient.AsRequestStatus(response.ResponseStatus()), (byte[])null); } else { completedCallback(SavedGameRequestStatus.Success, response.Data()); } })); } }
private void InternalManualOpen(string filename, GooglePlayGames.BasicApi.DataSource source, bool prefetchDataOnConflict, ConflictCallback conflictCallback, Action <SavedGameRequestStatus, ISavedGameMetadata> completedCallback) { this.mSnapshotManager.Open(filename, NativeSavedGameClient.AsDataSource(source), Types.SnapshotConflictPolicy.MANUAL, (Action <GooglePlayGames.Native.PInvoke.SnapshotManager.OpenResponse>)(response => { if (!response.RequestSucceeded()) { completedCallback(NativeSavedGameClient.AsRequestStatus(response.ResponseStatus()), (ISavedGameMetadata)null); } else if (response.ResponseStatus() == CommonErrorStatus.SnapshotOpenStatus.VALID) { completedCallback(SavedGameRequestStatus.Success, (ISavedGameMetadata)response.Data()); } else if (response.ResponseStatus() == CommonErrorStatus.SnapshotOpenStatus.VALID_WITH_CONFLICT) { // ISSUE: object of a compiler-generated type is created // ISSUE: variable of a compiler-generated type NativeSavedGameClient.\u003CInternalManualOpen\u003Ec__AnonStorey142.\u003CInternalManualOpen\u003Ec__AnonStorey143 openCAnonStorey143 = new NativeSavedGameClient.\u003CInternalManualOpen\u003Ec__AnonStorey142.\u003CInternalManualOpen\u003Ec__AnonStorey143(); // ISSUE: reference to a compiler-generated field openCAnonStorey143.\u003C\u003Ef__ref\u0024322 = this; // ISSUE: reference to a compiler-generated field openCAnonStorey143.original = response.ConflictOriginal(); // ISSUE: reference to a compiler-generated field openCAnonStorey143.unmerged = response.ConflictUnmerged(); // ISSUE: reference to a compiler-generated field // ISSUE: reference to a compiler-generated field // ISSUE: reference to a compiler-generated field // ISSUE: reference to a compiler-generated method openCAnonStorey143.resolver = new NativeSavedGameClient.NativeConflictResolver(this.mSnapshotManager, response.ConflictId(), openCAnonStorey143.original, openCAnonStorey143.unmerged, completedCallback, new Action(openCAnonStorey143.\u003C\u003Em__6E)); if (!prefetchDataOnConflict) { // ISSUE: reference to a compiler-generated field // ISSUE: reference to a compiler-generated field // ISSUE: reference to a compiler-generated field conflictCallback((IConflictResolver)openCAnonStorey143.resolver, (ISavedGameMetadata)openCAnonStorey143.original, (byte[])null, (ISavedGameMetadata)openCAnonStorey143.unmerged, (byte[])null); } else { // ISSUE: reference to a compiler-generated method NativeSavedGameClient.Prefetcher prefetcher = new NativeSavedGameClient.Prefetcher(new Action <byte[], byte[]>(openCAnonStorey143.\u003C\u003Em__6F), completedCallback); // ISSUE: reference to a compiler-generated field this.mSnapshotManager.Read(openCAnonStorey143.original, new Action <GooglePlayGames.Native.PInvoke.SnapshotManager.ReadResponse>(prefetcher.OnOriginalDataRead)); // ISSUE: reference to a compiler-generated field this.mSnapshotManager.Read(openCAnonStorey143.unmerged, new Action <GooglePlayGames.Native.PInvoke.SnapshotManager.ReadResponse>(prefetcher.OnUnmergedDataRead)); } } else { Logger.e("Unhandled response status"); completedCallback(SavedGameRequestStatus.InternalError, (ISavedGameMetadata)null); } })); }
public void FetchAllSavedGames(GooglePlayGames.BasicApi.DataSource source, Action <SavedGameRequestStatus, List <ISavedGameMetadata> > callback) { Misc.CheckNotNull <Action <SavedGameRequestStatus, List <ISavedGameMetadata> > >(callback); callback = NativeSavedGameClient.ToOnGameThread <SavedGameRequestStatus, List <ISavedGameMetadata> >(callback); this.mSnapshotManager.FetchAll(NativeSavedGameClient.AsDataSource(source), (Action <GooglePlayGames.Native.PInvoke.SnapshotManager.FetchAllResponse>)(response => { if (!response.RequestSucceeded()) { callback(NativeSavedGameClient.AsRequestStatus(response.ResponseStatus()), new List <ISavedGameMetadata>()); } else { callback(SavedGameRequestStatus.Success, response.Data().Cast <ISavedGameMetadata>().ToList <ISavedGameMetadata>()); } })); }
internal void OnUnmergedDataRead(GooglePlayGames.Native.PInvoke.SnapshotManager.ReadResponse readResponse) { lock (this.mLock) { if (!readResponse.RequestSucceeded()) { Logger.e("Encountered error while prefetching unmerged data."); this.completedCallback(NativeSavedGameClient.AsRequestStatus(readResponse.ResponseStatus()), (ISavedGameMetadata)null); this.completedCallback = (Action <SavedGameRequestStatus, ISavedGameMetadata>)((_param0, _param1) => {}); } else { Logger.d("Successfully fetched unmerged data"); this.mUnmergedDataFetched = true; this.mUnmergedData = readResponse.Data(); this.MaybeProceed(); } } }
public void ChooseMetadata(ISavedGameMetadata chosenMetadata) { NativeSnapshotMetadata metadata = chosenMetadata as NativeSnapshotMetadata; if (metadata != this.mOriginal && metadata != this.mUnmerged) { Logger.e("Caller attempted to choose a version of the metadata that was not part of the conflict"); this.mCompleteCallback(SavedGameRequestStatus.BadInputError, (ISavedGameMetadata)null); } else { this.mManager.Resolve(metadata, new NativeSnapshotMetadataChange.Builder().Build(), this.mConflictId, (Action <GooglePlayGames.Native.PInvoke.SnapshotManager.CommitResponse>)(response => { if (!response.RequestSucceeded()) { this.mCompleteCallback(NativeSavedGameClient.AsRequestStatus(response.ResponseStatus()), (ISavedGameMetadata)null); } else { this.mRetryFileOpen(); } })); } }