Package com.google.api.gax.retrying
Interface StreamResumptionStrategy<RequestT,ResponseT>
-
- All Known Implementing Classes:
SimpleStreamResumptionStrategy
public interface StreamResumptionStrategy<RequestT,ResponseT>
This is part of the server streaming retry api. Its implementers are responsible for tracking the progress of the stream and calculating a request to resume it in case of an error.Implementations don't have to be threadsafe because all of the calls will be serialized.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
canResume()
If a resume request can be created.StreamResumptionStrategy<RequestT,ResponseT>
createNew()
Creates a new instance of this StreamResumptionStrategy without accumulated stateRequestT
getResumeRequest(RequestT originalRequest)
Called when a stream needs to be restarted, the implementation should generate a request that will yield a new stream whose first response would come right after the last response received by processResponse.ResponseT
processResponse(ResponseT response)
Called by theServerStreamingAttemptCallable
when a response has been successfully received.
-
-
-
Method Detail
-
createNew
@Nonnull StreamResumptionStrategy<RequestT,ResponseT> createNew()
Creates a new instance of this StreamResumptionStrategy without accumulated state
-
processResponse
@Nonnull ResponseT processResponse(ResponseT response)
Called by theServerStreamingAttemptCallable
when a response has been successfully received. This method accomplishes two goals:- It allows the strategy implementation to update its internal state so that it can compose the resume request
- It allows the strategy to alter the incoming responses to adjust for after resume. For example, if the responses are numbered sequentially from the start of the stream, upon resume, the strategy could rewrite the messages to continue the sequence from where it left off. Please note that all messages (even for the first attempt) will be passed through this method.
-
getResumeRequest
@Nullable RequestT getResumeRequest(RequestT originalRequest)
Called when a stream needs to be restarted, the implementation should generate a request that will yield a new stream whose first response would come right after the last response received by processResponse.- Returns:
- A request that can be used to resume the stream.
-
canResume
boolean canResume()
If a resume request can be created.
-
-