xref: /aosp_15_r20/external/aws-crt-java/src/native/mqtt5_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 #ifndef AWS_JNI_MQTT5_UTILS_H
6*3c7ae9deSAndroid Build Coastguard Worker #define AWS_JNI_MQTT5_UTILS_H
7*3c7ae9deSAndroid Build Coastguard Worker 
8*3c7ae9deSAndroid Build Coastguard Worker #include <jni.h>
9*3c7ae9deSAndroid Build Coastguard Worker 
10*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_user_property;
11*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_connack_view;
12*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_disconnect_view;
13*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_negotiated_settings;
14*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_publish_view;
15*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_puback_view;
16*3c7ae9deSAndroid Build Coastguard Worker 
17*3c7ae9deSAndroid Build Coastguard Worker int s_set_jni_uint32_t_field_in_packet(
18*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
19*3c7ae9deSAndroid Build Coastguard Worker     const uint32_t *native_integer,
20*3c7ae9deSAndroid Build Coastguard Worker     jobject packet,
21*3c7ae9deSAndroid Build Coastguard Worker     jfieldID field_id,
22*3c7ae9deSAndroid Build Coastguard Worker     char *field_name,
23*3c7ae9deSAndroid Build Coastguard Worker     bool optional);
24*3c7ae9deSAndroid Build Coastguard Worker 
25*3c7ae9deSAndroid Build Coastguard Worker int s_set_jni_uint16_t_field_in_packet(
26*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
27*3c7ae9deSAndroid Build Coastguard Worker     const uint16_t *native_integer,
28*3c7ae9deSAndroid Build Coastguard Worker     jobject packet,
29*3c7ae9deSAndroid Build Coastguard Worker     jfieldID field_id,
30*3c7ae9deSAndroid Build Coastguard Worker     char *field_name,
31*3c7ae9deSAndroid Build Coastguard Worker     bool optional);
32*3c7ae9deSAndroid Build Coastguard Worker 
33*3c7ae9deSAndroid Build Coastguard Worker int s_set_jni_bool_field_in_packet(
34*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
35*3c7ae9deSAndroid Build Coastguard Worker     const bool *native_boolean,
36*3c7ae9deSAndroid Build Coastguard Worker     jobject packet,
37*3c7ae9deSAndroid Build Coastguard Worker     jfieldID field_id,
38*3c7ae9deSAndroid Build Coastguard Worker     char *field_name,
39*3c7ae9deSAndroid Build Coastguard Worker     bool optional);
40*3c7ae9deSAndroid Build Coastguard Worker 
41*3c7ae9deSAndroid Build Coastguard Worker int s_set_jni_string_field_in_packet(
42*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
43*3c7ae9deSAndroid Build Coastguard Worker     const struct aws_byte_cursor *native_cursor,
44*3c7ae9deSAndroid Build Coastguard Worker     jobject packet,
45*3c7ae9deSAndroid Build Coastguard Worker     jfieldID field_id,
46*3c7ae9deSAndroid Build Coastguard Worker     char *field_name,
47*3c7ae9deSAndroid Build Coastguard Worker     bool optional);
48*3c7ae9deSAndroid Build Coastguard Worker 
49*3c7ae9deSAndroid Build Coastguard Worker int s_set_jni_byte_array_field_in_packet(
50*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
51*3c7ae9deSAndroid Build Coastguard Worker     const struct aws_byte_cursor *native_cursor,
52*3c7ae9deSAndroid Build Coastguard Worker     jobject packet,
53*3c7ae9deSAndroid Build Coastguard Worker     jfieldID field_id,
54*3c7ae9deSAndroid Build Coastguard Worker     char *field_name,
55*3c7ae9deSAndroid Build Coastguard Worker     bool optional);
56*3c7ae9deSAndroid Build Coastguard Worker 
57*3c7ae9deSAndroid Build Coastguard Worker int s_set_user_properties_field(
58*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
59*3c7ae9deSAndroid Build Coastguard Worker     const size_t user_property_count,
60*3c7ae9deSAndroid Build Coastguard Worker     const struct aws_mqtt5_user_property *packet_properties,
61*3c7ae9deSAndroid Build Coastguard Worker     jobject packet,
62*3c7ae9deSAndroid Build Coastguard Worker     jfieldID user_property_field_id);
63*3c7ae9deSAndroid Build Coastguard Worker 
64*3c7ae9deSAndroid Build Coastguard Worker int s_set_int_enum_in_packet(
65*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
66*3c7ae9deSAndroid Build Coastguard Worker     const int *int_enum,
67*3c7ae9deSAndroid Build Coastguard Worker     jobject packet,
68*3c7ae9deSAndroid Build Coastguard Worker     jmethodID set_enum_field_id,
69*3c7ae9deSAndroid Build Coastguard Worker     bool optional);
70*3c7ae9deSAndroid Build Coastguard Worker 
71*3c7ae9deSAndroid Build Coastguard Worker jobject s_aws_mqtt5_client_create_jni_connack_packet_from_native(
72*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
73*3c7ae9deSAndroid Build Coastguard Worker     const struct aws_mqtt5_packet_connack_view *native_connack_data);
74*3c7ae9deSAndroid Build Coastguard Worker 
75*3c7ae9deSAndroid Build Coastguard Worker jobject s_aws_mqtt5_client_create_jni_disconnect_packet_from_native(
76*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
77*3c7ae9deSAndroid Build Coastguard Worker     const struct aws_mqtt5_packet_disconnect_view *native_disconnect_data);
78*3c7ae9deSAndroid Build Coastguard Worker 
79*3c7ae9deSAndroid Build Coastguard Worker jobject s_aws_mqtt5_client_create_jni_negotiated_settings_from_native(
80*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
81*3c7ae9deSAndroid Build Coastguard Worker     const struct aws_mqtt5_negotiated_settings *native_negotiated_settings_data);
82*3c7ae9deSAndroid Build Coastguard Worker 
83*3c7ae9deSAndroid Build Coastguard Worker jobject s_aws_mqtt5_client_create_jni_publish_packet_from_native(
84*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
85*3c7ae9deSAndroid Build Coastguard Worker     const struct aws_mqtt5_packet_publish_view *publish);
86*3c7ae9deSAndroid Build Coastguard Worker 
87*3c7ae9deSAndroid Build Coastguard Worker jobject s_aws_mqtt5_client_create_jni_puback_packet_from_native(
88*3c7ae9deSAndroid Build Coastguard Worker     JNIEnv *env,
89*3c7ae9deSAndroid Build Coastguard Worker     struct aws_mqtt5_packet_puback_view *puback_packet);
90*3c7ae9deSAndroid Build Coastguard Worker 
91*3c7ae9deSAndroid Build Coastguard Worker #endif /* AWS_JNI_MQTT5_UTILS_H */
92