Class BidiStreamingCallable<RequestT,ResponseT> (2.20.1)

  public 
  
 abstract 
  
 class 
 BidiStreamingCallable<RequestT 
 , 
 ResponseT 
> 

A BidiStreamingCallable is an immutable object which is capable of making RPC calls to bidirectional streaming API methods. Not all transports support streaming.

It is considered advanced usage for a user to create a BidiStreamingCallable themselves. This class is intended to be created by a generated client class, and configured by instances of StreamingCallSettings.Builder which are exposed through the client settings class.

Inheritance

java.lang.Object > BidiStreamingCallable<RequestT,ResponseT>

Type Parameters

Name Description
RequestT
ResponseT

Constructors

BidiStreamingCallable()

  protected 
  
 BidiStreamingCallable 
 () 
 

Methods

bidiStreamingCall(ApiStreamObserver<ResponseT> responseObserver) (deprecated)

  public 
  
 ApiStreamObserver<RequestT> 
  
 bidiStreamingCall 
 ( 
 ApiStreamObserver<ResponseT> 
  
 responseObserver 
 ) 
 

Deprecated. Please use <xref uid="com.google.api.gax.rpc.BidiStreamingCallable.splitCall(com.google.api.gax.rpc.ResponseObserver<ResponseT>)" data-throw-if-not-resolved="false">#splitCall(ResponseObserver) instead.

Conduct a bidirectional streaming call

Parameter
Name Description
responseObserver ApiStreamObserver < ResponseT >

ApiStreamObserver to observe the streaming responses

Returns
Type Description
ApiStreamObserver < RequestT >

ApiStreamObserver which is used for making streaming requests.

bidiStreamingCall(ApiStreamObserver<ResponseT> responseObserver, ApiCallContext context) (deprecated)

  public 
  
 ApiStreamObserver<RequestT> 
  
 bidiStreamingCall 
 ( 
 ApiStreamObserver<ResponseT> 
  
 responseObserver 
 , 
  
 ApiCallContext 
  
 context 
 ) 
 

Deprecated. Please use <xref uid="com.google.api.gax.rpc.BidiStreamingCallable.splitCall(com.google.api.gax.rpc.ResponseObserver<ResponseT>,com.google.api.gax.rpc.ApiCallContext)" data-throw-if-not-resolved="false">#splitCall(ResponseObserver, ApiCallContext) instead.

Conduct a bidirectional streaming call with the given ApiCallContext .

Parameters
Name Description
responseObserver ApiStreamObserver < ResponseT >

ApiStreamObserver to observe the streaming responses

context ApiCallContext

ApiCallContext to provide context information for the RPC call.

Returns
Type Description
ApiStreamObserver < RequestT >

ApiStreamObserver which is used for making streaming requests.

call()

  public 
  
 BidiStream<RequestT 
 , 
 ResponseT 
>  
 call 
 () 
 

Send requests and iterate over server responses.

This returns a live stream that must either be fully consumed or cancelled. Example usage:

   
 BidiStream<String 
 , 
  
 String 
>  
 stream 
  
 = 
  
 bidiStreamingCallable 
 . 
 call 
 () 
  
 for 
  
 ( 
 String 
  
 s 
  
 : 
  
 stream 
 ) 
  
 { 
  
 if 
  
 ( 
 "needle" 
 . 
 equals 
 ( 
 s 
 )) 
  
 { 
  
 // Cancelling the stream will cause hasNext() 
to return false on the next iteration, 
  
 // naturally breaking the loop. 
  
 stream 
 . 
 cancel 
 (); 
  
 } 
  
 stream 
 . 
 send 
 ( 
 s 
 ); 
  
 } 
  
 
Returns
Type Description
BidiStream < RequestT , ResponseT >

call(ApiCallContext context)

  public 
  
 BidiStream<RequestT 
 , 
 ResponseT 
>  
 call 
 ( 
 ApiCallContext 
  
 context 
 ) 
 

Send requests and iterate over server responses.

This returns a live stream that must either be fully consumed or cancelled.

Parameter
Name Description
context ApiCallContext
Returns
Type Description
BidiStream < RequestT , ResponseT >

call(BidiStreamObserver<RequestT,ResponseT> bidiObserver)

  public 
  
 void 
  
 call 
 ( 
 BidiStreamObserver<RequestT 
 , 
 ResponseT 
>  
 bidiObserver 
 ) 
 

Listens to server responses and send requests when the network is free. Example usage:

   
 final 
  
 Iterator<Integer> 
  
 sourceDataIterator 
  
 = 
  
 intCollection 
 . 
 iterator 
 (); 
  
 BidiStreamObserver<Integer 
 , 
  
 String 
>  
 bidiStreamObserver 
  
 = 
  
 new 
  
 BidiStreamObserver<Integer 
 , 
  
 String 
