public abstract void DownloadFromCloud(ISharedDataSerializer.OnSyncCloudSlotStart onStartDelegate, ISharedDataSerializer.OnSyncCloudSlotFinish onFinishDelegate);
public abstract void LoadCloudSyncPreview(ISharedDataSerializer.OnSyncCloudSlotStart onStartDelegate, ISharedDataSerializer.OnSyncCloudSlotFinish onFinishDelegate);
public override void UploadToCloud(ISharedDataSerializer.OnSyncCloudSlotStart onStartDelegate, ISharedDataSerializer.OnSyncCloudSlotFinish onFinishDelegate) { ISharedDataSerializer.LastErrno = DataSerializerErrorCode.Success; this.ClearUploadToCloudCache(); if (onStartDelegate != null) { onStartDelegate(ISharedDataSerializer.LastErrno); } this.uploadToCloudFinishDelegate = onFinishDelegate; this.Storage.GetLatestSlotAndSave(delegate(Int32 latestSlot, Int32 latestSave) { this.latestSlotID = latestSlot; this.latestSaveID = latestSave; this.Storage.LoadRawData(delegate(Byte[] rawData) { if (rawData != null) { this.uploadToCloudRawData = rawData; this.LoadSlotPreview(this.latestSlotID, delegate(DataSerializerErrorCode errNo, Int32 slotID, List <SharedDataPreviewSlot> data) { if (data != null) { this.uploadToCloudLocalDataPreviewSlot = data[this.latestSaveID]; UInt64 playDuration = this.uploadToCloudLocalDataPreviewSlot.PlayDuration; Int32 num = (Int32)playDuration % 60; Int32 num2 = num / 60; Int32 num3 = num2 / 60; num2 %= 60; Int32 days = num3 / 24; num3 %= 24; TimeSpan playTime = new TimeSpan(days, num3, num2, num); base.StartCoroutine(SiliconStudio.Social.Cloud_Save(this, this.uploadToCloudRawData, playTime, delegate(Boolean isSuccess, SiliconStudio.Social.ResponseData.Status status) { if (isSuccess) { this.uploadToCloudRemoteDataPreviewSlot = this.uploadToCloudLocalDataPreviewSlot; } else { ISharedDataSerializer.LastErrno = ISharedDataSerializer.ConvertCloudStatusToDataSerializerErrorCode(status); } this.uploadToCloudFinishDelegate(ISharedDataSerializer.LastErrno, isSuccess, this.uploadToCloudLocalDataPreviewSlot, this.uploadToCloudRemoteDataPreviewSlot); this.ClearUploadToCloudCache(); })); } else { this.uploadToCloudFinishDelegate(ISharedDataSerializer.LastErrno, false, (SharedDataPreviewSlot)null, (SharedDataPreviewSlot)null); this.ClearUploadToCloudCache(); } }); } else { this.uploadToCloudFinishDelegate(ISharedDataSerializer.LastErrno, false, (SharedDataPreviewSlot)null, (SharedDataPreviewSlot)null); this.ClearUploadToCloudCache(); } }); }); }
public override void DownloadFromCloud(ISharedDataSerializer.OnSyncCloudSlotStart onStartDelegate, ISharedDataSerializer.OnSyncCloudSlotFinish onFinishDelegate) { ISharedDataSerializer.LastErrno = DataSerializerErrorCode.Success; if (onStartDelegate != null) { onStartDelegate(ISharedDataSerializer.LastErrno); } this.ClearDownloadFromCloudCache(); if (onStartDelegate != null) { onStartDelegate(ISharedDataSerializer.LastErrno); } this.downloadFromCloudFinishDelegate = onFinishDelegate; this.Storage.GetLatestSlotAndSave(delegate(Int32 latestSlot, Int32 latestSave) { this.latestSlotID = latestSlot; this.latestSaveID = latestSave; if (this.latestSlotID != -1 && this.latestSaveID != -1) { this.LoadSlotPreview(this.latestSlotID, delegate(DataSerializerErrorCode errNo, Int32 slotID, List <SharedDataPreviewSlot> data) { if (data != null) { this.downloadFromCloudLocalDataPreviewSlot = data[this.latestSaveID]; base.StartCoroutine(SiliconStudio.Social.Cloud_Load(this, new Action <Byte[], SiliconStudio.Social.ResponseData.Status>(this.DownloadFromCloudOnCloudLoadCallBack))); } else { this.downloadFromCloudFinishDelegate(ISharedDataSerializer.LastErrno, false, (SharedDataPreviewSlot)null, (SharedDataPreviewSlot)null); this.ClearCloudSyncPreviewCache(); } }); } else { base.StartCoroutine(SiliconStudio.Social.Cloud_Load(this, new Action <Byte[], SiliconStudio.Social.ResponseData.Status>(this.DownloadFromCloudOnCloudLoadCallBack))); } }); }
public override void LoadCloudSyncPreview(ISharedDataSerializer.OnSyncCloudSlotStart onStartDelegate, ISharedDataSerializer.OnSyncCloudSlotFinish onFinishDelegate) { ISharedDataSerializer.LastErrno = DataSerializerErrorCode.Success; this.ClearCloudSyncPreviewCache(); this.onSyncCloudSlotFinishDelegate = onFinishDelegate; this.Storage.GetDataSize(delegate(Boolean isSuccess, Int32 dataSize) { if (isSuccess) { this.Storage.GetLatestSlotAndSave(delegate(Int32 latestSlot, Int32 latestSave) { this.latestSlotID = latestSlot; this.latestSaveID = latestSave; if (onStartDelegate != null) { onStartDelegate(ISharedDataSerializer.LastErrno); } if (this.latestSlotID != -1) { this.LoadSlotPreview(this.latestSlotID, delegate(DataSerializerErrorCode errNo, Int32 slotID, List <SharedDataPreviewSlot> data) { if (data != null) { this.loadCloudSyncPreviewLocalPreview = data[this.latestSaveID]; this.StartCoroutine(SiliconStudio.Social.Cloud_IsFileExist(this, new Action <Boolean, SiliconStudio.Social.ResponseData.Status>(this.LoadCloudSyncPreviewOnFileExistCallBack))); } else { ISharedDataLog.LogError("latestSlotID is: " + this.latestSlotID + " but preview data NOT found!"); ISharedDataSerializer.LastErrno = DataSerializerErrorCode.DataCorruption; this.onSyncCloudSlotFinishDelegate(ISharedDataSerializer.LastErrno, false, (SharedDataPreviewSlot)null, (SharedDataPreviewSlot)null); this.ClearCloudSyncPreviewCache(); } }); } else { this.StartCoroutine(SiliconStudio.Social.Cloud_IsFileExist(this, new Action <Boolean, SiliconStudio.Social.ResponseData.Status>(this.LoadCloudSyncPreviewOnFileExistCallBack))); } }); } else { ISharedDataSerializer.LastErrno = DataSerializerErrorCode.DataCorruption; ISharedDataLog.LogError("Save data is invalid!"); this.StartCoroutine(SiliconStudio.Social.Cloud_IsFileExist(this, new Action <Boolean, SiliconStudio.Social.ResponseData.Status>(this.LoadCloudSyncPreviewOnFileExistCallBack))); } }); }