requestDrain method

Future<List<AgentResult>> requestDrain(
  1. IntentCallDrainTrigger trigger
)

Implementation

Future<List<AgentResult>> requestDrain(final IntentCallDrainTrigger trigger) {
  if (_disposed) {
    return Future<List<AgentResult>>.value(const <AgentResult>[]);
  }
  final activeDrain = _activeDrain;
  if (activeDrain != null) {
    _drainAgain = true;
    _queuedTrigger ??= trigger;
    return activeDrain;
  }
  final drain = _runDrainLoop(trigger);
  _activeDrain = drain;
  return drain.whenComplete(() {
    _activeDrain = null;
  });
}