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