/// <summary>
        /// 初始化.
        /// </summary>
        /// <param name="iTarget">下载目标.</param>
        /// <param name="iOnStart">开始事件委托.</param>
        /// <param name="iOnSuccessed">成功事件委托.</param>
        /// <param name="iOnFailed">失败事件委托.</param>
        /// <param name="iLocalSave">本地保存标志位.</param>
        /// <param name="iType">下载对象类型.</param>
        public void Init(
            DownloadTargetInfo iTarget, OnStart iOnStart,
            OnSuccessed iOnSuccessed, OnFailed iOnFailed)
        {
            this._target         = iTarget;
            this.DownloadBaseUrl = ServersConf.GetBundleDownloadBaseURL(iTarget);
            this.FileName        = UploadList.GetLocalBundleFileName(iTarget.ID, iTarget.FileType);
            this.FullFileName    = string.Format("{0}/{1}", this.DownloadDir, this.FileName);

            this.onStart     = iOnStart;
            this.onSuccessed = iOnSuccessed;
            this.onFailed    = iOnFailed;
            this.Retries     = ServersConf.GetInstance().NetRetries;
            this.TimeOut     = ServersConf.GetInstance().NetTimeOut * 1000;

            if (TBundleType.Scene != iTarget.BundleType)
            {
                this.TargetType = TargetType.BundleOfNormal;
            }
            else
            {
                this.TargetType = TargetType.BundleOfScenes;
            }

            // 检查目录
            if (Directory.Exists(this.DownloadDir) == false)
            {
                Directory.CreateDirectory(this.DownloadDir);
            }
        }
Exemple #2
0
        /// <summary>
        /// 创建上传者.
        /// </summary>
        /// <param name="iTarget">上传目标.</param>
        /// <param name="iOnStart">开始上传委托.</param>
        /// <param name="iOnFailed">上传失败委托.</param>
        /// <param name="iOnSuccessed">上传成功委托.</param>
        /// <param name="iUploadWay">上传方式.</param>
        public static Uploader Create(
            UploadItem iTarget,
            OnStart iOnStart,
            OnFailed iOnFailed,
            OnSuccessed iOnSuccessed,
            TUploadWay iUploadWay = TUploadWay.Ftp)
        {
            Uploader objRet = new Uploader();

            objRet.Init(iTarget, iOnStart, iOnFailed, iOnSuccessed, iUploadWay);

            return(objRet);
        }
Exemple #3
0
        /// <summary>
        /// 创建Downloader.
        /// </summary>
        /// <param name="iTargetInfo">下载目标.</param>
        /// <param name="iOnStart">开始委托回调.</param>
        /// <param name="iOnSuccessed">成功委托回调.</param>
        /// <param name="iOnFailed">失败委托回调.</param>
        /// <param name="iRetries">重下载次数.</param>
        /// <param name="iTimeOut">超时时间(单位:秒).</param>
        public static WWWDownloader Create(
            DownloadTargetInfo iTargetInfo, OnStart iOnStart,
            OnSuccessed iOnSuccessed, OnFailed iOnFailed)
        {
            WWWDownloader downloader = new WWWDownloader();

            if (downloader != null)
            {
                // 初始化
                downloader.Init(iTargetInfo, iOnStart, iOnSuccessed, iOnFailed);
                return(downloader);
            }
            else
            {
                UtilsLog.Error("Create", "Downloader Create failed!!");
                return(null);
            }
        }
Exemple #4
0
        /// <summary>
        /// 初始化.
        /// </summary>
        /// <param name="iTarget">上传目标.</param>
        /// <param name="iOnStart">开始上传委托.</param>
        /// <param name="iOnFailed">上传失败委托.</param>
        /// <param name="iOnSuccessed">上传成功委托.</param>
        /// <param name="iUploadWay">上传方式.</param>
        private void Init(
            UploadItem iTarget,
            OnStart iOnStart,
            OnFailed iOnFailed,
            OnSuccessed iOnSuccessed,
            TUploadWay iUploadWay = TUploadWay.Ftp)
        {
            this._target      = iTarget;
            this._onStart     = iOnStart;
            this._onFailed    = iOnFailed;
            this._onSuccessed = iOnSuccessed;
            this._uploadWay   = iUploadWay;
            this.Retries      = ServersConf.GetInstance().NetRetries;

            if (this._server == null)
            {
                this._server = ServersConf.GetInstance().UploadServer;
            }
            this.UploadBaseUrl = ServersConf.GetBundleUploadBaseURL(this._server, this._target);
            this.FileName      = UploadList.GetLocalBundleFileName(this._target.ID, this._target.FileType);
        }
Exemple #5
0
        public void Success(string data)
        {
            ResultRoot = JsonMapper.ToObject(data);

            IDictionary mapper = ResultRoot as IDictionary;

            if (mapper.Contains(FailedKeyField) && (ResultRoot.Int(FailedKeyField) != SuccessKeyValue))
            {
                string errorCodeValue = ResultRoot[FailedKeyField].ToString();
                int    errorCode      = int.Parse(errorCodeValue);
                Failed?.Invoke(errorCode);
            }
            else
            {
                if (mapper.Contains(DataKeyField))
                {
                    ResultData = ResultRoot[DataKeyField];
                }
                else
                {
                    ResultData = ResultRoot;
                }
                mDataMapper = ResultData as IDictionary;
                OnSuccessed?.Invoke(this);
                SuccessForCustom?.Invoke(data);
            }

            ResultRoot?.Clear();
            ResultData?.Clear();

            ResultRoot       = default;
            ResultData       = default;
            OnSuccessed      = default;
            SuccessForCustom = default;
            Failed           = default;
            Error            = default;
        }