程序包 cn.wjybxx.btree
类 CancelToken
java.lang.Object
cn.wjybxx.btree.CancelToken
取消令牌。
1.行为树的取消必须通过共享对象(共享上下文实现)实现,理论上可存储在黑板中,但会限制黑板的扩展。
2.如果想及时响应取消,可注册监听器
- 作者:
- wjybxx date - 2023/11/25
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明intaddChild(CancelToken child) intaddListener(Task<?> task) 为Task定制的接口 1.可减少闭包,也更方便使用 2.如果Task被重入,不会被通知intaddListener(Consumer<? super CancelToken> action) 添加取消监听器voidcancel()发出取消命令intcancel(int cancelCode) 发出取消命令voidclear()清理所有的监听者(含child)int获取取消码boolean是否已收到取消请求newChild()创建一个子token 1.子token会在当前token被取消的时候取消 2.如果当前token已取消,则子token也已取消booleanremoveById(int listenerId) 通过分配的监听器id删除监听器booleanremoveChild(CancelToken child) 删除子tokenbooleanremoveListener(Task<?> task) 删除task的监听booleanremoveListener(Consumer<? super CancelToken> action) 删除监听器 注意:lambda可能无法正确匹配,因此建议使用removeById(int)
-
构造器详细资料
-
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
创建一个子token 1.子token会在当前token被取消的时候取消 2.如果当前token已取消,则子token也已取消 -
addChild
- 返回:
- 返回 0 表示已通知,大于0表示注册成功;
-
removeChild
删除子token -
clear
public void clear()清理所有的监听者(含child) -
addListener
添加取消监听器- 返回:
- listener对应的id;返回 0 表示已通知,大于0表示注册成功;
-
removeListener
删除监听器 注意:lambda可能无法正确匹配,因此建议使用removeById(int) -
addListener
为Task定制的接口 1.可减少闭包,也更方便使用 2.如果Task被重入,不会被通知- 返回:
- listener对应的id;返回 0 表示已通知,大于0表示注册成功;
-
removeListener
删除task的监听 -
removeById
public boolean removeById(int listenerId) 通过分配的监听器id删除监听器
-