程序包 cn.wjybxx.btree

接口 ICancelToken

所有超级接口:
ICancelTokenListener
所有已知实现类:
CancelToken

public interface ICancelToken extends ICancelTokenListener
行为树模块使用的取消令牌 1.行为树模块需要的功能不多,且需要进行一些特殊的优化,因此去除对Concurrent模块的依赖。 2.关于取消码的设计,可查看类。 3.继承是为了方便通知子Token。 4.在行为树模块,Task在运行期间最多只应该添加一次监听。 5.Task在处理取消信号时不需要调用该方法来删除自己,令牌会先删除Listener再通知。
作者:
wjybxx date - 2024/7/14
  • 方法概要

    修饰符和类型
    方法
    说明
    void
    添加监听器
    int
    使用默认取消码 CancelCodes.REASON_DEFAULT
    int
    cancel(int cancelCode)
    发送取消信号
    int
    取消码 1.按bit位存储信息,包括是否请求中断,是否超时,紧急程度等 2.低20位为取消原因;高12位为特殊信息 CancelCodes.MASK_REASON 3.不为0表示已发起取消请求 4.取消时至少赋值一个信息,reason通常应该赋值
    default int
    取消的紧急程度
    boolean
    查询是否存在给定的监听器
    default boolean
    是否已收到取消信号 任务的执行者将持有该令牌,在调度任务前会检测取消信号;如果任务已经开始,则由用户的任务自身检测取消和中断信号。
    default ICancelToken
    创建一个同类型实例(默认只拷贝环境数据)
    newInstance(boolean copyCode)
    创建一个同类型实例(默认只拷贝环境数据)
    default int
    取消的原因 (1~10为底层使用,10以上为用户自定义)T
    boolean
    删除指定监听器
    boolean
    remListener(ICancelTokenListener listener, boolean firstOccurrence)
    删除监听器 注意:Task在处理取消信号时不需要调用该方法来删除自己,令牌会先删除Listener再通知。
    void
    重置状态(行为树模块取消令牌需要复用)

    从接口继承的方法 cn.wjybxx.btree.ICancelTokenListener

    onCancelRequested
  • 方法详细资料

    • reset

      void reset()
      重置状态(行为树模块取消令牌需要复用)
    • cancelCode

      int cancelCode()
      取消码 1.按bit位存储信息,包括是否请求中断,是否超时,紧急程度等 2.低20位为取消原因;高12位为特殊信息 CancelCodes.MASK_REASON 3.不为0表示已发起取消请求 4.取消时至少赋值一个信息,reason通常应该赋值
    • isCancelling

      default boolean isCancelling()
      是否已收到取消信号 任务的执行者将持有该令牌,在调度任务前会检测取消信号;如果任务已经开始,则由用户的任务自身检测取消和中断信号。
    • reason

      default int reason()
      取消的原因 (1~10为底层使用,10以上为用户自定义)T
    • degree

      default int degree()
      取消的紧急程度
    • cancel

      int cancel()
      使用默认取消码 CancelCodes.REASON_DEFAULT
    • cancel

      int cancel(int cancelCode)
      发送取消信号
      参数:
      cancelCode - 取消码;reason部分需大于0
      返回:
      Token的当前值;如果Token已被取消,则非0;如果Token尚未被取消,则返回0。
      抛出:
      IllegalArgumentException - 如果code小于等于0;或reason部分为0
    • addListener

      void addListener(ICancelTokenListener listener)
      添加监听器
    • remListener

      boolean remListener(ICancelTokenListener listener)
      删除指定监听器
    • remListener

      boolean remListener(ICancelTokenListener listener, boolean firstOccurrence)
      删除监听器 注意:Task在处理取消信号时不需要调用该方法来删除自己,令牌会先删除Listener再通知。
      参数:
      listener - 要删除的监听器
      firstOccurrence - 是否强制正向查找删除
      返回:
      存在匹配的监听器则返回true
    • hasListener

      boolean hasListener(ICancelTokenListener listener)
      查询是否存在给定的监听器
    • newInstance

      default ICancelToken newInstance()
      创建一个同类型实例(默认只拷贝环境数据)
    • newInstance

      ICancelToken newInstance(boolean copyCode)
      创建一个同类型实例(默认只拷贝环境数据)
      参数:
      copyCode - 是否拷贝当前取消码
      返回:
      新实例