interceptClientStream<TRequest, TResponse> method

  1. @override
Future<TResponse> interceptClientStream<TRequest, TResponse>(
  1. RpcCallInfo call,
  2. Stream<TRequest> requests,
  3. RpcClientStreamNext<TRequest, TResponse> next
)
override

Client-stream call interceptor.

Implementation

@override
Future<TResponse> interceptClientStream<TRequest, TResponse>(
  RpcCallInfo call,
  Stream<TRequest> requests,
  RpcClientStreamNext<TRequest, TResponse> next,
) async {
  // Charge at establishment, BEFORE the handler runs, so a call that sends no
  // request messages is not free — and mark the first message prepaid, so a
  // call that does send them costs exactly what it did before.
  _check(call);
  return next(
    call.context,
    _meterStream(call, requests, firstIsPrepaid: true),
  );
}