local TimerWheelData = class("TimerWheelData") -- 构造函数 ,使用的时候用new function TimerWheelData:initialize(id, isAutoRemove) --唯一id self.timerWheelId = id self.isStartOver = false self.isEndOver = false self.isAutoRemove = isAutoRemove; self.leftTickStartTimeHandler = nil self.leftTickEndTimeHandler = nil end function TimerWheelData:SetStartEndTimeLeft(leftTickStartTime, leftTickEndTime) self.leftTickStartTime = leftTickStartTime self.leftTickEndTime = leftTickEndTime end function TimerWheelData:SetParamData(param1, param2) self.param1 = param1 self.param2 = param2 end function TimerWheelData:GetDispatchData() return self.timerWheelId, self.param1, self.param2 end function TimerWheelData:Start() if self.leftTickStartTime > 0 then self.leftTickStartTimeHandler = TimerUtil.Interval(function() CTL.TimerWheel.OnTimeStartOver(self.timerWheelId) end, self.leftTickStartTime + 1, 1) else CTL.TimerWheel.OnTimeStartOver(self.timerWheelId) end if self.leftTickEndTime > 0 then self.leftTickEndTimeHandler = TimerUtil.Interval(function() CTL.TimerWheel.OnTimeEndOver(self.timerWheelId) end, self.leftTickEndTime, 1) end end function TimerWheelData:Stop() if self.leftTickStartTimeHandler then TimerUtil.Remove(self.leftTickStartTimeHandler) self.leftTickStartTimeHandler = nil end if self.leftTickEndTimeHandler then TimerUtil.Remove(self.leftTickEndTimeHandler) self.leftTickEndTimeHandler = nil end end function TimerWheelData:OnTimeStartOver() self.isStartOver = true end function TimerWheelData:OnTimeEndOver() self.isEndOver = true end function TimerWheelData:IsInTime() return self.isStartOver and not self.isEndOver end return TimerWheelData