xref: /aosp_15_r20/external/aws-crt-java/src/native/event_stream_message.h (revision 3c7ae9de214676c52d19f01067dc1a404272dc11)
1*3c7ae9deSAndroid Build Coastguard Worker #ifndef CRT_EVENT_STREAM_MESSAGE_H
2*3c7ae9deSAndroid Build Coastguard Worker #define CRT_EVENT_STREAM_MESSAGE_H
3*3c7ae9deSAndroid Build Coastguard Worker /**
4*3c7ae9deSAndroid Build Coastguard Worker  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5*3c7ae9deSAndroid Build Coastguard Worker  * SPDX-License-Identifier: Apache-2.0.
6*3c7ae9deSAndroid Build Coastguard Worker  */
7*3c7ae9deSAndroid Build Coastguard Worker #include <jni.h>
8*3c7ae9deSAndroid Build Coastguard Worker 
9*3c7ae9deSAndroid Build Coastguard Worker #include <aws/common/byte_buf.h>
10*3c7ae9deSAndroid Build Coastguard Worker #include <aws/event-stream/event_stream_rpc.h>
11*3c7ae9deSAndroid Build Coastguard Worker 
12*3c7ae9deSAndroid Build Coastguard Worker struct aws_event_stream_rpc_marshalled_message {
13*3c7ae9deSAndroid Build Coastguard Worker     struct aws_allocator *allocator;
14*3c7ae9deSAndroid Build Coastguard Worker     bool headers_init;
15*3c7ae9deSAndroid Build Coastguard Worker     struct aws_array_list headers_list;
16*3c7ae9deSAndroid Build Coastguard Worker     struct aws_byte_buf headers_buf;
17*3c7ae9deSAndroid Build Coastguard Worker     struct aws_byte_buf payload_buf;
18*3c7ae9deSAndroid Build Coastguard Worker     struct aws_byte_buf operation_buf;
19*3c7ae9deSAndroid Build Coastguard Worker     struct aws_event_stream_rpc_message_args message_args;
20*3c7ae9deSAndroid Build Coastguard Worker };
21*3c7ae9deSAndroid Build Coastguard Worker 
22*3c7ae9deSAndroid Build Coastguard Worker int aws_event_stream_rpc_marshall_message_args_init(
23*3c7ae9deSAndroid Build Coastguard Worker     struct aws_event_stream_rpc_marshalled_message *message_args,
24*3c7ae9deSAndroid Build Coastguard Worker     struct aws_allocator *allocator,
25*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
26*3c7ae9deSAndroid Build Coastguard Worker     jbyteArray headers,
27*3c7ae9deSAndroid Build Coastguard Worker     jbyteArray payload,
28*3c7ae9deSAndroid Build Coastguard Worker     jbyteArray operation,
29*3c7ae9deSAndroid Build Coastguard Worker     jint message_flags,
30*3c7ae9deSAndroid Build Coastguard Worker     jint message_type);
31*3c7ae9deSAndroid Build Coastguard Worker 
32*3c7ae9deSAndroid Build Coastguard Worker void aws_event_stream_rpc_marshall_message_args_clean_up(struct aws_event_stream_rpc_marshalled_message *message_args);
33*3c7ae9deSAndroid Build Coastguard Worker 
34*3c7ae9deSAndroid Build Coastguard Worker jbyteArray aws_event_stream_rpc_marshall_headers_to_byteArray(
35*3c7ae9deSAndroid Build Coastguard Worker     struct aws_allocator *allocator,
36*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
37*3c7ae9deSAndroid Build Coastguard Worker     struct aws_event_stream_header_value_pair *pair,
38*3c7ae9deSAndroid Build Coastguard Worker     size_t length);
39*3c7ae9deSAndroid Build Coastguard Worker 
40*3c7ae9deSAndroid Build Coastguard Worker #endif /* CRT_EVENT_STREAM_MESSAGE_H */
41