1 /**
2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 * SPDX-License-Identifier: Apache-2.0.
4 */
5
6 #include "java_class_ids.h"
7
8 #include <aws/common/assert.h>
9 #include <aws/common/thread.h>
10
11 struct java_http_request_body_stream_properties http_request_body_stream_properties;
12
s_cache_http_request_body_stream(JNIEnv * env)13 static void s_cache_http_request_body_stream(JNIEnv *env) {
14 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/HttpRequestBodyStream");
15 AWS_FATAL_ASSERT(cls);
16
17 http_request_body_stream_properties.send_outgoing_body =
18 (*env)->GetMethodID(env, cls, "sendRequestBody", "(Ljava/nio/ByteBuffer;)Z");
19 AWS_FATAL_ASSERT(http_request_body_stream_properties.send_outgoing_body);
20
21 http_request_body_stream_properties.reset_position = (*env)->GetMethodID(env, cls, "resetPosition", "()Z");
22 AWS_FATAL_ASSERT(http_request_body_stream_properties.reset_position);
23
24 http_request_body_stream_properties.get_length = (*env)->GetMethodID(env, cls, "getLength", "()J");
25 AWS_FATAL_ASSERT(http_request_body_stream_properties.get_length);
26 }
27
28 struct java_aws_signing_config_properties aws_signing_config_properties;
29
s_cache_aws_signing_config(JNIEnv * env)30 static void s_cache_aws_signing_config(JNIEnv *env) {
31 jclass aws_signing_config_class =
32 (*env)->FindClass(env, "software/amazon/awssdk/crt/auth/signing/AwsSigningConfig");
33 AWS_FATAL_ASSERT(aws_signing_config_class);
34 aws_signing_config_properties.aws_signing_config_class = (*env)->NewGlobalRef(env, aws_signing_config_class);
35
36 aws_signing_config_properties.algorithm_field_id =
37 (*env)->GetFieldID(env, aws_signing_config_class, "algorithm", "I");
38 AWS_FATAL_ASSERT(aws_signing_config_properties.algorithm_field_id);
39
40 aws_signing_config_properties.signature_type_field_id =
41 (*env)->GetFieldID(env, aws_signing_config_class, "signatureType", "I");
42 AWS_FATAL_ASSERT(aws_signing_config_properties.signature_type_field_id);
43
44 aws_signing_config_properties.region_field_id =
45 (*env)->GetFieldID(env, aws_signing_config_class, "region", "Ljava/lang/String;");
46 AWS_FATAL_ASSERT(aws_signing_config_properties.region_field_id);
47
48 aws_signing_config_properties.service_field_id =
49 (*env)->GetFieldID(env, aws_signing_config_class, "service", "Ljava/lang/String;");
50 AWS_FATAL_ASSERT(aws_signing_config_properties.service_field_id);
51
52 aws_signing_config_properties.time_field_id = (*env)->GetFieldID(env, aws_signing_config_class, "time", "J");
53 AWS_FATAL_ASSERT(aws_signing_config_properties.time_field_id);
54
55 aws_signing_config_properties.credentials_provider_field_id = (*env)->GetFieldID(
56 env,
57 aws_signing_config_class,
58 "credentialsProvider",
59 "Lsoftware/amazon/awssdk/crt/auth/credentials/CredentialsProvider;");
60 AWS_FATAL_ASSERT(aws_signing_config_properties.credentials_provider_field_id);
61
62 aws_signing_config_properties.credentials_field_id = (*env)->GetFieldID(
63 env, aws_signing_config_class, "credentials", "Lsoftware/amazon/awssdk/crt/auth/credentials/Credentials;");
64 AWS_FATAL_ASSERT(aws_signing_config_properties.credentials_field_id);
65
66 aws_signing_config_properties.should_sign_header_field_id =
67 (*env)->GetFieldID(env, aws_signing_config_class, "shouldSignHeader", "Ljava/util/function/Predicate;");
68 AWS_FATAL_ASSERT(aws_signing_config_properties.should_sign_header_field_id);
69
70 aws_signing_config_properties.use_double_uri_encode_field_id =
71 (*env)->GetFieldID(env, aws_signing_config_class, "useDoubleUriEncode", "Z");
72 AWS_FATAL_ASSERT(aws_signing_config_properties.use_double_uri_encode_field_id);
73
74 aws_signing_config_properties.should_normalize_uri_path_field_id =
75 (*env)->GetFieldID(env, aws_signing_config_class, "shouldNormalizeUriPath", "Z");
76 AWS_FATAL_ASSERT(aws_signing_config_properties.should_normalize_uri_path_field_id);
77
78 aws_signing_config_properties.omit_session_token_field_id =
79 (*env)->GetFieldID(env, aws_signing_config_class, "omitSessionToken", "Z");
80 AWS_FATAL_ASSERT(aws_signing_config_properties.omit_session_token_field_id);
81
82 aws_signing_config_properties.signed_body_value_field_id =
83 (*env)->GetFieldID(env, aws_signing_config_class, "signedBodyValue", "Ljava/lang/String;");
84 AWS_FATAL_ASSERT(aws_signing_config_properties.signed_body_value_field_id);
85
86 aws_signing_config_properties.signed_body_header_field_id =
87 (*env)->GetFieldID(env, aws_signing_config_class, "signedBodyHeader", "I");
88 AWS_FATAL_ASSERT(aws_signing_config_properties.signed_body_header_field_id);
89
90 aws_signing_config_properties.expiration_in_seconds_field_id =
91 (*env)->GetFieldID(env, aws_signing_config_class, "expirationInSeconds", "J");
92 AWS_FATAL_ASSERT(aws_signing_config_properties.expiration_in_seconds_field_id);
93 }
94
95 struct java_predicate_properties predicate_properties;
96
s_cache_predicate(JNIEnv * env)97 static void s_cache_predicate(JNIEnv *env) {
98 jclass predicate_class = (*env)->FindClass(env, "java/util/function/Predicate");
99 AWS_FATAL_ASSERT(predicate_class);
100 predicate_properties.predicate_class = (*env)->NewGlobalRef(env, predicate_class);
101
102 predicate_properties.test_method_id = (*env)->GetMethodID(env, predicate_class, "test", "(Ljava/lang/Object;)Z");
103 AWS_FATAL_ASSERT(predicate_properties.test_method_id);
104 }
105
106 struct java_boxed_long_properties boxed_long_properties;
107
s_cache_boxed_long(JNIEnv * env)108 static void s_cache_boxed_long(JNIEnv *env) {
109 jclass boxed_long_class = (*env)->FindClass(env, "java/lang/Long");
110 AWS_FATAL_ASSERT(boxed_long_class);
111 boxed_long_properties.long_class = (*env)->NewGlobalRef(env, boxed_long_class);
112
113 boxed_long_properties.constructor = (*env)->GetMethodID(env, boxed_long_class, "<init>", "(J)V");
114 AWS_FATAL_ASSERT(boxed_long_properties.constructor);
115
116 boxed_long_properties.long_value_method_id = (*env)->GetMethodID(env, boxed_long_class, "longValue", "()J");
117 AWS_FATAL_ASSERT(boxed_long_properties.long_value_method_id);
118 }
119
120 struct java_http_request_properties http_request_properties;
121
s_cache_http_request(JNIEnv * env)122 static void s_cache_http_request(JNIEnv *env) {
123 jclass http_request_class = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/HttpRequest");
124 AWS_FATAL_ASSERT(http_request_class);
125 http_request_properties.http_request_class = (*env)->NewGlobalRef(env, http_request_class);
126
127 http_request_properties.constructor_method_id = (*env)->GetMethodID(
128 env,
129 http_request_class,
130 "<init>",
131 "(Ljava/nio/ByteBuffer;Lsoftware/amazon/awssdk/crt/http/HttpRequestBodyStream;)V");
132 AWS_FATAL_ASSERT(http_request_properties.constructor_method_id);
133
134 http_request_properties.body_stream_field_id = (*env)->GetFieldID(
135 env, http_request_class, "bodyStream", "Lsoftware/amazon/awssdk/crt/http/HttpRequestBodyStream;");
136 AWS_FATAL_ASSERT(http_request_properties.body_stream_field_id);
137 }
138
139 struct java_crt_resource_properties crt_resource_properties;
140
s_cache_crt_resource(JNIEnv * env)141 static void s_cache_crt_resource(JNIEnv *env) {
142 jclass crt_resource_class = (*env)->FindClass(env, "software/amazon/awssdk/crt/CrtResource");
143 AWS_FATAL_ASSERT(crt_resource_class);
144
145 crt_resource_properties.get_native_handle_method_id =
146 (*env)->GetMethodID(env, crt_resource_class, "getNativeHandle", "()J");
147 AWS_FATAL_ASSERT(crt_resource_properties.get_native_handle_method_id);
148
149 crt_resource_properties.release_references =
150 (*env)->GetMethodID(env, crt_resource_class, "releaseReferences", "()V");
151 AWS_FATAL_ASSERT(crt_resource_properties.release_references);
152
153 crt_resource_properties.add_ref = (*env)->GetMethodID(env, crt_resource_class, "addRef", "()V");
154 AWS_FATAL_ASSERT(crt_resource_properties.add_ref);
155
156 crt_resource_properties.close = (*env)->GetMethodID(env, crt_resource_class, "close", "()V");
157 AWS_FATAL_ASSERT(crt_resource_properties.close);
158 }
159
160 struct java_mqtt_connection_properties mqtt_connection_properties;
161
s_cache_mqtt_connection(JNIEnv * env)162 static void s_cache_mqtt_connection(JNIEnv *env) {
163 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt/MqttClientConnection");
164 AWS_FATAL_ASSERT(cls);
165
166 mqtt_connection_properties.on_connection_complete = (*env)->GetMethodID(env, cls, "onConnectionComplete", "(IZ)V");
167 AWS_FATAL_ASSERT(mqtt_connection_properties.on_connection_complete);
168
169 mqtt_connection_properties.on_connection_interrupted =
170 (*env)->GetMethodID(env, cls, "onConnectionInterrupted", "(ILsoftware/amazon/awssdk/crt/AsyncCallback;)V");
171 AWS_FATAL_ASSERT(mqtt_connection_properties.on_connection_interrupted);
172
173 mqtt_connection_properties.on_connection_resumed = (*env)->GetMethodID(env, cls, "onConnectionResumed", "(Z)V");
174 AWS_FATAL_ASSERT(mqtt_connection_properties.on_connection_resumed);
175
176 mqtt_connection_properties.on_connection_closed = (*env)->GetMethodID(env, cls, "onConnectionClosed", "()V");
177 AWS_FATAL_ASSERT(mqtt_connection_properties.on_connection_closed);
178
179 mqtt_connection_properties.on_websocket_handshake =
180 (*env)->GetMethodID(env, cls, "onWebsocketHandshake", "(Lsoftware/amazon/awssdk/crt/http/HttpRequest;J)V");
181 AWS_FATAL_ASSERT(mqtt_connection_properties.on_websocket_handshake);
182
183 mqtt_connection_properties.on_connection_success = (*env)->GetMethodID(env, cls, "onConnectionSuccess", "(Z)V");
184 AWS_FATAL_ASSERT(mqtt_connection_properties.on_connection_success);
185
186 mqtt_connection_properties.on_connection_failure = (*env)->GetMethodID(env, cls, "onConnectionFailure", "(I)V");
187 AWS_FATAL_ASSERT(mqtt_connection_properties.on_connection_failure);
188 }
189
190 struct java_message_handler_properties message_handler_properties;
191
s_cache_message_handler(JNIEnv * env)192 static void s_cache_message_handler(JNIEnv *env) {
193 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt/MqttClientConnection$MessageHandler");
194 AWS_FATAL_ASSERT(cls);
195
196 message_handler_properties.deliver = (*env)->GetMethodID(env, cls, "deliver", "(Ljava/lang/String;[BZIZ)V");
197 AWS_FATAL_ASSERT(message_handler_properties.deliver);
198 }
199
200 struct java_mqtt_exception_properties mqtt_exception_properties;
201
s_cache_mqtt_exception(JNIEnv * env)202 static void s_cache_mqtt_exception(JNIEnv *env) {
203 mqtt_exception_properties.jni_mqtt_exception =
204 (*env)->NewGlobalRef(env, (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt/MqttException"));
205 AWS_FATAL_ASSERT(mqtt_exception_properties.jni_mqtt_exception);
206
207 mqtt_exception_properties.jni_constructor =
208 (*env)->GetMethodID(env, mqtt_exception_properties.jni_mqtt_exception, "<init>", "(I)V");
209 AWS_FATAL_ASSERT(mqtt_exception_properties.jni_constructor);
210 }
211
212 struct java_mqtt_connection_operation_statistics_properties mqtt_connection_operation_statistics_properties;
213
s_cache_mqtt_client_connection_operation_statistics(JNIEnv * env)214 static void s_cache_mqtt_client_connection_operation_statistics(JNIEnv *env) {
215 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt/MqttClientConnectionOperationStatistics");
216 AWS_FATAL_ASSERT(cls);
217 mqtt_connection_operation_statistics_properties.statistics_class = (*env)->NewGlobalRef(env, cls);
218 AWS_FATAL_ASSERT(mqtt_connection_operation_statistics_properties.statistics_class);
219 // Functions
220 mqtt_connection_operation_statistics_properties.statistics_constructor_id =
221 (*env)->GetMethodID(env, mqtt_connection_operation_statistics_properties.statistics_class, "<init>", "()V");
222 AWS_FATAL_ASSERT(mqtt_connection_operation_statistics_properties.statistics_constructor_id);
223 // Field IDs
224 mqtt_connection_operation_statistics_properties.incomplete_operation_count_field_id = (*env)->GetFieldID(
225 env, mqtt_connection_operation_statistics_properties.statistics_class, "incompleteOperationCount", "J");
226 AWS_FATAL_ASSERT(mqtt_connection_operation_statistics_properties.incomplete_operation_count_field_id);
227 mqtt_connection_operation_statistics_properties.incomplete_operation_size_field_id = (*env)->GetFieldID(
228 env, mqtt_connection_operation_statistics_properties.statistics_class, "incompleteOperationSize", "J");
229 AWS_FATAL_ASSERT(mqtt_connection_operation_statistics_properties.incomplete_operation_size_field_id);
230 mqtt_connection_operation_statistics_properties.unacked_operation_count_field_id = (*env)->GetFieldID(
231 env, mqtt_connection_operation_statistics_properties.statistics_class, "unackedOperationCount", "J");
232 AWS_FATAL_ASSERT(mqtt_connection_operation_statistics_properties.unacked_operation_count_field_id);
233 mqtt_connection_operation_statistics_properties.unacked_operation_size_field_id = (*env)->GetFieldID(
234 env, mqtt_connection_operation_statistics_properties.statistics_class, "unackedOperationSize", "J");
235 AWS_FATAL_ASSERT(mqtt_connection_operation_statistics_properties.unacked_operation_size_field_id);
236 }
237
238 struct java_byte_buffer_properties byte_buffer_properties;
239
s_cache_byte_buffer(JNIEnv * env)240 static void s_cache_byte_buffer(JNIEnv *env) {
241 jclass cls = (*env)->FindClass(env, "java/nio/ByteBuffer");
242 AWS_FATAL_ASSERT(cls);
243
244 // FindClass() returns local JNI references that become eligible for GC once this native method returns to Java.
245 // Call NewGlobalRef() so that this class reference doesn't get Garbage collected.
246 byte_buffer_properties.cls = (*env)->NewGlobalRef(env, cls);
247
248 byte_buffer_properties.get_capacity = (*env)->GetMethodID(env, cls, "capacity", "()I");
249 AWS_FATAL_ASSERT(byte_buffer_properties.get_capacity);
250
251 byte_buffer_properties.get_limit = (*env)->GetMethodID(env, cls, "limit", "()I");
252 AWS_FATAL_ASSERT(byte_buffer_properties.get_limit);
253
254 byte_buffer_properties.set_limit = (*env)->GetMethodID(env, cls, "limit", "(I)Ljava/nio/Buffer;");
255 AWS_FATAL_ASSERT(byte_buffer_properties.set_limit);
256
257 byte_buffer_properties.get_position = (*env)->GetMethodID(env, cls, "position", "()I");
258 AWS_FATAL_ASSERT(byte_buffer_properties.get_position);
259
260 byte_buffer_properties.set_position = (*env)->GetMethodID(env, cls, "position", "(I)Ljava/nio/Buffer;");
261 AWS_FATAL_ASSERT(byte_buffer_properties.set_position);
262
263 byte_buffer_properties.get_remaining = (*env)->GetMethodID(env, cls, "remaining", "()I");
264 AWS_FATAL_ASSERT(byte_buffer_properties.get_remaining);
265
266 byte_buffer_properties.wrap = (*env)->GetStaticMethodID(env, cls, "wrap", "([B)Ljava/nio/ByteBuffer;");
267 AWS_FATAL_ASSERT(byte_buffer_properties.wrap);
268 }
269
270 struct java_credentials_provider_properties credentials_provider_properties;
271
s_cache_credentials_provider(JNIEnv * env)272 static void s_cache_credentials_provider(JNIEnv *env) {
273 jclass provider_class = (*env)->FindClass(env, "software/amazon/awssdk/crt/auth/credentials/CredentialsProvider");
274 AWS_FATAL_ASSERT(provider_class);
275
276 credentials_provider_properties.on_shutdown_complete_method_id =
277 (*env)->GetMethodID(env, provider_class, "onShutdownComplete", "()V");
278 AWS_FATAL_ASSERT(credentials_provider_properties.on_shutdown_complete_method_id);
279
280 credentials_provider_properties.on_get_credentials_complete_method_id = (*env)->GetMethodID(
281 env,
282 provider_class,
283 "onGetCredentialsComplete",
284 "(Ljava/util/concurrent/CompletableFuture;Lsoftware/amazon/awssdk/crt/auth/credentials/Credentials;)V");
285 AWS_FATAL_ASSERT(credentials_provider_properties.on_get_credentials_complete_method_id);
286 }
287
288 struct java_credentials_properties credentials_properties;
289
s_cache_credentials(JNIEnv * env)290 static void s_cache_credentials(JNIEnv *env) {
291 credentials_properties.credentials_class =
292 (*env)->FindClass(env, "software/amazon/awssdk/crt/auth/credentials/Credentials");
293 AWS_FATAL_ASSERT(credentials_properties.credentials_class);
294 credentials_properties.credentials_class = (*env)->NewGlobalRef(env, credentials_properties.credentials_class);
295
296 credentials_properties.constructor_method_id =
297 (*env)->GetMethodID(env, credentials_properties.credentials_class, "<init>", "()V");
298 AWS_FATAL_ASSERT(credentials_properties.constructor_method_id);
299
300 credentials_properties.access_key_id_field_id =
301 (*env)->GetFieldID(env, credentials_properties.credentials_class, "accessKeyId", "[B");
302 AWS_FATAL_ASSERT(credentials_properties.access_key_id_field_id);
303
304 credentials_properties.secret_access_key_field_id =
305 (*env)->GetFieldID(env, credentials_properties.credentials_class, "secretAccessKey", "[B");
306 AWS_FATAL_ASSERT(credentials_properties.secret_access_key_field_id);
307
308 credentials_properties.session_token_field_id =
309 (*env)->GetFieldID(env, credentials_properties.credentials_class, "sessionToken", "[B");
310 AWS_FATAL_ASSERT(credentials_properties.session_token_field_id);
311
312 credentials_properties.expiration_field_id =
313 (*env)->GetFieldID(env, credentials_properties.credentials_class, "expirationTimePointSecs", "J");
314 AWS_FATAL_ASSERT(credentials_properties.expiration_field_id);
315 }
316
317 struct java_credentials_handler_properties credentials_handler_properties;
318
s_cache_credentials_handler(JNIEnv * env)319 static void s_cache_credentials_handler(JNIEnv *env) {
320 jclass handler_cls =
321 (*env)->FindClass(env, "software/amazon/awssdk/crt/auth/credentials/DelegateCredentialsHandler");
322 AWS_FATAL_ASSERT(handler_cls);
323
324 credentials_handler_properties.on_handler_get_credentials_method_id = (*env)->GetMethodID(
325 env, handler_cls, "getCredentials", "()Lsoftware/amazon/awssdk/crt/auth/credentials/Credentials;");
326 AWS_FATAL_ASSERT(credentials_handler_properties.on_handler_get_credentials_method_id);
327 }
328
329 struct java_async_callback_properties async_callback_properties;
330
s_cache_async_callback(JNIEnv * env)331 static void s_cache_async_callback(JNIEnv *env) {
332 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/AsyncCallback");
333 AWS_FATAL_ASSERT(cls);
334
335 async_callback_properties.on_success_with_object =
336 (*env)->GetMethodID(env, cls, "onSuccess", "(Ljava/lang/Object;)V");
337 AWS_FATAL_ASSERT(async_callback_properties.on_success_with_object);
338
339 async_callback_properties.on_success = (*env)->GetMethodID(env, cls, "onSuccess", "()V");
340 AWS_FATAL_ASSERT(async_callback_properties.on_success);
341
342 async_callback_properties.on_failure = (*env)->GetMethodID(env, cls, "onFailure", "(Ljava/lang/Throwable;)V");
343 AWS_FATAL_ASSERT(async_callback_properties.on_failure);
344 }
345
346 struct java_event_loop_group_properties event_loop_group_properties;
347
s_cache_event_loop_group(JNIEnv * env)348 static void s_cache_event_loop_group(JNIEnv *env) {
349 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/io/EventLoopGroup");
350 AWS_FATAL_ASSERT(cls);
351
352 event_loop_group_properties.onCleanupComplete = (*env)->GetMethodID(env, cls, "onCleanupComplete", "()V");
353 AWS_FATAL_ASSERT(event_loop_group_properties.onCleanupComplete);
354 }
355
356 struct java_client_bootstrap_properties client_bootstrap_properties;
357
s_cache_client_bootstrap(JNIEnv * env)358 static void s_cache_client_bootstrap(JNIEnv *env) {
359 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/io/ClientBootstrap");
360 AWS_FATAL_ASSERT(cls);
361
362 client_bootstrap_properties.onShutdownComplete = (*env)->GetMethodID(env, cls, "onShutdownComplete", "()V");
363 AWS_FATAL_ASSERT(client_bootstrap_properties.onShutdownComplete);
364 }
365
366 struct java_tls_context_pkcs11_options_properties tls_context_pkcs11_options_properties;
367
s_cache_tls_context_pkcs11_options(JNIEnv * env)368 static void s_cache_tls_context_pkcs11_options(JNIEnv *env) {
369 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/io/TlsContextPkcs11Options");
370 AWS_FATAL_ASSERT(cls);
371
372 tls_context_pkcs11_options_properties.pkcs11Lib =
373 (*env)->GetFieldID(env, cls, "pkcs11Lib", "Lsoftware/amazon/awssdk/crt/io/Pkcs11Lib;");
374 AWS_FATAL_ASSERT(tls_context_pkcs11_options_properties.pkcs11Lib);
375
376 tls_context_pkcs11_options_properties.userPin = (*env)->GetFieldID(env, cls, "userPin", "Ljava/lang/String;");
377 AWS_FATAL_ASSERT(tls_context_pkcs11_options_properties.userPin);
378
379 tls_context_pkcs11_options_properties.slotId = (*env)->GetFieldID(env, cls, "slotId", "Ljava/lang/Long;");
380 AWS_FATAL_ASSERT(tls_context_pkcs11_options_properties.slotId);
381
382 tls_context_pkcs11_options_properties.tokenLabel = (*env)->GetFieldID(env, cls, "tokenLabel", "Ljava/lang/String;");
383 AWS_FATAL_ASSERT(tls_context_pkcs11_options_properties.tokenLabel);
384
385 tls_context_pkcs11_options_properties.privateKeyObjectLabel =
386 (*env)->GetFieldID(env, cls, "privateKeyObjectLabel", "Ljava/lang/String;");
387 AWS_FATAL_ASSERT(tls_context_pkcs11_options_properties.privateKeyObjectLabel);
388
389 tls_context_pkcs11_options_properties.certificateFilePath =
390 (*env)->GetFieldID(env, cls, "certificateFilePath", "Ljava/lang/String;");
391 AWS_FATAL_ASSERT(tls_context_pkcs11_options_properties.certificateFilePath);
392
393 tls_context_pkcs11_options_properties.certificateFileContents =
394 (*env)->GetFieldID(env, cls, "certificateFileContents", "Ljava/lang/String;");
395 AWS_FATAL_ASSERT(tls_context_pkcs11_options_properties.certificateFileContents);
396 }
397
398 struct java_tls_key_operation_properties tls_key_operation_properties;
399
s_cache_tls_key_operation(JNIEnv * env)400 static void s_cache_tls_key_operation(JNIEnv *env) {
401 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/io/TlsKeyOperation");
402 AWS_FATAL_ASSERT(cls);
403 tls_key_operation_properties.cls = (*env)->NewGlobalRef(env, cls);
404
405 tls_key_operation_properties.constructor = (*env)->GetMethodID(env, cls, "<init>", "(J[BIII)V");
406 AWS_FATAL_ASSERT(tls_key_operation_properties.constructor);
407
408 tls_key_operation_properties.invoke_operation_id = (*env)->GetStaticMethodID(
409 env,
410 cls,
411 "invokePerformOperation",
412 "(Lsoftware/amazon/awssdk/crt/io/TlsKeyOperationHandler;Lsoftware/amazon/awssdk/crt/io/TlsKeyOperation;)V");
413 AWS_FATAL_ASSERT(tls_key_operation_properties.invoke_operation_id);
414 }
415
416 struct java_tls_context_custom_key_operation_options_properties tls_context_custom_key_operation_options_properties;
417
s_cache_tls_context_custom_key_operation_options(JNIEnv * env)418 static void s_cache_tls_context_custom_key_operation_options(JNIEnv *env) {
419 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/io/TlsContextCustomKeyOperationOptions");
420 AWS_FATAL_ASSERT(cls);
421
422 tls_context_custom_key_operation_options_properties.operation_handler_field_id =
423 (*env)->GetFieldID(env, cls, "operationHandler", "Lsoftware/amazon/awssdk/crt/io/TlsKeyOperationHandler;");
424 AWS_FATAL_ASSERT(tls_context_custom_key_operation_options_properties.operation_handler_field_id);
425
426 tls_context_custom_key_operation_options_properties.certificate_file_path_field_id =
427 (*env)->GetFieldID(env, cls, "certificateFilePath", "Ljava/lang/String;");
428 AWS_FATAL_ASSERT(tls_context_custom_key_operation_options_properties.certificate_file_path_field_id);
429
430 tls_context_custom_key_operation_options_properties.certificate_file_contents_field_id =
431 (*env)->GetFieldID(env, cls, "certificateFileContents", "Ljava/lang/String;");
432 AWS_FATAL_ASSERT(tls_context_custom_key_operation_options_properties.certificate_file_contents_field_id);
433 }
434
435 struct java_tls_key_operation_handler_properties tls_key_operation_handler_properties;
436
s_cache_tls_key_operation_handler(JNIEnv * env)437 static void s_cache_tls_key_operation_handler(JNIEnv *env) {
438 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/io/TlsKeyOperationHandler");
439 AWS_FATAL_ASSERT(cls);
440
441 tls_key_operation_handler_properties.perform_operation_id =
442 (*env)->GetMethodID(env, cls, "performOperation", "(Lsoftware/amazon/awssdk/crt/io/TlsKeyOperation;)V");
443 AWS_FATAL_ASSERT(tls_key_operation_handler_properties.perform_operation_id);
444 }
445
446 struct java_http_client_connection_manager_properties http_client_connection_manager_properties;
447
s_cache_http_client_connection_manager(JNIEnv * env)448 static void s_cache_http_client_connection_manager(JNIEnv *env) {
449 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/HttpClientConnectionManager");
450 AWS_FATAL_ASSERT(cls);
451
452 http_client_connection_manager_properties.onShutdownComplete =
453 (*env)->GetMethodID(env, cls, "onShutdownComplete", "()V");
454 AWS_FATAL_ASSERT(http_client_connection_manager_properties.onShutdownComplete);
455 }
456
457 struct java_http2_stream_manager_properties http2_stream_manager_properties;
458
s_cache_http2_stream_manager(JNIEnv * env)459 static void s_cache_http2_stream_manager(JNIEnv *env) {
460 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/Http2StreamManager");
461 AWS_FATAL_ASSERT(cls);
462
463 http2_stream_manager_properties.onShutdownComplete = (*env)->GetMethodID(env, cls, "onShutdownComplete", "()V");
464 AWS_FATAL_ASSERT(http2_stream_manager_properties.onShutdownComplete);
465 }
466
467 struct java_http_client_connection_properties http_client_connection_properties;
468
s_cache_http_client_connection(JNIEnv * env)469 static void s_cache_http_client_connection(JNIEnv *env) {
470 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/HttpClientConnection");
471 AWS_FATAL_ASSERT(cls);
472 http_client_connection_properties.http_client_connection_class = (*env)->NewGlobalRef(env, cls);
473
474 http_client_connection_properties.on_connection_acquired_method_id =
475 (*env)->GetStaticMethodID(env, cls, "onConnectionAcquired", "(Ljava/util/concurrent/CompletableFuture;JI)V");
476 AWS_FATAL_ASSERT(http_client_connection_properties.on_connection_acquired_method_id);
477 }
478
479 struct java_http_stream_properties http_stream_properties;
480
s_cache_http_stream(JNIEnv * env)481 static void s_cache_http_stream(JNIEnv *env) {
482 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/HttpStream");
483 AWS_FATAL_ASSERT(cls);
484 http_stream_properties.stream_class = (*env)->NewGlobalRef(env, cls);
485
486 http_stream_properties.constructor = (*env)->GetMethodID(env, cls, "<init>", "(J)V");
487 AWS_FATAL_ASSERT(http_stream_properties.constructor);
488
489 http_stream_properties.close = (*env)->GetMethodID(env, cls, "close", "()V");
490 AWS_FATAL_ASSERT(http_stream_properties.close);
491 }
492
493 struct java_http2_stream_properties http2_stream_properties;
494
s_cache_http2_stream(JNIEnv * env)495 static void s_cache_http2_stream(JNIEnv *env) {
496 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/Http2Stream");
497 AWS_FATAL_ASSERT(cls);
498 http2_stream_properties.stream_class = (*env)->NewGlobalRef(env, cls);
499
500 http2_stream_properties.constructor = (*env)->GetMethodID(env, cls, "<init>", "(J)V");
501 AWS_FATAL_ASSERT(http2_stream_properties.constructor);
502 }
503
504 struct java_http_stream_response_handler_native_adapter_properties http_stream_response_handler_properties;
505
s_cache_http_stream_response_handler_native_adapter(JNIEnv * env)506 static void s_cache_http_stream_response_handler_native_adapter(JNIEnv *env) {
507 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/HttpStreamResponseHandlerNativeAdapter");
508 AWS_FATAL_ASSERT(cls);
509
510 http_stream_response_handler_properties.onResponseHeaders = (*env)->GetMethodID(
511 env, cls, "onResponseHeaders", "(Lsoftware/amazon/awssdk/crt/http/HttpStreamBase;IILjava/nio/ByteBuffer;)V");
512 AWS_FATAL_ASSERT(http_stream_response_handler_properties.onResponseHeaders);
513
514 http_stream_response_handler_properties.onResponseHeadersDone =
515 (*env)->GetMethodID(env, cls, "onResponseHeadersDone", "(Lsoftware/amazon/awssdk/crt/http/HttpStreamBase;I)V");
516 AWS_FATAL_ASSERT(http_stream_response_handler_properties.onResponseHeadersDone);
517
518 http_stream_response_handler_properties.onResponseBody = (*env)->GetMethodID(
519 env, cls, "onResponseBody", "(Lsoftware/amazon/awssdk/crt/http/HttpStreamBase;Ljava/nio/ByteBuffer;)I");
520 AWS_FATAL_ASSERT(http_stream_response_handler_properties.onResponseBody);
521
522 http_stream_response_handler_properties.onResponseComplete =
523 (*env)->GetMethodID(env, cls, "onResponseComplete", "(Lsoftware/amazon/awssdk/crt/http/HttpStreamBase;I)V");
524 AWS_FATAL_ASSERT(http_stream_response_handler_properties.onResponseComplete);
525
526 http_stream_response_handler_properties.onMetrics = (*env)->GetMethodID(
527 env,
528 cls,
529 "onMetrics",
530 "(Lsoftware/amazon/awssdk/crt/http/HttpStreamBase;Lsoftware/amazon/awssdk/crt/http/HttpStreamMetrics;)V");
531 AWS_FATAL_ASSERT(http_stream_response_handler_properties.onMetrics);
532 }
533
534 struct java_http_stream_write_chunk_completion_properties http_stream_write_chunk_completion_properties;
535
s_cache_http_stream_write_chunk_completion_properties(JNIEnv * env)536 static void s_cache_http_stream_write_chunk_completion_properties(JNIEnv *env) {
537 jclass cls =
538 (*env)->FindClass(env, "software/amazon/awssdk/crt/http/HttpStream$HttpStreamWriteChunkCompletionCallback");
539 AWS_FATAL_ASSERT(cls);
540
541 http_stream_write_chunk_completion_properties.callback = (*env)->GetMethodID(env, cls, "onChunkCompleted", "(I)V");
542 AWS_FATAL_ASSERT(http_stream_write_chunk_completion_properties.callback);
543 }
544
545 struct java_http_stream_metrics_properties http_stream_metrics_properties;
546
s_cache_http_stream_metrics_properties(JNIEnv * env)547 static void s_cache_http_stream_metrics_properties(JNIEnv *env) {
548 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/HttpStreamMetrics");
549 AWS_FATAL_ASSERT(cls);
550 http_stream_metrics_properties.http_stream_metrics_class = (*env)->NewGlobalRef(env, cls);
551
552 http_stream_metrics_properties.constructor_id = (*env)->GetMethodID(env, cls, "<init>", "(JJJJJJI)V");
553 AWS_FATAL_ASSERT(http_stream_metrics_properties.constructor_id);
554 }
555
556 struct java_event_stream_server_listener_properties event_stream_server_listener_properties;
557
s_cache_event_stream_server_listener_properties(JNIEnv * env)558 static void s_cache_event_stream_server_listener_properties(JNIEnv *env) {
559 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/eventstream/ServerListener");
560 AWS_FATAL_ASSERT(cls);
561
562 event_stream_server_listener_properties.onShutdownComplete =
563 (*env)->GetMethodID(env, cls, "onShutdownComplete", "()V");
564 AWS_FATAL_ASSERT(event_stream_server_listener_properties.onShutdownComplete);
565 }
566
567 struct java_event_stream_server_listener_handler_properties event_stream_server_listener_handler_properties;
568
s_cache_event_stream_server_listener_handler_properties(JNIEnv * env)569 static void s_cache_event_stream_server_listener_handler_properties(JNIEnv *env) {
570 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/eventstream/ServerListenerHandler");
571 AWS_FATAL_ASSERT(cls);
572
573 event_stream_server_listener_handler_properties.connCls =
574 (*env)->NewGlobalRef(env, (*env)->FindClass(env, "software/amazon/awssdk/crt/eventstream/ServerConnection"));
575 AWS_FATAL_ASSERT(event_stream_server_listener_handler_properties.connCls);
576
577 event_stream_server_listener_handler_properties.newConnConstructor =
578 (*env)->GetMethodID(env, event_stream_server_listener_handler_properties.connCls, "<init>", "(J)V");
579 AWS_FATAL_ASSERT(event_stream_server_listener_handler_properties.newConnConstructor);
580
581 event_stream_server_listener_handler_properties.onNewConnection = (*env)->GetMethodID(
582 env,
583 cls,
584 "onNewConnection",
585 "(Lsoftware/amazon/awssdk/crt/eventstream/ServerConnection;I)Lsoftware/amazon/awssdk/crt/eventstream/"
586 "ServerConnectionHandler;");
587 AWS_FATAL_ASSERT(event_stream_server_listener_handler_properties.onNewConnection);
588 event_stream_server_listener_handler_properties.onConnectionShutdown = (*env)->GetMethodID(
589 env, cls, "onConnectionShutdownShim", "(Lsoftware/amazon/awssdk/crt/eventstream/ServerConnection;I)V");
590 AWS_FATAL_ASSERT(event_stream_server_listener_handler_properties.onConnectionShutdown);
591 }
592
593 struct java_event_stream_server_connection_handler_properties event_stream_server_connection_handler_properties;
594
s_cache_event_stream_server_connection_handler_properties(JNIEnv * env)595 static void s_cache_event_stream_server_connection_handler_properties(JNIEnv *env) {
596 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/eventstream/ServerConnectionHandler");
597 AWS_FATAL_ASSERT(cls);
598
599 event_stream_server_connection_handler_properties.continuationCls = (*env)->NewGlobalRef(
600 env, (*env)->FindClass(env, "software/amazon/awssdk/crt/eventstream/ServerConnectionContinuation"));
601 AWS_FATAL_ASSERT(event_stream_server_connection_handler_properties.continuationCls);
602
603 event_stream_server_connection_handler_properties.newContinuationConstructor =
604 (*env)->GetMethodID(env, event_stream_server_connection_handler_properties.continuationCls, "<init>", "(J)V");
605 AWS_FATAL_ASSERT(event_stream_server_connection_handler_properties.newContinuationConstructor);
606
607 event_stream_server_connection_handler_properties.onProtocolMessage =
608 (*env)->GetMethodID(env, cls, "onProtocolMessage", "([B[BII)V");
609 AWS_FATAL_ASSERT(event_stream_server_connection_handler_properties.onProtocolMessage);
610
611 event_stream_server_connection_handler_properties.onIncomingStream = (*env)->GetMethodID(
612 env,
613 cls,
614 "onIncomingStream",
615 "(Lsoftware/amazon/awssdk/crt/eventstream/ServerConnectionContinuation;[B)Lsoftware/amazon/awssdk/crt/"
616 "eventstream/ServerConnectionContinuationHandler;");
617 AWS_FATAL_ASSERT(event_stream_server_connection_handler_properties.onIncomingStream);
618 }
619
620 struct java_event_stream_server_continuation_handler_properties event_stream_server_continuation_handler_properties;
621
s_cache_event_stream_server_continuation_handler_properties(JNIEnv * env)622 static void s_cache_event_stream_server_continuation_handler_properties(JNIEnv *env) {
623 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/eventstream/ServerConnectionContinuationHandler");
624 AWS_FATAL_ASSERT(cls);
625
626 event_stream_server_continuation_handler_properties.onContinuationMessage =
627 (*env)->GetMethodID(env, cls, "onContinuationMessageShim", "([B[BII)V");
628 AWS_FATAL_ASSERT(event_stream_server_continuation_handler_properties.onContinuationMessage);
629 event_stream_server_continuation_handler_properties.onContinuationClosed =
630 (*env)->GetMethodID(env, cls, "onContinuationClosedShim", "()V");
631 AWS_FATAL_ASSERT(event_stream_server_continuation_handler_properties.onContinuationClosed);
632 }
633
634 struct java_event_stream_client_connection_handler_properties event_stream_client_connection_handler_properties;
635
s_cache_event_stream_client_connection_handler_properties(JNIEnv * env)636 static void s_cache_event_stream_client_connection_handler_properties(JNIEnv *env) {
637 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/eventstream/ClientConnectionHandler");
638 AWS_FATAL_ASSERT(cls);
639
640 event_stream_client_connection_handler_properties.onSetup =
641 (*env)->GetMethodID(env, cls, "onConnectionSetupShim", "(JI)V");
642 AWS_FATAL_ASSERT(event_stream_client_connection_handler_properties.onSetup);
643 event_stream_client_connection_handler_properties.onProtocolMessage =
644 (*env)->GetMethodID(env, cls, "onProtocolMessage", "([B[BII)V");
645 AWS_FATAL_ASSERT(event_stream_client_connection_handler_properties.onProtocolMessage);
646 event_stream_client_connection_handler_properties.onClosed =
647 (*env)->GetMethodID(env, cls, "onConnectionClosedShim", "(I)V");
648 AWS_FATAL_ASSERT(event_stream_client_connection_handler_properties.onClosed);
649 }
650
651 struct java_event_stream_client_continuation_handler_properties event_stream_client_continuation_handler_properties;
652
s_cache_event_stream_client_continuation_handler_properties(JNIEnv * env)653 static void s_cache_event_stream_client_continuation_handler_properties(JNIEnv *env) {
654 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/eventstream/ClientConnectionContinuationHandler");
655 AWS_FATAL_ASSERT(cls);
656
657 event_stream_client_continuation_handler_properties.onContinuationMessage =
658 (*env)->GetMethodID(env, cls, "onContinuationMessageShim", "([B[BII)V");
659 AWS_FATAL_ASSERT(event_stream_client_continuation_handler_properties.onContinuationMessage);
660 event_stream_client_continuation_handler_properties.onContinuationClosed =
661 (*env)->GetMethodID(env, cls, "onContinuationClosedShim", "()V");
662 AWS_FATAL_ASSERT(event_stream_client_continuation_handler_properties.onContinuationClosed);
663 }
664
665 struct java_event_stream_message_flush_properties event_stream_server_message_flush_properties;
666
s_cache_event_stream_message_flush_properties(JNIEnv * env)667 static void s_cache_event_stream_message_flush_properties(JNIEnv *env) {
668 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/eventstream/MessageFlushCallback");
669 AWS_FATAL_ASSERT(cls);
670
671 event_stream_server_message_flush_properties.callback = (*env)->GetMethodID(env, cls, "onCallbackInvoked", "(I)V");
672 AWS_FATAL_ASSERT(event_stream_server_message_flush_properties.callback);
673 }
674
675 struct java_cpu_info_properties cpu_info_properties;
676
s_cache_cpu_info_properties(JNIEnv * env)677 static void s_cache_cpu_info_properties(JNIEnv *env) {
678 cpu_info_properties.cpu_info_class =
679 (*env)->NewGlobalRef(env, (*env)->FindClass(env, "software/amazon/awssdk/crt/SystemInfo$CpuInfo"));
680 AWS_FATAL_ASSERT(cpu_info_properties.cpu_info_class);
681
682 cpu_info_properties.cpu_info_constructor =
683 (*env)->GetMethodID(env, cpu_info_properties.cpu_info_class, "<init>", "(IZ)V");
684 }
685
686 struct java_s3_client_properties s3_client_properties;
687
s_cache_s3_client_properties(JNIEnv * env)688 static void s_cache_s3_client_properties(JNIEnv *env) {
689 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/s3/S3Client");
690 AWS_FATAL_ASSERT(cls);
691
692 s3_client_properties.onShutdownComplete = (*env)->GetMethodID(env, cls, "onShutdownComplete", "()V");
693 AWS_FATAL_ASSERT(s3_client_properties.onShutdownComplete);
694 }
695
696 struct java_s3_meta_request_properties s3_meta_request_properties;
697
s_cache_s3_meta_request_properties(JNIEnv * env)698 static void s_cache_s3_meta_request_properties(JNIEnv *env) {
699 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/s3/S3MetaRequest");
700 AWS_FATAL_ASSERT(cls);
701
702 s3_meta_request_properties.onShutdownComplete = (*env)->GetMethodID(env, cls, "onShutdownComplete", "()V");
703 AWS_FATAL_ASSERT(s3_meta_request_properties.onShutdownComplete);
704 }
705
706 struct java_s3_meta_request_response_handler_native_adapter_properties
707 s3_meta_request_response_handler_native_adapter_properties;
708
s_cache_s3_meta_request_response_handler_native_adapter_properties(JNIEnv * env)709 static void s_cache_s3_meta_request_response_handler_native_adapter_properties(JNIEnv *env) {
710 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/s3/S3MetaRequestResponseHandlerNativeAdapter");
711 AWS_FATAL_ASSERT(cls);
712
713 s3_meta_request_response_handler_native_adapter_properties.onResponseBody =
714 (*env)->GetMethodID(env, cls, "onResponseBody", "([BJJ)I");
715 AWS_FATAL_ASSERT(s3_meta_request_response_handler_native_adapter_properties.onResponseBody);
716
717 s3_meta_request_response_handler_native_adapter_properties.onFinished =
718 (*env)->GetMethodID(env, cls, "onFinished", "(II[BIZLjava/lang/Throwable;Ljava/nio/ByteBuffer;)V");
719 AWS_FATAL_ASSERT(s3_meta_request_response_handler_native_adapter_properties.onFinished);
720
721 s3_meta_request_response_handler_native_adapter_properties.onResponseHeaders =
722 (*env)->GetMethodID(env, cls, "onResponseHeaders", "(ILjava/nio/ByteBuffer;)V");
723 AWS_FATAL_ASSERT(s3_meta_request_response_handler_native_adapter_properties.onResponseHeaders);
724
725 s3_meta_request_response_handler_native_adapter_properties.onProgress =
726 (*env)->GetMethodID(env, cls, "onProgress", "(Lsoftware/amazon/awssdk/crt/s3/S3MetaRequestProgress;)V");
727 AWS_FATAL_ASSERT(s3_meta_request_response_handler_native_adapter_properties.onResponseHeaders);
728 }
729
730 struct java_completable_future_properties completable_future_properties;
731
s_cache_completable_future(JNIEnv * env)732 static void s_cache_completable_future(JNIEnv *env) {
733 jclass cls = (*env)->FindClass(env, "java/util/concurrent/CompletableFuture");
734 AWS_FATAL_ASSERT(cls);
735
736 completable_future_properties.complete_method_id =
737 (*env)->GetMethodID(env, cls, "complete", "(Ljava/lang/Object;)Z");
738 AWS_FATAL_ASSERT(completable_future_properties.complete_method_id != NULL);
739
740 completable_future_properties.complete_exceptionally_method_id =
741 (*env)->GetMethodID(env, cls, "completeExceptionally", "(Ljava/lang/Throwable;)Z");
742 AWS_FATAL_ASSERT(completable_future_properties.complete_exceptionally_method_id != NULL);
743 }
744
745 struct java_crt_runtime_exception_properties crt_runtime_exception_properties;
746
s_cache_crt_runtime_exception(JNIEnv * env)747 static void s_cache_crt_runtime_exception(JNIEnv *env) {
748 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/CrtRuntimeException");
749 AWS_FATAL_ASSERT(cls);
750 crt_runtime_exception_properties.crt_runtime_exception_class = (*env)->NewGlobalRef(env, cls);
751
752 crt_runtime_exception_properties.constructor_method_id = (*env)->GetMethodID(env, cls, "<init>", "(I)V");
753 AWS_FATAL_ASSERT(crt_runtime_exception_properties.constructor_method_id);
754
755 crt_runtime_exception_properties.error_code_field_id = (*env)->GetFieldID(env, cls, "errorCode", "I");
756 AWS_FATAL_ASSERT(crt_runtime_exception_properties.error_code_field_id);
757 }
758
759 struct java_ecc_key_pair_properties ecc_key_pair_properties;
760
s_cache_ecc_key_pair(JNIEnv * env)761 static void s_cache_ecc_key_pair(JNIEnv *env) {
762 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/cal/EccKeyPair");
763 AWS_FATAL_ASSERT(cls);
764 ecc_key_pair_properties.ecc_key_pair_class = (*env)->NewGlobalRef(env, cls);
765
766 ecc_key_pair_properties.constructor = (*env)->GetMethodID(env, cls, "<init>", "(J)V");
767 AWS_FATAL_ASSERT(ecc_key_pair_properties.constructor);
768 }
769
770 struct java_crt_properties crt_properties;
771
s_cache_crt(JNIEnv * env)772 static void s_cache_crt(JNIEnv *env) {
773 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/CRT");
774 AWS_FATAL_ASSERT(cls);
775 crt_properties.crt_class = (*env)->NewGlobalRef(env, cls);
776
777 crt_properties.test_jni_exception_method_id = (*env)->GetStaticMethodID(env, cls, "testJniException", "(Z)V");
778 AWS_FATAL_ASSERT(crt_properties.test_jni_exception_method_id);
779 }
780
781 struct java_aws_signing_result_properties aws_signing_result_properties;
782
s_cache_aws_signing_result(JNIEnv * env)783 static void s_cache_aws_signing_result(JNIEnv *env) {
784 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/auth/signing/AwsSigningResult");
785 AWS_FATAL_ASSERT(cls);
786 aws_signing_result_properties.aws_signing_result_class = (*env)->NewGlobalRef(env, cls);
787
788 aws_signing_result_properties.constructor = (*env)->GetMethodID(env, cls, "<init>", "()V");
789 AWS_FATAL_ASSERT(aws_signing_result_properties.constructor);
790
791 aws_signing_result_properties.signed_request_field_id =
792 (*env)->GetFieldID(env, cls, "signedRequest", "Lsoftware/amazon/awssdk/crt/http/HttpRequest;");
793 AWS_FATAL_ASSERT(aws_signing_result_properties.signed_request_field_id);
794
795 aws_signing_result_properties.signature_field_id = (*env)->GetFieldID(env, cls, "signature", "[B");
796 AWS_FATAL_ASSERT(aws_signing_result_properties.signature_field_id);
797 }
798
799 struct java_http_header_properties http_header_properties;
800
s_cache_http_header(JNIEnv * env)801 static void s_cache_http_header(JNIEnv *env) {
802 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/HttpHeader");
803 AWS_FATAL_ASSERT(cls);
804 http_header_properties.http_header_class = (*env)->NewGlobalRef(env, cls);
805
806 http_header_properties.constructor_method_id = (*env)->GetMethodID(env, cls, "<init>", "([B[B)V");
807 AWS_FATAL_ASSERT(http_header_properties.constructor_method_id);
808 }
809
810 struct java_http_manager_metrics_properties http_manager_metrics_properties;
s_cache_http_manager_metrics(JNIEnv * env)811 static void s_cache_http_manager_metrics(JNIEnv *env) {
812 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/HttpManagerMetrics");
813 AWS_FATAL_ASSERT(cls);
814 http_manager_metrics_properties.http_manager_metrics_class = (*env)->NewGlobalRef(env, cls);
815
816 http_manager_metrics_properties.constructor_method_id = (*env)->GetMethodID(env, cls, "<init>", "(JJJ)V");
817 AWS_FATAL_ASSERT(http_manager_metrics_properties.constructor_method_id);
818 }
819
820 struct java_aws_exponential_backoff_retry_options_properties exponential_backoff_retry_options_properties;
821
s_cache_exponential_backoff_retry_options(JNIEnv * env)822 static void s_cache_exponential_backoff_retry_options(JNIEnv *env) {
823 (void)env;
824
825 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/io/ExponentialBackoffRetryOptions");
826 AWS_FATAL_ASSERT(cls);
827 exponential_backoff_retry_options_properties.exponential_backoff_retry_options_class =
828 (*env)->NewGlobalRef(env, cls);
829
830 exponential_backoff_retry_options_properties.exponential_backoff_retry_options_constructor_method_id =
831 (*env)->GetMethodID(
832 env, exponential_backoff_retry_options_properties.exponential_backoff_retry_options_class, "<init>", "()V");
833 AWS_FATAL_ASSERT(
834 exponential_backoff_retry_options_properties.exponential_backoff_retry_options_constructor_method_id);
835
836 exponential_backoff_retry_options_properties.el_group_field_id =
837 (*env)->GetFieldID(env, cls, "eventLoopGroup", "Lsoftware/amazon/awssdk/crt/io/EventLoopGroup;");
838 AWS_FATAL_ASSERT(exponential_backoff_retry_options_properties.el_group_field_id);
839
840 exponential_backoff_retry_options_properties.max_retries_field_id = (*env)->GetFieldID(env, cls, "maxRetries", "J");
841 AWS_FATAL_ASSERT(exponential_backoff_retry_options_properties.max_retries_field_id);
842
843 exponential_backoff_retry_options_properties.backoff_scale_factor_ms_field_id =
844 (*env)->GetFieldID(env, cls, "backoffScaleFactorMS", "J");
845 AWS_FATAL_ASSERT(exponential_backoff_retry_options_properties.backoff_scale_factor_ms_field_id);
846
847 exponential_backoff_retry_options_properties.jitter_mode_field_id = (*env)->GetFieldID(
848 env, cls, "jitterMode", "Lsoftware/amazon/awssdk/crt/io/ExponentialBackoffRetryOptions$JitterMode;");
849 AWS_FATAL_ASSERT(exponential_backoff_retry_options_properties.jitter_mode_field_id);
850
851 jclass jitter_mode_cls =
852 (*env)->FindClass(env, "software/amazon/awssdk/crt/io/ExponentialBackoffRetryOptions$JitterMode");
853 AWS_FATAL_ASSERT(jitter_mode_cls);
854 exponential_backoff_retry_options_properties.jitter_mode_class = (*env)->NewGlobalRef(env, jitter_mode_cls);
855
856 exponential_backoff_retry_options_properties.jitter_mode_value_field_id =
857 (*env)->GetFieldID(env, jitter_mode_cls, "value", "I");
858
859 AWS_FATAL_ASSERT(exponential_backoff_retry_options_properties.jitter_mode_value_field_id);
860 }
861
862 struct java_aws_standard_retry_options_properties standard_retry_options_properties;
863
s_cache_standard_retry_options(JNIEnv * env)864 static void s_cache_standard_retry_options(JNIEnv *env) {
865 (void)env;
866
867 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/io/StandardRetryOptions");
868 AWS_FATAL_ASSERT(cls);
869 standard_retry_options_properties.standard_retry_options_class = (*env)->NewGlobalRef(env, cls);
870
871 standard_retry_options_properties.standard_retry_options_constructor_method_id =
872 (*env)->GetMethodID(env, standard_retry_options_properties.standard_retry_options_class, "<init>", "()V");
873
874 standard_retry_options_properties.backoff_retry_options_field_id = (*env)->GetFieldID(
875 env, cls, "backoffRetryOptions", "Lsoftware/amazon/awssdk/crt/io/ExponentialBackoffRetryOptions;");
876 AWS_FATAL_ASSERT(standard_retry_options_properties.backoff_retry_options_field_id);
877
878 standard_retry_options_properties.initial_bucket_capacity_field_id =
879 (*env)->GetFieldID(env, cls, "initialBucketCapacity", "J");
880 AWS_FATAL_ASSERT(standard_retry_options_properties.initial_bucket_capacity_field_id);
881 }
882
883 struct java_aws_directory_traversal_handler_properties directory_traversal_handler_properties;
884
s_cache_directory_traversal_handler(JNIEnv * env)885 static void s_cache_directory_traversal_handler(JNIEnv *env) {
886 (void)env;
887
888 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/io/DirectoryTraversalHandler");
889 AWS_FATAL_ASSERT(cls);
890 directory_traversal_handler_properties.directory_traversal_handler_class = (*env)->NewGlobalRef(env, cls);
891
892 directory_traversal_handler_properties.on_directory_entry_method_id = (*env)->GetMethodID(
893 env,
894 directory_traversal_handler_properties.directory_traversal_handler_class,
895 "onDirectoryEntry",
896 "(Lsoftware/amazon/awssdk/crt/io/DirectoryEntry;)Z");
897 }
898
899 struct java_aws_directory_entry_properties directory_entry_properties;
900
s_cache_directory_entry(JNIEnv * env)901 static void s_cache_directory_entry(JNIEnv *env) {
902 (void)env;
903
904 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/io/DirectoryEntry");
905 AWS_FATAL_ASSERT(cls);
906 directory_entry_properties.directory_entry_class = (*env)->NewGlobalRef(env, cls);
907
908 directory_entry_properties.directory_entry_constructor_method_id =
909 (*env)->GetMethodID(env, directory_entry_properties.directory_entry_class, "<init>", "()V");
910
911 directory_entry_properties.path_field_id = (*env)->GetFieldID(env, cls, "path", "Ljava/lang/String;");
912
913 directory_entry_properties.relative_path_field_id =
914 (*env)->GetFieldID(env, cls, "relativePath", "Ljava/lang/String;");
915
916 directory_entry_properties.is_directory_field_id = (*env)->GetFieldID(env, cls, "isDirectory", "Z");
917
918 directory_entry_properties.is_symlink_field_id = (*env)->GetFieldID(env, cls, "isSymLink", "Z");
919
920 directory_entry_properties.is_file_field_id = (*env)->GetFieldID(env, cls, "isFile", "Z");
921
922 directory_entry_properties.file_size_field_id = (*env)->GetFieldID(env, cls, "fileSize", "J");
923 }
924
925 struct java_aws_s3_meta_request_progress s3_meta_request_progress_properties;
926
s_cache_s3_meta_request_progress(JNIEnv * env)927 static void s_cache_s3_meta_request_progress(JNIEnv *env) {
928 (void)env;
929
930 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/s3/S3MetaRequestProgress");
931 AWS_FATAL_ASSERT(cls);
932 s3_meta_request_progress_properties.s3_meta_request_progress_class = (*env)->NewGlobalRef(env, cls);
933
934 s3_meta_request_progress_properties.s3_meta_request_progress_constructor_method_id =
935 (*env)->GetMethodID(env, s3_meta_request_progress_properties.s3_meta_request_progress_class, "<init>", "()V");
936
937 s3_meta_request_progress_properties.bytes_transferred_field_id =
938 (*env)->GetFieldID(env, cls, "bytesTransferred", "J");
939 s3_meta_request_progress_properties.content_length_field_id = (*env)->GetFieldID(env, cls, "contentLength", "J");
940 }
941 struct java_aws_s3_tcp_keep_alive_options_properties s3_tcp_keep_alive_options_properties;
942
s_cache_s3_tcp_keep_alive_options(JNIEnv * env)943 static void s_cache_s3_tcp_keep_alive_options(JNIEnv *env) {
944 (void)env;
945
946 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/s3/S3TcpKeepAliveOptions");
947 AWS_FATAL_ASSERT(cls);
948 s3_tcp_keep_alive_options_properties.s3_tcp_keep_alive_options_class = (*env)->NewGlobalRef(env, cls);
949
950 s3_tcp_keep_alive_options_properties.s3_tcp_keep_alive_options_constructor_method_id =
951 (*env)->GetMethodID(env, s3_tcp_keep_alive_options_properties.s3_tcp_keep_alive_options_class, "<init>", "()V");
952
953 s3_tcp_keep_alive_options_properties.keep_alive_interval_sec_field_id =
954 (*env)->GetFieldID(env, cls, "keepAliveIntervalSec", "S");
955
956 s3_tcp_keep_alive_options_properties.keep_alive_timeout_sec_field_id =
957 (*env)->GetFieldID(env, cls, "keepAliveTimeoutSec", "S");
958
959 s3_tcp_keep_alive_options_properties.keep_alive_max_failed_probes_field_id =
960 (*env)->GetFieldID(env, cls, "keepAliveMaxFailedProbes", "S");
961 }
962
963 struct java_aws_s3_meta_request_resume_token s3_meta_request_resume_token_properties;
964
s_cache_s3_meta_request_resume_token(JNIEnv * env)965 static void s_cache_s3_meta_request_resume_token(JNIEnv *env) {
966 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/s3/ResumeToken");
967 AWS_FATAL_ASSERT(cls);
968 s3_meta_request_resume_token_properties.s3_meta_request_resume_token_class = (*env)->NewGlobalRef(env, cls);
969
970 s3_meta_request_resume_token_properties.s3_meta_request_resume_token_constructor_method_id =
971 (*env)->GetMethodID(env, s3_meta_request_progress_properties.s3_meta_request_progress_class, "<init>", "()V");
972
973 s3_meta_request_resume_token_properties.native_type_field_id = (*env)->GetFieldID(env, cls, "nativeType", "I");
974 AWS_FATAL_ASSERT(s3_meta_request_resume_token_properties.native_type_field_id);
975 s3_meta_request_resume_token_properties.part_size_field_id = (*env)->GetFieldID(env, cls, "partSize", "J");
976 s3_meta_request_resume_token_properties.total_num_parts_field_id =
977 (*env)->GetFieldID(env, cls, "totalNumParts", "J");
978 s3_meta_request_resume_token_properties.num_parts_completed_field_id =
979 (*env)->GetFieldID(env, cls, "numPartsCompleted", "J");
980 s3_meta_request_resume_token_properties.upload_id_field_id =
981 (*env)->GetFieldID(env, cls, "uploadId", "Ljava/lang/String;");
982 }
983
984 struct java_aws_mqtt5_connack_packet_properties mqtt5_connack_packet_properties;
985
s_cache_mqtt5_connack_packet(JNIEnv * env)986 static void s_cache_mqtt5_connack_packet(JNIEnv *env) {
987 (void)env;
988
989 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/ConnAckPacket");
990 AWS_FATAL_ASSERT(cls);
991 mqtt5_connack_packet_properties.connack_packet_class = (*env)->NewGlobalRef(env, cls);
992 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_packet_class);
993
994 // Functions
995 mqtt5_connack_packet_properties.connack_constructor_id =
996 (*env)->GetMethodID(env, mqtt5_connack_packet_properties.connack_packet_class, "<init>", "()V");
997 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_constructor_id);
998 mqtt5_connack_packet_properties.connack_native_add_maximum_qos_id =
999 (*env)->GetMethodID(env, mqtt5_connack_packet_properties.connack_packet_class, "nativeAddMaximumQOS", "(I)V");
1000 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_native_add_maximum_qos_id);
1001 mqtt5_connack_packet_properties.connack_native_add_reason_code_id =
1002 (*env)->GetMethodID(env, mqtt5_connack_packet_properties.connack_packet_class, "nativeAddReasonCode", "(I)V");
1003 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_native_add_reason_code_id);
1004 // Field IDs
1005 mqtt5_connack_packet_properties.connack_session_present_field_id =
1006 (*env)->GetFieldID(env, mqtt5_connack_packet_properties.connack_packet_class, "sessionPresent", "Z");
1007 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_session_present_field_id);
1008 mqtt5_connack_packet_properties.connack_reason_code_field_id = (*env)->GetFieldID(
1009 env,
1010 mqtt5_connack_packet_properties.connack_packet_class,
1011 "reasonCode",
1012 "Lsoftware/amazon/awssdk/crt/mqtt5/packets/ConnAckPacket$ConnectReasonCode;");
1013 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_reason_code_field_id);
1014 mqtt5_connack_packet_properties.connack_session_expiry_interval_field_id = (*env)->GetFieldID(
1015 env, mqtt5_connack_packet_properties.connack_packet_class, "sessionExpiryIntervalSeconds", "Ljava/lang/Long;");
1016 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_session_expiry_interval_field_id);
1017 mqtt5_connack_packet_properties.connack_receive_maximum_field_id = (*env)->GetFieldID(
1018 env, mqtt5_connack_packet_properties.connack_packet_class, "receiveMaximum", "Ljava/lang/Integer;");
1019 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_receive_maximum_field_id);
1020 mqtt5_connack_packet_properties.connack_maximum_qos_field_id = (*env)->GetFieldID(
1021 env,
1022 mqtt5_connack_packet_properties.connack_packet_class,
1023 "maximumQOS",
1024 "Lsoftware/amazon/awssdk/crt/mqtt5/QOS;");
1025 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_maximum_qos_field_id);
1026 mqtt5_connack_packet_properties.connack_retain_available_field_id = (*env)->GetFieldID(
1027 env, mqtt5_connack_packet_properties.connack_packet_class, "retainAvailable", "Ljava/lang/Boolean;");
1028 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_retain_available_field_id);
1029 mqtt5_connack_packet_properties.connack_maximum_packet_size_field_id = (*env)->GetFieldID(
1030 env, mqtt5_connack_packet_properties.connack_packet_class, "maximumPacketSize", "Ljava/lang/Long;");
1031 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_maximum_packet_size_field_id);
1032 mqtt5_connack_packet_properties.connack_assigned_client_identifier_field_id = (*env)->GetFieldID(
1033 env, mqtt5_connack_packet_properties.connack_packet_class, "assignedClientIdentifier", "Ljava/lang/String;");
1034 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_assigned_client_identifier_field_id);
1035 mqtt5_connack_packet_properties.connack_topic_alias_maximum_field_id = (*env)->GetFieldID(
1036 env, mqtt5_connack_packet_properties.connack_packet_class, "topicAliasMaximum", "Ljava/lang/Integer;");
1037 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_topic_alias_maximum_field_id);
1038 mqtt5_connack_packet_properties.connack_reason_string_field_id = (*env)->GetFieldID(
1039 env, mqtt5_connack_packet_properties.connack_packet_class, "reasonString", "Ljava/lang/String;");
1040 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_reason_string_field_id);
1041 mqtt5_connack_packet_properties.connack_wildcard_subscriptions_available_field_id = (*env)->GetFieldID(
1042 env,
1043 mqtt5_connack_packet_properties.connack_packet_class,
1044 "wildcardSubscriptionsAvailable",
1045 "Ljava/lang/Boolean;");
1046 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_wildcard_subscriptions_available_field_id);
1047 mqtt5_connack_packet_properties.connack_subscription_identifiers_available_field_id = (*env)->GetFieldID(
1048 env,
1049 mqtt5_connack_packet_properties.connack_packet_class,
1050 "subscriptionIdentifiersAvailable",
1051 "Ljava/lang/Boolean;");
1052 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_subscription_identifiers_available_field_id);
1053 mqtt5_connack_packet_properties.connack_shared_subscriptions_available_field_id = (*env)->GetFieldID(
1054 env,
1055 mqtt5_connack_packet_properties.connack_packet_class,
1056 "sharedSubscriptionsAvailable",
1057 "Ljava/lang/Boolean;");
1058 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_shared_subscriptions_available_field_id);
1059 mqtt5_connack_packet_properties.connack_server_keep_alive_field_id = (*env)->GetFieldID(
1060 env, mqtt5_connack_packet_properties.connack_packet_class, "serverKeepAlive", "Ljava/lang/Integer;");
1061 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_server_keep_alive_field_id);
1062 mqtt5_connack_packet_properties.connack_response_information_field_id = (*env)->GetFieldID(
1063 env, mqtt5_connack_packet_properties.connack_packet_class, "responseInformation", "Ljava/lang/String;");
1064 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_response_information_field_id);
1065 mqtt5_connack_packet_properties.connack_server_reference_field_id = (*env)->GetFieldID(
1066 env, mqtt5_connack_packet_properties.connack_packet_class, "serverReference", "Ljava/lang/String;");
1067 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_server_reference_field_id);
1068 mqtt5_connack_packet_properties.connack_user_properties_field_id = (*env)->GetFieldID(
1069 env, mqtt5_connack_packet_properties.connack_packet_class, "userProperties", "Ljava/util/List;");
1070 AWS_FATAL_ASSERT(mqtt5_connack_packet_properties.connack_user_properties_field_id);
1071 }
1072
1073 struct java_aws_mqtt5_connect_reason_code_properties mqtt5_connect_reason_code_properties;
1074
s_cache_mqtt5_connect_reason_code(JNIEnv * env)1075 static void s_cache_mqtt5_connect_reason_code(JNIEnv *env) {
1076 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/ConnAckPacket$ConnectReasonCode");
1077 AWS_FATAL_ASSERT(cls);
1078 mqtt5_connect_reason_code_properties.reason_code_class = (*env)->NewGlobalRef(env, cls);
1079 AWS_FATAL_ASSERT(mqtt5_connect_reason_code_properties.reason_code_class);
1080 // Functions
1081 mqtt5_connect_reason_code_properties.code_get_value_id =
1082 (*env)->GetMethodID(env, mqtt5_connect_reason_code_properties.reason_code_class, "getValue", "()I");
1083 AWS_FATAL_ASSERT(mqtt5_connect_reason_code_properties.code_get_value_id);
1084 // Static functions
1085 mqtt5_connect_reason_code_properties.code_s_get_enum_value_from_integer_id = (*env)->GetStaticMethodID(
1086 env,
1087 mqtt5_connect_reason_code_properties.reason_code_class,
1088 "getEnumValueFromInteger",
1089 "(I)Lsoftware/amazon/awssdk/crt/mqtt5/packets/ConnAckPacket$ConnectReasonCode;");
1090 AWS_FATAL_ASSERT(mqtt5_connect_reason_code_properties.code_s_get_enum_value_from_integer_id);
1091 }
1092
1093 struct java_aws_mqtt5_connect_packet_properties mqtt5_connect_packet_properties;
1094
s_cache_mqtt5_connect_packet(JNIEnv * env)1095 static void s_cache_mqtt5_connect_packet(JNIEnv *env) {
1096 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/ConnectPacket");
1097 AWS_FATAL_ASSERT(cls);
1098 mqtt5_connect_packet_properties.connect_packet_class = (*env)->NewGlobalRef(env, cls);
1099 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_packet_class);
1100 // Field IDs
1101 mqtt5_connect_packet_properties.connect_keep_alive_interval_seconds_field_id = (*env)->GetFieldID(
1102 env, mqtt5_connect_packet_properties.connect_packet_class, "keepAliveIntervalSeconds", "Ljava/lang/Long;");
1103 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_keep_alive_interval_seconds_field_id);
1104 mqtt5_connect_packet_properties.connect_client_id_field_id =
1105 (*env)->GetFieldID(env, mqtt5_connect_packet_properties.connect_packet_class, "clientId", "Ljava/lang/String;");
1106 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_client_id_field_id);
1107 mqtt5_connect_packet_properties.connect_username_field_id =
1108 (*env)->GetFieldID(env, mqtt5_connect_packet_properties.connect_packet_class, "username", "Ljava/lang/String;");
1109 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_username_field_id);
1110 mqtt5_connect_packet_properties.connect_password_field_id =
1111 (*env)->GetFieldID(env, mqtt5_connect_packet_properties.connect_packet_class, "password", "[B");
1112 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_password_field_id);
1113 mqtt5_connect_packet_properties.connect_session_expiry_interval_seconds_field_id = (*env)->GetFieldID(
1114 env, mqtt5_connect_packet_properties.connect_packet_class, "sessionExpiryIntervalSeconds", "Ljava/lang/Long;");
1115 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_session_expiry_interval_seconds_field_id);
1116 mqtt5_connect_packet_properties.connect_request_response_information_field_id = (*env)->GetFieldID(
1117 env, mqtt5_connect_packet_properties.connect_packet_class, "requestResponseInformation", "Ljava/lang/Boolean;");
1118 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_request_response_information_field_id);
1119 mqtt5_connect_packet_properties.connect_request_problem_information_field_id = (*env)->GetFieldID(
1120 env, mqtt5_connect_packet_properties.connect_packet_class, "requestProblemInformation", "Ljava/lang/Boolean;");
1121 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_request_problem_information_field_id);
1122 mqtt5_connect_packet_properties.connect_receive_maximum_field_id = (*env)->GetFieldID(
1123 env, mqtt5_connect_packet_properties.connect_packet_class, "receiveMaximum", "Ljava/lang/Long;");
1124 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_receive_maximum_field_id);
1125 mqtt5_connect_packet_properties.connect_maximum_packet_size_bytes_field_id = (*env)->GetFieldID(
1126 env, mqtt5_connect_packet_properties.connect_packet_class, "maximumPacketSizeBytes", "Ljava/lang/Long;");
1127 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_maximum_packet_size_bytes_field_id);
1128 mqtt5_connect_packet_properties.connect_will_delay_interval_seconds_field_id = (*env)->GetFieldID(
1129 env, mqtt5_connect_packet_properties.connect_packet_class, "willDelayIntervalSeconds", "Ljava/lang/Long;");
1130 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_will_delay_interval_seconds_field_id);
1131 mqtt5_connect_packet_properties.connect_user_properties_field_id = (*env)->GetFieldID(
1132 env, mqtt5_connect_packet_properties.connect_packet_class, "userProperties", "Ljava/util/List;");
1133 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_user_properties_field_id);
1134 mqtt5_connect_packet_properties.connect_will_field_id = (*env)->GetFieldID(
1135 env,
1136 mqtt5_connect_packet_properties.connect_packet_class,
1137 "will",
1138 "Lsoftware/amazon/awssdk/crt/mqtt5/packets/PublishPacket;");
1139 AWS_FATAL_ASSERT(mqtt5_connect_packet_properties.connect_will_field_id);
1140 }
1141
1142 struct java_aws_mqtt5_disconnect_packet_properties mqtt5_disconnect_packet_properties;
1143
s_cache_mqtt5_disconnect_packet(JNIEnv * env)1144 static void s_cache_mqtt5_disconnect_packet(JNIEnv *env) {
1145 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/DisconnectPacket");
1146 AWS_FATAL_ASSERT(cls);
1147 mqtt5_disconnect_packet_properties.disconnect_packet_class = (*env)->NewGlobalRef(env, cls);
1148 AWS_FATAL_ASSERT(mqtt5_disconnect_packet_properties.disconnect_packet_class);
1149 // Functions
1150 mqtt5_disconnect_packet_properties.disconnect_constructor_id =
1151 (*env)->GetMethodID(env, mqtt5_disconnect_packet_properties.disconnect_packet_class, "<init>", "()V");
1152 AWS_FATAL_ASSERT(mqtt5_disconnect_packet_properties.disconnect_constructor_id);
1153 mqtt5_disconnect_packet_properties.disconnect_native_add_disconnect_reason_code_id = (*env)->GetMethodID(
1154 env, mqtt5_disconnect_packet_properties.disconnect_packet_class, "nativeAddDisconnectReasonCode", "(I)V");
1155 AWS_FATAL_ASSERT(mqtt5_disconnect_packet_properties.disconnect_native_add_disconnect_reason_code_id);
1156 mqtt5_disconnect_packet_properties.disconnect_get_reason_code_id = (*env)->GetMethodID(
1157 env,
1158 mqtt5_disconnect_packet_properties.disconnect_packet_class,
1159 "getReasonCode",
1160 "()Lsoftware/amazon/awssdk/crt/mqtt5/packets/DisconnectPacket$DisconnectReasonCode;");
1161 AWS_FATAL_ASSERT(mqtt5_disconnect_packet_properties.disconnect_get_reason_code_id);
1162 // Field IDs
1163 mqtt5_disconnect_packet_properties.disconnect_reason_code_field_id = (*env)->GetFieldID(
1164 env,
1165 mqtt5_disconnect_packet_properties.disconnect_packet_class,
1166 "reasonCode",
1167 "Lsoftware/amazon/awssdk/crt/mqtt5/packets/DisconnectPacket$DisconnectReasonCode;");
1168 AWS_FATAL_ASSERT(mqtt5_disconnect_packet_properties.disconnect_reason_code_field_id);
1169 mqtt5_disconnect_packet_properties.disconnect_session_expiry_interval_seconds_field_id = (*env)->GetFieldID(
1170 env,
1171 mqtt5_disconnect_packet_properties.disconnect_packet_class,
1172 "sessionExpiryIntervalSeconds",
1173 "Ljava/lang/Long;");
1174 AWS_FATAL_ASSERT(mqtt5_disconnect_packet_properties.disconnect_session_expiry_interval_seconds_field_id);
1175 mqtt5_disconnect_packet_properties.disconnect_reason_string_field_id = (*env)->GetFieldID(
1176 env, mqtt5_disconnect_packet_properties.disconnect_packet_class, "reasonString", "Ljava/lang/String;");
1177 AWS_FATAL_ASSERT(mqtt5_disconnect_packet_properties.disconnect_reason_string_field_id);
1178 mqtt5_disconnect_packet_properties.disconnect_session_server_reference_field_id = (*env)->GetFieldID(
1179 env, mqtt5_disconnect_packet_properties.disconnect_packet_class, "serverReference", "Ljava/lang/String;");
1180 AWS_FATAL_ASSERT(mqtt5_disconnect_packet_properties.disconnect_session_server_reference_field_id);
1181 mqtt5_disconnect_packet_properties.disconnect_user_properties_field_id = (*env)->GetFieldID(
1182 env, mqtt5_disconnect_packet_properties.disconnect_packet_class, "userProperties", "Ljava/util/List;");
1183 AWS_FATAL_ASSERT(mqtt5_disconnect_packet_properties.disconnect_user_properties_field_id);
1184 }
1185
1186 struct java_aws_mqtt5_disconnect_reason_code_properties mqtt5_disconnect_reason_code_properties;
1187
s_cache_mqtt5_disconnect_reason_code(JNIEnv * env)1188 static void s_cache_mqtt5_disconnect_reason_code(JNIEnv *env) {
1189 jclass cls =
1190 (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/DisconnectPacket$DisconnectReasonCode");
1191 AWS_FATAL_ASSERT(cls);
1192 mqtt5_disconnect_reason_code_properties.reason_code_class = (*env)->NewGlobalRef(env, cls);
1193 AWS_FATAL_ASSERT(mqtt5_disconnect_reason_code_properties.reason_code_class);
1194 // Functions
1195 mqtt5_disconnect_reason_code_properties.code_get_value_id =
1196 (*env)->GetMethodID(env, mqtt5_disconnect_reason_code_properties.reason_code_class, "getValue", "()I");
1197 AWS_FATAL_ASSERT(mqtt5_disconnect_reason_code_properties.code_get_value_id);
1198 // Static functions
1199 mqtt5_disconnect_reason_code_properties.code_s_get_enum_value_from_integer_id = (*env)->GetStaticMethodID(
1200 env,
1201 mqtt5_disconnect_reason_code_properties.reason_code_class,
1202 "getEnumValueFromInteger",
1203 "(I)Lsoftware/amazon/awssdk/crt/mqtt5/packets/DisconnectPacket$DisconnectReasonCode;");
1204 AWS_FATAL_ASSERT(mqtt5_disconnect_reason_code_properties.code_s_get_enum_value_from_integer_id);
1205 }
1206
1207 struct java_aws_mqtt5_puback_packet_properties mqtt5_puback_packet_properties;
1208
s_cache_mqtt5_puback_packet(JNIEnv * env)1209 static void s_cache_mqtt5_puback_packet(JNIEnv *env) {
1210 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/PubAckPacket");
1211 AWS_FATAL_ASSERT(cls);
1212 mqtt5_puback_packet_properties.puback_packet_class = (*env)->NewGlobalRef(env, cls);
1213 AWS_FATAL_ASSERT(mqtt5_puback_packet_properties.puback_packet_class);
1214 // Functions
1215 mqtt5_puback_packet_properties.puback_constructor_id =
1216 (*env)->GetMethodID(env, mqtt5_puback_packet_properties.puback_packet_class, "<init>", "()V");
1217 AWS_FATAL_ASSERT(mqtt5_puback_packet_properties.puback_constructor_id);
1218 mqtt5_puback_packet_properties.puback_native_add_reason_code_id =
1219 (*env)->GetMethodID(env, mqtt5_puback_packet_properties.puback_packet_class, "nativeAddReasonCode", "(I)V");
1220 AWS_FATAL_ASSERT(mqtt5_puback_packet_properties.puback_native_add_reason_code_id);
1221 // Field IDs
1222 mqtt5_puback_packet_properties.puback_reason_code_field_id = (*env)->GetFieldID(
1223 env,
1224 mqtt5_puback_packet_properties.puback_packet_class,
1225 "reasonCode",
1226 "Lsoftware/amazon/awssdk/crt/mqtt5/packets/PubAckPacket$PubAckReasonCode;");
1227 AWS_FATAL_ASSERT(mqtt5_puback_packet_properties.puback_reason_code_field_id);
1228 mqtt5_puback_packet_properties.puback_reason_string_field_id = (*env)->GetFieldID(
1229 env, mqtt5_puback_packet_properties.puback_packet_class, "reasonString", "Ljava/lang/String;");
1230 AWS_FATAL_ASSERT(mqtt5_puback_packet_properties.puback_reason_string_field_id);
1231 mqtt5_puback_packet_properties.puback_user_properties_field_id = (*env)->GetFieldID(
1232 env, mqtt5_puback_packet_properties.puback_packet_class, "userProperties", "Ljava/util/List;");
1233 AWS_FATAL_ASSERT(mqtt5_puback_packet_properties.puback_user_properties_field_id);
1234 }
1235
1236 struct java_aws_mqtt5_puback_reason_code_properties mqtt5_puback_reason_code_properties;
1237
s_cache_mqtt5_puback_reason_code(JNIEnv * env)1238 static void s_cache_mqtt5_puback_reason_code(JNIEnv *env) {
1239 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/PubAckPacket$PubAckReasonCode");
1240 AWS_FATAL_ASSERT(cls);
1241 mqtt5_puback_reason_code_properties.reason_code_class = (*env)->NewGlobalRef(env, cls);
1242 AWS_FATAL_ASSERT(mqtt5_puback_reason_code_properties.reason_code_class);
1243 // Functions
1244 mqtt5_puback_reason_code_properties.code_get_value_id =
1245 (*env)->GetMethodID(env, mqtt5_puback_reason_code_properties.reason_code_class, "getValue", "()I");
1246 AWS_FATAL_ASSERT(mqtt5_puback_reason_code_properties.code_get_value_id);
1247 // Static functions
1248 mqtt5_puback_reason_code_properties.code_s_get_enum_value_from_integer_id = (*env)->GetStaticMethodID(
1249 env,
1250 mqtt5_puback_reason_code_properties.reason_code_class,
1251 "getEnumValueFromInteger",
1252 "(I)Lsoftware/amazon/awssdk/crt/mqtt5/packets/PubAckPacket$PubAckReasonCode;");
1253 AWS_FATAL_ASSERT(mqtt5_puback_reason_code_properties.code_s_get_enum_value_from_integer_id);
1254 }
1255
1256 struct java_aws_mqtt5_publish_packet_properties mqtt5_publish_packet_properties;
1257
s_cache_mqtt5_publish_packet(JNIEnv * env)1258 static void s_cache_mqtt5_publish_packet(JNIEnv *env) {
1259 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/PublishPacket");
1260 AWS_FATAL_ASSERT(cls);
1261 mqtt5_publish_packet_properties.publish_packet_class = (*env)->NewGlobalRef(env, cls);
1262 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_packet_class);
1263 // Functions
1264 mqtt5_publish_packet_properties.publish_constructor_id =
1265 (*env)->GetMethodID(env, mqtt5_publish_packet_properties.publish_packet_class, "<init>", "()V");
1266 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_constructor_id);
1267
1268 mqtt5_publish_packet_properties.publish_native_set_qos_id =
1269 (*env)->GetMethodID(env, mqtt5_publish_packet_properties.publish_packet_class, "nativeSetQOS", "(I)V");
1270 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_native_set_qos_id);
1271 mqtt5_publish_packet_properties.publish_native_set_payload_format_indicator_id = (*env)->GetMethodID(
1272 env, mqtt5_publish_packet_properties.publish_packet_class, "nativeSetPayloadFormatIndicator", "(I)V");
1273 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_native_set_payload_format_indicator_id);
1274 mqtt5_publish_packet_properties.publish_get_qos_id = (*env)->GetMethodID(
1275 env,
1276 mqtt5_publish_packet_properties.publish_packet_class,
1277 "getQOS",
1278 "()Lsoftware/amazon/awssdk/crt/mqtt5/QOS;");
1279 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_get_qos_id);
1280
1281 mqtt5_publish_packet_properties.publish_get_payload_format_id = (*env)->GetMethodID(
1282 env,
1283 mqtt5_publish_packet_properties.publish_packet_class,
1284 "getPayloadFormat",
1285 "()Lsoftware/amazon/awssdk/crt/mqtt5/packets/PublishPacket$PayloadFormatIndicator;");
1286 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_get_payload_format_id);
1287
1288 // FieldIDs
1289 mqtt5_publish_packet_properties.publish_payload_field_id =
1290 (*env)->GetFieldID(env, mqtt5_publish_packet_properties.publish_packet_class, "payload", "[B");
1291 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_payload_field_id);
1292 mqtt5_publish_packet_properties.publish_qos_field_id = (*env)->GetFieldID(
1293 env,
1294 mqtt5_publish_packet_properties.publish_packet_class,
1295 "packetQOS",
1296 "Lsoftware/amazon/awssdk/crt/mqtt5/QOS;");
1297 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_qos_field_id);
1298 mqtt5_publish_packet_properties.publish_retain_field_id =
1299 (*env)->GetFieldID(env, mqtt5_publish_packet_properties.publish_packet_class, "retain", "Ljava/lang/Boolean;");
1300 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_retain_field_id);
1301 mqtt5_publish_packet_properties.publish_topic_field_id =
1302 (*env)->GetFieldID(env, mqtt5_publish_packet_properties.publish_packet_class, "topic", "Ljava/lang/String;");
1303 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_topic_field_id);
1304 mqtt5_publish_packet_properties.publish_payload_format_field_id = (*env)->GetFieldID(
1305 env,
1306 mqtt5_publish_packet_properties.publish_packet_class,
1307 "payloadFormat",
1308 "Lsoftware/amazon/awssdk/crt/mqtt5/packets/PublishPacket$PayloadFormatIndicator;");
1309 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_payload_format_field_id);
1310 mqtt5_publish_packet_properties.publish_message_expiry_interval_seconds_field_id = (*env)->GetFieldID(
1311 env, mqtt5_publish_packet_properties.publish_packet_class, "messageExpiryIntervalSeconds", "Ljava/lang/Long;");
1312 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_message_expiry_interval_seconds_field_id);
1313 mqtt5_publish_packet_properties.publish_topic_alias_field_id =
1314 (*env)->GetFieldID(env, mqtt5_publish_packet_properties.publish_packet_class, "topicAlias", "Ljava/lang/Long;");
1315 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_topic_alias_field_id);
1316 mqtt5_publish_packet_properties.publish_response_topic_field_id = (*env)->GetFieldID(
1317 env, mqtt5_publish_packet_properties.publish_packet_class, "responseTopic", "Ljava/lang/String;");
1318 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_response_topic_field_id);
1319 mqtt5_publish_packet_properties.publish_correlation_data_field_id =
1320 (*env)->GetFieldID(env, mqtt5_publish_packet_properties.publish_packet_class, "correlationData", "[B");
1321 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_correlation_data_field_id);
1322 mqtt5_publish_packet_properties.publish_content_type_field_id = (*env)->GetFieldID(
1323 env, mqtt5_publish_packet_properties.publish_packet_class, "contentType", "Ljava/lang/String;");
1324 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_content_type_field_id);
1325 mqtt5_publish_packet_properties.publish_subscription_identifiers_field_id = (*env)->GetFieldID(
1326 env, mqtt5_publish_packet_properties.publish_packet_class, "subscriptionIdentifiers", "Ljava/util/List;");
1327 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_subscription_identifiers_field_id);
1328 mqtt5_publish_packet_properties.publish_user_properties_field_id = (*env)->GetFieldID(
1329 env, mqtt5_publish_packet_properties.publish_packet_class, "userProperties", "Ljava/util/List;");
1330 AWS_FATAL_ASSERT(mqtt5_publish_packet_properties.publish_user_properties_field_id);
1331 }
1332
1333 struct java_aws_mqtt5_payload_format_indicator_properties mqtt5_payload_format_indicator_properties;
1334
s_cache_mqtt5_payload_format_indicator(JNIEnv * env)1335 static void s_cache_mqtt5_payload_format_indicator(JNIEnv *env) {
1336 jclass cls =
1337 (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/PublishPacket$PayloadFormatIndicator");
1338 AWS_FATAL_ASSERT(cls);
1339 mqtt5_payload_format_indicator_properties.payload_format_class = (*env)->NewGlobalRef(env, cls);
1340 AWS_FATAL_ASSERT(mqtt5_payload_format_indicator_properties.payload_format_class);
1341 // Functions
1342 mqtt5_payload_format_indicator_properties.format_get_value_id =
1343 (*env)->GetMethodID(env, mqtt5_payload_format_indicator_properties.payload_format_class, "getValue", "()I");
1344 AWS_FATAL_ASSERT(mqtt5_payload_format_indicator_properties.format_get_value_id);
1345 // Static functions
1346 mqtt5_payload_format_indicator_properties.format_s_get_enum_value_from_integer_id = (*env)->GetStaticMethodID(
1347 env,
1348 mqtt5_payload_format_indicator_properties.payload_format_class,
1349 "getEnumValueFromInteger",
1350 "(I)Lsoftware/amazon/awssdk/crt/mqtt5/packets/PublishPacket$PayloadFormatIndicator;");
1351 AWS_FATAL_ASSERT(mqtt5_payload_format_indicator_properties.format_s_get_enum_value_from_integer_id);
1352 }
1353
1354 struct java_aws_mqtt5_negotiated_settings_properties mqtt5_negotiated_settings_properties;
1355
s_cache_mqtt5_negotiated_settings(JNIEnv * env)1356 static void s_cache_mqtt5_negotiated_settings(JNIEnv *env) {
1357 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/NegotiatedSettings");
1358 AWS_FATAL_ASSERT(cls);
1359 mqtt5_negotiated_settings_properties.negotiated_settings_class = (*env)->NewGlobalRef(env, cls);
1360 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_class);
1361 // Functions
1362 mqtt5_negotiated_settings_properties.negotiated_settings_constructor_id =
1363 (*env)->GetMethodID(env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "<init>", "()V");
1364 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_constructor_id);
1365 mqtt5_negotiated_settings_properties.negotiated_settings_native_set_qos_id = (*env)->GetMethodID(
1366 env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "nativeSetQOS", "(I)V");
1367 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_native_set_qos_id);
1368 // Field IDs
1369 mqtt5_negotiated_settings_properties.negotiated_settings_maximum_qos_field_id = (*env)->GetFieldID(
1370 env,
1371 mqtt5_negotiated_settings_properties.negotiated_settings_class,
1372 "maximumQOS",
1373 "Lsoftware/amazon/awssdk/crt/mqtt5/QOS;");
1374 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_maximum_qos_field_id);
1375 mqtt5_negotiated_settings_properties.negotiated_settings_session_expiry_interval_field_id = (*env)->GetFieldID(
1376 env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "sessionExpiryInterval", "J");
1377 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_session_expiry_interval_field_id);
1378 mqtt5_negotiated_settings_properties.negotiated_settings_receive_maximum_from_server_field_id = (*env)->GetFieldID(
1379 env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "receiveMaximumFromServer", "I");
1380 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_receive_maximum_from_server_field_id);
1381 mqtt5_negotiated_settings_properties.negotiated_settings_maximum_packet_size_to_server_field_id =
1382 (*env)->GetFieldID(
1383 env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "maximumPacketSizeToServer", "J");
1384 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_maximum_packet_size_to_server_field_id);
1385 mqtt5_negotiated_settings_properties.negotiated_settings_topic_alias_maximum_to_server_field_id =
1386 (*env)->GetFieldID(
1387 env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "topicAliasMaximumToServer", "I");
1388 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_topic_alias_maximum_to_server_field_id);
1389 mqtt5_negotiated_settings_properties.negotiated_settings_topic_alias_maximum_to_client_field_id =
1390 (*env)->GetFieldID(
1391 env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "topicAliasMaximumToClient", "I");
1392 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_topic_alias_maximum_to_client_field_id);
1393 mqtt5_negotiated_settings_properties.negotiated_settings_server_keep_alive_field_id =
1394 (*env)->GetFieldID(env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "serverKeepAlive", "I");
1395 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_server_keep_alive_field_id);
1396 mqtt5_negotiated_settings_properties.negotiated_settings_retain_available_field_id =
1397 (*env)->GetFieldID(env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "retainAvailable", "Z");
1398 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_retain_available_field_id);
1399 mqtt5_negotiated_settings_properties.negotiated_settings_wildcard_subscriptions_available_field_id =
1400 (*env)->GetFieldID(
1401 env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "wildcardSubscriptionsAvailable", "Z");
1402 AWS_FATAL_ASSERT(
1403 mqtt5_negotiated_settings_properties.negotiated_settings_wildcard_subscriptions_available_field_id);
1404 mqtt5_negotiated_settings_properties.negotiated_settings_subscription_identifiers_available_field_id =
1405 (*env)->GetFieldID(
1406 env,
1407 mqtt5_negotiated_settings_properties.negotiated_settings_class,
1408 "subscriptionIdentifiersAvailable",
1409 "Z");
1410 AWS_FATAL_ASSERT(
1411 mqtt5_negotiated_settings_properties.negotiated_settings_subscription_identifiers_available_field_id);
1412 mqtt5_negotiated_settings_properties.negotiated_settings_shared_subscriptions_available_field_id =
1413 (*env)->GetFieldID(
1414 env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "sharedSubscriptionsAvailable", "Z");
1415 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_shared_subscriptions_available_field_id);
1416 mqtt5_negotiated_settings_properties.negotiated_settings_rejoined_session_field_id =
1417 (*env)->GetFieldID(env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "rejoinedSession", "Z");
1418 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_rejoined_session_field_id);
1419 mqtt5_negotiated_settings_properties.negotiated_settings_assigned_client_id_field_id = (*env)->GetFieldID(
1420 env, mqtt5_negotiated_settings_properties.negotiated_settings_class, "assignedClientID", "Ljava/lang/String;");
1421 AWS_FATAL_ASSERT(mqtt5_negotiated_settings_properties.negotiated_settings_assigned_client_id_field_id);
1422 }
1423
1424 struct java_aws_http_proxy_options_properties http_proxy_options_properties;
1425
s_cache_http_proxy_options(JNIEnv * env)1426 static void s_cache_http_proxy_options(JNIEnv *env) {
1427 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/HttpProxyOptions");
1428 AWS_FATAL_ASSERT(cls);
1429 http_proxy_options_properties.http_proxy_options_class = (*env)->NewGlobalRef(env, cls);
1430 AWS_FATAL_ASSERT(http_proxy_options_properties.http_proxy_options_class);
1431 // Functions
1432 http_proxy_options_properties.proxy_get_connection_type_id = (*env)->GetMethodID(
1433 env,
1434 http_proxy_options_properties.http_proxy_options_class,
1435 "getConnectionType",
1436 "()Lsoftware/amazon/awssdk/crt/http/HttpProxyOptions$HttpProxyConnectionType;");
1437 AWS_FATAL_ASSERT(http_proxy_options_properties.proxy_get_connection_type_id);
1438 http_proxy_options_properties.proxy_get_proxy_host_id = (*env)->GetMethodID(
1439 env, http_proxy_options_properties.http_proxy_options_class, "getHost", "()Ljava/lang/String;");
1440 AWS_FATAL_ASSERT(http_proxy_options_properties.proxy_get_proxy_host_id);
1441 http_proxy_options_properties.proxy_get_proxy_port_id =
1442 (*env)->GetMethodID(env, http_proxy_options_properties.http_proxy_options_class, "getPort", "()I");
1443 AWS_FATAL_ASSERT(http_proxy_options_properties.proxy_get_proxy_port_id);
1444 http_proxy_options_properties.proxy_get_proxy_tls_context_id = (*env)->GetMethodID(
1445 env,
1446 http_proxy_options_properties.http_proxy_options_class,
1447 "getTlsContext",
1448 "()Lsoftware/amazon/awssdk/crt/io/TlsContext;");
1449 AWS_FATAL_ASSERT(http_proxy_options_properties.proxy_get_proxy_tls_context_id);
1450 http_proxy_options_properties.proxy_get_proxy_authorization_type_id = (*env)->GetMethodID(
1451 env,
1452 http_proxy_options_properties.http_proxy_options_class,
1453 "getAuthorizationType",
1454 "()Lsoftware/amazon/awssdk/crt/http/HttpProxyOptions$HttpProxyAuthorizationType;");
1455 AWS_FATAL_ASSERT(http_proxy_options_properties.proxy_get_proxy_authorization_type_id);
1456 http_proxy_options_properties.proxy_get_authorization_username_id = (*env)->GetMethodID(
1457 env,
1458 http_proxy_options_properties.http_proxy_options_class,
1459 "getAuthorizationUsername",
1460 "()Ljava/lang/String;");
1461 AWS_FATAL_ASSERT(http_proxy_options_properties.proxy_get_authorization_username_id);
1462 http_proxy_options_properties.proxy_get_authorization_password_id = (*env)->GetMethodID(
1463 env,
1464 http_proxy_options_properties.http_proxy_options_class,
1465 "getAuthorizationPassword",
1466 "()Ljava/lang/String;");
1467 AWS_FATAL_ASSERT(http_proxy_options_properties.proxy_get_authorization_password_id);
1468 }
1469
1470 struct java_aws_http_proxy_connection_type_properties http_proxy_connection_type_properties;
1471
s_cache_http_proxy_connection_type(JNIEnv * env)1472 static void s_cache_http_proxy_connection_type(JNIEnv *env) {
1473 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/http/HttpProxyOptions$HttpProxyConnectionType");
1474 AWS_FATAL_ASSERT(cls);
1475 http_proxy_connection_type_properties.http_proxy_connection_type_class = (*env)->NewGlobalRef(env, cls);
1476 AWS_FATAL_ASSERT(http_proxy_connection_type_properties.http_proxy_connection_type_class);
1477 // Functions
1478 http_proxy_connection_type_properties.proxy_get_value_id = (*env)->GetMethodID(
1479 env, http_proxy_connection_type_properties.http_proxy_connection_type_class, "getValue", "()I");
1480 AWS_FATAL_ASSERT(http_proxy_connection_type_properties.proxy_get_value_id);
1481 }
1482
1483 struct java_aws_mqtt5_client_options_properties mqtt5_client_options_properties;
1484
s_cache_mqtt5_client_options(JNIEnv * env)1485 static void s_cache_mqtt5_client_options(JNIEnv *env) {
1486 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions");
1487 AWS_FATAL_ASSERT(cls);
1488 mqtt5_client_options_properties.client_options_class = (*env)->NewGlobalRef(env, cls);
1489 AWS_FATAL_ASSERT(mqtt5_client_options_properties.client_options_class);
1490 // Functions
1491 mqtt5_client_options_properties.options_get_bootstrap_id = (*env)->GetMethodID(
1492 env,
1493 mqtt5_client_options_properties.client_options_class,
1494 "getBootstrap",
1495 "()Lsoftware/amazon/awssdk/crt/io/ClientBootstrap;");
1496 AWS_FATAL_ASSERT(mqtt5_client_options_properties.options_get_bootstrap_id);
1497 mqtt5_client_options_properties.options_get_socket_options_id = (*env)->GetMethodID(
1498 env,
1499 mqtt5_client_options_properties.client_options_class,
1500 "getSocketOptions",
1501 "()Lsoftware/amazon/awssdk/crt/io/SocketOptions;");
1502 AWS_FATAL_ASSERT(mqtt5_client_options_properties.options_get_socket_options_id);
1503 mqtt5_client_options_properties.options_get_tls_options_id = (*env)->GetMethodID(
1504 env,
1505 mqtt5_client_options_properties.client_options_class,
1506 "getTlsContext",
1507 "()Lsoftware/amazon/awssdk/crt/io/TlsContext;");
1508 AWS_FATAL_ASSERT(mqtt5_client_options_properties.options_get_tls_options_id);
1509 mqtt5_client_options_properties.options_get_session_behavior_id = (*env)->GetMethodID(
1510 env,
1511 mqtt5_client_options_properties.client_options_class,
1512 "getSessionBehavior",
1513 "()Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$ClientSessionBehavior;");
1514 AWS_FATAL_ASSERT(mqtt5_client_options_properties.options_get_session_behavior_id);
1515 mqtt5_client_options_properties.options_get_extended_validation_and_flow_control_options_id = (*env)->GetMethodID(
1516 env,
1517 mqtt5_client_options_properties.client_options_class,
1518 "getExtendedValidationAndFlowControlOptions",
1519 "()Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$ExtendedValidationAndFlowControlOptions;");
1520 AWS_FATAL_ASSERT(mqtt5_client_options_properties.options_get_extended_validation_and_flow_control_options_id);
1521 mqtt5_client_options_properties.options_get_offline_queue_behavior_id = (*env)->GetMethodID(
1522 env,
1523 mqtt5_client_options_properties.client_options_class,
1524 "getOfflineQueueBehavior",
1525 "()Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$ClientOfflineQueueBehavior;");
1526 AWS_FATAL_ASSERT(mqtt5_client_options_properties.options_get_offline_queue_behavior_id);
1527 mqtt5_client_options_properties.options_get_retry_jitter_mode_id = (*env)->GetMethodID(
1528 env,
1529 mqtt5_client_options_properties.client_options_class,
1530 "getRetryJitterMode",
1531 "()Lsoftware/amazon/awssdk/crt/io/ExponentialBackoffRetryOptions$JitterMode;");
1532 AWS_FATAL_ASSERT(mqtt5_client_options_properties.options_get_retry_jitter_mode_id);
1533 // Field IDs
1534 mqtt5_client_options_properties.options_host_name_field_id =
1535 (*env)->GetFieldID(env, mqtt5_client_options_properties.client_options_class, "hostName", "Ljava/lang/String;");
1536 AWS_FATAL_ASSERT(mqtt5_client_options_properties.options_host_name_field_id);
1537 mqtt5_client_options_properties.options_port_field_id =
1538 (*env)->GetFieldID(env, mqtt5_client_options_properties.client_options_class, "port", "Ljava/lang/Long;");
1539 AWS_FATAL_ASSERT(mqtt5_client_options_properties.options_port_field_id);
1540 mqtt5_client_options_properties.http_proxy_options_field_id = (*env)->GetFieldID(
1541 env,
1542 mqtt5_client_options_properties.client_options_class,
1543 "httpProxyOptions",
1544 "Lsoftware/amazon/awssdk/crt/http/HttpProxyOptions;");
1545 AWS_FATAL_ASSERT(mqtt5_client_options_properties.http_proxy_options_field_id);
1546 mqtt5_client_options_properties.session_behavior_field_id = (*env)->GetFieldID(
1547 env,
1548 mqtt5_client_options_properties.client_options_class,
1549 "sessionBehavior",
1550 "Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$ClientSessionBehavior;");
1551 AWS_FATAL_ASSERT(mqtt5_client_options_properties.session_behavior_field_id);
1552 mqtt5_client_options_properties.extended_validation_and_flow_control_options_field_id = (*env)->GetFieldID(
1553 env,
1554 mqtt5_client_options_properties.client_options_class,
1555 "extendedValidationAndFlowControlOptions",
1556 "Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$ExtendedValidationAndFlowControlOptions;");
1557 AWS_FATAL_ASSERT(mqtt5_client_options_properties.extended_validation_and_flow_control_options_field_id);
1558 mqtt5_client_options_properties.offline_queue_behavior_field_id = (*env)->GetFieldID(
1559 env,
1560 mqtt5_client_options_properties.client_options_class,
1561 "offlineQueueBehavior",
1562 "Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$ClientOfflineQueueBehavior;");
1563 AWS_FATAL_ASSERT(mqtt5_client_options_properties.offline_queue_behavior_field_id);
1564 mqtt5_client_options_properties.retry_jitter_mode_field_id = (*env)->GetFieldID(
1565 env,
1566 mqtt5_client_options_properties.client_options_class,
1567 "retryJitterMode",
1568 "Lsoftware/amazon/awssdk/crt/io/ExponentialBackoffRetryOptions$JitterMode;");
1569 AWS_FATAL_ASSERT(mqtt5_client_options_properties.retry_jitter_mode_field_id);
1570 mqtt5_client_options_properties.min_reconnect_delay_ms_field_id = (*env)->GetFieldID(
1571 env, mqtt5_client_options_properties.client_options_class, "minReconnectDelayMs", "Ljava/lang/Long;");
1572 AWS_FATAL_ASSERT(mqtt5_client_options_properties.min_reconnect_delay_ms_field_id);
1573 mqtt5_client_options_properties.max_reconnect_delay_ms_field_id = (*env)->GetFieldID(
1574 env, mqtt5_client_options_properties.client_options_class, "maxReconnectDelayMs", "Ljava/lang/Long;");
1575 AWS_FATAL_ASSERT(mqtt5_client_options_properties.max_reconnect_delay_ms_field_id);
1576 mqtt5_client_options_properties.min_connected_time_to_reset_reconnect_delay_ms_field_id = (*env)->GetFieldID(
1577 env,
1578 mqtt5_client_options_properties.client_options_class,
1579 "minConnectedTimeToResetReconnectDelayMs",
1580 "Ljava/lang/Long;");
1581 AWS_FATAL_ASSERT(mqtt5_client_options_properties.min_connected_time_to_reset_reconnect_delay_ms_field_id);
1582 mqtt5_client_options_properties.ping_timeout_ms_field_id = (*env)->GetFieldID(
1583 env, mqtt5_client_options_properties.client_options_class, "pingTimeoutMs", "Ljava/lang/Long;");
1584 AWS_FATAL_ASSERT(mqtt5_client_options_properties.ping_timeout_ms_field_id);
1585 mqtt5_client_options_properties.connack_timeout_ms_field_id = (*env)->GetFieldID(
1586 env, mqtt5_client_options_properties.client_options_class, "connackTimeoutMs", "Ljava/lang/Long;");
1587 AWS_FATAL_ASSERT(mqtt5_client_options_properties.connack_timeout_ms_field_id);
1588 mqtt5_client_options_properties.ack_timeout_seconds_field_id = (*env)->GetFieldID(
1589 env, mqtt5_client_options_properties.client_options_class, "ackTimeoutSeconds", "Ljava/lang/Long;");
1590 AWS_FATAL_ASSERT(mqtt5_client_options_properties.ack_timeout_seconds_field_id);
1591 mqtt5_client_options_properties.publish_events_field_id = (*env)->GetFieldID(
1592 env,
1593 mqtt5_client_options_properties.client_options_class,
1594 "publishEvents",
1595 "Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$PublishEvents;");
1596 AWS_FATAL_ASSERT(mqtt5_client_options_properties.publish_events_field_id);
1597 mqtt5_client_options_properties.lifecycle_events_field_id = (*env)->GetFieldID(
1598 env,
1599 mqtt5_client_options_properties.client_options_class,
1600 "lifecycleEvents",
1601 "Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$LifecycleEvents;");
1602 AWS_FATAL_ASSERT(mqtt5_client_options_properties.lifecycle_events_field_id);
1603 mqtt5_client_options_properties.topic_aliasing_options_field_id = (*env)->GetFieldID(
1604 env,
1605 mqtt5_client_options_properties.client_options_class,
1606 "topicAliasingOptions",
1607 "Lsoftware/amazon/awssdk/crt/mqtt5/TopicAliasingOptions;");
1608 AWS_FATAL_ASSERT(mqtt5_client_options_properties.topic_aliasing_options_field_id);
1609 }
1610
1611 struct java_aws_mqtt5_topic_aliasing_options_properties mqtt5_topic_aliasing_options_properties;
s_cache_topic_aliasing_options(JNIEnv * env)1612 static void s_cache_topic_aliasing_options(JNIEnv *env) {
1613 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/TopicAliasingOptions");
1614 AWS_FATAL_ASSERT(cls);
1615 mqtt5_topic_aliasing_options_properties.mqtt5_topic_aliasing_options_class = (*env)->NewGlobalRef(env, cls);
1616 AWS_FATAL_ASSERT(mqtt5_topic_aliasing_options_properties.mqtt5_topic_aliasing_options_class);
1617
1618 mqtt5_topic_aliasing_options_properties.outbound_behavior_field_id = (*env)->GetFieldID(
1619 env,
1620 mqtt5_topic_aliasing_options_properties.mqtt5_topic_aliasing_options_class,
1621 "outboundBehavior",
1622 "Lsoftware/amazon/awssdk/crt/mqtt5/TopicAliasingOptions$OutboundTopicAliasBehaviorType;");
1623 AWS_FATAL_ASSERT(mqtt5_topic_aliasing_options_properties.outbound_behavior_field_id);
1624
1625 mqtt5_topic_aliasing_options_properties.outbound_cache_max_size_field_id = (*env)->GetFieldID(
1626 env,
1627 mqtt5_topic_aliasing_options_properties.mqtt5_topic_aliasing_options_class,
1628 "outboundCacheMaxSize",
1629 "Ljava/lang/Integer;");
1630 AWS_FATAL_ASSERT(mqtt5_topic_aliasing_options_properties.outbound_cache_max_size_field_id);
1631
1632 mqtt5_topic_aliasing_options_properties.inbound_behavior_field_id = (*env)->GetFieldID(
1633 env,
1634 mqtt5_topic_aliasing_options_properties.mqtt5_topic_aliasing_options_class,
1635 "inboundBehavior",
1636 "Lsoftware/amazon/awssdk/crt/mqtt5/TopicAliasingOptions$InboundTopicAliasBehaviorType;");
1637 AWS_FATAL_ASSERT(mqtt5_topic_aliasing_options_properties.inbound_behavior_field_id);
1638
1639 mqtt5_topic_aliasing_options_properties.inbound_cache_max_size_field_id = (*env)->GetFieldID(
1640 env,
1641 mqtt5_topic_aliasing_options_properties.mqtt5_topic_aliasing_options_class,
1642 "inboundCacheMaxSize",
1643 "Ljava/lang/Integer;");
1644 AWS_FATAL_ASSERT(mqtt5_topic_aliasing_options_properties.inbound_cache_max_size_field_id);
1645 }
1646
1647 struct java_aws_mqtt5_client_properties mqtt5_client_properties;
1648
s_cache_mqtt5_client_properties(JNIEnv * env)1649 static void s_cache_mqtt5_client_properties(JNIEnv *env) {
1650 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/Mqtt5Client");
1651 AWS_FATAL_ASSERT(cls);
1652 mqtt5_client_properties.client_class = (*env)->NewGlobalRef(env, cls);
1653 AWS_FATAL_ASSERT(mqtt5_client_properties.client_class);
1654 // Functions
1655 mqtt5_client_properties.client_on_websocket_handshake_id = (*env)->GetMethodID(
1656 env,
1657 mqtt5_client_properties.client_class,
1658 "onWebsocketHandshake",
1659 "(Lsoftware/amazon/awssdk/crt/http/HttpRequest;J)V");
1660 AWS_FATAL_ASSERT(mqtt5_client_properties.client_on_websocket_handshake_id);
1661
1662 mqtt5_client_properties.client_set_is_connected =
1663 (*env)->GetMethodID(env, mqtt5_client_properties.client_class, "setIsConnected", "(Z)V");
1664 AWS_FATAL_ASSERT(mqtt5_client_properties.client_set_is_connected);
1665 // Field IDs
1666 mqtt5_client_properties.websocket_handshake_field_id = (*env)->GetFieldID(
1667 env, mqtt5_client_properties.client_class, "websocketHandshakeTransform", "Ljava/util/function/Consumer;");
1668 AWS_FATAL_ASSERT(mqtt5_client_properties.websocket_handshake_field_id);
1669 }
1670
1671 struct java_aws_mqtt5_client_operation_statistics_properties mqtt5_client_operation_statistics_properties;
1672
s_cache_mqtt5_client_operation_statistics_properties(JNIEnv * env)1673 static void s_cache_mqtt5_client_operation_statistics_properties(JNIEnv *env) {
1674 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/Mqtt5ClientOperationStatistics");
1675 AWS_FATAL_ASSERT(cls);
1676 mqtt5_client_operation_statistics_properties.statistics_class = (*env)->NewGlobalRef(env, cls);
1677 AWS_FATAL_ASSERT(mqtt5_client_operation_statistics_properties.statistics_class);
1678 // Functions
1679 mqtt5_client_operation_statistics_properties.statistics_constructor_id =
1680 (*env)->GetMethodID(env, mqtt5_client_operation_statistics_properties.statistics_class, "<init>", "()V");
1681 AWS_FATAL_ASSERT(mqtt5_client_operation_statistics_properties.statistics_constructor_id);
1682 // Field IDs
1683 mqtt5_client_operation_statistics_properties.incomplete_operation_count_field_id = (*env)->GetFieldID(
1684 env, mqtt5_client_operation_statistics_properties.statistics_class, "incompleteOperationCount", "J");
1685 AWS_FATAL_ASSERT(mqtt5_client_operation_statistics_properties.incomplete_operation_count_field_id);
1686 mqtt5_client_operation_statistics_properties.incomplete_operation_size_field_id = (*env)->GetFieldID(
1687 env, mqtt5_client_operation_statistics_properties.statistics_class, "incompleteOperationSize", "J");
1688 AWS_FATAL_ASSERT(mqtt5_client_operation_statistics_properties.incomplete_operation_size_field_id);
1689 mqtt5_client_operation_statistics_properties.unacked_operation_count_field_id = (*env)->GetFieldID(
1690 env, mqtt5_client_operation_statistics_properties.statistics_class, "unackedOperationCount", "J");
1691 AWS_FATAL_ASSERT(mqtt5_client_operation_statistics_properties.unacked_operation_count_field_id);
1692 mqtt5_client_operation_statistics_properties.unacked_operation_size_field_id = (*env)->GetFieldID(
1693 env, mqtt5_client_operation_statistics_properties.statistics_class, "unackedOperationSize", "J");
1694 AWS_FATAL_ASSERT(mqtt5_client_operation_statistics_properties.unacked_operation_size_field_id);
1695 }
1696
1697 struct java_aws_mqtt5_client_session_behavior_type_properties mqtt5_client_session_behavior_properties;
1698
s_cache_mqtt5_client_session_behavior(JNIEnv * env)1699 static void s_cache_mqtt5_client_session_behavior(JNIEnv *env) {
1700 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$ClientSessionBehavior");
1701 AWS_FATAL_ASSERT(cls);
1702 mqtt5_client_session_behavior_properties.mqtt5_client_session_behavior_class = (*env)->NewGlobalRef(env, cls);
1703 AWS_FATAL_ASSERT(mqtt5_client_session_behavior_properties.mqtt5_client_session_behavior_class);
1704 // Functions
1705 mqtt5_client_session_behavior_properties.client_get_value_id = (*env)->GetMethodID(
1706 env, mqtt5_client_session_behavior_properties.mqtt5_client_session_behavior_class, "getValue", "()I");
1707 AWS_FATAL_ASSERT(mqtt5_client_session_behavior_properties.client_get_value_id);
1708 }
1709
1710 struct java_aws_mqtt5_client_extended_validation_and_flow_control_options
1711 mqtt5_client_extended_validation_and_flow_control_options;
1712
s_cache_mqtt5_client_extended_validation_and_flow_control_options(JNIEnv * env)1713 static void s_cache_mqtt5_client_extended_validation_and_flow_control_options(JNIEnv *env) {
1714 jclass cls = (*env)->FindClass(
1715 env, "software/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$ExtendedValidationAndFlowControlOptions");
1716 AWS_FATAL_ASSERT(cls);
1717 mqtt5_client_extended_validation_and_flow_control_options
1718 .mqtt5_client_extended_validation_and_flow_control_options_class = (*env)->NewGlobalRef(env, cls);
1719 AWS_FATAL_ASSERT(mqtt5_client_extended_validation_and_flow_control_options
1720 .mqtt5_client_extended_validation_and_flow_control_options_class);
1721 // Functions
1722 mqtt5_client_extended_validation_and_flow_control_options.client_get_value_id = (*env)->GetMethodID(
1723 env,
1724 mqtt5_client_extended_validation_and_flow_control_options
1725 .mqtt5_client_extended_validation_and_flow_control_options_class,
1726 "getValue",
1727 "()I");
1728 AWS_FATAL_ASSERT(mqtt5_client_extended_validation_and_flow_control_options.client_get_value_id);
1729 }
1730
1731 struct java_aws_mqtt5_client_offline_queue_behavior_type_properties mqtt5_client_offline_queue_behavior_type_properties;
1732
s_cache_mqtt5_client_offline_queue_behavior_type(JNIEnv * env)1733 static void s_cache_mqtt5_client_offline_queue_behavior_type(JNIEnv *env) {
1734 jclass cls =
1735 (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$ClientOfflineQueueBehavior");
1736 AWS_FATAL_ASSERT(cls);
1737 mqtt5_client_offline_queue_behavior_type_properties.mqtt5_client_offline_queue_behavior_type_class =
1738 (*env)->NewGlobalRef(env, cls);
1739 AWS_FATAL_ASSERT(
1740 mqtt5_client_offline_queue_behavior_type_properties.mqtt5_client_offline_queue_behavior_type_class);
1741 // Functions
1742 mqtt5_client_offline_queue_behavior_type_properties.client_get_value_id = (*env)->GetMethodID(
1743 env,
1744 mqtt5_client_offline_queue_behavior_type_properties.mqtt5_client_offline_queue_behavior_type_class,
1745 "getValue",
1746 "()I");
1747 AWS_FATAL_ASSERT(mqtt5_client_offline_queue_behavior_type_properties.client_get_value_id);
1748 }
1749
1750 struct java_aws_mqtt5_client_jitter_mode_properties mqtt5_client_jitter_mode_properties;
1751
s_cache_mqtt5_client_jitter_mode(JNIEnv * env)1752 static void s_cache_mqtt5_client_jitter_mode(JNIEnv *env) {
1753 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/io/ExponentialBackoffRetryOptions$JitterMode");
1754 AWS_FATAL_ASSERT(cls);
1755 mqtt5_client_jitter_mode_properties.mqtt5_client_jitter_mode_class = (*env)->NewGlobalRef(env, cls);
1756 AWS_FATAL_ASSERT(mqtt5_client_jitter_mode_properties.mqtt5_client_jitter_mode_class);
1757 // Functions
1758 mqtt5_client_jitter_mode_properties.client_get_value_id =
1759 (*env)->GetMethodID(env, mqtt5_client_jitter_mode_properties.mqtt5_client_jitter_mode_class, "getValue", "()I");
1760 AWS_FATAL_ASSERT(mqtt5_client_jitter_mode_properties.client_get_value_id);
1761 }
1762
1763 struct java_aws_mqtt5_outbound_topic_alias_behavior_type_properties mqtt5_outbound_topic_alias_behavior_type_properties;
1764
s_cache_mqtt5_outbound_topic_alias_behavior_type(JNIEnv * env)1765 static void s_cache_mqtt5_outbound_topic_alias_behavior_type(JNIEnv *env) {
1766 jclass cls =
1767 (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/TopicAliasingOptions$OutboundTopicAliasBehaviorType");
1768 AWS_FATAL_ASSERT(cls);
1769 mqtt5_outbound_topic_alias_behavior_type_properties.mqtt5_outbound_topic_alias_behavior_type_class =
1770 (*env)->NewGlobalRef(env, cls);
1771 AWS_FATAL_ASSERT(
1772 mqtt5_outbound_topic_alias_behavior_type_properties.mqtt5_outbound_topic_alias_behavior_type_class);
1773 // Functions
1774 mqtt5_outbound_topic_alias_behavior_type_properties.get_value_method_id = (*env)->GetMethodID(
1775 env,
1776 mqtt5_outbound_topic_alias_behavior_type_properties.mqtt5_outbound_topic_alias_behavior_type_class,
1777 "getValue",
1778 "()I");
1779 AWS_FATAL_ASSERT(mqtt5_outbound_topic_alias_behavior_type_properties.get_value_method_id);
1780 }
1781
1782 struct java_aws_mqtt5_inbound_topic_alias_behavior_type_properties mqtt5_inbound_topic_alias_behavior_type_properties;
1783
s_cache_mqtt5_inbound_topic_alias_behavior_type(JNIEnv * env)1784 static void s_cache_mqtt5_inbound_topic_alias_behavior_type(JNIEnv *env) {
1785 jclass cls =
1786 (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/TopicAliasingOptions$InboundTopicAliasBehaviorType");
1787 AWS_FATAL_ASSERT(cls);
1788 mqtt5_inbound_topic_alias_behavior_type_properties.mqtt5_inbound_topic_alias_behavior_type_class =
1789 (*env)->NewGlobalRef(env, cls);
1790 AWS_FATAL_ASSERT(mqtt5_inbound_topic_alias_behavior_type_properties.mqtt5_inbound_topic_alias_behavior_type_class);
1791 // Functions
1792 mqtt5_inbound_topic_alias_behavior_type_properties.get_value_method_id = (*env)->GetMethodID(
1793 env,
1794 mqtt5_inbound_topic_alias_behavior_type_properties.mqtt5_inbound_topic_alias_behavior_type_class,
1795 "getValue",
1796 "()I");
1797 AWS_FATAL_ASSERT(mqtt5_inbound_topic_alias_behavior_type_properties.get_value_method_id);
1798 }
1799
1800 struct java_aws_mqtt5_subscribe_packet_properties mqtt5_subscribe_packet_properties;
1801
s_cache_mqtt5_subscribe_packet(JNIEnv * env)1802 static void s_cache_mqtt5_subscribe_packet(JNIEnv *env) {
1803 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/SubscribePacket");
1804 AWS_FATAL_ASSERT(cls);
1805 mqtt5_subscribe_packet_properties.subscribe_packet_class = (*env)->NewGlobalRef(env, cls);
1806 AWS_FATAL_ASSERT(mqtt5_subscribe_packet_properties.subscribe_packet_class);
1807 // Functions
1808 mqtt5_subscribe_packet_properties.subscribe_subscriptions_field_id = (*env)->GetFieldID(
1809 env, mqtt5_subscribe_packet_properties.subscribe_packet_class, "subscriptions", "Ljava/util/List;");
1810 AWS_FATAL_ASSERT(mqtt5_subscribe_packet_properties.subscribe_subscriptions_field_id);
1811 mqtt5_subscribe_packet_properties.subscribe_subscription_identifier_field_id = (*env)->GetFieldID(
1812 env, mqtt5_subscribe_packet_properties.subscribe_packet_class, "subscriptionIdentifier", "Ljava/lang/Long;");
1813 AWS_FATAL_ASSERT(mqtt5_subscribe_packet_properties.subscribe_subscription_identifier_field_id);
1814 mqtt5_subscribe_packet_properties.subscribe_user_properties_field_id = (*env)->GetFieldID(
1815 env, mqtt5_subscribe_packet_properties.subscribe_packet_class, "userProperties", "Ljava/util/List;");
1816 AWS_FATAL_ASSERT(mqtt5_subscribe_packet_properties.subscribe_user_properties_field_id);
1817 }
1818
1819 struct java_aws_mqtt5_subscription_properties mqtt5_subscription_properties;
1820
s_cache_mqtt5_subscribe_subscription(JNIEnv * env)1821 static void s_cache_mqtt5_subscribe_subscription(JNIEnv *env) {
1822 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/SubscribePacket$Subscription");
1823 AWS_FATAL_ASSERT(cls);
1824 mqtt5_subscription_properties.subscribe_subscription_class = (*env)->NewGlobalRef(env, cls);
1825 AWS_FATAL_ASSERT(mqtt5_subscription_properties.subscribe_subscription_class);
1826
1827 // Field IDs
1828 mqtt5_subscription_properties.subscribe_no_local_field_id = (*env)->GetFieldID(
1829 env, mqtt5_subscription_properties.subscribe_subscription_class, "noLocal", "Ljava/lang/Boolean;");
1830 AWS_FATAL_ASSERT(mqtt5_subscription_properties.subscribe_no_local_field_id);
1831 mqtt5_subscription_properties.subscribe_retain_as_published_field_id = (*env)->GetFieldID(
1832 env, mqtt5_subscription_properties.subscribe_subscription_class, "retainAsPublished", "Ljava/lang/Boolean;");
1833 AWS_FATAL_ASSERT(mqtt5_subscription_properties.subscribe_retain_as_published_field_id);
1834 // Functions
1835 mqtt5_subscription_properties.subscribe_get_topic_filter_id = (*env)->GetMethodID(
1836 env, mqtt5_subscription_properties.subscribe_subscription_class, "getTopicFilter", "()Ljava/lang/String;");
1837 AWS_FATAL_ASSERT(mqtt5_subscription_properties.subscribe_get_topic_filter_id);
1838 mqtt5_subscription_properties.subscribe_get_qos_id = (*env)->GetMethodID(
1839 env,
1840 mqtt5_subscription_properties.subscribe_subscription_class,
1841 "getQOS",
1842 "()Lsoftware/amazon/awssdk/crt/mqtt5/QOS;");
1843 AWS_FATAL_ASSERT(mqtt5_subscription_properties.subscribe_get_qos_id);
1844 mqtt5_subscription_properties.subscribe_get_no_local_id = (*env)->GetMethodID(
1845 env, mqtt5_subscription_properties.subscribe_subscription_class, "getNoLocal", "()Ljava/lang/Boolean;");
1846 AWS_FATAL_ASSERT(mqtt5_subscription_properties.subscribe_get_no_local_id);
1847 mqtt5_subscription_properties.subscribe_get_retain_as_published_id = (*env)->GetMethodID(
1848 env,
1849 mqtt5_subscription_properties.subscribe_subscription_class,
1850 "getRetainAsPublished",
1851 "()Ljava/lang/Boolean;");
1852 AWS_FATAL_ASSERT(mqtt5_subscription_properties.subscribe_get_retain_as_published_id);
1853 mqtt5_subscription_properties.subscribe_get_retain_handling_type_id = (*env)->GetMethodID(
1854 env,
1855 mqtt5_subscription_properties.subscribe_subscription_class,
1856 "getRetainHandlingType",
1857 "()Lsoftware/amazon/awssdk/crt/mqtt5/packets/SubscribePacket$RetainHandlingType;");
1858 AWS_FATAL_ASSERT(mqtt5_subscription_properties.subscribe_get_retain_handling_type_id);
1859 }
1860
1861 struct java_aws_mqtt5_packet_qos_properties mqtt5_packet_qos_properties;
1862
s_cache_mqtt5_packet_qos(JNIEnv * env)1863 static void s_cache_mqtt5_packet_qos(JNIEnv *env) {
1864 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/QOS");
1865 AWS_FATAL_ASSERT(cls);
1866 mqtt5_packet_qos_properties.packet_qos_class = (*env)->NewGlobalRef(env, cls);
1867 AWS_FATAL_ASSERT(mqtt5_packet_qos_properties.packet_qos_class);
1868 // Functions
1869 mqtt5_packet_qos_properties.qos_get_value_id =
1870 (*env)->GetMethodID(env, mqtt5_packet_qos_properties.packet_qos_class, "getValue", "()I");
1871 AWS_FATAL_ASSERT(mqtt5_packet_qos_properties.qos_get_value_id);
1872 // Static functions
1873 mqtt5_packet_qos_properties.qos_s_get_enum_value_from_integer_id = (*env)->GetStaticMethodID(
1874 env,
1875 mqtt5_packet_qos_properties.packet_qos_class,
1876 "getEnumValueFromInteger",
1877 "(I)Lsoftware/amazon/awssdk/crt/mqtt5/QOS;");
1878 AWS_FATAL_ASSERT(mqtt5_packet_qos_properties.qos_s_get_enum_value_from_integer_id);
1879 }
1880
1881 struct java_aws_mqtt5_retain_handling_type_properties mqtt5_retain_handling_type_properties;
1882
s_cache_mqtt5_retain_handling_type(JNIEnv * env)1883 static void s_cache_mqtt5_retain_handling_type(JNIEnv *env) {
1884 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/SubscribePacket$RetainHandlingType");
1885 AWS_FATAL_ASSERT(cls);
1886 mqtt5_retain_handling_type_properties.retain_handling_type_class = (*env)->NewGlobalRef(env, cls);
1887 AWS_FATAL_ASSERT(mqtt5_retain_handling_type_properties.retain_handling_type_class);
1888 // Functions
1889 mqtt5_retain_handling_type_properties.retain_get_value_id =
1890 (*env)->GetMethodID(env, mqtt5_retain_handling_type_properties.retain_handling_type_class, "getValue", "()I");
1891 AWS_FATAL_ASSERT(mqtt5_retain_handling_type_properties.retain_get_value_id);
1892 }
1893
1894 struct java_aws_mqtt5_suback_reason_code_properties mqtt5_suback_reason_code_properties;
1895
s_cache_mqtt5_suback_reason_code(JNIEnv * env)1896 static void s_cache_mqtt5_suback_reason_code(JNIEnv *env) {
1897 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/SubAckPacket$SubAckReasonCode");
1898 AWS_FATAL_ASSERT(cls);
1899 mqtt5_suback_reason_code_properties.reason_code_class = (*env)->NewGlobalRef(env, cls);
1900 AWS_FATAL_ASSERT(mqtt5_suback_reason_code_properties.reason_code_class);
1901 // Functions
1902 mqtt5_suback_reason_code_properties.reason_get_value_id =
1903 (*env)->GetMethodID(env, mqtt5_suback_reason_code_properties.reason_code_class, "getValue", "()I");
1904 AWS_FATAL_ASSERT(mqtt5_suback_reason_code_properties.reason_get_value_id);
1905 // Static functions
1906 mqtt5_suback_reason_code_properties.reason_s_get_enum_value_from_integer_id = (*env)->GetStaticMethodID(
1907 env,
1908 mqtt5_suback_reason_code_properties.reason_code_class,
1909 "getEnumValueFromInteger",
1910 "(I)Lsoftware/amazon/awssdk/crt/mqtt5/packets/SubAckPacket$SubAckReasonCode;");
1911 AWS_FATAL_ASSERT(mqtt5_suback_reason_code_properties.reason_s_get_enum_value_from_integer_id);
1912 }
1913
1914 struct java_aws_mqtt5_packet_suback_properties mqtt5_suback_packet_properties;
1915
s_cache_mqtt5_suback_packet(JNIEnv * env)1916 static void s_cache_mqtt5_suback_packet(JNIEnv *env) {
1917 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/SubAckPacket");
1918 AWS_FATAL_ASSERT(cls);
1919 mqtt5_suback_packet_properties.suback_packet_class = (*env)->NewGlobalRef(env, cls);
1920 AWS_FATAL_ASSERT(mqtt5_suback_packet_properties.suback_packet_class);
1921 // Functions
1922 mqtt5_suback_packet_properties.suback_constructor_id =
1923 (*env)->GetMethodID(env, mqtt5_suback_packet_properties.suback_packet_class, "<init>", "()V");
1924 AWS_FATAL_ASSERT(mqtt5_suback_packet_properties.suback_constructor_id);
1925
1926 mqtt5_suback_packet_properties.suback_native_add_suback_code_id =
1927 (*env)->GetMethodID(env, mqtt5_suback_packet_properties.suback_packet_class, "nativeAddSubackCode", "(I)V");
1928 AWS_FATAL_ASSERT(mqtt5_suback_packet_properties.suback_native_add_suback_code_id);
1929 // Field IDs
1930 mqtt5_suback_packet_properties.suback_reason_string_field_id = (*env)->GetFieldID(
1931 env, mqtt5_suback_packet_properties.suback_packet_class, "reasonString", "Ljava/lang/String;");
1932 AWS_FATAL_ASSERT(mqtt5_suback_packet_properties.suback_reason_string_field_id);
1933 mqtt5_suback_packet_properties.suback_reason_codes_field_id =
1934 (*env)->GetFieldID(env, mqtt5_suback_packet_properties.suback_packet_class, "reasonCodes", "Ljava/util/List;");
1935 AWS_FATAL_ASSERT(mqtt5_suback_packet_properties.suback_reason_codes_field_id);
1936 mqtt5_suback_packet_properties.suback_user_properties_field_id = (*env)->GetFieldID(
1937 env, mqtt5_suback_packet_properties.suback_packet_class, "userProperties", "Ljava/util/List;");
1938 AWS_FATAL_ASSERT(mqtt5_suback_packet_properties.suback_user_properties_field_id);
1939 }
1940
1941 struct java_aws_mqtt5_packet_unsubscribe_properties mqtt5_unsubscribe_packet_properties;
1942
s_cache_mqtt5_unsubscribe_packet(JNIEnv * env)1943 static void s_cache_mqtt5_unsubscribe_packet(JNIEnv *env) {
1944 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/UnsubscribePacket");
1945 AWS_FATAL_ASSERT(cls);
1946 mqtt5_unsubscribe_packet_properties.unsubscribe_packet_class = (*env)->NewGlobalRef(env, cls);
1947 AWS_FATAL_ASSERT(mqtt5_unsubscribe_packet_properties.unsubscribe_packet_class);
1948 // Field IDs
1949 mqtt5_unsubscribe_packet_properties.unsubscribe_subscriptions_field_id = (*env)->GetFieldID(
1950 env, mqtt5_unsubscribe_packet_properties.unsubscribe_packet_class, "subscriptions", "Ljava/util/List;");
1951 AWS_FATAL_ASSERT(mqtt5_unsubscribe_packet_properties.unsubscribe_subscriptions_field_id);
1952 mqtt5_unsubscribe_packet_properties.unsubscribe_user_properties_field_id = (*env)->GetFieldID(
1953 env, mqtt5_unsubscribe_packet_properties.unsubscribe_packet_class, "userProperties", "Ljava/util/List;");
1954 AWS_FATAL_ASSERT(mqtt5_unsubscribe_packet_properties.unsubscribe_user_properties_field_id);
1955 }
1956
1957 struct java_aws_mqtt5_packet_unsuback_properties mqtt5_unsuback_packet_properties;
1958
s_cache_mqtt5_unsuback_packet(JNIEnv * env)1959 static void s_cache_mqtt5_unsuback_packet(JNIEnv *env) {
1960 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/UnsubAckPacket");
1961 AWS_FATAL_ASSERT(cls);
1962 mqtt5_unsuback_packet_properties.unsuback_packet_class = (*env)->NewGlobalRef(env, cls);
1963 AWS_FATAL_ASSERT(mqtt5_unsuback_packet_properties.unsuback_packet_class);
1964 // Functions
1965 mqtt5_unsuback_packet_properties.unsuback_constructor_id =
1966 (*env)->GetMethodID(env, mqtt5_unsuback_packet_properties.unsuback_packet_class, "<init>", "()V");
1967 AWS_FATAL_ASSERT(mqtt5_unsuback_packet_properties.unsuback_constructor_id);
1968
1969 mqtt5_unsuback_packet_properties.unsuback_native_add_unsuback_code_id = (*env)->GetMethodID(
1970 env, mqtt5_unsuback_packet_properties.unsuback_packet_class, "nativeAddUnsubackCode", "(I)V");
1971 AWS_FATAL_ASSERT(mqtt5_unsuback_packet_properties.unsuback_native_add_unsuback_code_id);
1972 // Field IDs
1973 mqtt5_unsuback_packet_properties.unsuback_reason_string_field_id = (*env)->GetFieldID(
1974 env, mqtt5_unsuback_packet_properties.unsuback_packet_class, "reasonString", "Ljava/lang/String;");
1975 AWS_FATAL_ASSERT(mqtt5_unsuback_packet_properties.unsuback_reason_string_field_id);
1976 mqtt5_unsuback_packet_properties.unsuback_reason_codes_field_id = (*env)->GetFieldID(
1977 env, mqtt5_unsuback_packet_properties.unsuback_packet_class, "reasonCodes", "Ljava/util/List;");
1978 AWS_FATAL_ASSERT(mqtt5_unsuback_packet_properties.unsuback_reason_codes_field_id);
1979 mqtt5_unsuback_packet_properties.unsuback_user_properties_field_id = (*env)->GetFieldID(
1980 env, mqtt5_unsuback_packet_properties.unsuback_packet_class, "userProperties", "Ljava/util/List;");
1981 AWS_FATAL_ASSERT(mqtt5_unsuback_packet_properties.unsuback_user_properties_field_id);
1982 }
1983
1984 struct java_aws_mqtt5_unsuback_reason_code_properties mqtt5_unsuback_reason_code_properties;
1985
s_cache_mqtt5_unsuback_reason_code(JNIEnv * env)1986 static void s_cache_mqtt5_unsuback_reason_code(JNIEnv *env) {
1987 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/UnsubAckPacket$UnsubAckReasonCode");
1988 AWS_FATAL_ASSERT(cls);
1989 mqtt5_unsuback_reason_code_properties.reason_code_class = (*env)->NewGlobalRef(env, cls);
1990 AWS_FATAL_ASSERT(mqtt5_unsuback_reason_code_properties.reason_code_class);
1991 // Functions
1992 mqtt5_unsuback_reason_code_properties.reason_get_value_id =
1993 (*env)->GetMethodID(env, mqtt5_unsuback_reason_code_properties.reason_code_class, "getValue", "()I");
1994 AWS_FATAL_ASSERT(mqtt5_unsuback_reason_code_properties.reason_get_value_id);
1995 // Static functions
1996 mqtt5_unsuback_reason_code_properties.reason_s_get_enum_value_from_integer_id = (*env)->GetStaticMethodID(
1997 env,
1998 mqtt5_unsuback_reason_code_properties.reason_code_class,
1999 "getEnumValueFromInteger",
2000 "(I)Lsoftware/amazon/awssdk/crt/mqtt5/packets/UnsubAckPacket$UnsubAckReasonCode;");
2001 AWS_FATAL_ASSERT(mqtt5_unsuback_reason_code_properties.reason_s_get_enum_value_from_integer_id);
2002 }
2003
2004 struct java_aws_mqtt5_user_property_properties mqtt5_user_property_properties;
2005
s_cache_mqtt5_user_property(JNIEnv * env)2006 static void s_cache_mqtt5_user_property(JNIEnv *env) {
2007 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/packets/UserProperty");
2008 AWS_FATAL_ASSERT(cls);
2009 mqtt5_user_property_properties.user_property_class = (*env)->NewGlobalRef(env, cls);
2010 AWS_FATAL_ASSERT(mqtt5_user_property_properties.user_property_class);
2011 // Functions
2012 mqtt5_user_property_properties.property_constructor_id = (*env)->GetMethodID(
2013 env, mqtt5_user_property_properties.user_property_class, "<init>", "(Ljava/lang/String;Ljava/lang/String;)V");
2014 AWS_FATAL_ASSERT(mqtt5_user_property_properties.property_constructor_id);
2015 // Field IDs
2016 mqtt5_user_property_properties.property_key_id =
2017 (*env)->GetFieldID(env, mqtt5_user_property_properties.user_property_class, "key", "Ljava/lang/String;");
2018 AWS_FATAL_ASSERT(mqtt5_user_property_properties.property_key_id);
2019 mqtt5_user_property_properties.property_value_id =
2020 (*env)->GetFieldID(env, mqtt5_user_property_properties.user_property_class, "value", "Ljava/lang/String;");
2021 AWS_FATAL_ASSERT(mqtt5_user_property_properties.property_value_id);
2022 }
2023
2024 struct java_aws_mqtt5_publish_events mqtt5_publish_events_properties;
2025
s_cache_mqtt5_publish_events_properties(JNIEnv * env)2026 static void s_cache_mqtt5_publish_events_properties(JNIEnv *env) {
2027 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$PublishEvents");
2028 AWS_FATAL_ASSERT(cls);
2029 mqtt5_publish_events_properties.publish_events_class = (*env)->NewGlobalRef(env, cls);
2030 AWS_FATAL_ASSERT(mqtt5_publish_events_properties.publish_events_class);
2031 // Functions
2032 mqtt5_publish_events_properties.publish_events_publish_received_id = (*env)->GetMethodID(
2033 env,
2034 mqtt5_publish_events_properties.publish_events_class,
2035 "onMessageReceived",
2036 "(Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5Client;Lsoftware/amazon/awssdk/crt/mqtt5/PublishReturn;)V");
2037 AWS_FATAL_ASSERT(mqtt5_publish_events_properties.publish_events_publish_received_id);
2038 }
2039
2040 struct java_aws_mqtt5_lifecycle_events mqtt5_lifecycle_events_properties;
2041
s_cache_mqtt5_lifecycle_events_properties(JNIEnv * env)2042 static void s_cache_mqtt5_lifecycle_events_properties(JNIEnv *env) {
2043 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/Mqtt5ClientOptions$LifecycleEvents");
2044 AWS_FATAL_ASSERT(cls);
2045 mqtt5_lifecycle_events_properties.lifecycle_events_class = (*env)->NewGlobalRef(env, cls);
2046 AWS_FATAL_ASSERT(mqtt5_lifecycle_events_properties.lifecycle_events_class);
2047 // Functions
2048 mqtt5_lifecycle_events_properties.lifecycle_attempting_connect_id = (*env)->GetMethodID(
2049 env,
2050 mqtt5_lifecycle_events_properties.lifecycle_events_class,
2051 "onAttemptingConnect",
2052 "(Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5Client;Lsoftware/amazon/awssdk/crt/mqtt5/"
2053 "OnAttemptingConnectReturn;)V");
2054 AWS_FATAL_ASSERT(mqtt5_lifecycle_events_properties.lifecycle_attempting_connect_id);
2055 mqtt5_lifecycle_events_properties.lifecycle_connection_success_id = (*env)->GetMethodID(
2056 env,
2057 mqtt5_lifecycle_events_properties.lifecycle_events_class,
2058 "onConnectionSuccess",
2059 "(Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5Client;Lsoftware/amazon/awssdk/crt/mqtt5/"
2060 "OnConnectionSuccessReturn;)V");
2061 AWS_FATAL_ASSERT(mqtt5_lifecycle_events_properties.lifecycle_connection_success_id);
2062 mqtt5_lifecycle_events_properties.lifecycle_connection_failure_id = (*env)->GetMethodID(
2063 env,
2064 mqtt5_lifecycle_events_properties.lifecycle_events_class,
2065 "onConnectionFailure",
2066 "(Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5Client;Lsoftware/amazon/awssdk/crt/mqtt5/"
2067 "OnConnectionFailureReturn;)V");
2068 AWS_FATAL_ASSERT(mqtt5_lifecycle_events_properties.lifecycle_connection_failure_id);
2069 mqtt5_lifecycle_events_properties.lifecycle_disconnection_id = (*env)->GetMethodID(
2070 env,
2071 mqtt5_lifecycle_events_properties.lifecycle_events_class,
2072 "onDisconnection",
2073 "(Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5Client;Lsoftware/amazon/awssdk/crt/mqtt5/OnDisconnectionReturn;)V");
2074 AWS_FATAL_ASSERT(mqtt5_lifecycle_events_properties.lifecycle_disconnection_id);
2075 mqtt5_lifecycle_events_properties.lifecycle_stopped_id = (*env)->GetMethodID(
2076 env,
2077 mqtt5_lifecycle_events_properties.lifecycle_events_class,
2078 "onStopped",
2079 "(Lsoftware/amazon/awssdk/crt/mqtt5/Mqtt5Client;Lsoftware/amazon/awssdk/crt/mqtt5/OnStoppedReturn;)V");
2080 AWS_FATAL_ASSERT(mqtt5_lifecycle_events_properties.lifecycle_stopped_id);
2081 }
2082
2083 struct java_aws_mqtt5_publish_result_properties mqtt5_publish_result_properties;
2084
s_cache_mqtt5_puback_result(JNIEnv * env)2085 static void s_cache_mqtt5_puback_result(JNIEnv *env) {
2086 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/PublishResult");
2087 AWS_FATAL_ASSERT(cls);
2088 mqtt5_publish_result_properties.result_class = (*env)->NewGlobalRef(env, cls);
2089 AWS_FATAL_ASSERT(mqtt5_publish_result_properties.result_class);
2090 // Functions
2091 mqtt5_publish_result_properties.result_constructor_id =
2092 (*env)->GetMethodID(env, mqtt5_publish_result_properties.result_class, "<init>", "()V");
2093 AWS_FATAL_ASSERT(mqtt5_publish_result_properties.result_constructor_id);
2094 mqtt5_publish_result_properties.result_puback_constructor_id = (*env)->GetMethodID(
2095 env,
2096 mqtt5_publish_result_properties.result_class,
2097 "<init>",
2098 "(Lsoftware/amazon/awssdk/crt/mqtt5/packets/PubAckPacket;)V");
2099 AWS_FATAL_ASSERT(mqtt5_publish_result_properties.result_puback_constructor_id);
2100 }
2101
2102 struct java_aws_mqtt5_publish_return_properties mqtt5_publish_return_properties;
2103
s_cache_mqtt5_publish_return(JNIEnv * env)2104 static void s_cache_mqtt5_publish_return(JNIEnv *env) {
2105 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/PublishReturn");
2106 AWS_FATAL_ASSERT(cls);
2107 mqtt5_publish_return_properties.return_class = (*env)->NewGlobalRef(env, cls);
2108 AWS_FATAL_ASSERT(mqtt5_publish_return_properties.return_class);
2109 // Functions
2110 mqtt5_publish_return_properties.return_constructor_id = (*env)->GetMethodID(
2111 env,
2112 mqtt5_publish_return_properties.return_class,
2113 "<init>",
2114 "(Lsoftware/amazon/awssdk/crt/mqtt5/packets/PublishPacket;)V");
2115 AWS_FATAL_ASSERT(mqtt5_publish_return_properties.return_constructor_id);
2116 }
2117
2118 struct java_aws_mqtt5_on_stopped_return_properties mqtt5_on_stopped_return_properties;
2119
s_cache_mqtt5_on_stopped_return(JNIEnv * env)2120 static void s_cache_mqtt5_on_stopped_return(JNIEnv *env) {
2121 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/OnStoppedReturn");
2122 AWS_FATAL_ASSERT(cls);
2123 mqtt5_on_stopped_return_properties.return_class = (*env)->NewGlobalRef(env, cls);
2124 AWS_FATAL_ASSERT(mqtt5_on_stopped_return_properties.return_class);
2125 // Functions
2126 mqtt5_on_stopped_return_properties.return_constructor_id =
2127 (*env)->GetMethodID(env, mqtt5_on_stopped_return_properties.return_class, "<init>", "()V");
2128 AWS_FATAL_ASSERT(mqtt5_on_stopped_return_properties.return_constructor_id);
2129 }
2130
2131 struct java_aws_mqtt5_on_attempting_connect_return_properties mqtt5_on_attempting_connect_return_properties;
2132
s_cache_mqtt5_on_attempting_connect_return(JNIEnv * env)2133 static void s_cache_mqtt5_on_attempting_connect_return(JNIEnv *env) {
2134 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/OnAttemptingConnectReturn");
2135 AWS_FATAL_ASSERT(cls);
2136 mqtt5_on_attempting_connect_return_properties.return_class = (*env)->NewGlobalRef(env, cls);
2137 AWS_FATAL_ASSERT(mqtt5_on_attempting_connect_return_properties.return_class);
2138 // Functions
2139 mqtt5_on_attempting_connect_return_properties.return_constructor_id =
2140 (*env)->GetMethodID(env, mqtt5_on_attempting_connect_return_properties.return_class, "<init>", "()V");
2141 AWS_FATAL_ASSERT(mqtt5_on_attempting_connect_return_properties.return_constructor_id);
2142 }
2143
2144 struct java_aws_mqtt5_on_connection_success_return_properties mqtt5_on_connection_success_return_properties;
2145
s_cache_mqtt5_on_connection_success_return(JNIEnv * env)2146 static void s_cache_mqtt5_on_connection_success_return(JNIEnv *env) {
2147 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/OnConnectionSuccessReturn");
2148 AWS_FATAL_ASSERT(cls);
2149 mqtt5_on_connection_success_return_properties.return_class = (*env)->NewGlobalRef(env, cls);
2150 AWS_FATAL_ASSERT(mqtt5_on_connection_success_return_properties.return_class);
2151 // Functions
2152 mqtt5_on_connection_success_return_properties.return_constructor_id = (*env)->GetMethodID(
2153 env,
2154 mqtt5_on_connection_success_return_properties.return_class,
2155 "<init>",
2156 "(Lsoftware/amazon/awssdk/crt/mqtt5/packets/ConnAckPacket;Lsoftware/amazon/awssdk/crt/mqtt5/"
2157 "NegotiatedSettings;)V");
2158 AWS_FATAL_ASSERT(mqtt5_on_connection_success_return_properties.return_constructor_id);
2159 }
2160
2161 struct java_aws_mqtt5_on_connection_failure_return_properties mqtt5_on_connection_failure_return_properties;
2162
s_cache_mqtt5_on_connection_failure_return(JNIEnv * env)2163 static void s_cache_mqtt5_on_connection_failure_return(JNIEnv *env) {
2164 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/OnConnectionFailureReturn");
2165 AWS_FATAL_ASSERT(cls);
2166 mqtt5_on_connection_failure_return_properties.return_class = (*env)->NewGlobalRef(env, cls);
2167 AWS_FATAL_ASSERT(mqtt5_on_connection_failure_return_properties.return_class);
2168 // Functions
2169 mqtt5_on_connection_failure_return_properties.return_constructor_id = (*env)->GetMethodID(
2170 env,
2171 mqtt5_on_connection_failure_return_properties.return_class,
2172 "<init>",
2173 "(ILsoftware/amazon/awssdk/crt/mqtt5/packets/ConnAckPacket;)V");
2174 AWS_FATAL_ASSERT(mqtt5_on_connection_failure_return_properties.return_constructor_id);
2175 }
2176
2177 struct java_aws_mqtt5_on_disconnection_return_properties mqtt5_on_disconnection_return_properties;
2178
s_cache_mqtt5_on_disconnection_return(JNIEnv * env)2179 static void s_cache_mqtt5_on_disconnection_return(JNIEnv *env) {
2180 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/mqtt5/OnDisconnectionReturn");
2181 AWS_FATAL_ASSERT(cls);
2182 mqtt5_on_disconnection_return_properties.return_class = (*env)->NewGlobalRef(env, cls);
2183 AWS_FATAL_ASSERT(mqtt5_on_disconnection_return_properties.return_class);
2184 // Functions
2185 mqtt5_on_disconnection_return_properties.return_constructor_id = (*env)->GetMethodID(
2186 env,
2187 mqtt5_on_disconnection_return_properties.return_class,
2188 "<init>",
2189 "(ILsoftware/amazon/awssdk/crt/mqtt5/packets/DisconnectPacket;)V");
2190 AWS_FATAL_ASSERT(mqtt5_on_disconnection_return_properties.return_constructor_id);
2191 }
2192
2193 struct java_boxed_integer_properties boxed_integer_properties;
2194
s_cache_boxed_integer(JNIEnv * env)2195 static void s_cache_boxed_integer(JNIEnv *env) {
2196 jclass cls = (*env)->FindClass(env, "java/lang/Integer");
2197 AWS_FATAL_ASSERT(cls);
2198 boxed_integer_properties.integer_class = (*env)->NewGlobalRef(env, cls);
2199 AWS_FATAL_ASSERT(boxed_integer_properties.integer_class);
2200 // functions
2201 boxed_integer_properties.integer_constructor_id =
2202 (*env)->GetMethodID(env, boxed_integer_properties.integer_class, "<init>", "(I)V");
2203 AWS_FATAL_ASSERT(boxed_integer_properties.integer_constructor_id);
2204 boxed_integer_properties.integer_get_value_id =
2205 (*env)->GetMethodID(env, boxed_integer_properties.integer_class, "intValue", "()I");
2206 AWS_FATAL_ASSERT(boxed_integer_properties.integer_get_value_id);
2207 }
2208
2209 struct java_boxed_boolean_properties boxed_boolean_properties;
2210
s_cache_boxed_boolean(JNIEnv * env)2211 static void s_cache_boxed_boolean(JNIEnv *env) {
2212 jclass cls = (*env)->FindClass(env, "java/lang/Boolean");
2213 AWS_FATAL_ASSERT(cls);
2214 boxed_boolean_properties.boolean_class = (*env)->NewGlobalRef(env, cls);
2215 AWS_FATAL_ASSERT(boxed_boolean_properties.boolean_class);
2216 // functions
2217 boxed_boolean_properties.boolean_constructor_id =
2218 (*env)->GetMethodID(env, boxed_boolean_properties.boolean_class, "<init>", "(Z)V");
2219 AWS_FATAL_ASSERT(boxed_boolean_properties.boolean_constructor_id);
2220 boxed_boolean_properties.boolean_get_value_id =
2221 (*env)->GetMethodID(env, boxed_boolean_properties.boolean_class, "booleanValue", "()Z");
2222 AWS_FATAL_ASSERT(boxed_boolean_properties.boolean_get_value_id);
2223 }
2224
2225 struct java_boxed_list_properties boxed_list_properties;
2226
s_cache_boxed_list(JNIEnv * env)2227 static void s_cache_boxed_list(JNIEnv *env) {
2228 jclass cls = (*env)->FindClass(env, "java/util/List");
2229 AWS_FATAL_ASSERT(cls);
2230 boxed_list_properties.list_class = (*env)->NewGlobalRef(env, cls);
2231 AWS_FATAL_ASSERT(boxed_list_properties.list_class);
2232 // functions
2233 boxed_list_properties.list_size_id = (*env)->GetMethodID(env, boxed_list_properties.list_class, "size", "()I");
2234 AWS_FATAL_ASSERT(boxed_list_properties.list_size_id);
2235 boxed_list_properties.list_get_id =
2236 (*env)->GetMethodID(env, boxed_list_properties.list_class, "get", "(I)Ljava/lang/Object;");
2237 AWS_FATAL_ASSERT(boxed_list_properties.list_get_id);
2238 boxed_list_properties.list_add_id =
2239 (*env)->GetMethodID(env, boxed_list_properties.list_class, "add", "(Ljava/lang/Object;)Z");
2240 AWS_FATAL_ASSERT(boxed_list_properties.list_add_id);
2241 }
2242
2243 struct java_boxed_array_list_properties boxed_array_list_properties;
2244
s_cache_boxed_array_list(JNIEnv * env)2245 static void s_cache_boxed_array_list(JNIEnv *env) {
2246 jclass cls = (*env)->FindClass(env, "java/util/ArrayList");
2247 AWS_FATAL_ASSERT(cls);
2248 boxed_array_list_properties.list_class = (*env)->NewGlobalRef(env, cls);
2249 AWS_FATAL_ASSERT(boxed_array_list_properties.list_class);
2250 // functions
2251 boxed_array_list_properties.list_constructor_id =
2252 (*env)->GetMethodID(env, boxed_array_list_properties.list_class, "<init>", "()V");
2253 AWS_FATAL_ASSERT(boxed_array_list_properties.list_constructor_id);
2254 }
2255
2256 struct java_s3express_credentials_provider_factory_properties s3express_credentials_provider_factory_properties;
2257
s_cache_s3express_credentials_provider_factory_properties(JNIEnv * env)2258 static void s_cache_s3express_credentials_provider_factory_properties(JNIEnv *env) {
2259 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/s3/S3ExpressCredentialsProviderFactory");
2260 AWS_FATAL_ASSERT(cls);
2261
2262 s3express_credentials_provider_factory_properties.createS3ExpressCredentialsProvider = (*env)->GetMethodID(
2263 env,
2264 cls,
2265 "createS3ExpressCredentialsProvider",
2266 "(Lsoftware/amazon/awssdk/crt/s3/S3Client;)Lsoftware/amazon/awssdk/crt/s3/S3ExpressCredentialsProvider;");
2267 AWS_FATAL_ASSERT(s3express_credentials_provider_factory_properties.createS3ExpressCredentialsProvider);
2268 }
2269
2270 struct java_s3express_credentials_properties_properties s3express_credentials_properties_properties;
2271
s_cache_s3express_credentials_properties_properties(JNIEnv * env)2272 static void s_cache_s3express_credentials_properties_properties(JNIEnv *env) {
2273 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/s3/S3ExpressCredentialsProperties");
2274 AWS_FATAL_ASSERT(cls);
2275 s3express_credentials_properties_properties.s3express_credentials_properties_class = (*env)->NewGlobalRef(env, cls);
2276
2277 s3express_credentials_properties_properties.constructor_method_id = (*env)->GetMethodID(
2278 env, s3express_credentials_properties_properties.s3express_credentials_properties_class, "<init>", "()V");
2279
2280 s3express_credentials_properties_properties.host_field_id =
2281 (*env)->GetFieldID(env, cls, "hostValue", "Ljava/lang/String;");
2282 AWS_FATAL_ASSERT(s3express_credentials_properties_properties.host_field_id);
2283
2284 s3express_credentials_properties_properties.region_field_id =
2285 (*env)->GetFieldID(env, cls, "region", "Ljava/lang/String;");
2286 AWS_FATAL_ASSERT(s3express_credentials_properties_properties.region_field_id);
2287 }
2288
2289 struct java_s3express_credentials_provider_properties s3express_credentials_provider_properties;
2290
s_cache_s3express_credentials_provider_properties(JNIEnv * env)2291 static void s_cache_s3express_credentials_provider_properties(JNIEnv *env) {
2292 jclass cls = (*env)->FindClass(env, "software/amazon/awssdk/crt/s3/S3ExpressCredentialsProvider");
2293 AWS_FATAL_ASSERT(cls);
2294
2295 s3express_credentials_provider_properties.getS3ExpressCredentials = (*env)->GetMethodID(
2296 env,
2297 cls,
2298 "getS3ExpressCredentials",
2299 "(Lsoftware/amazon/awssdk/crt/s3/S3ExpressCredentialsProperties;Lsoftware/amazon/awssdk/crt/auth/credentials/"
2300 "Credentials;J)V");
2301 AWS_FATAL_ASSERT(s3express_credentials_provider_properties.getS3ExpressCredentials);
2302
2303 s3express_credentials_provider_properties.destroyProvider = (*env)->GetMethodID(env, cls, "destroyProvider", "()V");
2304 AWS_FATAL_ASSERT(s3express_credentials_provider_properties.destroyProvider);
2305 }
2306
s_cache_java_class_ids(void * user_data)2307 static void s_cache_java_class_ids(void *user_data) {
2308 JNIEnv *env = user_data;
2309 s_cache_http_request_body_stream(env);
2310 s_cache_aws_signing_config(env);
2311 s_cache_predicate(env);
2312 s_cache_boxed_long(env);
2313 s_cache_http_request(env);
2314 s_cache_crt_resource(env);
2315 s_cache_mqtt_connection(env);
2316 s_cache_message_handler(env);
2317 s_cache_mqtt_exception(env);
2318 s_cache_mqtt_client_connection_operation_statistics(env);
2319 s_cache_byte_buffer(env);
2320 s_cache_credentials_provider(env);
2321 s_cache_credentials(env);
2322 s_cache_credentials_handler(env);
2323 s_cache_async_callback(env);
2324 s_cache_event_loop_group(env);
2325 s_cache_client_bootstrap(env);
2326 s_cache_tls_context_pkcs11_options(env);
2327 s_cache_tls_key_operation(env);
2328 s_cache_tls_context_custom_key_operation_options(env);
2329 s_cache_tls_key_operation_handler(env);
2330 s_cache_http_client_connection_manager(env);
2331 s_cache_http2_stream_manager(env);
2332 s_cache_http_client_connection(env);
2333 s_cache_http_stream(env);
2334 s_cache_http2_stream(env);
2335 s_cache_http_stream_response_handler_native_adapter(env);
2336 s_cache_http_stream_write_chunk_completion_properties(env);
2337 s_cache_http_stream_metrics_properties(env);
2338 s_cache_event_stream_server_listener_properties(env);
2339 s_cache_event_stream_server_listener_handler_properties(env);
2340 s_cache_event_stream_server_connection_handler_properties(env);
2341 s_cache_event_stream_server_continuation_handler_properties(env);
2342 s_cache_event_stream_client_connection_handler_properties(env);
2343 s_cache_event_stream_client_continuation_handler_properties(env);
2344 s_cache_event_stream_message_flush_properties(env);
2345 s_cache_cpu_info_properties(env);
2346 s_cache_s3_client_properties(env);
2347 s_cache_s3_meta_request_properties(env);
2348 s_cache_s3_meta_request_response_handler_native_adapter_properties(env);
2349 s_cache_completable_future(env);
2350 s_cache_crt_runtime_exception(env);
2351 s_cache_ecc_key_pair(env);
2352 s_cache_crt(env);
2353 s_cache_aws_signing_result(env);
2354 s_cache_http_header(env);
2355 s_cache_http_manager_metrics(env);
2356 s_cache_exponential_backoff_retry_options(env);
2357 s_cache_standard_retry_options(env);
2358 s_cache_directory_traversal_handler(env);
2359 s_cache_directory_entry(env);
2360 s_cache_s3_tcp_keep_alive_options(env);
2361 s_cache_s3_meta_request_progress(env);
2362 s_cache_s3_meta_request_resume_token(env);
2363 s_cache_mqtt5_connack_packet(env);
2364 s_cache_mqtt5_connect_packet(env);
2365 s_cache_mqtt5_connect_reason_code(env);
2366 s_cache_mqtt5_disconnect_packet(env);
2367 s_cache_mqtt5_disconnect_reason_code(env);
2368 s_cache_mqtt5_puback_packet(env);
2369 s_cache_mqtt5_puback_reason_code(env);
2370 s_cache_mqtt5_publish_packet(env);
2371 s_cache_mqtt5_payload_format_indicator(env);
2372 s_cache_mqtt5_negotiated_settings(env);
2373 s_cache_http_proxy_options(env);
2374 s_cache_http_proxy_connection_type(env);
2375 s_cache_mqtt5_client_options(env);
2376 s_cache_mqtt5_client_properties(env);
2377 s_cache_mqtt5_client_operation_statistics_properties(env);
2378 s_cache_mqtt5_client_session_behavior(env);
2379 s_cache_mqtt5_client_extended_validation_and_flow_control_options(env);
2380 s_cache_mqtt5_client_offline_queue_behavior_type(env);
2381 s_cache_mqtt5_client_jitter_mode(env);
2382 s_cache_mqtt5_subscribe_packet(env);
2383 s_cache_mqtt5_subscribe_subscription(env);
2384 s_cache_mqtt5_packet_qos(env);
2385 s_cache_mqtt5_retain_handling_type(env);
2386 s_cache_mqtt5_suback_reason_code(env);
2387 s_cache_mqtt5_suback_packet(env);
2388 s_cache_mqtt5_unsubscribe_packet(env);
2389 s_cache_mqtt5_unsuback_packet(env);
2390 s_cache_mqtt5_unsuback_reason_code(env);
2391 s_cache_mqtt5_user_property(env);
2392 s_cache_mqtt5_publish_events_properties(env);
2393 s_cache_mqtt5_lifecycle_events_properties(env);
2394 s_cache_mqtt5_puback_result(env);
2395 s_cache_mqtt5_publish_return(env);
2396 s_cache_mqtt5_on_stopped_return(env);
2397 s_cache_mqtt5_on_attempting_connect_return(env);
2398 s_cache_mqtt5_on_connection_success_return(env);
2399 s_cache_mqtt5_on_connection_failure_return(env);
2400 s_cache_mqtt5_on_disconnection_return(env);
2401 s_cache_boxed_integer(env);
2402 s_cache_boxed_boolean(env);
2403 s_cache_boxed_list(env);
2404 s_cache_boxed_array_list(env);
2405 s_cache_s3express_credentials_provider_factory_properties(env);
2406 s_cache_s3express_credentials_properties_properties(env);
2407 s_cache_s3express_credentials_provider_properties(env);
2408 s_cache_mqtt5_outbound_topic_alias_behavior_type(env);
2409 s_cache_mqtt5_inbound_topic_alias_behavior_type(env);
2410 s_cache_topic_aliasing_options(env);
2411 }
2412
2413 static aws_thread_once s_cache_once_init = AWS_THREAD_ONCE_STATIC_INIT;
2414
aws_cache_jni_ids(JNIEnv * env)2415 void aws_cache_jni_ids(JNIEnv *env) {
2416 aws_thread_call_once(&s_cache_once_init, s_cache_java_class_ids, (void *)env);
2417 }
2418