1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 package software.amazon.awssdk.crt.s3; 6 7 import software.amazon.awssdk.crt.http.HttpHeader; 8 9 import java.nio.ByteBuffer; 10 11 class S3MetaRequestResponseHandlerNativeAdapter { 12 private S3MetaRequestResponseHandler responseHandler; 13 S3MetaRequestResponseHandlerNativeAdapter(S3MetaRequestResponseHandler responseHandler)14 S3MetaRequestResponseHandlerNativeAdapter(S3MetaRequestResponseHandler responseHandler) { 15 this.responseHandler = responseHandler; 16 } 17 onResponseBody(byte[] bodyBytesIn, long objectRangeStart, long objectRangeEnd)18 int onResponseBody(byte[] bodyBytesIn, long objectRangeStart, long objectRangeEnd) { 19 return this.responseHandler.onResponseBody(ByteBuffer.wrap(bodyBytesIn), objectRangeStart, objectRangeEnd); 20 } 21 onFinished(int errorCode, int responseStatus, byte[] errorPayload, int checksumAlgorithm, boolean didValidateChecksum, Throwable cause, final ByteBuffer headersBlob)22 void onFinished(int errorCode, int responseStatus, byte[] errorPayload, int checksumAlgorithm, boolean didValidateChecksum, Throwable cause, final ByteBuffer headersBlob) { 23 HttpHeader[] errorHeaders = headersBlob == null ? null : HttpHeader.loadHeadersFromMarshalledHeadersBlob(headersBlob); 24 S3FinishedResponseContext context = new S3FinishedResponseContext(errorCode, responseStatus, errorPayload, ChecksumAlgorithm.getEnumValueFromInteger(checksumAlgorithm), didValidateChecksum, cause, errorHeaders); 25 this.responseHandler.onFinished(context); 26 } 27 onResponseHeaders(final int statusCode, final ByteBuffer headersBlob)28 void onResponseHeaders(final int statusCode, final ByteBuffer headersBlob) { 29 responseHandler.onResponseHeaders(statusCode, HttpHeader.loadHeadersFromMarshalledHeadersBlob(headersBlob)); 30 } 31 onProgress(final S3MetaRequestProgress progress)32 void onProgress(final S3MetaRequestProgress progress) { 33 responseHandler.onProgress(progress); 34 } 35 } 36