@Override public void deferRequestContent() { if (isAvailabilityAlreadyUpdated(REQUEST_CONTENT)) { return; } requestContentDeferred = true; }
@Override public void deferResponseContent() { if (isAvailabilityAlreadyUpdated(RESPONSE_CONTENT)) { return; } responseContentDeferred = true; }
@Override public void serializationFormat(SerializationFormat serializationFormat) { if (isAvailabilityAlreadyUpdated(SCHEME)) { return; } this.serializationFormat = requireNonNull(serializationFormat, "serializationFormat"); updateAvailability(SCHEME); }
@Override public void requestFirstBytesTransferred() { if (isAvailabilityAlreadyUpdated(REQUEST_FIRST_BYTES_TRANSFERRED)) { return; } requestFirstBytesTransferred0(System.nanoTime()); }
@Override public void responseFirstBytesTransferred(long responseFirstBytesTransferredTimeNanos) { if (isAvailabilityAlreadyUpdated(RESPONSE_FIRST_BYTES_TRANSFERRED)) { return; } responseFirstBytesTransferred0(responseFirstBytesTransferredTimeNanos); }
@Override public void requestHeaders(HttpHeaders requestHeaders) { if (isAvailabilityAlreadyUpdated(REQUEST_HEADERS)) { return; } this.requestHeaders = requireNonNull(requestHeaders, "requestHeaders"); updateAvailability(REQUEST_HEADERS); }
@Override public void requestFirstBytesTransferred(long requestFirstBytesTransferredTimeNanos) { if (isAvailabilityAlreadyUpdated(REQUEST_FIRST_BYTES_TRANSFERRED)) { return; } requestFirstBytesTransferred0(requestFirstBytesTransferredTimeNanos); }
@Override public void requestContent(@Nullable Object requestContent, @Nullable Object rawRequestContent) { if (isAvailabilityAlreadyUpdated(REQUEST_CONTENT)) { return; } this.requestContent = requestContent; this.rawRequestContent = rawRequestContent; updateAvailability(REQUEST_CONTENT); }
private void startResponse0(long responseStartTimeNanos, long responseStartTimeMicros, boolean updateAvailability) { if (isAvailabilityAlreadyUpdated(RESPONSE_START)) { return; } this.responseStartTimeNanos = responseStartTimeNanos; this.responseStartTimeMicros = responseStartTimeMicros; if (updateAvailability) { updateAvailability(RESPONSE_START); } }
@Override public void responseFirstBytesTransferred() { if (isAvailabilityAlreadyUpdated(RESPONSE_FIRST_BYTES_TRANSFERRED)) { return; } responseFirstBytesTransferred0(System.nanoTime()); }
@Override public void responseHeaders(HttpHeaders responseHeaders) { if (isAvailabilityAlreadyUpdated(RESPONSE_HEADERS)) { return; } this.responseHeaders = requireNonNull(responseHeaders, "responseHeaders"); updateAvailability(RESPONSE_HEADERS); }
private void startRequest0(@Nullable Channel channel, SessionProtocol sessionProtocol, @Nullable SSLSession sslSession, long requestStartTimeNanos, long requestStartTimeMicros, boolean updateAvailability) { if (isAvailabilityAlreadyUpdated(REQUEST_START)) { return; } this.requestStartTimeNanos = requestStartTimeNanos; this.requestStartTimeMicros = requestStartTimeMicros; this.channel = channel; this.sslSession = sslSession; this.sessionProtocol = sessionProtocol; if (sessionProtocol.isTls()) { // Switch to the dummy headers with ':scheme=https' if the connection is TLS. if (requestHeaders == DUMMY_REQUEST_HEADERS_HTTP) { requestHeaders = DUMMY_REQUEST_HEADERS_HTTPS; } } if (updateAvailability) { updateAvailability(REQUEST_START); } }
@Override public void responseContent(@Nullable Object responseContent, @Nullable Object rawResponseContent) { if (isAvailabilityAlreadyUpdated(RESPONSE_CONTENT)) { return; } if (responseContent instanceof RpcResponse) { final RpcResponse rpcResponse = (RpcResponse) responseContent; if (!rpcResponse.isDone()) { throw new IllegalArgumentException("responseContent must be complete: " + responseContent); } if (rpcResponse.cause() != null) { responseCause = rpcResponse.cause(); } } this.responseContent = responseContent; this.rawResponseContent = rawResponseContent; updateAvailability(RESPONSE_CONTENT); }