示例#1
0
 public void removeFromCache(NodeSub nodeSub, long l)
 {
     try
     {
         if (spaceLeft == 0)
         {
             NodeSub nodeSub_1 = nodeSubList.popTail();
             nodeSub_1.unlink();
             nodeSub_1.unlinkSub();
             if (nodeSub_1 == emptyNodeSub)
             {
                 NodeSub nodeSub_2 = nodeSubList.popTail();
                 nodeSub_2.unlink();
                 nodeSub_2.unlinkSub();
             }
         }
         else
         {
             spaceLeft--;
         }
         nodeCache.removeFromCache(nodeSub, l);
         nodeSubList.insertHead(nodeSub);
         return;
     }
     catch (Exception runtimeexception)
     {
         signlink.reporterror("47547, " + nodeSub + ", " + l + ", " + (byte)2 + ", " + runtimeexception.Message);
     }
     throw new Exception();
 }
示例#2
0
 public void insertHead(NodeSub nodeSub)
 {
     if (nodeSub.nextNodeSub != null)
     {
         nodeSub.unlinkSub();
     }
     nodeSub.nextNodeSub             = head.nextNodeSub;
     nodeSub.prevNodeSub             = head;
     nodeSub.nextNodeSub.prevNodeSub = nodeSub;
     nodeSub.prevNodeSub.nextNodeSub = nodeSub;
 }
示例#3
0
        public NodeSub popTail()
        {
            NodeSub nodeSub = head.prevNodeSub;

            if (nodeSub == head)
            {
                return(null);
            }
            else
            {
                nodeSub.unlinkSub();
                return(nodeSub);
            }
        }
示例#4
0
 public void unlinkAll()
 {
     do
     {
         NodeSub nodeSub = nodeSubList.popTail();
         if (nodeSub != null)
         {
             nodeSub.unlink();
             nodeSub.unlinkSub();
         }
         else
         {
             spaceLeft = initialCount;
             return;
         }
     } while (true);
 }