Esempio n. 1
0
        protected DLink BaseSpecializedAdd()
        {
            DLink newNode = DLink.RemoveFront(ref pReserve);

            if (newNode == null && growthSize > 0)
            {
                RefreshReserve();
                newNode = DLink.RemoveFront(ref pReserve);
                VirtualSpecializedAdd(ref pActive, newNode);
            }
            else if (newNode != null)
            {
                newNode.Wash();
                VirtualSpecializedAdd(ref pActive, newNode);
            }
            else
            {
                Debug.Assert(false, "Cannot add new node because reserve is empty and growth size is " + growthSize);
            }

            mNumActive++;
            mNumReserve--;

            return(newNode);
        }
        public static void PurgeAll()
        {
            DelayedObjectManager pDelayMan = DelayedObjectManager.privGetInstance();

            // remove all from list
            while (pDelayMan.pHead != null)
            {
                DLink.RemoveFront(ref pDelayMan.pHead);
            }
        }
Esempio n. 3
0
        public override void Wash()
        {
            Debug.Assert(false);

            while (poHeadChild != null)
            {
                DLink pNode = DLink.RemoveFront(ref poHeadChild);
                pNode.Wash();
            }
            base.Wash();
        }
Esempio n. 4
0
        protected void BasePurgeAllNodes()
        {
            DLink pNode;

            while (this.pActive != null)
            {
                pNode = DLink.RemoveFront(ref pActive);
                DLink.AddToFront(ref pReserve, pNode);
                mNumActive--;
                mNumReserve++;
            }

            Debug.Assert(pActive == null);
            Debug.Assert(mNumActive == 0);
        }
        static public void Process()
        {
            DelayedObjectManager pDelayMan = DelayedObjectManager.privGetInstance();

            Observer pObserver = (Observer)pDelayMan.pHead;

            while (pObserver != null)
            {
                // Fire off remove method
                pObserver.Execute();

                pObserver = (Observer)pObserver.GetNext();
            }

            // remove all from list
            while (pDelayMan.pHead != null)
            {
                DLink.RemoveFront(ref pDelayMan.pHead);
            }
        }