static public int StopLoad(IntPtr l) { try { Hugula.Loader.CCar self = (Hugula.Loader.CCar)checkSelf(l); self.StopLoad(); pushValue(l, true); return(1); } catch (Exception e) { return(error(l, e)); } }
public void StopAll() { List <CRequest> removeReqs = ListPool <CRequest> .Get(); CRequest req = null; for (int i = 0; i < queue.Count;) { req = queue[i]; queue.RemoveAt(i); removeReqs.Add(req); } // step 2 remove loading assetbundle CCar load = null; foreach (var kv in downloadings) { load = kv.Value; removeReqs.Add(load.req); load.StopLoad(); } downloadings.Clear(); for (int i = 0; i < loadingAssetBundleQueue.Count;) { req = loadingAssetBundleQueue[i]; loadingAssetBundleQueue.RemoveAt(i); removeReqs.Add(req); } //step 3 remove loadingAssetQueue for (int i = 0; i < loadingAssetQueue.Count;) { req = loadingAssetQueue[i]; loadingAssetQueue.RemoveAt(i); removeReqs.Add(req); } //step 4 remove loadedAssetQueue while (loadedAssetQueue.Count > 0) { req = loadedAssetQueue.Dequeue(); removeReqs.Add(req); } //remove from requestCallBackList List <CRequest> callbacklist = null; foreach (var kv in requestCallBackList) { callbacklist = kv.Value; ListPool <CRequest> .Release(callbacklist); } foreach (var kv in assetCallBackList) { callbacklist = kv.Value; ListPool <CRequest> .Release(callbacklist); } for (int i = 0; i < removeReqs.Count; i++) { req = removeReqs[i]; PopGroup(req); } ListPool <CRequest> .Release(removeReqs); }
/// <summary> /// stop the req. /// </summary> /// <param name="req">Req.</param> /// <param name="group">Group.</param> public void StopReq(CRequest reqUrl) { string udKey = reqUrl.udKey; string udAssetKey = reqUrl.udAssetKey; //step 1 remove request list List <CRequest> removeReqs = ListPool <CRequest> .Get(); CRequest req; for (int i = 0; i < queue.Count;) { req = queue[i]; if (req.udKey.Equals(udKey)) { queue.RemoveAt(i); removeReqs.Add(req); } else { i++; } } // step 2 remove loading assetbundle CCar load = null; if (downloadings.TryGetValue(udKey, out load)) { removeReqs.Add(load.req); load.StopLoad(); downloadings.Remove(udKey); } for (int i = 0; i < loadingAssetBundleQueue.Count;) { req = loadingAssetBundleQueue[i]; if (req.udKey.Equals(udKey)) { loadingAssetBundleQueue.RemoveAt(i); removeReqs.Add(req); } else { i++; } } //step 3 remove loadingAssetQueue for (int i = 0; i < loadingAssetQueue.Count;) { req = loadingAssetQueue[i]; if (req.udKey.Equals(udKey)) { loadingAssetQueue.RemoveAt(i); removeReqs.Add(req); } else { i++; } } //step 4 remove loadedAssetQueue // while (loadedAssetQueue.Count > 0) // { // req = loadedAssetQueue.Dequeue(); // removeReqs.Add(req); // } //remove from requestCallBackList List <CRequest> callbacklist = null; if (requestCallBackList.TryGetValue(udKey, out callbacklist)) { requestCallBackList.Remove(udKey); ListPool <CRequest> .Release(callbacklist); } if (assetCallBackList.TryGetValue(udAssetKey, out callbacklist)) { assetCallBackList.Remove(udAssetKey); ListPool <CRequest> .Release(callbacklist); } for (int i = 0; i < removeReqs.Count; i++) { req = removeReqs[i]; PopGroup(req); } ListPool <CRequest> .Release(removeReqs); }