예제 #1
0
파일: ViTimer.cs 프로젝트: xubingyue/def
 private void _UpdateTimeList(ViDoubleLink1 <ViTimeNodeInterface> list)
 {
     while (list.IsNotEmpty())
     {
         ViTimeNodeInterface timeNode = list.GetHead() as ViTimeNodeInterface;
         ViDebuger.AssertError(timeNode);
         timeNode.Detach();
         timeNode._Exce(this);
     }
     ViDebuger.AssertError(list.IsEmpty());
 }
예제 #2
0
 public static void PushBefore(ViDoubleLinkNode1 <T> after, ViDoubleLink1 <T> list)
 {
     if (after.IsAttach() == false)
     {
         return;
     }
     if (list.IsEmpty())
     {
         return;
     }
     _PushBefore(after, list);
 }
예제 #3
0
 public static void PushAfter(ViDoubleLinkNode1 <T> before, ViDoubleLink1 <T> list)
 {
     if (before.IsAttach() == false)
     {
         return;
     }
     if (list.IsEmpty())
     {
         return;
     }
     _PushAfter(before, list);
 }
예제 #4
0
    static void _PushBefore(ViDoubleLinkNode1 <T> after, ViDoubleLink1 <T> list)
    {
        if (list.IsEmpty())
        {
            return;
        }
        ViDoubleLinkNode1 <T> first = list._root._next;
        ViDoubleLinkNode1 <T> back  = list._root._pre;
        ViDoubleLinkNode1 <T> pre   = after._pre;

        _Link(pre, first);
        _Link(back, after);
        list._Init();
    }
예제 #5
0
    static void _PushAfter(ViDoubleLinkNode1 <T> before, ViDoubleLink1 <T> list)
    {
        if (list.IsEmpty())
        {
            return;
        }
        ViDoubleLinkNode1 <T> first = list._root._next;
        ViDoubleLinkNode1 <T> back  = list._root._pre;
        ViDoubleLinkNode1 <T> next  = before._next;

        _Link(before, first);
        _Link(back, next);
        list._Init();
    }