1*3c7ae9deSAndroid Build Coastguard Worker /** 2*3c7ae9deSAndroid Build Coastguard Worker * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3*3c7ae9deSAndroid Build Coastguard Worker * SPDX-License-Identifier: Apache-2.0. 4*3c7ae9deSAndroid Build Coastguard Worker */ 5*3c7ae9deSAndroid Build Coastguard Worker 6*3c7ae9deSAndroid Build Coastguard Worker #ifndef AWS_JNI_CRT_HTTP_REQUEST_UTILS_H 7*3c7ae9deSAndroid Build Coastguard Worker #define AWS_JNI_CRT_HTTP_REQUEST_UTILS_H 8*3c7ae9deSAndroid Build Coastguard Worker 9*3c7ae9deSAndroid Build Coastguard Worker #include <jni.h> 10*3c7ae9deSAndroid Build Coastguard Worker 11*3c7ae9deSAndroid Build Coastguard Worker #include <aws/common/byte_buf.h> 12*3c7ae9deSAndroid Build Coastguard Worker 13*3c7ae9deSAndroid Build Coastguard Worker struct aws_allocator; 14*3c7ae9deSAndroid Build Coastguard Worker struct aws_http_header; 15*3c7ae9deSAndroid Build Coastguard Worker struct aws_http_headers; 16*3c7ae9deSAndroid Build Coastguard Worker struct aws_http_message; 17*3c7ae9deSAndroid Build Coastguard Worker struct aws_input_stream; 18*3c7ae9deSAndroid Build Coastguard Worker 19*3c7ae9deSAndroid Build Coastguard Worker struct aws_input_stream *aws_input_stream_new_from_java_http_request_body_stream( 20*3c7ae9deSAndroid Build Coastguard Worker struct aws_allocator *allocator, 21*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 22*3c7ae9deSAndroid Build Coastguard Worker jobject http_request_body_stream); 23*3c7ae9deSAndroid Build Coastguard Worker 24*3c7ae9deSAndroid Build Coastguard Worker struct aws_http_message *aws_http_request_new_from_java_http_request( 25*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 26*3c7ae9deSAndroid Build Coastguard Worker jbyteArray marshalled_request, 27*3c7ae9deSAndroid Build Coastguard Worker jobject jni_body_stream); 28*3c7ae9deSAndroid Build Coastguard Worker 29*3c7ae9deSAndroid Build Coastguard Worker struct aws_http_headers *aws_http_headers_new_from_java_http_headers(JNIEnv *env, jbyteArray marshalled_headers); 30*3c7ae9deSAndroid Build Coastguard Worker 31*3c7ae9deSAndroid Build Coastguard Worker int aws_marshal_http_headers_array_to_dynamic_buffer( 32*3c7ae9deSAndroid Build Coastguard Worker struct aws_byte_buf *buf, 33*3c7ae9deSAndroid Build Coastguard Worker const struct aws_http_header *header_array, 34*3c7ae9deSAndroid Build Coastguard Worker size_t num_headers); 35*3c7ae9deSAndroid Build Coastguard Worker 36*3c7ae9deSAndroid Build Coastguard Worker int aws_marshal_http_headers_to_dynamic_buffer(struct aws_byte_buf *buf, const struct aws_http_headers *headers); 37*3c7ae9deSAndroid Build Coastguard Worker 38*3c7ae9deSAndroid Build Coastguard Worker /* if this fails a java exception has been set. */ 39*3c7ae9deSAndroid Build Coastguard Worker int aws_apply_java_http_request_changes_to_native_request( 40*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 41*3c7ae9deSAndroid Build Coastguard Worker jbyteArray marshalled_request, 42*3c7ae9deSAndroid Build Coastguard Worker jobject jni_body_stream, 43*3c7ae9deSAndroid Build Coastguard Worker struct aws_http_message *message); 44*3c7ae9deSAndroid Build Coastguard Worker 45*3c7ae9deSAndroid Build Coastguard Worker /* if this fails a java exception has been set. */ 46*3c7ae9deSAndroid Build Coastguard Worker jobject aws_java_http_request_from_native(JNIEnv *env, struct aws_http_message *message, jobject request_body_stream); 47*3c7ae9deSAndroid Build Coastguard Worker 48*3c7ae9deSAndroid Build Coastguard Worker #endif /* AWS_JNI_CRT_HTTP_REQUEST_UTILS_H */ 49