using System;

namespace XGame.Framework.Time
{
    /// <summary>
    /// 定时器
    /// </summary>
    public interface ITimer : ITimeScalable, IDisposable
    {
        /// <summary>
        /// 事件监听器
        /// ITimeProxy默认设置，业务不要用
        /// </summary>
        ITimeListener<ITimer> Listener { get; set; }
        /// <summary>
        /// 取消定时器
        /// 该操作不可逆，取消了会删除回调事件
        /// </summary>
        void Cancel();

        /// <summary>
        /// 暂停定时器
        /// </summary>
        void Pause();

        /// <summary>
        /// 恢复定时器
        /// </summary>
        void Resume();
    }
}
