xref: /aosp_15_r20/external/aws-crt-java/src/native/mqtt5_packets.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_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