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_PACKETS_H 6*3c7ae9deSAndroid Build Coastguard Worker #define AWS_JNI_PACKETS_H 7*3c7ae9deSAndroid Build Coastguard Worker 8*3c7ae9deSAndroid Build Coastguard Worker #include <jni.h> 9*3c7ae9deSAndroid Build Coastguard Worker 10*3c7ae9deSAndroid Build Coastguard Worker #include <aws/mqtt/v5/mqtt5_client.h> 11*3c7ae9deSAndroid Build Coastguard Worker #include <crt.h> 12*3c7ae9deSAndroid Build Coastguard Worker 13*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_connect_view_java_jni; 14*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_disconnect_view_java_jni; 15*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_publish_view_java_jni; 16*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_subscribe_view_java_jni; 17*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_unsubscribe_view_java_jni; 18*3c7ae9deSAndroid Build Coastguard Worker 19*3c7ae9deSAndroid Build Coastguard Worker int aws_get_uint16_from_jobject( 20*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 21*3c7ae9deSAndroid Build Coastguard Worker jobject packet, 22*3c7ae9deSAndroid Build Coastguard Worker jfieldID packet_field, 23*3c7ae9deSAndroid Build Coastguard Worker char *packet_name, 24*3c7ae9deSAndroid Build Coastguard Worker char *field_name, 25*3c7ae9deSAndroid Build Coastguard Worker uint16_t *result, 26*3c7ae9deSAndroid Build Coastguard Worker bool optional, 27*3c7ae9deSAndroid Build Coastguard Worker bool *was_value_set); 28*3c7ae9deSAndroid Build Coastguard Worker 29*3c7ae9deSAndroid Build Coastguard Worker int aws_get_uint32_from_jobject( 30*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 31*3c7ae9deSAndroid Build Coastguard Worker jobject packet, 32*3c7ae9deSAndroid Build Coastguard Worker jfieldID packet_field, 33*3c7ae9deSAndroid Build Coastguard Worker char *packet_name, 34*3c7ae9deSAndroid Build Coastguard Worker char *field_name, 35*3c7ae9deSAndroid Build Coastguard Worker uint32_t *result, 36*3c7ae9deSAndroid Build Coastguard Worker bool optional, 37*3c7ae9deSAndroid Build Coastguard Worker bool *was_value_set); 38*3c7ae9deSAndroid Build Coastguard Worker 39*3c7ae9deSAndroid Build Coastguard Worker int aws_get_uint64_from_jobject( 40*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 41*3c7ae9deSAndroid Build Coastguard Worker jobject packet, 42*3c7ae9deSAndroid Build Coastguard Worker jfieldID packet_field, 43*3c7ae9deSAndroid Build Coastguard Worker char *packet_name, 44*3c7ae9deSAndroid Build Coastguard Worker char *field_name, 45*3c7ae9deSAndroid Build Coastguard Worker uint64_t *result, 46*3c7ae9deSAndroid Build Coastguard Worker bool optional, 47*3c7ae9deSAndroid Build Coastguard Worker bool *was_value_set); 48*3c7ae9deSAndroid Build Coastguard Worker 49*3c7ae9deSAndroid Build Coastguard Worker int aws_get_string_from_jobject( 50*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 51*3c7ae9deSAndroid Build Coastguard Worker jobject packet, 52*3c7ae9deSAndroid Build Coastguard Worker jfieldID packet_field, 53*3c7ae9deSAndroid Build Coastguard Worker char *packet_name, 54*3c7ae9deSAndroid Build Coastguard Worker char *field_name, 55*3c7ae9deSAndroid Build Coastguard Worker struct aws_byte_buf *result_buf, 56*3c7ae9deSAndroid Build Coastguard Worker struct aws_byte_cursor *result_cursor, 57*3c7ae9deSAndroid Build Coastguard Worker bool is_optional, 58*3c7ae9deSAndroid Build Coastguard Worker bool *was_value_set); 59*3c7ae9deSAndroid Build Coastguard Worker 60*3c7ae9deSAndroid Build Coastguard Worker int aws_get_byte_array_from_jobject( 61*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 62*3c7ae9deSAndroid Build Coastguard Worker jobject packet, 63*3c7ae9deSAndroid Build Coastguard Worker jfieldID packet_field, 64*3c7ae9deSAndroid Build Coastguard Worker char *packet_name, 65*3c7ae9deSAndroid Build Coastguard Worker char *field_name, 66*3c7ae9deSAndroid Build Coastguard Worker struct aws_byte_buf *result_buf, 67*3c7ae9deSAndroid Build Coastguard Worker struct aws_byte_cursor *result_cursor, 68*3c7ae9deSAndroid Build Coastguard Worker bool optional, 69*3c7ae9deSAndroid Build Coastguard Worker bool *was_value_set); 70*3c7ae9deSAndroid Build Coastguard Worker 71*3c7ae9deSAndroid Build Coastguard Worker int aws_get_boolean_from_jobject( 72*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 73*3c7ae9deSAndroid Build Coastguard Worker jobject packet, 74*3c7ae9deSAndroid Build Coastguard Worker jfieldID packet_field, 75*3c7ae9deSAndroid Build Coastguard Worker char *packet_name, 76*3c7ae9deSAndroid Build Coastguard Worker char *field_name, 77*3c7ae9deSAndroid Build Coastguard Worker uint8_t *result_boolean_int, 78*3c7ae9deSAndroid Build Coastguard Worker bool optional, 79*3c7ae9deSAndroid Build Coastguard Worker bool *was_value_set); 80*3c7ae9deSAndroid Build Coastguard Worker 81*3c7ae9deSAndroid Build Coastguard Worker int aws_get_enum_from_jobject( 82*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 83*3c7ae9deSAndroid Build Coastguard Worker jobject packet, 84*3c7ae9deSAndroid Build Coastguard Worker jmethodID packet_enum_field, 85*3c7ae9deSAndroid Build Coastguard Worker char *packet_name, 86*3c7ae9deSAndroid Build Coastguard Worker char *enum_name, 87*3c7ae9deSAndroid Build Coastguard Worker jmethodID enum_value_vield, 88*3c7ae9deSAndroid Build Coastguard Worker uint32_t *enum_value_destination, 89*3c7ae9deSAndroid Build Coastguard Worker bool optional, 90*3c7ae9deSAndroid Build Coastguard Worker bool *was_value_set); 91*3c7ae9deSAndroid Build Coastguard Worker 92*3c7ae9deSAndroid Build Coastguard Worker void aws_mqtt5_packet_connect_view_java_destroy( 93*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 94*3c7ae9deSAndroid Build Coastguard Worker struct aws_allocator *allocator, 95*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_connect_view_java_jni *java_packet); 96*3c7ae9deSAndroid Build Coastguard Worker 97*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_connect_view_java_jni *aws_mqtt5_packet_connect_view_create_from_java( 98*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 99*3c7ae9deSAndroid Build Coastguard Worker struct aws_allocator *allocator, 100*3c7ae9deSAndroid Build Coastguard Worker jobject java_connect_packet); 101*3c7ae9deSAndroid Build Coastguard Worker 102*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_connect_view *aws_mqtt5_packet_connect_view_get_packet( 103*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_connect_view_java_jni *java_packet); 104*3c7ae9deSAndroid Build Coastguard Worker 105*3c7ae9deSAndroid Build Coastguard Worker void aws_mqtt5_packet_disconnect_view_java_destroy( 106*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 107*3c7ae9deSAndroid Build Coastguard Worker struct aws_allocator *allocator, 108*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_disconnect_view_java_jni *java_packet); 109*3c7ae9deSAndroid Build Coastguard Worker 110*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_disconnect_view_java_jni *aws_mqtt5_packet_disconnect_view_create_from_java( 111*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 112*3c7ae9deSAndroid Build Coastguard Worker struct aws_allocator *allocator, 113*3c7ae9deSAndroid Build Coastguard Worker jobject java_disconnect_packet); 114*3c7ae9deSAndroid Build Coastguard Worker 115*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_disconnect_view *aws_mqtt5_packet_disconnect_view_get_packet( 116*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_disconnect_view_java_jni *java_packet); 117*3c7ae9deSAndroid Build Coastguard Worker 118*3c7ae9deSAndroid Build Coastguard Worker void aws_mqtt5_packet_publish_view_java_destroy( 119*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 120*3c7ae9deSAndroid Build Coastguard Worker struct aws_allocator *allocator, 121*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_publish_view_java_jni *java_packet); 122*3c7ae9deSAndroid Build Coastguard Worker 123*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_publish_view_java_jni *aws_mqtt5_packet_publish_view_create_from_java( 124*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 125*3c7ae9deSAndroid Build Coastguard Worker struct aws_allocator *allocator, 126*3c7ae9deSAndroid Build Coastguard Worker jobject java_publish_packet); 127*3c7ae9deSAndroid Build Coastguard Worker 128*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_publish_view *aws_mqtt5_packet_publish_view_get_packet( 129*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_publish_view_java_jni *java_packet); 130*3c7ae9deSAndroid Build Coastguard Worker 131*3c7ae9deSAndroid Build Coastguard Worker void aws_mqtt5_packet_subscribe_view_java_destroy( 132*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 133*3c7ae9deSAndroid Build Coastguard Worker struct aws_allocator *allocator, 134*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_subscribe_view_java_jni *java_packet); 135*3c7ae9deSAndroid Build Coastguard Worker 136*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_subscribe_view_java_jni *aws_mqtt5_packet_subscribe_view_create_from_java( 137*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 138*3c7ae9deSAndroid Build Coastguard Worker struct aws_allocator *allocator, 139*3c7ae9deSAndroid Build Coastguard Worker jobject java_subscribe_packet); 140*3c7ae9deSAndroid Build Coastguard Worker 141*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_subscribe_view *aws_mqtt5_packet_subscribe_view_get_packet( 142*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_subscribe_view_java_jni *java_packet); 143*3c7ae9deSAndroid Build Coastguard Worker 144*3c7ae9deSAndroid Build Coastguard Worker void aws_mqtt5_packet_unsubscribe_view_java_destroy( 145*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 146*3c7ae9deSAndroid Build Coastguard Worker struct aws_allocator *allocator, 147*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_unsubscribe_view_java_jni *java_packet); 148*3c7ae9deSAndroid Build Coastguard Worker 149*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_unsubscribe_view_java_jni *aws_mqtt5_packet_unsubscribe_view_create_from_java( 150*3c7ae9deSAndroid Build Coastguard Worker JNIEnv *env, 151*3c7ae9deSAndroid Build Coastguard Worker struct aws_allocator *allocator, 152*3c7ae9deSAndroid Build Coastguard Worker jobject java_unsubscribe_packet); 153*3c7ae9deSAndroid Build Coastguard Worker 154*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_unsubscribe_view *aws_mqtt5_packet_unsubscribe_view_get_packet( 155*3c7ae9deSAndroid Build Coastguard Worker struct aws_mqtt5_packet_unsubscribe_view_java_jni *java_packet); 156*3c7ae9deSAndroid Build Coastguard Worker 157*3c7ae9deSAndroid Build Coastguard Worker #endif /* AWS_JNI_PACKETS_H */ 158