createCall<Q, R> method

  1. @override
ClientCall<Q, R> createCall<Q, R>(
  1. ClientMethod<Q, R> method,
  2. Stream<Q> requests,
  3. CallOptions options
)

Initiates a new RPC on this connection.

Implementation

@override
ClientCall<Q, R> createCall<Q, R>(ClientMethod<Q, R> method, Stream<Q> requests, CallOptions options) {
  final call = MyClientCall<Q, R>(
    method,
    requests,
    options,
  );
  // do the call
  requests.first.then((request) {
    stateManager
        .invokeHandoverToExternalGRPC(
            method.path.split('/')[1], method.path.split('/')[2], (request as GeneratedMessage).writeToBuffer().toJS)
        .then((response) {
      final responseData = method.responseDeserializer(response!.toDart);
      call.setResponse(responseData);
    });
  });
  return call;
}