Example #1
0
 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));
     }
 }
Example #2
0
        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);
        }
Example #3
0
        /// <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);
        }