程序包 cn.wjybxx.btree

类 CancelToken

java.lang.Object
cn.wjybxx.btree.CancelToken
所有已实现的接口:
ICancelTokenListener

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

    构造器
    构造器
    说明
     
    CancelToken(int code)
     
  • 方法概要

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

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 构造器详细资料

    • CancelToken

      public CancelToken()
    • CancelToken

      public CancelToken(int code)
  • 方法详细资料

    • newInstance

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

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

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

      protected final int getReentryId()
    • isFiring

      protected final boolean isFiring()
    • cancelCode

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

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

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

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

      public final boolean cancel()
      发送取消信号,使用默认取消码 CancelCodes.REASON_DEFAULT
    • cancel

      public final boolean cancel(int cancelCode)
      发送取消信号
      参数:
      cancelCode - 取消码;reason部分需大于0
      返回:
      是否成功已给定取消码进入取消状态
      抛出:
      IllegalArgumentException - 如果code小于等于0;或reason部分为0
    • addListener

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

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

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

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

      public final void onCancelRequested(CancelToken cancelToken)
      收到其它地方的取消信号
      指定者:
      onCancelRequested 在接口中 ICancelTokenListener
      参数:
      cancelToken - 收到取消信号的令牌