类 ActiveSelector<E>
java.lang.Object
cn.wjybxx.btree.Task<E>
cn.wjybxx.btree.BranchTask<E>
cn.wjybxx.btree.branch.SingleRunningChildBranch<E>
cn.wjybxx.btree.branch.ActiveSelector<E>
主动选择节点
每次运行时都会重新测试节点的运行条件,选择一个新的可运行节点。
如果新选择的运行节点与之前的运行节点不同,则取消之前的任务。
- 作者:
- wjybxx date - 2023/11/26
-
字段概要
从类继承的字段 cn.wjybxx.btree.branch.SingleRunningChildBranch
runningChild, runningIndex从类继承的字段 cn.wjybxx.btree.BranchTask
children -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明protected voidexecute()Task的心跳方法,在Task进入完成状态之前会反复执行。protected voidonChildCompleted(Task<E> child) 子类的实现模板:从类继承的方法 cn.wjybxx.btree.branch.SingleRunningChildBranch
beforeEnter, exit, getCompletedCount, getRunningIndex, illegalStateMsg, isAllChildCompleted, nextChild, onChildRunning, onEventImpl, resetForRestart, stopRunningChildren从类继承的方法 cn.wjybxx.btree.BranchTask
addChildImpl, childStream, getChild, getChildCount, getChildren, getFirstChild, getLastChild, indexChild, isFirstChild, isLastChild, removeAllChild, removeChildImpl, setChildImpl, setChildren, shuffleChild从类继承的方法 cn.wjybxx.btree.Task
addChild, canHandleEvent, checkCancel, enter, getBlackboard, getCancelToken, getControl, getControlData, getCurFrame, getEnterFrame, getEntity, getEntryBlackboard, getExitFrame, getFlags, getGuard, getNormalizedStatus, getPrevStatus, getReentryId, getRunFrames, getSharedProps, getStatus, getTaskEntry, isAutoCheckCancel, isAutoListenCancel, isAutoResetChildren, isCancelled, isCompleted, isDisableDelayNotify, isDisableEnterExecute, isExecuteTriggeredByEnter, isExecuting, isExited, isExitTriggeredByStop, isFailed, isFailedOrCancelled, isLocked, isReentered, isRunning, isStillborn, isSucceeded, lock, onCancelRequested, onEvent, removeChild, removeChild, resetChildrenForRestart, resetForRestart, setAutoCheckCancel, setAutoListenCancel, setAutoResetChildren, setBlackboard, setCancelled, setCancelToken, setChild, setCompleted, setControl, setControlData, setDisableDelayNotify, setDisableEnterExecute, setEnterFrame, setExitFrame, setFailed, setFlags, setGuard, setGuardFailed, setSharedProps, setSuccess, stop, stop, stopSafely, template_checkGuard, template_execute, template_runChild, template_runChildDirectly, template_runHook, template_runHookDirectly, tryLock, unlock, unsetControl
-
构造器详细资料
-
ActiveSelector
public ActiveSelector()
-
-
方法详细资料
-
execute
protected void execute()从类复制的说明:TaskTask的心跳方法,在Task进入完成状态之前会反复执行。 1.可以根据Task.isExecuteTriggeredByEnter()判断是否是与Task.enter(int)连续执行的。 2.运行中可通过Task.setSuccess()、Task.setFailed(int)()}、Task.setCancelled()将自己更新为完成状态。 3.不建议直接调用该方法,而是通过模板方法运行。- 覆盖:
execute在类中SingleRunningChildBranch<E>
-
onChildCompleted
从类复制的说明:SingleRunningChildBranch子类的实现模板:protected void onChildCompleted(Task child) { runningChild = null; // 尝试计算结果 ... // 如果未得出结果 if (!isExecuting()) { template_execute(); } }- 覆盖:
onChildCompleted在类中SingleRunningChildBranch<E>
-