> () 
  
 { 
  
 public 
  
 void 
  
 onStart 
 ( 
 StreamController 
  
 controller 
 ) 
  
 { 
  
 // no-op 
  
 } 
  
 public 
  
 void 
  
 onResponse 
 ( 
 String 
  
 response 
 ) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 response 
 ); 
  
 } 
  
 public 
  
 void 
  
 onComplete 
 () 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "done!" 
 ); 
  
 } 
  
 public 
  
 void 
  
 onError 
 ( 
 Throwable 
  
 t 
 ) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "error: " 
  
 + 
  
 t 
 ); 
  
 } 
  
 public 
  
 void 
  
 onReady 
 ( 
 ClientStream<Integer> 
  
 stream 
 ) 
  
 { 
  
 while 
  
 ( 
 sourceDataIterator 
 . 
 hasNext 
 ()) 
  
 { 
  
 if 
  
 ( 
 stream 
 . 
 isReady 
 ()) 
  
 { 
  
 stream 
 . 
 send 
 ( 
 sourceDataIterator 
 . 
 next 
 ()); 
  
 } 
  
 else 
  
 { 
  
 // It's OK we haven't consumed the whole iterator; 
  
 // onReady will be called again when the network becomes free. 
  
 return 
 ; 
  
 } 
  
 } 
  
 // We ran out of things to send. 
  
 stream 
 . 
 close 
 (); 
  
 } 
  
 }; 
  
 bidiStreamingCallable 
 . 
 call 
 ( 
 bidiStreamObserver 
 ); 
  
 
Parameter
Name Description
bidiObserver BidiStreamObserver < RequestT , ResponseT >

call(BidiStreamObserver<RequestT,ResponseT> bidiObserver, ApiCallContext context)

  public 
  
 void 
  
 call 
 ( 
 BidiStreamObserver<RequestT 
 , 
 ResponseT 
>  
 bidiObserver 
 , 
  
 ApiCallContext 
  
 context 
 ) 
 

Listens to server responses and send requests when the network is free.

Parameters
Name Description
bidiObserver BidiStreamObserver < RequestT , ResponseT >
context ApiCallContext

internalCall(ResponseObserver<ResponseT> responseObserver, ClientStreamReadyObserver<RequestT> onReady, ApiCallContext context)

  public 
  
 abstract 
  
 ClientStream<RequestT> 
  
 internalCall 
 ( 
 ResponseObserver<ResponseT> 
  
 responseObserver 
 , 
  
 ClientStreamReadyObserver<RequestT> 
  
 onReady 
 , 
  
 ApiCallContext 
  
 context 
 ) 
 

The "base" method from which other forms of call s are derived. Most users will not need to call this method directly.

However, it is public , since library authors might want to call this method in adaptor classes.

Parameters
Name Description
responseObserver ResponseObserver < ResponseT >
onReady ClientStreamReadyObserver < RequestT >
context ApiCallContext
Returns
Type Description
ClientStream < RequestT >

splitCall(ResponseObserver<ResponseT> responseObserver)

  public 
  
 ClientStream<RequestT> 
  
 splitCall 
 ( 
 ResponseObserver<ResponseT> 
  
 responseObserver 
 ) 
 

Send requests to the server and listens to responses.

Example usage:

   
 ResponseObserver<String> 
  
 responseObserver 
  
 = 
  
 new 
  
 ResponseObserver<String> 
 () 
  
 { 
  
 public 
  
 void 
  
 onStart 
 ( 
 StreamController 
  
 controller 
 ) 
  
 { 
  
 // no-op 
  
 } 
  
 public 
  
 void 
  
 onResponse 
 ( 
 String 
  
 response 
 ) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 response 
 ); 
  
 } 
  
 public 
  
 void 
  
 onComplete 
 () 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "done!" 
 ); 
  
 } 
  
 public 
  
 void 
  
 onError 
 ( 
 Throwable 
  
 t 
 ) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "error: " 
  
 + 
  
 t 
 ); 
  
 } 
  
 }; 
  
 ClientStream<Integer> 
  
 clientStream 
  
 = 
  
 bidiStreamingCallable 
 . 
 splitCall 
 ( 
 responseObserver 
 ); 
  
 clientStream 
 . 
 send 
 ( 
 42 
 ); 
  
 clientStream 
 . 
 send 
 ( 
 43 
 ); 
  
 clientStream 
 . 
 close 
 (); 
  
 
Parameter
Name Description
responseObserver ResponseObserver < ResponseT >
Returns
Type Description
ClientStream < RequestT >

splitCall(ResponseObserver<ResponseT> responseObserver, ApiCallContext context)

  public 
  
 ClientStream<RequestT> 
  
 splitCall 
 ( 
 ResponseObserver<ResponseT> 
  
 responseObserver 
 , 
  
 ApiCallContext 
  
 context 
 ) 
 

Send requests to the server and listens to responses.

Parameters
Name Description
responseObserver ResponseObserver < ResponseT >
context ApiCallContext
Returns
Type Description
ClientStream < RequestT >

withDefaultCallContext(ApiCallContext defaultCallContext)

  public 
  
 BidiStreamingCallable<RequestT 
 , 
 ResponseT 
>  
 withDefaultCallContext 
 ( 
 ApiCallContext 
  
 defaultCallContext 
 ) 
 

Returns a new BidiStreamingCallable with an ApiCallContext that is used as a default when none is supplied in individual calls.

Parameter
Name Description
defaultCallContext ApiCallContext

the default ApiCallContext .

Returns
Type Description
BidiStreamingCallable < RequestT , ResponseT >
Design a Mobile Site
View Site in Mobile | Classic
Share by: