HEARTBEAT_TDCLS = tdcls();
HEARTBEAT_TDCLS.name = "HEARTBEAT_TDCLS";
function HEARTBEAT_TDCLS:create(para)
self.heartbeat_timer = -1;
self.interval = 0.0;
self.is_destructed = false;
end
function HEARTBEAT_TDCLS:destruct()
if is_valid_timer(self.heartbeat_timer) then
delete_timer(self.heartbeat_timer);
self.heartbeat_timer = -1;
end
self.is_destructed = true;
end
function HEARTBEAT_TDCLS:do_heartbeat()
if self.is_destructed then
delete_timer(self.heartbeat_timer);
self.heartbeat_timer = -1;
end
xpcall(post_heartbeat, error_handle, self:get_ob_class(), self);
end
function HEARTBEAT_TDCLS:delete_hearbeat()
if is_valid_timer(self.heartbeat_timer) then
delete_timer(self.heartbeat_timer);
self.heartbeat_timer = -1;
end
end
function HEARTBEAT_TDCLS:set_heartbeat_interval(_interval)
self:delete_hearbeat()
assert(_interval >= 10000);
self.interval = _interval;
self.heartbeat_timer = set_timer(_interval, self.do_heartbeat, self, true);
end