程序包 cn.wjybxx.btree

类 CancelToken

java.lang.Object
cn.wjybxx.btree.CancelToken

public final class CancelToken extends Object
取消令牌。 1.行为树的取消必须通过共享对象(共享上下文实现)实现,理论上可存储在黑板中,但会限制黑板的扩展。 2.如果想及时响应取消,可注册监听器
作者:
wjybxx date - 2023/11/25
  • 构造器详细资料

    • CancelToken

      public CancelToken()
    • CancelToken

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

    • isCancelling

      public boolean isCancelling()
      是否已收到取消请求
    • getCancelCode

      public int getCancelCode()
      获取取消码
    • cancel

      public void cancel()
      发出取消命令
    • cancel

      public int cancel(int cancelCode)
      发出取消命令
      参数:
      cancelCode - 取消码
      返回:
      如果之前处于未取消状态,则返回0;否则返回之前的取消码
    • newChild

      public CancelToken newChild()
      创建一个子token 1.子token会在当前token被取消的时候取消 2.如果当前token已取消,则子token也已取消
    • addChild

      public int addChild(CancelToken child)
      返回:
      返回 0 表示已通知,大于0表示注册成功;
    • removeChild

      public boolean removeChild(CancelToken child)
      删除子token
    • clear

      public void clear()
      清理所有的监听者(含child)
    • addListener

      public int addListener(Consumer<? super CancelToken> action)
      添加取消监听器
      返回:
      listener对应的id;返回 0 表示已通知,大于0表示注册成功;
    • removeListener

      public boolean removeListener(Consumer<? super CancelToken> action)
      删除监听器 注意:lambda可能无法正确匹配,因此建议使用removeById(int)
    • addListener

      public int addListener(Task<?> task)
      为Task定制的接口 1.可减少闭包,也更方便使用 2.如果Task被重入,不会被通知
      返回:
      listener对应的id;返回 0 表示已通知,大于0表示注册成功;
    • removeListener

      public boolean removeListener(Task<?> task)
      删除task的监听
    • removeById

      public boolean removeById(int listenerId)
      通过分配的监听器id删除监听器