39 if ( systemState->currentTime >
timestamp ) {
45 auto request = request_ptr.lock();
50 addEvaluation( token_ptr, request_ptr, std::move(decision), decision->reward );
57 return event_ptr.lock();
65 auto token = request->token;
66 assert( token->node );
71 assert( extensionElements->choices.size() );
73 auto alternativeChoices = decisionTask->enumerateAlternatives(token->status, *token->data, token->globals);
74 std::shared_ptr<Decision> bestDecision =
nullptr;
75 for (
auto& choices : alternativeChoices ) {
76 auto decision = std::make_shared<ChoiceDecision>(token, std::move(choices),
evaluator);
79 decision->reward.has_value() &&
80 ( !bestDecision || decision->reward.value() > bestDecision->reward.value() )
82 bestDecision = decision;