Example #1
0
        /// <summary>
        ///  データの再アップロード<br />
        /// </summary>
        ///
        /// <returns>IEnumerator</returns>
        /// <param name="callback">コールバックハンドラ</param>
        /// <param name="session">ゲームセッション</param>
        /// <param name="namespaceName">ネームスペース名</param>
        /// <param name="dataObject">データオブジェクト</param>
        /// <param name="data">アップロードするデータ</param>
        public IEnumerator ReUpload(
            UnityAction <AsyncResult <EzReUploadResult> > callback,
            GameSession session,
            string namespaceName,
            EzDataObject dataObject,
            byte[] data
            )
        {
            string uploadUrl;
            {
                EzPrepareReUploadResult result = null;
                yield return(PrepareReUpload(
                                 r =>
                {
                    if (r.Error != null)
                    {
                        callback.Invoke(
                            new AsyncResult <EzReUploadResult>(
                                null,
                                r.Error
                                )
                            );
                    }
                    else
                    {
                        result = r.Result;
                    }
                },
                                 session,
                                 namespaceName,
                                 dataObject.Name
                                 ));

                if (result == null)
                {
                    yield break;
                }

                uploadUrl  = result.UploadUrl;
                dataObject = result.Item;
            }
            {
                EzUploadImplResult result = null;
                yield return(UploadImpl(
                                 r =>
                {
                    if (r.Error != null)
                    {
                        callback.Invoke(
                            new AsyncResult <EzReUploadResult>(
                                null,
                                r.Error
                                )
                            );
                    }
                    else
                    {
                        result = r.Result;
                    }
                },
                                 uploadUrl,
                                 data
                                 ));

                if (result == null)
                {
                    yield break;
                }
            }
            {
                EzDoneUploadResult result = null;
                yield return(DoneUpload(
                                 r =>
                {
                    if (r.Error != null)
                    {
                        callback.Invoke(
                            new AsyncResult <EzReUploadResult>(
                                null,
                                r.Error
                                )
                            );
                    }
                    else
                    {
                        result = r.Result;
                    }
                },
                                 session,
                                 namespaceName,
                                 dataObject.Name
                                 ));

                if (result == null)
                {
                    yield break;
                }

                dataObject = result.Item;

                callback.Invoke(
                    new AsyncResult <EzReUploadResult>(
                        new EzReUploadResult(dataObject),
                        null
                        )
                    );
            }
        }
Example #2
0
        /// <summary>
        ///  データのアップロード<br />
        /// </summary>
        ///
        /// <returns>IEnumerator</returns>
        /// <param name="callback">コールバックハンドラ</param>
        /// <param name="session">ゲームセッション</param>
        /// <param name="namespaceName">ネームスペース名</param>
        /// <param name="name">データの名前</param>
        /// <param name="scope">ファイルのアクセス権</param>
        /// <param name="allowUserIds">公開するユーザIDリスト</param>
        /// <param name="data">アップロードするデータ</param>
        /// <param name="updateIfExists">既にデータが存在する場合にエラーとするか、データを更新するか</param>
        public IEnumerator Upload(
            UnityAction <AsyncResult <EzUploadResult> > callback,
            GameSession session,
            string namespaceName,
            string scope,
            List <string> allowUserIds,
            byte[] data,
            string name         = null,
            bool?updateIfExists = null
            )
        {
            string       uploadUrl;
            EzDataObject dataObject;
            {
                EzPrepareUploadResult result = null;
                yield return(PrepareUpload(
                                 r =>
                {
                    if (r.Error != null)
                    {
                        callback.Invoke(
                            new AsyncResult <EzUploadResult>(
                                null,
                                r.Error
                                )
                            );
                    }
                    else
                    {
                        result = r.Result;
                    }
                },
                                 session,
                                 namespaceName,
                                 scope,
                                 allowUserIds,
                                 name,
                                 updateIfExists
                                 ));

                if (result == null)
                {
                    yield break;
                }

                uploadUrl  = result.UploadUrl;
                dataObject = result.Item;
            }
            {
                EzUploadImplResult result = null;
                yield return(UploadImpl(
                                 r =>
                {
                    if (r.Error != null)
                    {
                        callback.Invoke(
                            new AsyncResult <EzUploadResult>(
                                null,
                                r.Error
                                )
                            );
                    }
                    else
                    {
                        result = r.Result;
                    }
                },
                                 uploadUrl,
                                 data
                                 ));

                if (result == null)
                {
                    yield break;
                }
            }
            {
                EzDoneUploadResult result = null;
                yield return(DoneUpload(
                                 r =>
                {
                    if (r.Error != null)
                    {
                        callback.Invoke(
                            new AsyncResult <EzUploadResult>(
                                null,
                                r.Error
                                )
                            );
                    }
                    else
                    {
                        result = r.Result;
                    }
                },
                                 session,
                                 namespaceName,
                                 dataObject.Name
                                 ));

                if (result == null)
                {
                    yield break;
                }

                dataObject = result.Item;

                callback.Invoke(
                    new AsyncResult <EzUploadResult>(
                        new EzUploadResult(dataObject),
                        null
                        )
                    );
            }
        }