xref: /aosp_15_r20/external/aws-crt-java/src/native/http_request_utils.h (revision 3c7ae9de214676c52d19f01067dc1a404272dc11)
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