@BetaApi public abstract class ForwardingHttpJsonClientCall<RequestT,ResponseT> extends HttpJsonClientCall<RequestT,ResponseT>
HttpJsonClientCall which forwards all of its methods to another HttpJsonClientCall.| Modifier and Type | Class and Description |
|---|---|
static class |
ForwardingHttpJsonClientCall.SimpleForwardingHttpJsonClientCall<RequestT,ResponseT>
A simplified version of
ForwardingHttpJsonClientCall where subclasses can pass in a
HttpJsonClientCall as the delegate. |
HttpJsonClientCall.Listener<T>| Constructor and Description |
|---|
ForwardingHttpJsonClientCall() |
| Modifier and Type | Method and Description |
|---|---|
void |
cancel(String message,
Throwable cause)
Prevent any further processing for this
HttpJsonClientCall. |
protected abstract HttpJsonClientCall<RequestT,ResponseT> |
delegate() |
void |
halfClose()
Close the call for request message sending.
|
void |
request(int numMessages)
Requests up to the given number of messages from the call to be delivered to
HttpJsonClientCall.Listener.onMessage(Object). |
void |
sendMessage(RequestT message)
Send a request message to the server.
|
void |
start(HttpJsonClientCall.Listener<ResponseT> responseListener,
HttpJsonMetadata requestHeaders)
Start a call, using
responseListener for processing response messages. |
protected abstract HttpJsonClientCall<RequestT,ResponseT> delegate()
public void start(HttpJsonClientCall.Listener<ResponseT> responseListener, HttpJsonMetadata requestHeaders)
HttpJsonClientCallresponseListener for 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.
start in class HttpJsonClientCall<RequestT,ResponseT>responseListener - receives response messagesrequestHeaders - which can contain extra call metadata, e.g. authentication credentials.public void request(int numMessages)
HttpJsonClientCallHttpJsonClientCall.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.
request in class HttpJsonClientCall<RequestT,ResponseT>numMessages - the requested number of messages to be delivered to the listener. Must be
non-negative.public void cancel(@Nullable String message, @Nullable Throwable cause)
HttpJsonClientCallHttpJsonClientCall. No further messages may be
sent or will be received. The server is not informed of cancellations. Cancellation is
permitted even if previously HttpJsonClientCall.halfClose()d. Cancelling an already cancel()ed
ClientCall has no effect.
No other methods on this class can be called after this method has been called.
cancel in class HttpJsonClientCall<RequestT,ResponseT>message - if not null, will appear as the description of the CANCELLED statuscause - if not null, will appear as the cause of the CANCELLED statuspublic void halfClose()
HttpJsonClientCallhalfClose in class HttpJsonClientCall<RequestT,ResponseT>public void sendMessage(RequestT message)
HttpJsonClientCallsendMessage in class HttpJsonClientCall<RequestT,ResponseT>message - message to be sent to the server.