Пример #1
0
        //-------------------------------------------------------------------------
        // 修改一个时间事件的时间
        public int modTimer(EbTimeEvent time_event, ulong expires)
        {
            delTimer(time_event);
            time_event.mExpires = expires;
            addTimer(time_event);

            return(0);
        }
Пример #2
0
        //-------------------------------------------------------------------------
        // 添加一个时间事件
        public void addTimer(EbTimeEvent time_event)
        {
            EbDoubleLinkNode <EbTimeEvent> timer_node = new EbDoubleLinkNode <EbTimeEvent>();

            timer_node.mObject = time_event;

            mMapEventNode[time_event] = timer_node;

            _addTimer(timer_node);
        }
Пример #3
0
        //-------------------------------------------------------------------------
        // 删除一个时间事件
        public int delTimer(EbTimeEvent time_event)
        {
            if (mMapEventNode.ContainsKey(time_event))
            {
                EbDoubleLinkNode <EbTimeEvent> timer_node = mMapEventNode[time_event];

                _delTimer(timer_node);
            }

            return(0);
        }
Пример #4
0
        //---------------------------------------------------------------------
        // 删除一个时间事件
        public int DelTimer(EbTimeEvent time_event)
        {
            if (MapEventNode.ContainsKey(time_event))
            {
                EbDoubleLinkNode <EbTimeEvent> timer_node = MapEventNode[time_event];
                MapEventNode.Remove(time_event);

                _delTimer(timer_node);
            }

            return(0);
        }
Пример #5
0
        //---------------------------------------------------------------------
        public EbTimer(TimerShaft timer_shaft, ulong tm, Action cb)
        {
            TimerShaft      = timer_shaft;
            TmSpan          = tm;
            FuncCb          = cb;
            LastTimeJeffies = TimerShaft.GetTimeJeffies() + TmSpan;
            Closed          = false;

            var time_ev = new EbTimeEvent()
            {
                mExpires = TimerShaft.GetTimeJeffies() + TmSpan,
                onTime   = _onTimer,
                mData    = null
            };

            TimerShaft.AddTimer(time_ev);
        }
Пример #6
0
        //---------------------------------------------------------------------
        void _onTimer(object data)
        {
            if (Closed)
            {
                return;
            }

            LastTimeJeffies += TmSpan;
            var delta_tm = LastTimeJeffies - TimerShaft.GetTimeJeffies();

            var time_ev = new EbTimeEvent()
            {
                mExpires = TimerShaft.GetTimeJeffies() + delta_tm,
                onTime   = _onTimer,
                mData    = null
            };

            TimerShaft.AddTimer(time_ev);

            FuncCb();
        }
Пример #7
0
        //-------------------------------------------------------------------------
        // 修改一个时间事件的时间
        public int modTimer(EbTimeEvent time_event, ulong expires)
        {
            delTimer(time_event);
            time_event.mExpires = expires;
            addTimer(time_event);

            return 0;
        }
Пример #8
0
        //-------------------------------------------------------------------------
        // 删除一个时间事件
        public int delTimer(EbTimeEvent time_event)
        {
            if (mMapEventNode.ContainsKey(time_event))
            {
                EbDoubleLinkNode<EbTimeEvent> timer_node = mMapEventNode[time_event];

                _delTimer(timer_node);
            }

            return 0;
        }
Пример #9
0
        //-------------------------------------------------------------------------
        // 添加一个时间事件
        public void addTimer(EbTimeEvent time_event)
        {
            EbDoubleLinkNode<EbTimeEvent> timer_node = new EbDoubleLinkNode<EbTimeEvent>();
            timer_node.mObject = time_event;

            mMapEventNode[time_event] = timer_node;

            _addTimer(timer_node);
        }