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.
  • Constructor Details

    • ForwardingHttpJsonClientCall

      public ForwardingHttpJsonClientCall()
  • Method Details

    • delegate

      protected abstract HttpJsonClientCall<RequestT,ResponseT> delegate()
    • start

      public void start(HttpJsonClientCall.Listener<ResponseT> responseListener, HttpJsonMetadata requestHeaders)
      Description copied from class: HttpJsonClientCall
      Start a call, using responseListener 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.

      Specified by:
      start in class HttpJsonClientCall<RequestT,ResponseT>
      Parameters:
      responseListener - receives response messages
      requestHeaders - which can contain extra call metadata, e.g. authentication credentials.
    • request

      public void request(int numMessages)
      Description copied from class: HttpJsonClientCall
      Requests up to the given number of messages from the call to be delivered to HttpJsonClientCall.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:
      request in class HttpJsonClientCall<RequestT,ResponseT>
      Parameters:
      numMessages - the requested number of messages to be delivered to the listener. Must be non-negative.
    • cancel

      public void cancel(@Nullable String message, @Nullable Throwable cause)
      Description copied from class: HttpJsonClientCall
      Prevent any further processing for this HttpJsonClientCall. 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.

      Specified by:
      cancel in class HttpJsonClientCall<RequestT,ResponseT>
      Parameters:
      message - if not null, will appear as the description of the CANCELLED status
      cause - if not null, will appear as the cause of the CANCELLED status
    • halfClose

      public void halfClose()
      Description copied from class: HttpJsonClientCall
      Close 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:
      halfClose in class HttpJsonClientCall<RequestT,ResponseT>
    • sendMessage

      public void sendMessage(RequestT message)
      Description copied from class: HttpJsonClientCall
      Send 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:
      sendMessage in class HttpJsonClientCall<RequestT,ResponseT>
      Parameters:
      message - message to be sent to the server.