/// <summary> /// 安装结果事件派发 /// </summary> //public event EventHandler<PluginResult> DispatchPluginResult; public XFileDownloader(String url, String localFilePath, string appWorkSpace, XFileTransferRecorder recorder, XFileTransferManager manager) { Url = url; LocalFilePath = localFilePath; AppWorkSpace = appWorkSpace; FileTransferRecorder = recorder; FileTransferManager = manager; State = INIT; myRequestState = new RequestState(); }
/// <summary> /// 获取XIFileTransfer对象,如果Dictionary<String, XIFileTransfer>中有就直接获取,没有就创建 /// </summary> /// <param name="fileTransfers">存储XIFileTransfer对象的Dictionary</param> /// <param name="source">下载时表示服务器地址,上传时表示要上传的文件地址</param> /// <param name="target">下载时表示存储下载文件的本地地址,上传时表示要上传的服务器地址</param> /// <param name="appWorkSpace">app的WorkSpace</param> /// <param name="type">传输的类型(上传或下载两种)</param> /// <returns></returns> private XIFileTransfer GetFileTransfer(Dictionary<String, XIFileTransfer> fileTransfers, String source, String target, String appworkSpace, String type) { XFileTransferRecorder fileTransferRecorder = null; FileTransferRecorders.TryGetValue(appworkSpace, out fileTransferRecorder); if (fileTransferRecorder == null) { fileTransferRecorder = new XFileTransferRecorder(appworkSpace); FileTransferRecorders.Add(appworkSpace, fileTransferRecorder); } XIFileTransfer fileTransfer = null; fileTransfers.TryGetValue(source, out fileTransfer); if (fileTransfer == null) { if (type.Equals(COMMAND_DOWNLOAD)) { fileTransfer = new XFileDownloader(source, target, appworkSpace, fileTransferRecorder, this); } fileTransfers.Add(source, fileTransfer); } return fileTransfer; }