Package com.google.api.gax.httpjson
Class ForwardingHttpJsonClientCall<RequestT,ResponseT>
java.lang.Object
com.google.api.gax.httpjson.HttpJsonClientCall<RequestT,ResponseT>
com.google.api.gax.httpjson.ForwardingHttpJsonClientCall<RequestT,ResponseT>
- Direct Known Subclasses:
ForwardingHttpJsonClientCall.SimpleForwardingHttpJsonClientCall
public abstract class ForwardingHttpJsonClientCall<RequestT,ResponseT>
extends HttpJsonClientCall<RequestT,ResponseT>
A
HttpJsonClientCall which forwards all of its methods to another HttpJsonClientCall.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA simplified version ofForwardingHttpJsonClientCallwhere subclasses can pass in aHttpJsonClientCallas the delegate.Nested classes/interfaces inherited from class com.google.api.gax.httpjson.HttpJsonClientCall
HttpJsonClientCall.Listener<T> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidPrevent any further processing for thisHttpJsonClientCall.protected abstract HttpJsonClientCall<RequestT,ResponseT> delegate()voidClose the call for request message sending.voidrequest(int numMessages) Requests up to the given number of messages from the call to be delivered toHttpJsonClientCall.Listener.onMessage(Object).voidsendMessage(RequestT message) Send a request message to the server.voidstart(HttpJsonClientCall.Listener<ResponseT> responseListener, HttpJsonMetadata requestHeaders) Start a call, usingresponseListenerfor processing response messages.
-
Constructor Details
-
ForwardingHttpJsonClientCall
public ForwardingHttpJsonClientCall()
-
-
Method Details
-
delegate
-
start
public void start(HttpJsonClientCall.Listener<ResponseT> responseListener, HttpJsonMetadata requestHeaders) Description copied from class:HttpJsonClientCallStart a call, usingresponseListenerfor processing response messages.It must be called prior to any other method on this class, except for
HttpJsonClientCall.cancel(java.lang.String, java.lang.Throwable)which may be called at any time.- Specified by:
startin classHttpJsonClientCall<RequestT,ResponseT> - Parameters:
responseListener- receives response messagesrequestHeaders- which can contain extra call metadata, e.g. authentication credentials.
-
request
public void request(int numMessages) Description copied from class:HttpJsonClientCallRequests up to the given number of messages from the call to be delivered toHttpJsonClientCall.Listener.onMessage(Object). No additional messages will be delivered.Message delivery is guaranteed to be sequential in the order received. In addition, the listener methods will not be accessed concurrently. While it is not guaranteed that the same thread will always be used, it is guaranteed that only a single thread will access the listener at a time.
If called multiple times, the number of messages able to delivered will be the sum of the calls.
This method is safe to call from multiple threads without external synchronization.
- Specified by:
requestin classHttpJsonClientCall<RequestT,ResponseT> - Parameters:
numMessages- the requested number of messages to be delivered to the listener. Must be non-negative.
-
cancel
Description copied from class:HttpJsonClientCallPrevent any further processing for thisHttpJsonClientCall. No further messages may be sent or will be received. The server is not informed of cancellations. Cancellation is permitted even if previouslyHttpJsonClientCall.halfClose()d. Cancelling an alreadycancel()edClientCallhas no effect.No other methods on this class can be called after this method has been called.
- Specified by:
cancelin classHttpJsonClientCall<RequestT,ResponseT> - Parameters:
message- if notnull, will appear as the description of the CANCELLED statuscause- if notnull, will appear as the cause of the CANCELLED status
-
halfClose
public void halfClose()Description copied from class:HttpJsonClientCallClose the call for request message sending. Incoming response messages are unaffected. This should be called when no more messages will be sent from the client.- Specified by:
halfClosein classHttpJsonClientCall<RequestT,ResponseT>
-
sendMessage
Description copied from class:HttpJsonClientCallSend a request message to the server. May be called zero or more times but for unary and server streaming calls it must be called not more than once.- Specified by:
sendMessagein classHttpJsonClientCall<RequestT,ResponseT> - Parameters:
message- message to be sent to the server.
-