public override StreamingPullStream StreamingPull(
     CallSettings callSettings = null, BidirectionalStreamingSettings streamingSettings = null)
 {
     lock (_msgsEn)
     {
         if (!_msgsEn.MoveNext())
         {
             throw new InvalidOperationException("Test subscriber creation failed. Run out of (fake) data");
         }
         var msgs = _msgsEn.Current;
         return(new PullStream(_writeAsyncPreDelay, msgs, _writeCompletes, _streamPings,
                               _scheduler, _clock, _taskHelper, _useMsgAsId, callSettings?.CancellationToken));
     }
 }
        /// <summary>
        /// Performs bidirectional streaming speech recognition: receive results while
        /// sending audio. This method is only available via the gRPC API (not REST).
        /// </summary>
        /// <param name="callSettings">
        /// If not null, applies overrides to this RPC call.
        /// </param>
        /// <param name="streamingSettings">
        /// If not null, applies streaming overrides to this RPC call.
        /// </param>
        /// <returns>
        /// The client-server stream.
        /// </returns>
        public override StreamingRecognizeStream StreamingRecognize(
            CallSettings callSettings = null,
            BidirectionalStreamingSettings streamingSettings = null)
        {
            Modify_StreamingRecognizeRequestCallSettings(ref callSettings);
            BidirectionalStreamingSettings effectiveStreamingSettings =
                streamingSettings ?? _callStreamingRecognize.StreamingSettings;
            AsyncDuplexStreamingCall <StreamingRecognizeRequest, StreamingRecognizeResponse> call =
                _callStreamingRecognize.Call(callSettings);
            BufferedClientStreamWriter <StreamingRecognizeRequest> writeBuffer =
                new BufferedClientStreamWriter <StreamingRecognizeRequest>(
                    call.RequestStream, effectiveStreamingSettings.BufferedClientWriterCapacity);

            return(new StreamingRecognizeStreamImpl(this, call, writeBuffer));
        }
 /// <summary>
 /// Performs bidirectional streaming speech recognition: receive results while
 /// sending audio. This method is only available via the gRPC API (not REST).
 /// </summary>
 /// <param name="callSettings">
 /// If not null, applies overrides to this RPC call.
 /// </param>
 /// <param name="streamingSettings">
 /// If not null, applies streaming overrides to this RPC call.
 /// </param>
 /// <returns>
 /// The client-server stream.
 /// </returns>
 public virtual StreamingRecognizeStream StreamingRecognize(
     CallSettings callSettings = null,
     BidirectionalStreamingSettings streamingSettings = null)
 {
     throw new NotImplementedException();
 }