From d20a362b814e11b249128d232d995098e011f84f Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Fri, 9 Feb 2024 15:55:32 -0800 Subject: [PATCH 1/2] add docs --- docs/html/_action_8cpp.html | 91 + docs/html/_action_8hpp.html | 176 ++ docs/html/_action_8hpp_source.html | 238 ++ docs/html/_client_8cpp.html | 101 + docs/html/_client_8hpp.html | 107 + docs/html/_client_8hpp_source.html | 270 +++ docs/html/_client_core_8cpp.html | 97 + docs/html/_client_core_8hpp.html | 103 + docs/html/_client_core_8hpp_source.html | 159 ++ docs/html/_client_core_state_8cpp.html | 99 + docs/html/_client_core_state_8hpp.html | 156 ++ docs/html/_client_core_state_8hpp_source.html | 316 +++ docs/html/_client_state_8cpp.html | 99 + docs/html/_client_state_8hpp.html | 101 + docs/html/_client_state_8hpp_source.html | 226 ++ docs/html/_common_8cpp.html | 108 + docs/html/_common_8hpp.html | 266 +++ docs/html/_common_8hpp_source.html | 290 +++ docs/html/_config_common_8cpp.html | 176 ++ docs/html/_config_common_8hpp_source.html | 153 ++ docs/html/_connect_8cpp.html | 122 + docs/html/_connect_8hpp.html | 128 ++ docs/html/_connect_8hpp_source.html | 332 +++ docs/html/_console_log_system_8cpp.html | 87 + docs/html/_console_log_system_8hpp.html | 97 + .../html/_console_log_system_8hpp_source.html | 130 ++ .../_core___e_x_p_o_r_t_s_8hpp_source.html | 116 + docs/html/_discovery_8cpp.html | 123 + docs/html/_discovery_8hpp.html | 104 + docs/html/_discovery_8hpp_source.html | 210 ++ docs/html/_discovery_response_8cpp.html | 98 + docs/html/_discovery_response_8hpp.html | 106 + .../html/_discovery_response_8hpp_source.html | 226 ++ docs/html/_formatted_log_system_8cpp.html | 92 + docs/html/_formatted_log_system_8hpp.html | 99 + .../_formatted_log_system_8hpp_source.html | 148 ++ docs/html/_greengrass_mqtt_client_8hpp.html | 110 + .../_greengrass_mqtt_client_8hpp_source.html | 188 ++ docs/html/_jobs_8cpp.html | 123 + docs/html/_jobs_8hpp.html | 96 + docs/html/_jobs_8hpp_source.html | 220 ++ docs/html/_json_parser_8cpp.html | 93 + docs/html/_json_parser_8hpp.html | 116 + docs/html/_json_parser_8hpp_source.html | 164 ++ docs/html/_log_level_8cpp.html | 97 + docs/html/_log_level_8hpp.html | 138 ++ docs/html/_log_level_8hpp_source.html | 124 ++ docs/html/_log_macros_8hpp.html | 647 ++++++ docs/html/_log_macros_8hpp_source.html | 280 +++ docs/html/_log_system_interface_8hpp.html | 98 + .../_log_system_interface_8hpp_source.html | 134 ++ docs/html/_logging_8cpp.html | 198 ++ docs/html/_logging_8hpp.html | 199 ++ docs/html/_logging_8hpp_source.html | 132 ++ docs/html/_map_8hpp.html | 98 + docs/html/_map_8hpp_source.html | 109 + docs/html/_network_connection_8cpp.html | 92 + docs/html/_network_connection_8hpp.html | 109 + .../html/_network_connection_8hpp_source.html | 162 ++ docs/html/_network_read_8cpp.html | 106 + docs/html/_network_read_8hpp.html | 109 + docs/html/_network_read_8hpp_source.html | 171 ++ docs/html/_packet_8cpp.html | 140 ++ docs/html/_packet_8hpp.html | 107 + docs/html/_packet_8hpp_source.html | 207 ++ docs/html/_publish_8cpp.html | 111 + docs/html/_publish_8hpp.html | 112 + docs/html/_publish_8hpp_source.html | 264 +++ docs/html/_queue_8hpp.html | 100 + docs/html/_queue_8hpp_source.html | 112 + docs/html/_response_code_8cpp.html | 139 ++ docs/html/_response_code_8hpp.html | 852 +++++++ docs/html/_response_code_8hpp_source.html | 493 ++++ docs/html/_shadow_8cpp.html | 173 ++ docs/html/_shadow_8hpp.html | 150 ++ docs/html/_shadow_8hpp_source.html | 269 +++ docs/html/_string_8hpp.html | 99 + docs/html/_string_8hpp_source.html | 118 + docs/html/_string_stream_8hpp.html | 107 + docs/html/_string_stream_8hpp_source.html | 114 + docs/html/_subscribe_8cpp.html | 112 + docs/html/_subscribe_8hpp.html | 121 + docs/html/_subscribe_8hpp_source.html | 275 +++ docs/html/_thread_task_8cpp.html | 96 + docs/html/_thread_task_8hpp_source.html | 150 ++ docs/html/_utf8_string_8cpp.html | 230 ++ docs/html/_utf8_string_8hpp.html | 97 + docs/html/_utf8_string_8hpp_source.html | 140 ++ docs/html/_vector_8hpp.html | 99 + docs/html/_vector_8hpp_source.html | 110 + docs/html/annotated.html | 139 ++ docs/html/bc_s.png | Bin 0 -> 676 bytes docs/html/bc_sd.png | Bin 0 -> 635 bytes docs/html/bdwn.png | Bin 0 -> 147 bytes docs/html/classawsiotsdk_1_1_action.html | 454 ++++ docs/html/classawsiotsdk_1_1_action.png | Bin 0 -> 5560 bytes docs/html/classawsiotsdk_1_1_action_data.html | 228 ++ docs/html/classawsiotsdk_1_1_action_data.png | Bin 0 -> 7056 bytes .../html/classawsiotsdk_1_1_action_state.html | 152 ++ docs/html/classawsiotsdk_1_1_action_state.png | Bin 0 -> 1065 bytes docs/html/classawsiotsdk_1_1_client_core.html | 455 ++++ .../classawsiotsdk_1_1_client_core_state.html | 931 ++++++++ .../classawsiotsdk_1_1_client_core_state.png | Bin 0 -> 1058 bytes ...lient_core_state_1_1_pending_ack_data.html | 106 + .../classawsiotsdk_1_1_config_common.html | 190 ++ .../classawsiotsdk_1_1_connectivity_info.html | 205 ++ ..._1_1_disconnect_callback_context_data.html | 92 + ...classawsiotsdk_1_1_discovery_response.html | 305 +++ ...sawsiotsdk_1_1_greengrass_mqtt_client.html | 677 ++++++ ...ssawsiotsdk_1_1_greengrass_mqtt_client.png | Bin 0 -> 804 bytes docs/html/classawsiotsdk_1_1_jobs.html | 624 ++++++ docs/html/classawsiotsdk_1_1_mqtt_client.html | 1485 +++++++++++++ docs/html/classawsiotsdk_1_1_mqtt_client.png | Bin 0 -> 808 bytes ...classawsiotsdk_1_1_network_connection.html | 540 +++++ ...k_1_1_reconnect_callback_context_data.html | 92 + ...1_1_resubscribe_callback_context_data.html | 92 + docs/html/classawsiotsdk_1_1_shadow.html | 829 +++++++ docs/html/classawsiotsdk_1_1_utf8_string.html | 149 ++ ...tsdk_1_1discovery_1_1_discover_action.html | 462 ++++ ...otsdk_1_1discovery_1_1_discover_action.png | Bin 0 -> 738 bytes ..._1discovery_1_1_discover_request_data.html | 383 ++++ ...1_1discovery_1_1_discover_request_data.png | Bin 0 -> 826 bytes ...assawsiotsdk_1_1mqtt_1_1_client_state.html | 518 +++++ ...lassawsiotsdk_1_1mqtt_1_1_client_state.png | Bin 0 -> 1048 bytes ...tsdk_1_1mqtt_1_1_connect_action_async.html | 301 +++ ...otsdk_1_1mqtt_1_1_connect_action_async.png | Bin 0 -> 756 bytes ...sawsiotsdk_1_1mqtt_1_1_connect_packet.html | 669 ++++++ ...ssawsiotsdk_1_1mqtt_1_1_connect_packet.png | Bin 0 -> 1068 bytes ...k_1_1mqtt_1_1_disconnect_action_async.html | 301 +++ ...dk_1_1mqtt_1_1_disconnect_action_async.png | Bin 0 -> 769 bytes ...siotsdk_1_1mqtt_1_1_disconnect_packet.html | 285 +++ ...wsiotsdk_1_1mqtt_1_1_disconnect_packet.png | Bin 0 -> 1110 bytes ...k_1_1mqtt_1_1_keepalive_action_runner.html | 303 +++ ...dk_1_1mqtt_1_1_keepalive_action_runner.png | Bin 0 -> 773 bytes ..._1mqtt_1_1_network_read_action_runner.html | 589 +++++ ...1_1mqtt_1_1_network_read_action_runner.png | Bin 0 -> 798 bytes .../classawsiotsdk_1_1mqtt_1_1_packet.html | 305 +++ .../classawsiotsdk_1_1mqtt_1_1_packet.png | Bin 0 -> 5396 bytes ...otsdk_1_1mqtt_1_1_packet_fixed_header.html | 327 +++ ...sawsiotsdk_1_1mqtt_1_1_pingreq_packet.html | 278 +++ ...ssawsiotsdk_1_1mqtt_1_1_pingreq_packet.png | Bin 0 -> 1085 bytes ...otsdk_1_1mqtt_1_1_puback_action_async.html | 301 +++ ...iotsdk_1_1mqtt_1_1_puback_action_async.png | Bin 0 -> 755 bytes ...ssawsiotsdk_1_1mqtt_1_1_puback_packet.html | 329 +++ ...assawsiotsdk_1_1mqtt_1_1_puback_packet.png | Bin 0 -> 1061 bytes ...tsdk_1_1mqtt_1_1_publish_action_async.html | 301 +++ ...otsdk_1_1mqtt_1_1_publish_action_async.png | Bin 0 -> 751 bytes ...sawsiotsdk_1_1mqtt_1_1_publish_packet.html | 667 ++++++ ...ssawsiotsdk_1_1mqtt_1_1_publish_packet.png | Bin 0 -> 1063 bytes ...ssawsiotsdk_1_1mqtt_1_1_suback_packet.html | 325 +++ ...assawsiotsdk_1_1mqtt_1_1_suback_packet.png | Bin 0 -> 1070 bytes ...dk_1_1mqtt_1_1_subscribe_action_async.html | 301 +++ ...sdk_1_1mqtt_1_1_subscribe_action_async.png | Bin 0 -> 777 bytes ...wsiotsdk_1_1mqtt_1_1_subscribe_packet.html | 325 +++ ...awsiotsdk_1_1mqtt_1_1_subscribe_packet.png | Bin 0 -> 1114 bytes ...assawsiotsdk_1_1mqtt_1_1_subscription.html | 631 ++++++ ...1_1_subscription_handler_context_data.html | 92 + ...awsiotsdk_1_1mqtt_1_1_unsuback_packet.html | 317 +++ ...sawsiotsdk_1_1mqtt_1_1_unsuback_packet.png | Bin 0 -> 1092 bytes ..._1_1mqtt_1_1_unsubscribe_action_async.html | 301 +++ ...k_1_1mqtt_1_1_unsubscribe_action_async.png | Bin 0 -> 778 bytes ...iotsdk_1_1mqtt_1_1_unsubscribe_packet.html | 324 +++ ...siotsdk_1_1mqtt_1_1_unsubscribe_packet.png | Bin 0 -> 1133 bytes ...assawsiotsdk_1_1mqtt_1_1_will_options.html | 304 +++ ...lassawsiotsdk_1_1util_1_1_json_parser.html | 139 ++ ...il_1_1_logging_1_1_console_log_system.html | 174 ++ ...til_1_1_logging_1_1_console_log_system.png | Bin 0 -> 1456 bytes ..._1_1_logging_1_1_formatted_log_system.html | 348 +++ ...l_1_1_logging_1_1_formatted_log_system.png | Bin 0 -> 1459 bytes ..._1_1_logging_1_1_log_system_interface.html | 249 +++ ...l_1_1_logging_1_1_log_system_interface.png | Bin 0 -> 1464 bytes ...1_1util_1_1_threading_1_1_thread_task.html | 113 + docs/html/classes.html | 132 ++ docs/html/closed.png | Bin 0 -> 132 bytes .../dir_2d45d85302b42b5377fddd52297f84fa.html | 97 + .../dir_49b159e2fb90daf85a1b216fb2e8d8ed.html | 91 + .../dir_503ebd9f384f44c9859dcb1451d026bc.html | 107 + .../dir_586ad3c2f85d776b984733890d824e3e.html | 102 + .../dir_61c9ccccd0f52ce700d1d68422bef0e1.html | 91 + .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 115 + .../dir_7240ac39f8ffbcbe685b1fc1c119d103.html | 92 + .../dir_8c5814cf2a6c8c291521c44fe3383313.html | 99 + .../dir_91e62c48b50e2efefbf56be16d49cf08.html | 112 + .../dir_a666f0ef9cde9c04b6bede43cb621950.html | 101 + .../dir_abfcfcfc84ac60d48c338b8a657a9e1d.html | 91 + .../dir_b7878ad5ecbf2506f4125b9d34c97e45.html | 100 + .../dir_bdd9a5d540de89e9fe90efdfc6973a4f.html | 93 + .../dir_c6e0af4955507e99ff8b62707adbbb0e.html | 91 + .../dir_ca82e1633b1ae766364945704c516e3f.html | 94 + .../dir_d44c64559bbebec7f509842c48db8b23.html | 116 + .../dir_e19064bd735a1cc9a0299ac24cf1c3ba.html | 91 + .../dir_e9f668b2efc3a50f0424d5b34b84ca6b.html | 91 + .../dir_eb47272452fa7970fc02c36be38abc9a.html | 93 + docs/html/doc.png | Bin 0 -> 746 bytes docs/html/docd.png | Bin 0 -> 756 bytes docs/html/doxygen.css | 1973 +++++++++++++++++ docs/html/doxygen.svg | 26 + docs/html/dynsections.js | 123 + docs/html/files.html | 163 ++ docs/html/folderclosed.png | Bin 0 -> 616 bytes docs/html/folderopen.png | Bin 0 -> 597 bytes docs/html/functions.html | 96 + docs/html/functions_c.html | 105 + docs/html/functions_d.html | 97 + docs/html/functions_e.html | 83 + docs/html/functions_f.html | 85 + docs/html/functions_func.html | 85 + docs/html/functions_func_c.html | 95 + docs/html/functions_func_d.html | 93 + docs/html/functions_func_e.html | 83 + docs/html/functions_func_f.html | 84 + docs/html/functions_func_g.html | 117 + docs/html/functions_func_h.html | 90 + docs/html/functions_func_i.html | 94 + docs/html/functions_func_j.html | 83 + docs/html/functions_func_k.html | 83 + docs/html/functions_func_l.html | 85 + docs/html/functions_func_m.html | 84 + docs/html/functions_func_n.html | 83 + docs/html/functions_func_p.html | 97 + docs/html/functions_func_r.html | 90 + docs/html/functions_func_s.html | 111 + docs/html/functions_func_t.html | 83 + docs/html/functions_func_u.html | 88 + docs/html/functions_func_w.html | 88 + docs/html/functions_func_~.html | 83 + docs/html/functions_g.html | 123 + docs/html/functions_h.html | 92 + docs/html/functions_i.html | 106 + docs/html/functions_j.html | 83 + docs/html/functions_k.html | 84 + docs/html/functions_l.html | 85 + docs/html/functions_m.html | 92 + docs/html/functions_n.html | 84 + docs/html/functions_o.html | 83 + docs/html/functions_p.html | 123 + docs/html/functions_q.html | 83 + docs/html/functions_r.html | 101 + docs/html/functions_s.html | 123 + docs/html/functions_t.html | 86 + docs/html/functions_type.html | 87 + docs/html/functions_u.html | 88 + docs/html/functions_vars.html | 250 +++ docs/html/functions_w.html | 89 + docs/html/functions_~.html | 83 + docs/html/globals.html | 82 + docs/html/globals_defs.html | 82 + docs/html/hierarchy.html | 133 ++ docs/html/index.html | 297 +++ docs/html/jquery.js | 34 + .../html/md__c_o_d_e__o_f__c_o_n_d_u_c_t.html | 83 + docs/html/md__c_o_n_t_r_i_b_u_t_i_n_g.html | 125 ++ docs/html/md__changelog.html | 226 ++ docs/html/md__dev_guide.html | 246 ++ docs/html/md__greengrass_discovery.html | 317 +++ docs/html/md__known_issues.html | 115 + docs/html/md__platform.html | 199 ++ docs/html/menu.js | 136 ++ docs/html/menudata.js | 105 + ...amespaceawsiotsdk_1_1_response_helper.html | 440 ++++ docs/html/namespacemembers.html | 81 + docs/html/namespacemembers_func.html | 81 + docs/html/namespaces.html | 83 + docs/html/nav_f.png | Bin 0 -> 153 bytes docs/html/nav_fd.png | Bin 0 -> 169 bytes docs/html/nav_g.png | Bin 0 -> 95 bytes docs/html/nav_h.png | Bin 0 -> 98 bytes docs/html/nav_hd.png | Bin 0 -> 114 bytes docs/html/open.png | Bin 0 -> 123 bytes docs/html/pages.html | 92 + docs/html/search/all_0.js | 27 + docs/html/search/all_1.js | 50 + docs/html/search/all_10.js | 28 + docs/html/search/all_11.js | 72 + docs/html/search/all_12.js | 10 + docs/html/search/all_13.js | 14 + docs/html/search/all_14.js | 5 + docs/html/search/all_15.js | 23 + docs/html/search/all_16.js | 4 + docs/html/search/all_2.js | 35 + docs/html/search/all_3.js | 4 + docs/html/search/all_4.js | 12 + docs/html/search/all_5.js | 47 + docs/html/search/all_6.js | 13 + docs/html/search/all_7.js | 30 + docs/html/search/all_8.js | 15 + docs/html/search/all_9.js | 6 + docs/html/search/all_a.js | 14 + docs/html/search/all_b.js | 43 + docs/html/search/all_c.js | 40 + docs/html/search/all_d.js | 6 + docs/html/search/all_e.js | 59 + docs/html/search/all_f.js | 8 + docs/html/search/classes_0.js | 6 + docs/html/search/classes_1.js | 11 + docs/html/search/classes_2.js | 9 + docs/html/search/classes_3.js | 4 + docs/html/search/classes_4.js | 4 + docs/html/search/classes_5.js | 5 + docs/html/search/classes_6.js | 4 + docs/html/search/classes_7.js | 4 + docs/html/search/classes_8.js | 4 + docs/html/search/classes_9.js | 5 + docs/html/search/classes_a.js | 11 + docs/html/search/classes_b.js | 5 + docs/html/search/classes_c.js | 9 + docs/html/search/classes_d.js | 4 + docs/html/search/classes_e.js | 7 + docs/html/search/classes_f.js | 4 + docs/html/search/close.svg | 31 + docs/html/search/defines_0.js | 5 + docs/html/search/enums_0.js | 4 + docs/html/search/enums_1.js | 4 + docs/html/search/enums_2.js | 4 + docs/html/search/enums_3.js | 4 + docs/html/search/enums_4.js | 4 + docs/html/search/enums_5.js | 4 + docs/html/search/enums_6.js | 5 + docs/html/search/enums_7.js | 4 + docs/html/search/enumvalues_0.js | 6 + docs/html/search/enumvalues_1.js | 5 + docs/html/search/enumvalues_2.js | 12 + docs/html/search/enumvalues_3.js | 6 + docs/html/search/enumvalues_4.js | 4 + docs/html/search/enumvalues_5.js | 9 + docs/html/search/enumvalues_6.js | 31 + docs/html/search/enumvalues_7.js | 32 + docs/html/search/enumvalues_8.js | 10 + docs/html/search/enumvalues_9.js | 5 + docs/html/search/enumvalues_a.js | 4 + docs/html/search/enumvalues_b.js | 21 + docs/html/search/enumvalues_c.js | 4 + docs/html/search/enumvalues_d.js | 5 + docs/html/search/enumvalues_e.js | 16 + docs/html/search/files_0.js | 5 + docs/html/search/files_1.js | 18 + docs/html/search/files_2.js | 7 + docs/html/search/files_3.js | 5 + docs/html/search/files_4.js | 4 + docs/html/search/files_5.js | 7 + docs/html/search/files_6.js | 9 + docs/html/search/files_7.js | 4 + docs/html/search/files_8.js | 7 + docs/html/search/files_9.js | 7 + docs/html/search/files_a.js | 4 + docs/html/search/files_b.js | 5 + docs/html/search/files_c.js | 9 + docs/html/search/files_d.js | 4 + docs/html/search/files_e.js | 5 + docs/html/search/files_f.js | 4 + docs/html/search/functions_0.js | 6 + docs/html/search/functions_1.js | 16 + docs/html/search/functions_10.js | 33 + docs/html/search/functions_11.js | 4 + docs/html/search/functions_12.js | 9 + docs/html/search/functions_13.js | 9 + docs/html/search/functions_14.js | 4 + docs/html/search/functions_2.js | 14 + docs/html/search/functions_3.js | 4 + docs/html/search/functions_4.js | 6 + docs/html/search/functions_5.js | 40 + docs/html/search/functions_6.js | 11 + docs/html/search/functions_7.js | 17 + docs/html/search/functions_8.js | 4 + docs/html/search/functions_9.js | 4 + docs/html/search/functions_a.js | 6 + docs/html/search/functions_b.js | 5 + docs/html/search/functions_c.js | 4 + docs/html/search/functions_d.js | 4 + docs/html/search/functions_e.js | 20 + docs/html/search/functions_f.js | 11 + docs/html/search/mag.svg | 37 + docs/html/search/mag_d.svg | 37 + docs/html/search/mag_sel.svg | 74 + docs/html/search/mag_seld.svg | 74 + docs/html/search/namespaces_0.js | 4 + docs/html/search/pages_0.js | 4 + docs/html/search/pages_1.js | 6 + docs/html/search/pages_2.js | 4 + docs/html/search/pages_3.js | 4 + docs/html/search/pages_4.js | 4 + docs/html/search/pages_5.js | 4 + docs/html/search/search.css | 291 +++ docs/html/search/search.js | 816 +++++++ docs/html/search/searchdata.js | 45 + docs/html/search/typedefs_0.js | 8 + docs/html/search/typedefs_1.js | 4 + docs/html/search/typedefs_2.js | 4 + docs/html/search/variables_0.js | 9 + docs/html/search/variables_1.js | 12 + docs/html/search/variables_10.js | 4 + docs/html/search/variables_2.js | 7 + docs/html/search/variables_3.js | 4 + docs/html/search/variables_4.js | 9 + docs/html/search/variables_5.js | 5 + docs/html/search/variables_6.js | 15 + docs/html/search/variables_7.js | 4 + docs/html/search/variables_8.js | 11 + docs/html/search/variables_9.js | 4 + docs/html/search/variables_a.js | 4 + docs/html/search/variables_b.js | 29 + docs/html/search/variables_c.js | 4 + docs/html/search/variables_d.js | 13 + docs/html/search/variables_e.js | 15 + docs/html/search/variables_f.js | 6 + docs/html/splitbar.png | Bin 0 -> 314 bytes docs/html/splitbard.png | Bin 0 -> 282 bytes docs/html/sync_off.png | Bin 0 -> 853 bytes docs/html/sync_on.png | Bin 0 -> 845 bytes docs/html/tab_a.png | Bin 0 -> 142 bytes docs/html/tab_ad.png | Bin 0 -> 135 bytes docs/html/tab_b.png | Bin 0 -> 169 bytes docs/html/tab_bd.png | Bin 0 -> 173 bytes docs/html/tab_h.png | Bin 0 -> 177 bytes docs/html/tab_hd.png | Bin 0 -> 180 bytes docs/html/tab_s.png | Bin 0 -> 184 bytes docs/html/tab_sd.png | Bin 0 -> 188 bytes docs/html/tabs.css | 1 + 418 files changed, 47029 insertions(+) create mode 100644 docs/html/_action_8cpp.html create mode 100644 docs/html/_action_8hpp.html create mode 100644 docs/html/_action_8hpp_source.html create mode 100644 docs/html/_client_8cpp.html create mode 100644 docs/html/_client_8hpp.html create mode 100644 docs/html/_client_8hpp_source.html create mode 100644 docs/html/_client_core_8cpp.html create mode 100644 docs/html/_client_core_8hpp.html create mode 100644 docs/html/_client_core_8hpp_source.html create mode 100644 docs/html/_client_core_state_8cpp.html create mode 100644 docs/html/_client_core_state_8hpp.html create mode 100644 docs/html/_client_core_state_8hpp_source.html create mode 100644 docs/html/_client_state_8cpp.html create mode 100644 docs/html/_client_state_8hpp.html create mode 100644 docs/html/_client_state_8hpp_source.html create mode 100644 docs/html/_common_8cpp.html create mode 100644 docs/html/_common_8hpp.html create mode 100644 docs/html/_common_8hpp_source.html create mode 100644 docs/html/_config_common_8cpp.html create mode 100644 docs/html/_config_common_8hpp_source.html create mode 100644 docs/html/_connect_8cpp.html create mode 100644 docs/html/_connect_8hpp.html create mode 100644 docs/html/_connect_8hpp_source.html create mode 100644 docs/html/_console_log_system_8cpp.html create mode 100644 docs/html/_console_log_system_8hpp.html create mode 100644 docs/html/_console_log_system_8hpp_source.html create mode 100644 docs/html/_core___e_x_p_o_r_t_s_8hpp_source.html create mode 100644 docs/html/_discovery_8cpp.html create mode 100644 docs/html/_discovery_8hpp.html create mode 100644 docs/html/_discovery_8hpp_source.html create mode 100644 docs/html/_discovery_response_8cpp.html create mode 100644 docs/html/_discovery_response_8hpp.html create mode 100644 docs/html/_discovery_response_8hpp_source.html create mode 100644 docs/html/_formatted_log_system_8cpp.html create mode 100644 docs/html/_formatted_log_system_8hpp.html create mode 100644 docs/html/_formatted_log_system_8hpp_source.html create mode 100644 docs/html/_greengrass_mqtt_client_8hpp.html create mode 100644 docs/html/_greengrass_mqtt_client_8hpp_source.html create mode 100644 docs/html/_jobs_8cpp.html create mode 100644 docs/html/_jobs_8hpp.html create mode 100644 docs/html/_jobs_8hpp_source.html create mode 100644 docs/html/_json_parser_8cpp.html create mode 100644 docs/html/_json_parser_8hpp.html create mode 100644 docs/html/_json_parser_8hpp_source.html create mode 100644 docs/html/_log_level_8cpp.html create mode 100644 docs/html/_log_level_8hpp.html create mode 100644 docs/html/_log_level_8hpp_source.html create mode 100644 docs/html/_log_macros_8hpp.html create mode 100644 docs/html/_log_macros_8hpp_source.html create mode 100644 docs/html/_log_system_interface_8hpp.html create mode 100644 docs/html/_log_system_interface_8hpp_source.html create mode 100644 docs/html/_logging_8cpp.html create mode 100644 docs/html/_logging_8hpp.html create mode 100644 docs/html/_logging_8hpp_source.html create mode 100644 docs/html/_map_8hpp.html create mode 100644 docs/html/_map_8hpp_source.html create mode 100644 docs/html/_network_connection_8cpp.html create mode 100644 docs/html/_network_connection_8hpp.html create mode 100644 docs/html/_network_connection_8hpp_source.html create mode 100644 docs/html/_network_read_8cpp.html create mode 100644 docs/html/_network_read_8hpp.html create mode 100644 docs/html/_network_read_8hpp_source.html create mode 100644 docs/html/_packet_8cpp.html create mode 100644 docs/html/_packet_8hpp.html create mode 100644 docs/html/_packet_8hpp_source.html create mode 100644 docs/html/_publish_8cpp.html create mode 100644 docs/html/_publish_8hpp.html create mode 100644 docs/html/_publish_8hpp_source.html create mode 100644 docs/html/_queue_8hpp.html create mode 100644 docs/html/_queue_8hpp_source.html create mode 100644 docs/html/_response_code_8cpp.html create mode 100644 docs/html/_response_code_8hpp.html create mode 100644 docs/html/_response_code_8hpp_source.html create mode 100644 docs/html/_shadow_8cpp.html create mode 100644 docs/html/_shadow_8hpp.html create mode 100644 docs/html/_shadow_8hpp_source.html create mode 100644 docs/html/_string_8hpp.html create mode 100644 docs/html/_string_8hpp_source.html create mode 100644 docs/html/_string_stream_8hpp.html create mode 100644 docs/html/_string_stream_8hpp_source.html create mode 100644 docs/html/_subscribe_8cpp.html create mode 100644 docs/html/_subscribe_8hpp.html create mode 100644 docs/html/_subscribe_8hpp_source.html create mode 100644 docs/html/_thread_task_8cpp.html create mode 100644 docs/html/_thread_task_8hpp_source.html create mode 100644 docs/html/_utf8_string_8cpp.html create mode 100644 docs/html/_utf8_string_8hpp.html create mode 100644 docs/html/_utf8_string_8hpp_source.html create mode 100644 docs/html/_vector_8hpp.html create mode 100644 docs/html/_vector_8hpp_source.html create mode 100644 docs/html/annotated.html create mode 100644 docs/html/bc_s.png create mode 100644 docs/html/bc_sd.png create mode 100644 docs/html/bdwn.png create mode 100644 docs/html/classawsiotsdk_1_1_action.html create mode 100644 docs/html/classawsiotsdk_1_1_action.png create mode 100644 docs/html/classawsiotsdk_1_1_action_data.html create mode 100644 docs/html/classawsiotsdk_1_1_action_data.png create mode 100644 docs/html/classawsiotsdk_1_1_action_state.html create mode 100644 docs/html/classawsiotsdk_1_1_action_state.png create mode 100644 docs/html/classawsiotsdk_1_1_client_core.html create mode 100644 docs/html/classawsiotsdk_1_1_client_core_state.html create mode 100644 docs/html/classawsiotsdk_1_1_client_core_state.png create mode 100644 docs/html/classawsiotsdk_1_1_client_core_state_1_1_pending_ack_data.html create mode 100644 docs/html/classawsiotsdk_1_1_config_common.html create mode 100644 docs/html/classawsiotsdk_1_1_connectivity_info.html create mode 100644 docs/html/classawsiotsdk_1_1_disconnect_callback_context_data.html create mode 100644 docs/html/classawsiotsdk_1_1_discovery_response.html create mode 100644 docs/html/classawsiotsdk_1_1_greengrass_mqtt_client.html create mode 100644 docs/html/classawsiotsdk_1_1_greengrass_mqtt_client.png create mode 100644 docs/html/classawsiotsdk_1_1_jobs.html create mode 100644 docs/html/classawsiotsdk_1_1_mqtt_client.html create mode 100644 docs/html/classawsiotsdk_1_1_mqtt_client.png create mode 100644 docs/html/classawsiotsdk_1_1_network_connection.html create mode 100644 docs/html/classawsiotsdk_1_1_reconnect_callback_context_data.html create mode 100644 docs/html/classawsiotsdk_1_1_resubscribe_callback_context_data.html create mode 100644 docs/html/classawsiotsdk_1_1_shadow.html create mode 100644 docs/html/classawsiotsdk_1_1_utf8_string.html create mode 100644 docs/html/classawsiotsdk_1_1discovery_1_1_discover_action.html create mode 100644 docs/html/classawsiotsdk_1_1discovery_1_1_discover_action.png create mode 100644 docs/html/classawsiotsdk_1_1discovery_1_1_discover_request_data.html create mode 100644 docs/html/classawsiotsdk_1_1discovery_1_1_discover_request_data.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_client_state.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_client_state.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_connect_action_async.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_connect_action_async.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_connect_packet.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_connect_packet.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_packet.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_packet.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_puback_action_async.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_puback_action_async.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_puback_packet.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_puback_packet.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_publish_action_async.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_publish_action_async.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_publish_packet.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_publish_packet.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_suback_packet.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_suback_packet.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_subscription.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_subscription_handler_context_data.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.png create mode 100644 docs/html/classawsiotsdk_1_1mqtt_1_1_will_options.html create mode 100644 docs/html/classawsiotsdk_1_1util_1_1_json_parser.html create mode 100644 docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html create mode 100644 docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.png create mode 100644 docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html create mode 100644 docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.png create mode 100644 docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html create mode 100644 docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.png create mode 100644 docs/html/classawsiotsdk_1_1util_1_1_threading_1_1_thread_task.html create mode 100644 docs/html/classes.html create mode 100644 docs/html/closed.png create mode 100644 docs/html/dir_2d45d85302b42b5377fddd52297f84fa.html create mode 100644 docs/html/dir_49b159e2fb90daf85a1b216fb2e8d8ed.html create mode 100644 docs/html/dir_503ebd9f384f44c9859dcb1451d026bc.html create mode 100644 docs/html/dir_586ad3c2f85d776b984733890d824e3e.html create mode 100644 docs/html/dir_61c9ccccd0f52ce700d1d68422bef0e1.html create mode 100644 docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html create mode 100644 docs/html/dir_7240ac39f8ffbcbe685b1fc1c119d103.html create mode 100644 docs/html/dir_8c5814cf2a6c8c291521c44fe3383313.html create mode 100644 docs/html/dir_91e62c48b50e2efefbf56be16d49cf08.html create mode 100644 docs/html/dir_a666f0ef9cde9c04b6bede43cb621950.html create mode 100644 docs/html/dir_abfcfcfc84ac60d48c338b8a657a9e1d.html create mode 100644 docs/html/dir_b7878ad5ecbf2506f4125b9d34c97e45.html create mode 100644 docs/html/dir_bdd9a5d540de89e9fe90efdfc6973a4f.html create mode 100644 docs/html/dir_c6e0af4955507e99ff8b62707adbbb0e.html create mode 100644 docs/html/dir_ca82e1633b1ae766364945704c516e3f.html create mode 100644 docs/html/dir_d44c64559bbebec7f509842c48db8b23.html create mode 100644 docs/html/dir_e19064bd735a1cc9a0299ac24cf1c3ba.html create mode 100644 docs/html/dir_e9f668b2efc3a50f0424d5b34b84ca6b.html create mode 100644 docs/html/dir_eb47272452fa7970fc02c36be38abc9a.html create mode 100644 docs/html/doc.png create mode 100644 docs/html/docd.png create mode 100644 docs/html/doxygen.css create mode 100644 docs/html/doxygen.svg create mode 100644 docs/html/dynsections.js create mode 100644 docs/html/files.html create mode 100644 docs/html/folderclosed.png create mode 100644 docs/html/folderopen.png create mode 100644 docs/html/functions.html create mode 100644 docs/html/functions_c.html create mode 100644 docs/html/functions_d.html create mode 100644 docs/html/functions_e.html create mode 100644 docs/html/functions_f.html create mode 100644 docs/html/functions_func.html create mode 100644 docs/html/functions_func_c.html create mode 100644 docs/html/functions_func_d.html create mode 100644 docs/html/functions_func_e.html create mode 100644 docs/html/functions_func_f.html create mode 100644 docs/html/functions_func_g.html create mode 100644 docs/html/functions_func_h.html create mode 100644 docs/html/functions_func_i.html create mode 100644 docs/html/functions_func_j.html create mode 100644 docs/html/functions_func_k.html create mode 100644 docs/html/functions_func_l.html create mode 100644 docs/html/functions_func_m.html create mode 100644 docs/html/functions_func_n.html create mode 100644 docs/html/functions_func_p.html create mode 100644 docs/html/functions_func_r.html create mode 100644 docs/html/functions_func_s.html create mode 100644 docs/html/functions_func_t.html create mode 100644 docs/html/functions_func_u.html create mode 100644 docs/html/functions_func_w.html create mode 100644 docs/html/functions_func_~.html create mode 100644 docs/html/functions_g.html create mode 100644 docs/html/functions_h.html create mode 100644 docs/html/functions_i.html create mode 100644 docs/html/functions_j.html create mode 100644 docs/html/functions_k.html create mode 100644 docs/html/functions_l.html create mode 100644 docs/html/functions_m.html create mode 100644 docs/html/functions_n.html create mode 100644 docs/html/functions_o.html create mode 100644 docs/html/functions_p.html create mode 100644 docs/html/functions_q.html create mode 100644 docs/html/functions_r.html create mode 100644 docs/html/functions_s.html create mode 100644 docs/html/functions_t.html create mode 100644 docs/html/functions_type.html create mode 100644 docs/html/functions_u.html create mode 100644 docs/html/functions_vars.html create mode 100644 docs/html/functions_w.html create mode 100644 docs/html/functions_~.html create mode 100644 docs/html/globals.html create mode 100644 docs/html/globals_defs.html create mode 100644 docs/html/hierarchy.html create mode 100644 docs/html/index.html create mode 100644 docs/html/jquery.js create mode 100644 docs/html/md__c_o_d_e__o_f__c_o_n_d_u_c_t.html create mode 100644 docs/html/md__c_o_n_t_r_i_b_u_t_i_n_g.html create mode 100644 docs/html/md__changelog.html create mode 100644 docs/html/md__dev_guide.html create mode 100644 docs/html/md__greengrass_discovery.html create mode 100644 docs/html/md__known_issues.html create mode 100644 docs/html/md__platform.html create mode 100644 docs/html/menu.js create mode 100644 docs/html/menudata.js create mode 100644 docs/html/namespaceawsiotsdk_1_1_response_helper.html create mode 100644 docs/html/namespacemembers.html create mode 100644 docs/html/namespacemembers_func.html create mode 100644 docs/html/namespaces.html create mode 100644 docs/html/nav_f.png create mode 100644 docs/html/nav_fd.png create mode 100644 docs/html/nav_g.png create mode 100644 docs/html/nav_h.png create mode 100644 docs/html/nav_hd.png create mode 100644 docs/html/open.png create mode 100644 docs/html/pages.html create mode 100644 docs/html/search/all_0.js create mode 100644 docs/html/search/all_1.js create mode 100644 docs/html/search/all_10.js create mode 100644 docs/html/search/all_11.js create mode 100644 docs/html/search/all_12.js create mode 100644 docs/html/search/all_13.js create mode 100644 docs/html/search/all_14.js create mode 100644 docs/html/search/all_15.js create mode 100644 docs/html/search/all_16.js create mode 100644 docs/html/search/all_2.js create mode 100644 docs/html/search/all_3.js create mode 100644 docs/html/search/all_4.js create mode 100644 docs/html/search/all_5.js create mode 100644 docs/html/search/all_6.js create mode 100644 docs/html/search/all_7.js create mode 100644 docs/html/search/all_8.js create mode 100644 docs/html/search/all_9.js create mode 100644 docs/html/search/all_a.js create mode 100644 docs/html/search/all_b.js create mode 100644 docs/html/search/all_c.js create mode 100644 docs/html/search/all_d.js create mode 100644 docs/html/search/all_e.js create mode 100644 docs/html/search/all_f.js create mode 100644 docs/html/search/classes_0.js create mode 100644 docs/html/search/classes_1.js create mode 100644 docs/html/search/classes_2.js create mode 100644 docs/html/search/classes_3.js create mode 100644 docs/html/search/classes_4.js create mode 100644 docs/html/search/classes_5.js create mode 100644 docs/html/search/classes_6.js create mode 100644 docs/html/search/classes_7.js create mode 100644 docs/html/search/classes_8.js create mode 100644 docs/html/search/classes_9.js create mode 100644 docs/html/search/classes_a.js create mode 100644 docs/html/search/classes_b.js create mode 100644 docs/html/search/classes_c.js create mode 100644 docs/html/search/classes_d.js create mode 100644 docs/html/search/classes_e.js create mode 100644 docs/html/search/classes_f.js create mode 100644 docs/html/search/close.svg create mode 100644 docs/html/search/defines_0.js create mode 100644 docs/html/search/enums_0.js create mode 100644 docs/html/search/enums_1.js create mode 100644 docs/html/search/enums_2.js create mode 100644 docs/html/search/enums_3.js create mode 100644 docs/html/search/enums_4.js create mode 100644 docs/html/search/enums_5.js create mode 100644 docs/html/search/enums_6.js create mode 100644 docs/html/search/enums_7.js create mode 100644 docs/html/search/enumvalues_0.js create mode 100644 docs/html/search/enumvalues_1.js create mode 100644 docs/html/search/enumvalues_2.js create mode 100644 docs/html/search/enumvalues_3.js create mode 100644 docs/html/search/enumvalues_4.js create mode 100644 docs/html/search/enumvalues_5.js create mode 100644 docs/html/search/enumvalues_6.js create mode 100644 docs/html/search/enumvalues_7.js create mode 100644 docs/html/search/enumvalues_8.js create mode 100644 docs/html/search/enumvalues_9.js create mode 100644 docs/html/search/enumvalues_a.js create mode 100644 docs/html/search/enumvalues_b.js create mode 100644 docs/html/search/enumvalues_c.js create mode 100644 docs/html/search/enumvalues_d.js create mode 100644 docs/html/search/enumvalues_e.js create mode 100644 docs/html/search/files_0.js create mode 100644 docs/html/search/files_1.js create mode 100644 docs/html/search/files_2.js create mode 100644 docs/html/search/files_3.js create mode 100644 docs/html/search/files_4.js create mode 100644 docs/html/search/files_5.js create mode 100644 docs/html/search/files_6.js create mode 100644 docs/html/search/files_7.js create mode 100644 docs/html/search/files_8.js create mode 100644 docs/html/search/files_9.js create mode 100644 docs/html/search/files_a.js create mode 100644 docs/html/search/files_b.js create mode 100644 docs/html/search/files_c.js create mode 100644 docs/html/search/files_d.js create mode 100644 docs/html/search/files_e.js create mode 100644 docs/html/search/files_f.js create mode 100644 docs/html/search/functions_0.js create mode 100644 docs/html/search/functions_1.js create mode 100644 docs/html/search/functions_10.js create mode 100644 docs/html/search/functions_11.js create mode 100644 docs/html/search/functions_12.js create mode 100644 docs/html/search/functions_13.js create mode 100644 docs/html/search/functions_14.js create mode 100644 docs/html/search/functions_2.js create mode 100644 docs/html/search/functions_3.js create mode 100644 docs/html/search/functions_4.js create mode 100644 docs/html/search/functions_5.js create mode 100644 docs/html/search/functions_6.js create mode 100644 docs/html/search/functions_7.js create mode 100644 docs/html/search/functions_8.js create mode 100644 docs/html/search/functions_9.js create mode 100644 docs/html/search/functions_a.js create mode 100644 docs/html/search/functions_b.js create mode 100644 docs/html/search/functions_c.js create mode 100644 docs/html/search/functions_d.js create mode 100644 docs/html/search/functions_e.js create mode 100644 docs/html/search/functions_f.js create mode 100644 docs/html/search/mag.svg create mode 100644 docs/html/search/mag_d.svg create mode 100644 docs/html/search/mag_sel.svg create mode 100644 docs/html/search/mag_seld.svg create mode 100644 docs/html/search/namespaces_0.js create mode 100644 docs/html/search/pages_0.js create mode 100644 docs/html/search/pages_1.js create mode 100644 docs/html/search/pages_2.js create mode 100644 docs/html/search/pages_3.js create mode 100644 docs/html/search/pages_4.js create mode 100644 docs/html/search/pages_5.js create mode 100644 docs/html/search/search.css create mode 100644 docs/html/search/search.js create mode 100644 docs/html/search/searchdata.js create mode 100644 docs/html/search/typedefs_0.js create mode 100644 docs/html/search/typedefs_1.js create mode 100644 docs/html/search/typedefs_2.js create mode 100644 docs/html/search/variables_0.js create mode 100644 docs/html/search/variables_1.js create mode 100644 docs/html/search/variables_10.js create mode 100644 docs/html/search/variables_2.js create mode 100644 docs/html/search/variables_3.js create mode 100644 docs/html/search/variables_4.js create mode 100644 docs/html/search/variables_5.js create mode 100644 docs/html/search/variables_6.js create mode 100644 docs/html/search/variables_7.js create mode 100644 docs/html/search/variables_8.js create mode 100644 docs/html/search/variables_9.js create mode 100644 docs/html/search/variables_a.js create mode 100644 docs/html/search/variables_b.js create mode 100644 docs/html/search/variables_c.js create mode 100644 docs/html/search/variables_d.js create mode 100644 docs/html/search/variables_e.js create mode 100644 docs/html/search/variables_f.js create mode 100644 docs/html/splitbar.png create mode 100644 docs/html/splitbard.png create mode 100644 docs/html/sync_off.png create mode 100644 docs/html/sync_on.png create mode 100644 docs/html/tab_a.png create mode 100644 docs/html/tab_ad.png create mode 100644 docs/html/tab_b.png create mode 100644 docs/html/tab_bd.png create mode 100644 docs/html/tab_h.png create mode 100644 docs/html/tab_hd.png create mode 100644 docs/html/tab_s.png create mode 100644 docs/html/tab_sd.png create mode 100644 docs/html/tabs.css diff --git a/docs/html/_action_8cpp.html b/docs/html/_action_8cpp.html new file mode 100644 index 0000000..b66b0bb --- /dev/null +++ b/docs/html/_action_8cpp.html @@ -0,0 +1,91 @@ + + + + + + + +AWS IoT C++ SDK: Action.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Action.cpp File Reference
+
+
+ +

Action Base class and related definitions for IoT Client. +More...

+
#include "Action.hpp"
+

Detailed Description

+

Defines a base class to be used by all Actions that can be run by the IoT Client. Also contains definitions for related Action types like ActionType, ActionState and ActionData

+
+ + + + diff --git a/docs/html/_action_8hpp.html b/docs/html/_action_8hpp.html new file mode 100644 index 0000000..0d1954e --- /dev/null +++ b/docs/html/_action_8hpp.html @@ -0,0 +1,176 @@ + + + + + + + +AWS IoT C++ SDK: Action.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Action.hpp File Reference
+
+
+ +

Action Base class and related definitions for IoT Client. +More...

+
#include <string>
+#include <iostream>
+#include <memory>
+#include <atomic>
+#include "util/Utf8String.hpp"
+#include "util/threading/ThreadTask.hpp"
+#include "ResponseCode.hpp"
+#include "NetworkConnection.hpp"
+
+

Go to the source code of this file.

+ + + + + + + + + + + +

+Data Structures

class  awsiotsdk::ActionState
 Action State Class. More...
 
class  awsiotsdk::ActionData
 Action Data Class. More...
 
class  awsiotsdk::Action
 Action Class. More...
 
+ + + +

+Macros

+#define DEFAULT_NETWORK_ACTION_THREAD_SLEEP_DURATION_MS   100
 
+ + + + +

+Enumerations

enum class  awsiotsdk::ActionType {
+  RESERVED_ACTION = 0 +, CORE_PROCESS_INBOUND = 1 +, CORE_PROCESS_OUTBOUND = 2 +, CONNECT = 3 +,
+  DISCONNECT = 4 +, PUBLISH = 5 +, PUBACK = 6 +, PUBREC = 7 +,
+  PUBREL = 8 +, PUBCOMP = 9 +, SUBSCRIBE = 10 +, READ_INCOMING = 11 +,
+  KEEP_ALIVE = 12 +, PUBLISH_INBOUND = 13 +, UNSUBSCRIBE = 14 +, RECONNECT = 15 +,
+  GREENGRASS_DISCOVER = 16 +
+ }
 ActionType Enum Class. More...
 
+

Detailed Description

+

Defines a base class to be used by all Actions that can be run by the IoT Client. Also contains definitions for related Action types like ActionType, ActionState and ActionData

+

Enumeration Type Documentation

+ +

◆ ActionType

+ +
+
+ + + + + +
+ + + + +
enum class awsiotsdk::ActionType
+
+strong
+
+

Defines a strongly typed enum which specifies different Action Types. Actions can be registered in the core client for each of these Types.

+ +
+
+
+ + + + diff --git a/docs/html/_action_8hpp_source.html b/docs/html/_action_8hpp_source.html new file mode 100644 index 0000000..d276b15 --- /dev/null +++ b/docs/html/_action_8hpp_source.html @@ -0,0 +1,238 @@ + + + + + + + +AWS IoT C++ SDK: Action.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Action.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
25#pragma once
+
26
+
27#include <string>
+
28#include <iostream>
+
29#include <memory>
+
30#include <atomic>
+
31
+
32#include "util/Utf8String.hpp"
+
33#include "util/threading/ThreadTask.hpp"
+
34
+
35#include "ResponseCode.hpp"
+
36#include "NetworkConnection.hpp"
+
37
+
38#define DEFAULT_NETWORK_ACTION_THREAD_SLEEP_DURATION_MS 100
+
39
+
40namespace awsiotsdk {
+
47 enum class ActionType {
+
48 RESERVED_ACTION = 0,
+
49 CORE_PROCESS_INBOUND = 1,
+
50 CORE_PROCESS_OUTBOUND = 2,
+
51 CONNECT = 3,
+
52 DISCONNECT = 4,
+
53 PUBLISH = 5,
+
54 PUBACK = 6,
+
55 PUBREC = 7,
+
56 PUBREL = 8,
+
57 PUBCOMP = 9,
+
58 SUBSCRIBE = 10,
+
59 READ_INCOMING = 11,
+
60 KEEP_ALIVE = 12,
+
61 PUBLISH_INBOUND = 13,
+
62 UNSUBSCRIBE = 14,
+
63 RECONNECT = 15,
+
64 GREENGRASS_DISCOVER = 16
+
65 };
+
66
+ +
74 public:
+
80 virtual uint16_t GetNextActionId() = 0;
+
81
+
82 // Rule of 5 stuff
+
83 // Keeping defaults, explicitly mentioned to avoid conflicts with future C++ specifications
+
84 // Must always be able to copy and move
+
85 ActionState() = default; // Default constructor
+
86 ActionState(const ActionState &) = delete; // Copy constructor
+
87 ActionState(ActionState &&) = delete; // Move constructor
+
88 ActionState &operator=(const ActionState &) & = delete; // Copy assignment operator
+
89 ActionState &operator=(ActionState &&) & = delete; // Move assignment operator
+
90 virtual ~ActionState() = default; // Default destructor
+
91 };
+
92
+ +
101 public:
+
106 typedef std::function<void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr;
+
107
+
108 // Rule of 5 stuff
+
109 // Since virtual destructor is present, derived classes will have to explicitly define defaults
+
110 // Must always be able to copy and move
+
111 ActionData() = default; // Default constructor
+
112 ActionData(const ActionData &) = default; // Copy constructor
+
113 ActionData(ActionData &&) = default; // Move constructor
+
114 ActionData &operator=(const ActionData &) & = default; // Copy assignment operator
+
115 ActionData &operator=(ActionData &&) & = default; // Move assignment operator
+
116 virtual ~ActionData() = default; // Default destructor
+
117
+ +
119
+
124 virtual uint16_t GetActionId() = 0;
+
125
+
131 virtual void SetActionId(uint16_t action_id) = 0;
+
132 };
+
133
+
143 class Action {
+
144 public:
+
149 typedef std::function<std::unique_ptr<Action>(std::shared_ptr<ActionState> p_action_state)> CreateHandlerPtr;
+
150
+ +
156 return action_type_;
+
157 }
+
158
+
166 util::String GetActionInfo() {
+
167 return action_info_string_;
+
168 }
+
169
+
175 void SetParentThreadSync(std::shared_ptr<std::atomic_bool> p_thread_continue) {
+
176 p_thread_continue_ = p_thread_continue;
+
177 }
+
178
+
189 virtual ResponseCode PerformAction(std::shared_ptr<NetworkConnection> p_network_connection,
+
190 std::shared_ptr<ActionData> p_action_data) = 0;
+
191
+
192 // Rule of 5 stuff
+
193 // Disabling default, move and copy constructors
+
194 // Actions instances can be run as threads if needed and should not be copied or moved
+
195 Action() = delete; // Delete Default constructor
+
196 Action(const Action &) = delete; // Copy constructor
+
197 Action(Action &&) = delete; // Move constructor
+
198 Action &operator=(const Action &) & = delete; // Copy assignment operator
+
199 Action &operator=(Action &&) & = delete; // Move assignment operator
+
200 virtual ~Action() = default; // Default destructor
+
201
+
208 Action(ActionType action_type, util::String action_info_string);
+
209
+
210 protected:
+ +
212 util::String action_info_string_;
+
213 std::shared_ptr<std::atomic_bool> p_thread_continue_;
+
214
+
222 ResponseCode ReadFromNetworkBuffer(std::shared_ptr<NetworkConnection> p_network_connection,
+
223 util::Vector<unsigned char> &read_buf, size_t bytes_to_read);
+
224
+
231 ResponseCode WriteToNetworkBuffer(std::shared_ptr<NetworkConnection> p_network_connection,
+
232 const util::String &write_buf);
+
233 };
+
234}
+
ActionType
ActionType Enum Class.
Definition: Action.hpp:47
+
Network interface base class for IoT Client.
+
Strongly typed enumeration of return values from functions within the SDK.
+
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+ +
Action Data Class.
Definition: Action.hpp:100
+
AsyncAckNotificationHandlerPtr p_async_ack_handler_
Handler to call when response is received for this action.
Definition: Action.hpp:118
+
std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
Definition: Action.hpp:106
+
virtual void SetActionId(uint16_t action_id)=0
Set the Action ID for this run of the Action.
+
virtual uint16_t GetActionId()=0
Get ID of the current run of this Action.
+
Action Class.
Definition: Action.hpp:143
+
void SetParentThreadSync(std::shared_ptr< std::atomic_bool > p_thread_continue)
Sets the parent thread sync variable.
Definition: Action.hpp:175
+
std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
Definition: Action.hpp:149
+
util::String action_info_string_
Info string.
Definition: Action.hpp:212
+
virtual ResponseCode PerformAction(std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)=0
Virtual base function for Performing Action.
+
ActionType GetActionType()
Get Type of this Action.
Definition: Action.hpp:155
+
ActionType action_type_
Type of the action.
Definition: Action.hpp:211
+
ResponseCode ReadFromNetworkBuffer(std::shared_ptr< NetworkConnection > p_network_connection, util::Vector< unsigned char > &read_buf, size_t bytes_to_read)
Generic Network Read function for all actions.
Definition: Action.cpp:35
+
std::shared_ptr< std::atomic_bool > p_thread_continue_
Shared atomic variable used for sync when action is run in separate thread.
Definition: Action.hpp:213
+
ResponseCode WriteToNetworkBuffer(std::shared_ptr< NetworkConnection > p_network_connection, const util::String &write_buf)
Generic Network Write function for all actions.
Definition: Action.cpp:73
+
util::String GetActionInfo()
Get information/description about the current action.
Definition: Action.hpp:166
+
Action State Class.
Definition: Action.hpp:73
+
virtual uint16_t GetNextActionId()=0
Get Action ID of the next Action.
+
+ + + + diff --git a/docs/html/_client_8cpp.html b/docs/html/_client_8cpp.html new file mode 100644 index 0000000..3469d7f --- /dev/null +++ b/docs/html/_client_8cpp.html @@ -0,0 +1,101 @@ + + + + + + + +AWS IoT C++ SDK: Client.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Client.cpp File Reference
+
+
+
#include "util/logging/LogMacros.hpp"
+#include "ResponseCode.hpp"
+#include "mqtt/Client.hpp"
+#include "mqtt/NetworkRead.hpp"
+
+ + + + + +

+Macros

+#define MQTT_ACTION_TIMEOUT_MS   2000
 
+#define MQTT_CLIENT_LOG_TAG   "[MQTT Client]"
 
+
+ + + + diff --git a/docs/html/_client_8hpp.html b/docs/html/_client_8hpp.html new file mode 100644 index 0000000..72e446e --- /dev/null +++ b/docs/html/_client_8hpp.html @@ -0,0 +1,107 @@ + + + + + + + +AWS IoT C++ SDK: Client.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Client.hpp File Reference
+
+
+ +

Contains the MQTT Client class. +More...

+
#include "util/Utf8String.hpp"
+#include "ClientCore.hpp"
+#include "mqtt/Connect.hpp"
+#include "mqtt/Publish.hpp"
+#include "mqtt/Subscribe.hpp"
+#include "mqtt/ClientState.hpp"
+
+

Go to the source code of this file.

+ + + + + +

+Data Structures

class  awsiotsdk::MqttClient
 MQTT Client Class. More...
 
+

Detailed Description

+

Defines MQTT client wrapper using a Client Core instance. This is provided for ease of use. Instead of separately having to define Core Client and adding Actions to the client, applications can use this class directly.

+
+ + + + diff --git a/docs/html/_client_8hpp_source.html b/docs/html/_client_8hpp_source.html new file mode 100644 index 0000000..c3bb3f9 --- /dev/null +++ b/docs/html/_client_8hpp_source.html @@ -0,0 +1,270 @@ + + + + + + + +AWS IoT C++ SDK: Client.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Client.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
25#pragma once
+
26
+
27#include "util/Utf8String.hpp"
+
28
+
29#include "ClientCore.hpp"
+
30
+
31#include "mqtt/Connect.hpp"
+
32#include "mqtt/Publish.hpp"
+
33#include "mqtt/Subscribe.hpp"
+
34#include "mqtt/ClientState.hpp"
+
35
+
36namespace awsiotsdk {
+
37
+
46 AWS_API_EXPORT class MqttClient {
+
47 protected:
+
48 std::unique_ptr<ClientCore> p_client_core_;
+
49 std::shared_ptr<mqtt::ClientState> p_client_state_;
+
50
+
63 MqttClient(std::shared_ptr<NetworkConnection> p_network_connection,
+
64 std::chrono::milliseconds mqtt_command_timeout,
+ +
66 std::shared_ptr<DisconnectCallbackContextData> p_disconnect_app_handler_data,
+ +
68 std::shared_ptr<ReconnectCallbackContextData> p_reconnect_app_handler_data,
+ +
70 std::shared_ptr<ResubscribeCallbackContextData> p_resubscribe_app_handler_data);
+
71
+
80 MqttClient(std::shared_ptr<NetworkConnection> p_network_connection,
+
81 std::chrono::milliseconds mqtt_command_timeout,
+ +
83 std::shared_ptr<DisconnectCallbackContextData> p_disconnect_app_handler_data);
+
84
+
91 MqttClient(std::shared_ptr<NetworkConnection> p_network_connection,
+
92 std::chrono::milliseconds mqtt_command_timeout);
+
93
+
94 public:
+
95
+
96 // Disabling default and copy constructors. Defining a virtual destructor
+
97 // Client instances should not be copied to avoid possible Connection issues with two clients
+
98 // using same connection data
+
99 MqttClient() = delete; // Delete Default constructor
+
100 MqttClient(const MqttClient &) = delete; // Delete Copy constructor
+
101 MqttClient(MqttClient &&) = default; // Default Move constructor
+
102 MqttClient &operator=(const MqttClient &) & = delete; // Delete Copy assignment operator
+
103 MqttClient &operator=(MqttClient &&) & = default; // Default Move assignment operator
+
104 virtual ~MqttClient();
+
105
+
114 static std::unique_ptr<MqttClient> Create(std::shared_ptr<NetworkConnection> p_network_connection,
+
115 std::chrono::milliseconds mqtt_command_timeout);
+
116
+
126 static std::unique_ptr<MqttClient> Create(std::shared_ptr<NetworkConnection> p_network_connection,
+
127 std::chrono::milliseconds mqtt_command_timeout,
+ +
129 std::shared_ptr<DisconnectCallbackContextData> p_disconnect_app_handler_data);
+
130
+
144 static std::unique_ptr<MqttClient> Create(std::shared_ptr<NetworkConnection> p_network_connection,
+
145 std::chrono::milliseconds mqtt_command_timeout,
+ +
147 std::shared_ptr<DisconnectCallbackContextData> p_disconnect_app_handler_data,
+ +
149 std::shared_ptr<ReconnectCallbackContextData> p_reconnect_app_handler_data,
+ +
151 std::shared_ptr<ResubscribeCallbackContextData> p_resubscribe_app_handler_data);
+
152
+
153 // Sync API
+
154
+
172 virtual ResponseCode Connect(std::chrono::milliseconds action_response_timeout, bool is_clean_session,
+
173 mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout,
+
174 std::unique_ptr<Utf8String> p_client_id, std::unique_ptr<Utf8String> p_username,
+
175 std::unique_ptr<Utf8String> p_password,
+
176 std::unique_ptr<mqtt::WillOptions> p_will_msg);
+
177
+
196 virtual ResponseCode Connect(std::chrono::milliseconds action_response_timeout, bool is_clean_session,
+
197 mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout,
+
198 std::unique_ptr<Utf8String> p_client_id, std::unique_ptr<Utf8String> p_username,
+
199 std::unique_ptr<Utf8String> p_password,
+
200 std::unique_ptr<mqtt::WillOptions> p_will_msg,
+
201 bool is_metrics_enabled);
+
202
+
213 virtual ResponseCode Disconnect(std::chrono::milliseconds action_response_timeout);
+
214
+
230 virtual ResponseCode Publish(std::unique_ptr<Utf8String> p_topic_name, bool is_retained, bool is_duplicate,
+
231 mqtt::QoS qos, const util::String &payload,
+
232 std::chrono::milliseconds action_response_timeout);
+
233
+
245 virtual ResponseCode Subscribe(util::Vector<std::shared_ptr<mqtt::Subscription>> subscription_list,
+
246 std::chrono::milliseconds action_response_timeout);
+
247
+
259 virtual ResponseCode Unsubscribe(util::Vector<std::unique_ptr<Utf8String>> topic_list,
+
260 std::chrono::milliseconds action_response_timeout);
+
261
+
262 // Async API
+
263
+
283 virtual ResponseCode PublishAsync(std::unique_ptr<Utf8String> p_topic_name, bool is_retained, bool is_duplicate,
+
284 mqtt::QoS qos, const util::String &payload,
+ +
286 uint16_t &packet_id_out);
+
287
+
302 virtual ResponseCode SubscribeAsync(util::Vector<std::shared_ptr<mqtt::Subscription>> subscription_list,
+ +
304 uint16_t &packet_id_out);
+
305
+
320 virtual ResponseCode UnsubscribeAsync(util::Vector<std::unique_ptr<Utf8String>> topic_list,
+ +
322 uint16_t &packet_id_out);
+
323
+
329 virtual bool IsConnected();
+
330
+
336 virtual void SetAutoReconnectEnabled(bool value) {
+
337 p_client_state_->SetAutoReconnectEnabled(value);
+
338 }
+
339
+
345 virtual bool IsAutoReconnectEnabled() {
+
346 return p_client_state_->IsAutoReconnectEnabled();
+
347 }
+
348
+
357 virtual std::chrono::seconds GetMinReconnectBackoffTimeout();
+
358
+
364 virtual void SetMinReconnectBackoffTimeout(std::chrono::seconds min_reconnect_backoff_timeout);
+
365
+
374 virtual std::chrono::seconds GetMaxReconnectBackoffTimeout();
+
375
+
381 virtual void SetMaxReconnectBackoffTimeout(std::chrono::seconds max_reconnect_backoff_timeout);
+
382
+ +
391 std::shared_ptr<DisconnectCallbackContextData> p_app_handler_data);
+
392
+ +
401 std::shared_ptr<ReconnectCallbackContextData> p_app_handler_data);
+
402
+ +
411 std::shared_ptr<ResubscribeCallbackContextData> p_app_handler_data);
+
412
+
413 };
+
414}
+
Contains the Client Core class.
+ +
QoS
Quality of Service (QoS) Type.
Definition: Common.hpp:47
+
Version
MQTT Version Type.
Definition: Common.hpp:37
+ +
MQTT Publish and Puback Actions and Action data definitions for IoT Client.
+
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+
MQTT Subscribe and Unsubscribe Actions and Action data definitions for IoT Client.
+ +
std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
Definition: Action.hpp:106
+
std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< ReconnectCallbackContextData > p_app_handler_data, ResponseCode reconnect_result)> ApplicationReconnectCallbackPtr
Define Handler for Reconnect Callbacks.
Definition: ClientCoreState.hpp:160
+
std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< DisconnectCallbackContextData > p_app_handler_data)> ApplicationDisconnectCallbackPtr
Define Handler for Disconnect Callbacks.
Definition: ClientCoreState.hpp:147
+
std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< ResubscribeCallbackContextData > p_app_handler_data, ResponseCode resubscribe_result)> ApplicationResubscribeCallbackPtr
Define Handler for Resubscribe Callbacks.
Definition: ClientCoreState.hpp:173
+
MQTT Client Class.
Definition: Client.hpp:46
+
virtual std::chrono::seconds GetMaxReconnectBackoffTimeout()
returns the maximum back-off time value
Definition: Client.cpp:257
+
virtual ResponseCode SetDisconnectCallbackPtr(ClientCoreState::ApplicationDisconnectCallbackPtr p_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_app_handler_data)
Set the callback function for disconnects.
Definition: Client.cpp:262
+
virtual ResponseCode Publish(std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, mqtt::QoS qos, const util::String &payload, std::chrono::milliseconds action_response_timeout)
Perform Sync Publish.
Definition: Client.cpp:164
+
virtual void SetMaxReconnectBackoffTimeout(std::chrono::seconds max_reconnect_backoff_timeout)
sets the maximum back-off time value
Definition: Client.cpp:258
+
virtual ResponseCode SetResubscribeCallbackPtr(ClientCoreState::ApplicationResubscribeCallbackPtr p_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_app_handler_data)
Set the callback function for resubscribes.
Definition: Client.cpp:278
+
virtual ResponseCode UnsubscribeAsync(util::Vector< std::unique_ptr< Utf8String > > topic_list, ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler, uint16_t &packet_id_out)
Perform Async Unsubscribe.
Definition: Client.cpp:234
+
virtual ResponseCode Subscribe(util::Vector< std::shared_ptr< mqtt::Subscription > > subscription_list, std::chrono::milliseconds action_response_timeout)
Perform Sync Subscribe.
Definition: Client.cpp:176
+
virtual ResponseCode Unsubscribe(util::Vector< std::unique_ptr< Utf8String > > topic_list, std::chrono::milliseconds action_response_timeout)
Perform Sync Unsubscribe.
Definition: Client.cpp:189
+
virtual bool IsConnected()
Check if Client is in Connected state.
Definition: Client.cpp:248
+
virtual ResponseCode Disconnect(std::chrono::milliseconds action_response_timeout)
Perform Sync Disconnect.
Definition: Client.cpp:159
+
virtual bool IsAutoReconnectEnabled()
returns the current state of the auto-reconnect flag
Definition: Client.hpp:345
+
static std::unique_ptr< MqttClient > Create(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)
Create factory method. Returns a unique instance of MqttClient.
Definition: Client.cpp:33
+
std::unique_ptr< ClientCore > p_client_core_
Unique pointer to the Client Core instance.
Definition: Client.hpp:48
+
virtual ResponseCode Connect(std::chrono::milliseconds action_response_timeout, bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg)
Perform Sync Connect.
Definition: Client.cpp:128
+
virtual void SetAutoReconnectEnabled(bool value)
Sets the auto-reconnect flag for the client.
Definition: Client.hpp:336
+
virtual ResponseCode SetReconnectCallbackPtr(ClientCoreState::ApplicationReconnectCallbackPtr p_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_app_handler_data)
Set the callback function for reconnects.
Definition: Client.cpp:270
+
virtual ResponseCode SubscribeAsync(util::Vector< std::shared_ptr< mqtt::Subscription > > subscription_list, ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler, uint16_t &packet_id_out)
Perform Async Subscribe.
Definition: Client.cpp:219
+
virtual void SetMinReconnectBackoffTimeout(std::chrono::seconds min_reconnect_backoff_timeout)
sets the minimum back-off time value
Definition: Client.cpp:253
+
std::shared_ptr< mqtt::ClientState > p_client_state_
MQTT Client state.
Definition: Client.hpp:49
+
virtual ResponseCode PublishAsync(std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, mqtt::QoS qos, const util::String &payload, ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler, uint16_t &packet_id_out)
Perform Async Publish.
Definition: Client.cpp:202
+
virtual std::chrono::seconds GetMinReconnectBackoffTimeout()
returns the minimum back-off time value
Definition: Client.cpp:252
+
+ + + + diff --git a/docs/html/_client_core_8cpp.html b/docs/html/_client_core_8cpp.html new file mode 100644 index 0000000..0abc203 --- /dev/null +++ b/docs/html/_client_core_8cpp.html @@ -0,0 +1,97 @@ + + + + + + + +AWS IoT C++ SDK: ClientCore.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ClientCore.cpp File Reference
+
+
+
#include <iostream>
+#include "util/logging/LogMacros.hpp"
+#include "ClientCore.hpp"
+
+ + + +

+Macros

+#define LOG_TAG_CLIENT_CORE   "[Client Core]"
 
+
+ + + + diff --git a/docs/html/_client_core_8hpp.html b/docs/html/_client_core_8hpp.html new file mode 100644 index 0000000..696bfc0 --- /dev/null +++ b/docs/html/_client_core_8hpp.html @@ -0,0 +1,103 @@ + + + + + + + +AWS IoT C++ SDK: ClientCore.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ClientCore.hpp File Reference
+
+
+ +

Contains the Client Core class. +More...

+
#include "ClientCoreState.hpp"
+#include "util/threading/ThreadTask.hpp"
+
+

Go to the source code of this file.

+ + + + + +

+Data Structures

class  awsiotsdk::ClientCore
 Client Core Class. More...
 
+

Detailed Description

+

Defines the Client Core class which is a generic Action executor class Client Core instances are responsible for maintaining the Action Registry and running Actions on request. They are also responsible for spawning threads for Actions.

+
+ + + + diff --git a/docs/html/_client_core_8hpp_source.html b/docs/html/_client_core_8hpp_source.html new file mode 100644 index 0000000..45a97a6 --- /dev/null +++ b/docs/html/_client_core_8hpp_source.html @@ -0,0 +1,159 @@ + + + + + + + +AWS IoT C++ SDK: ClientCore.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ClientCore.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
27#pragma once
+
28
+
29#include "ClientCoreState.hpp"
+
30#include "util/threading/ThreadTask.hpp"
+
31
+
32namespace awsiotsdk {
+
33
+
43 AWS_API_EXPORT class ClientCore {
+
44 protected:
+
45 util::Map<ActionType, std::shared_ptr<util::Threading::ThreadTask>> thread_map_;
+
46
+
47 std::shared_ptr<ClientCoreState>p_client_core_state_;
+
48
+
55 ClientCore(std::shared_ptr<NetworkConnection> p_network_connection, std::shared_ptr<ClientCoreState> p_state);
+
56
+
57 public:
+
58 // Disabling default, copy and move constructors. Defining the virtual destructor
+
59 // Class contains thread instances. Should not be copied or moved
+
60 ClientCore() = delete; // Delete Default constructor
+
61 ClientCore(const ClientCore &) = delete; // Delete Copy constructor
+
62 ClientCore(ClientCore &&) = delete; // Delete Move constructor
+
63 ClientCore &operator=(const ClientCore &) & = delete; // Delete Copy assignment operator
+
64 ClientCore &operator=(ClientCore &&) & = delete; // Delete Move assignment operator
+
65 virtual ~ClientCore(); // Defined destructor
+
66
+
72 void SetProcessQueuedActions(bool process_queued_actions) {
+
73 p_client_core_state_->SetProcessQueuedActions(process_queued_actions);
+
74 }
+
75
+
83 static std::unique_ptr<ClientCore> Create(std::shared_ptr<NetworkConnection> p_network_connection,
+
84 std::shared_ptr<ClientCoreState> p_state);
+
85
+
100 ResponseCode RegisterAction(ActionType action_type, Action::CreateHandlerPtr p_action_create_handler);
+
101
+
114 ResponseCode PerformAction(ActionType action_type, std::shared_ptr<ActionData> action_data,
+
115 std::chrono::milliseconds action_reponse_timeout);
+
116
+
130 ResponseCode PerformActionAsync(ActionType action_type, std::shared_ptr<ActionData> action_data,
+
131 uint16_t &action_id_out);
+
132
+
144 ResponseCode CreateActionRunner(ActionType action_type, std::shared_ptr<ActionData> action_data);
+
145
+ +
153 };
+
154}
+
ActionType
ActionType Enum Class.
Definition: Action.hpp:47
+ +
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+
std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
Definition: Action.hpp:149
+
Client Core Class.
Definition: ClientCore.hpp:43
+
std::shared_ptr< ClientCoreState > p_client_core_state_
Client Core state instance.
Definition: ClientCore.hpp:47
+
util::Map< ActionType, std::shared_ptr< util::Threading::ThreadTask > > thread_map_
Map for storing currently active threads.
Definition: ClientCore.hpp:45
+
static std::unique_ptr< ClientCore > Create(std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ClientCoreState > p_state)
Factory method for creating a Client Core instance.
Definition: ClientCore.cpp:29
+
ResponseCode PerformActionAsync(ActionType action_type, std::shared_ptr< ActionData > action_data, uint16_t &action_id_out)
Perform Action in Asynchronous Mode.
Definition: ClientCore.cpp:62
+
ResponseCode PerformAction(ActionType action_type, std::shared_ptr< ActionData > action_data, std::chrono::milliseconds action_reponse_timeout)
Perform Action in Blocking Mode.
Definition: ClientCore.cpp:57
+
ResponseCode CreateActionRunner(ActionType action_type, std::shared_ptr< ActionData > action_data)
Create Thread Task to execute request Action Type.
Definition: ClientCore.cpp:67
+
void GracefulShutdownAllThreadTasks()
Waits for all threads to complete their tasks and then clears them.
Definition: ClientCore.cpp:94
+
ResponseCode RegisterAction(ActionType action_type, Action::CreateHandlerPtr p_action_create_handler)
Register Action for execution by Client Core.
Definition: ClientCore.cpp:53
+
void SetProcessQueuedActions(bool process_queued_actions)
Enable/Disable processing of queued actions.
Definition: ClientCore.hpp:72
+
+ + + + diff --git a/docs/html/_client_core_state_8cpp.html b/docs/html/_client_core_state_8cpp.html new file mode 100644 index 0000000..fd09e31 --- /dev/null +++ b/docs/html/_client_core_state_8cpp.html @@ -0,0 +1,99 @@ + + + + + + + +AWS IoT C++ SDK: ClientCoreState.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ClientCoreState.cpp File Reference
+
+
+ + + + + + +

+Macros

+#define MAX_CORE_ACTION_PROCESSING_RATE_HZ   5
 
+#define LOG_TAG_CLIENT_CORE_STATE   "[Client Core State]"
 
+
+ + + + diff --git a/docs/html/_client_core_state_8hpp.html b/docs/html/_client_core_state_8hpp.html new file mode 100644 index 0000000..00a125d --- /dev/null +++ b/docs/html/_client_core_state_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + +AWS IoT C++ SDK: ClientCoreState.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ClientCoreState.hpp File Reference
+
+
+
#include <condition_variable>
+#include <chrono>
+#include "util/Core_EXPORTS.hpp"
+#include "util/Utf8String.hpp"
+#include "util/memory/stl/Map.hpp"
+#include "util/memory/stl/Queue.hpp"
+#include "Action.hpp"
+#include "ResponseCode.hpp"
+#include "NetworkConnection.hpp"
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + +

+Data Structures

class  awsiotsdk::DisconnectCallbackContextData
 MQTT Disconnect Callback Context Data. More...
 
class  awsiotsdk::ReconnectCallbackContextData
 MQTT Reconnect Callback Context Data. More...
 
class  awsiotsdk::ResubscribeCallbackContextData
 MQTT Resubscribe Callback Context Data. More...
 
class  awsiotsdk::ClientCoreState
 Client Core State Class. More...
 
class  awsiotsdk::ClientCoreState::PendingAckData
 Pending Ack Data Class. More...
 
+ + + + + +

+Macros

#define DEFAULT_CORE_THREAD_SLEEP_DURATION_MS   100
 
#define DEFAULT_MAX_QUEUE_SIZE   16
 
+

Macro Definition Documentation

+ +

◆ DEFAULT_CORE_THREAD_SLEEP_DURATION_MS

+ +
+
+ + + + +
#define DEFAULT_CORE_THREAD_SLEEP_DURATION_MS   100
+
+

Default sleep duration between each execution of Client Core thread operations

+ +
+
+ +

◆ DEFAULT_MAX_QUEUE_SIZE

+ +
+
+ + + + +
#define DEFAULT_MAX_QUEUE_SIZE   16
+
+

Max size of the queue

+ +
+
+
+ + + + diff --git a/docs/html/_client_core_state_8hpp_source.html b/docs/html/_client_core_state_8hpp_source.html new file mode 100644 index 0000000..7d05a6b --- /dev/null +++ b/docs/html/_client_core_state_8hpp_source.html @@ -0,0 +1,316 @@ + + + + + + + +AWS IoT C++ SDK: ClientCoreState.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ClientCoreState.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include <condition_variable>
+
25#include <chrono>
+
26
+
27#include "util/Core_EXPORTS.hpp"
+
28
+
29#include "util/Utf8String.hpp"
+ + +
32
+
33#include "Action.hpp"
+
34#include "ResponseCode.hpp"
+
35#include "NetworkConnection.hpp"
+
36
+
40#define DEFAULT_CORE_THREAD_SLEEP_DURATION_MS 100
+
41
+
45#define DEFAULT_MAX_QUEUE_SIZE 16
+
46
+
47namespace awsiotsdk {
+
48
+ +
56 public:
+ +
58 };
+
59
+ +
67 public:
+ +
69 };
+
70
+ +
78 public:
+ +
80 };
+
81
+ +
93 protected:
+
94
+ +
102 public:
+
103 std::chrono::system_clock::time_point time_of_request_;
+ +
105 };
+
106
+
107 std::atomic<uint16_t> next_action_id_;
+
108 std::atomic_int cur_core_threads_;
+
109 std::atomic_int max_hardware_threads_;
+
110 std::atomic_size_t max_queue_size_;
+
111 std::chrono::seconds ack_timeout_;
+
112
+ +
114 std::mutex ack_map_lock_;
+
115
+
116 // Used to perform blocking sync actions
+ + +
119 std::condition_variable sync_action_response_wait_;
+ +
121
+
122 std::atomic_bool process_queued_actions_;
+
123 std::shared_ptr<std::atomic_bool> continue_execution_;
+
124
+
125 util::Map<ActionType, std::unique_ptr<Action>> action_map_;
+
126 util::Map<uint16_t, std::unique_ptr<PendingAckData>> pending_ack_map_;
+
127 util::Map<ActionType, Action::CreateHandlerPtr> action_create_handler_map_;
+
128
+
129 util::Queue<std::pair<ActionType, std::shared_ptr<ActionData>>> outbound_action_queue_;
+
130
+
137 void SyncActionHandler(uint16_t action_id, ResponseCode rc);
+
138
+
139 public:
+
146 typedef std::function<ResponseCode(util::String mqtt_client_id,
+
147 std::shared_ptr<DisconnectCallbackContextData> p_app_handler_data)> ApplicationDisconnectCallbackPtr;
+
148
+ +
150 std::shared_ptr<DisconnectCallbackContextData> p_disconnect_app_handler_data_;
+
151
+
158 typedef std::function<ResponseCode(util::String mqtt_client_id,
+
159 std::shared_ptr<ReconnectCallbackContextData> p_app_handler_data,
+ +
161
+ +
163 std::shared_ptr<ReconnectCallbackContextData> p_reconnect_app_handler_data_;
+
164
+
171 typedef std::function<ResponseCode(util::String mqtt_client_id,
+
172 std::shared_ptr<ResubscribeCallbackContextData> p_app_handler_data,
+ +
174
+ +
176 std::shared_ptr<ResubscribeCallbackContextData> p_resubscribe_app_handler_data_;
+
177
+
182 std::shared_ptr<NetworkConnection> p_network_connection_;
+
183
+
188 virtual uint16_t GetNextActionId() {
+
189 if (UINT16_MAX == next_action_id_) {
+
190 next_action_id_ = 1;
+
191 return UINT16_MAX;
+
192 }
+
193 return next_action_id_++;
+
194 };
+
195
+ +
201
+
206 void SetMaxActionQueueSize(size_t max_queue_size) { max_queue_size_ = max_queue_size; }
+
207
+
215 std::shared_ptr<std::atomic_bool> GetCoreExecutionSyncPoint() { return continue_execution_; }
+
216
+
221 void SetProcessQueuedActions(bool process_queued_actions) { process_queued_actions_ = process_queued_actions; }
+
222
+ +
228
+
240 void ProcessOutboundActionQueue(std::shared_ptr<std::atomic_bool> thread_task_out_sync);
+
241
+
254 ResponseCode PerformAction(ActionType action_type, std::shared_ptr<ActionData> action_data,
+
255 std::chrono::milliseconds action_reponse_timeout);
+
256
+
271 ResponseCode RegisterAction(ActionType action_type, Action::CreateHandlerPtr p_action_create_handler,
+
272 std::shared_ptr<ActionState> p_action_state);
+
273
+
281 ResponseCode GetActionCreateHandler(ActionType action_type, Action::CreateHandlerPtr *p_action_create_handler);
+
282
+
291 ResponseCode EnqueueOutboundAction(ActionType action_type, std::shared_ptr<ActionData> action_data,
+
292 uint16_t &action_id_out);
+
293
+
300 ResponseCode RegisterPendingAck(uint16_t action_id,
+ +
302
+
307 void DeletePendingAck(uint16_t action_id);
+
308
+
314 void ForwardReceivedAck(uint16_t action_id, ResponseCode rc);
+
315
+
321 void DeleteExpiredAcks();
+
322
+ +
330
+ +
338
+ +
343
+
347 virtual ~ClientCoreState();
+
348
+
349 // Rule of 5 stuff
+
350 // Contains data for running thread tasks, should not be moved or copied
+
351 ClientCoreState(const ClientCoreState &) = delete; // Copy constructor
+
352 ClientCoreState(ClientCoreState &&) = delete; // Move constructor
+
353 ClientCoreState &operator=(const ClientCoreState &) & = delete; // Copy assignment operator
+
354 ClientCoreState &operator=(ClientCoreState &&) & = delete; // Move assignment operator
+
355 };
+
356}
+
357
+
Action Base class and related definitions for IoT Client.
+
ActionType
ActionType Enum Class.
Definition: Action.hpp:47
+ +
Network interface base class for IoT Client.
+ +
Strongly typed enumeration of return values from functions within the SDK.
+
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+ +
std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
Definition: Action.hpp:106
+
std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
Definition: Action.hpp:149
+
Action State Class.
Definition: Action.hpp:73
+
Pending Ack Data Class.
Definition: ClientCoreState.hpp:101
+
ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler_
Handler to which response must be sent.
Definition: ClientCoreState.hpp:104
+
std::chrono::system_clock::time_point time_of_request_
Time at which the request was sent.
Definition: ClientCoreState.hpp:103
+
Client Core State Class.
Definition: ClientCoreState.hpp:92
+
ResponseCode PerformAction(ActionType action_type, std::shared_ptr< ActionData > action_data, std::chrono::milliseconds action_reponse_timeout)
Perform Action in Blocking Mode.
Definition: ClientCoreState.cpp:103
+
std::shared_ptr< NetworkConnection > p_network_connection_
Network connection instance to use for this instance of the Client This is shared between Actions,...
Definition: ClientCoreState.hpp:182
+
ApplicationResubscribeCallbackPtr resubscribe_handler_ptr_
Pointer to the Application Resubscribe Callback.
Definition: ClientCoreState.hpp:175
+
void ProcessOutboundActionQueue(std::shared_ptr< std::atomic_bool > thread_task_out_sync)
Process the outbound action queue.
Definition: ClientCoreState.cpp:131
+
std::mutex sync_action_request_lock_
Mutex for Sync Action Request flow.
Definition: ClientCoreState.hpp:117
+
ClientCoreState()
Default Constructor.
Definition: ClientCoreState.cpp:33
+
std::atomic_size_t max_queue_size_
Atomic, Current configured max queue size.
Definition: ClientCoreState.hpp:110
+
std::condition_variable sync_action_response_wait_
Condition variable used to wake up calling thread on Sync Action response.
Definition: ClientCoreState.hpp:119
+
std::atomic< uint16_t > next_action_id_
Atomic, ID of the next Action that will be enqueued.
Definition: ClientCoreState.hpp:107
+
std::mutex sync_action_response_lock_
Mutex for Sync Action Response flow.
Definition: ClientCoreState.hpp:118
+
ResponseCode EnqueueOutboundAction(ActionType action_type, std::shared_ptr< ActionData > action_data, uint16_t &action_id_out)
Enqueue Action for processing in Outbound Queue.
Definition: ClientCoreState.cpp:70
+
std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data_
Data to be passed to the Application Handler.
Definition: ClientCoreState.hpp:150
+
ResponseCode GetActionCreateHandler(ActionType action_type, Action::CreateHandlerPtr *p_action_create_handler)
Get the Create Factory Method for the specified action type.
Definition: ClientCoreState.cpp:85
+
std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< ReconnectCallbackContextData > p_app_handler_data, ResponseCode reconnect_result)> ApplicationReconnectCallbackPtr
Define Handler for Reconnect Callbacks.
Definition: ClientCoreState.hpp:160
+
std::chrono::seconds ack_timeout_
Timeout for pending Acks, older Acks are deleted with a failed response.
Definition: ClientCoreState.hpp:111
+
std::atomic_int cur_core_threads_
Atomic, Count of currently running core threads.
Definition: ClientCoreState.hpp:108
+
void DeletePendingAck(uint16_t action_id)
Delete Ack Handler for specified Action ID.
Definition: ClientCoreState.cpp:203
+
util::Queue< std::pair< ActionType, std::shared_ptr< ActionData > > > outbound_action_queue_
Queue of outbound actions.
Definition: ClientCoreState.hpp:129
+
std::mutex ack_map_lock_
Mutex for Ack Map operations.
Definition: ClientCoreState.hpp:114
+
std::mutex register_action_lock_
Mutex for Register Action Request flow.
Definition: ClientCoreState.hpp:113
+
util::Map< uint16_t, std::unique_ptr< PendingAckData > > pending_ack_map_
Map containing currently pending Acks.
Definition: ClientCoreState.hpp:126
+
std::shared_ptr< std::atomic_bool > continue_execution_
Atomic, Used to synchronize running threads, false value causes running threads to stop.
Definition: ClientCoreState.hpp:123
+
std::atomic_int max_hardware_threads_
Atomic, Count of the maximum allowed hardware threads.
Definition: ClientCoreState.hpp:109
+
util::Map< ActionType, Action::CreateHandlerPtr > action_create_handler_map_
Map containing currently registered Action Types and corrosponding Factories.
Definition: ClientCoreState.hpp:127
+
util::Map< ActionType, std::unique_ptr< Action > > action_map_
Map containing currently initialized Action Instances.
Definition: ClientCoreState.hpp:125
+
void ForwardReceivedAck(uint16_t action_id, ResponseCode rc)
Call registered Ack handler if it exists for specified Packet id.
Definition: ClientCoreState.cpp:225
+
ResponseCode RegisterAction(ActionType action_type, Action::CreateHandlerPtr p_action_create_handler, std::shared_ptr< ActionState > p_action_state)
Register Action for execution by Client Core.
Definition: ClientCoreState.cpp:47
+
std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data_
Data to be passed to the Application Handler.
Definition: ClientCoreState.hpp:176
+
ApplicationReconnectCallbackPtr reconnect_handler_ptr_
Pointer to the Application Reconnect Callback.
Definition: ClientCoreState.hpp:162
+
virtual uint16_t GetNextActionId()
Overload for Get next Action ID.
Definition: ClientCoreState.hpp:188
+
ResponseCode RegisterPendingAck(uint16_t action_id, ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler)
Register Ack Handler for provided action id.
Definition: ClientCoreState.cpp:188
+
void SetMaxActionQueueSize(size_t max_queue_size)
Set max size for action queue.
Definition: ClientCoreState.hpp:206
+
std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< DisconnectCallbackContextData > p_app_handler_data)> ApplicationDisconnectCallbackPtr
Define Handler for Disconnect Callbacks.
Definition: ClientCoreState.hpp:147
+
ResponseCode sync_action_response_
Variable to store received Sync Action response.
Definition: ClientCoreState.hpp:120
+
size_t GetMaxActionQueueSize()
Get current value of maximum action queue size.
Definition: ClientCoreState.hpp:200
+
ApplicationDisconnectCallbackPtr disconnect_handler_ptr_
Pointer to the Application Disconnect Callback.
Definition: ClientCoreState.hpp:149
+
std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data_
Data to be passed to the Application Handler.
Definition: ClientCoreState.hpp:163
+
std::atomic_bool process_queued_actions_
Atomic, indicates whether currently queued Actions should be processed or not.
Definition: ClientCoreState.hpp:122
+
void SyncActionHandler(uint16_t action_id, ResponseCode rc)
Internal Action Handler for Sync Action responses.
Definition: ClientCoreState.cpp:97
+
std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< ResubscribeCallbackContextData > p_app_handler_data, ResponseCode resubscribe_result)> ApplicationResubscribeCallbackPtr
Define Handler for Resubscribe Callbacks.
Definition: ClientCoreState.hpp:173
+
bool CanProcessQueuedActions()
Get whether the Client can process queued actions.
Definition: ClientCoreState.hpp:227
+
void ClearRegisteredActions()
Clears all registered Actions.
Definition: ClientCoreState.cpp:235
+
virtual ~ClientCoreState()
Destructor.
Definition: ClientCoreState.cpp:41
+
void SetProcessQueuedActions(bool process_queued_actions)
Sets whether the Client is allowed to process queue actions.
Definition: ClientCoreState.hpp:221
+
std::shared_ptr< std::atomic_bool > GetCoreExecutionSyncPoint()
Get pointer to sync point used for execution status of the Core instance.
Definition: ClientCoreState.hpp:215
+
void ClearOutboundActionQueue()
Clears all pending outbound Actions.
Definition: ClientCoreState.cpp:239
+
void DeleteExpiredAcks()
Delete all expired Acks.
Definition: ClientCoreState.cpp:211
+
MQTT Disconnect Callback Context Data.
Definition: ClientCoreState.hpp:55
+
MQTT Reconnect Callback Context Data.
Definition: ClientCoreState.hpp:66
+
MQTT Resubscribe Callback Context Data.
Definition: ClientCoreState.hpp:77
+
+ + + + diff --git a/docs/html/_client_state_8cpp.html b/docs/html/_client_state_8cpp.html new file mode 100644 index 0000000..05dbdac --- /dev/null +++ b/docs/html/_client_state_8cpp.html @@ -0,0 +1,99 @@ + + + + + + + +AWS IoT C++ SDK: ClientState.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ClientState.cpp File Reference
+
+
+
#include <regex>
+#include "mqtt/ClientState.hpp"
+
+ + + + + +

+Macros

+#define MIN_RECONNECT_BACKOFF_DEFAULT_SEC   1
 
+#define MAX_RECONNECT_BACKOFF_DEFAULT_SEC   128
 
+
+ + + + diff --git a/docs/html/_client_state_8hpp.html b/docs/html/_client_state_8hpp.html new file mode 100644 index 0000000..9de6656 --- /dev/null +++ b/docs/html/_client_state_8hpp.html @@ -0,0 +1,101 @@ + + + + + + + +AWS IoT C++ SDK: ClientState.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ClientState.hpp File Reference
+
+
+
#include <atomic>
+#include "util/Utf8String.hpp"
+#include "util/memory/stl/Map.hpp"
+#include "Action.hpp"
+#include "ClientCore.hpp"
+#include "mqtt/Common.hpp"
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

class  awsiotsdk::mqtt::ClientState
 
+
+ + + + diff --git a/docs/html/_client_state_8hpp_source.html b/docs/html/_client_state_8hpp_source.html new file mode 100644 index 0000000..af49204 --- /dev/null +++ b/docs/html/_client_state_8hpp_source.html @@ -0,0 +1,226 @@ + + + + + + + +AWS IoT C++ SDK: ClientState.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ClientState.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include <atomic>
+
25
+
26#include "util/Utf8String.hpp"
+ +
28
+
29#include "Action.hpp"
+
30#include "ClientCore.hpp"
+
31
+
32#include "mqtt/Common.hpp"
+
33
+
34namespace awsiotsdk {
+
35 namespace mqtt {
+ +
37 protected:
+
38
+
39 bool is_session_present_;
+
40 std::atomic_bool is_connected_;
+
41 std::atomic_bool is_auto_reconnect_enabled_;
+
42 std::atomic_bool is_auto_reconnect_required_;
+
43 std::atomic_bool is_pingreq_pending_;
+
44
+
45 uint16_t last_sent_packet_id_;
+
46
+
47 std::chrono::seconds keep_alive_timeout_;
+
48 std::chrono::seconds min_reconnect_backoff_timeout_;
+
49 std::chrono::seconds max_reconnect_backoff_timeout_;
+
50 std::chrono::milliseconds mqtt_command_timeout_;
+
51
+
52 std::shared_ptr<ActionData> p_connect_data_;
+
53
+
54 std::atomic_bool trigger_disconnect_callback_;
+
55 public:
+
56 util::Map<util::String, std::shared_ptr<Subscription>> subscription_map_;
+
57
+
58 // Rule of 5 stuff
+
59 // Disable copying and moving because class contains std::atomic<> types used for thread synchronization
+
60 ClientState() = delete; // Default constructor
+
61 ClientState(const ClientState &) = delete; // Delete Copy constructor
+
62 ClientState(ClientState &&) = delete; // Move constructor
+
63 ClientState &operator=(const ClientState &) & = delete; // Delete Copy assignment operator
+
64 ClientState &operator=(ClientState &&) & = delete; // Move assignment operator
+
65 ~ClientState() = default; // Default destructor
+
66
+
67 ClientState(std::chrono::milliseconds mqtt_command_timeout);
+
68 static std::shared_ptr<ClientState> Create(std::chrono::milliseconds mqtt_command_timeout);
+
69
+
70 bool IsSessionPresent() { return is_session_present_; }
+
71 void SetSessionPresent(bool value) { is_session_present_ = value; }
+
72
+
73 bool IsConnected() { return is_connected_; }
+
74 void SetConnected(bool value) {
+
75 is_connected_ = value;
+
76 if (value) {
+
77 is_auto_reconnect_required_ = false;
+
78 }
+ +
80 }
+
81
+
82 bool IsAutoReconnectEnabled() { return is_auto_reconnect_enabled_; }
+
83 void SetAutoReconnectEnabled(bool value) { is_auto_reconnect_enabled_ = value; }
+
84
+
85 bool IsAutoReconnectRequired() { return is_auto_reconnect_required_; }
+
86 void SetAutoReconnectRequired(bool value) { is_auto_reconnect_required_ = value; }
+
87
+
88 bool IsPingreqPending() { return is_pingreq_pending_; }
+
89 void SetPingreqPending(bool value) { is_pingreq_pending_ = value; }
+
90
+
91 bool isDisconnectCallbackPending() { return trigger_disconnect_callback_; }
+
92 void setDisconnectCallbackPending(bool value) { trigger_disconnect_callback_ = value; }
+
93
+
94 virtual uint16_t GetNextPacketId();
+
95 virtual uint16_t GetNextActionId() { return GetNextPacketId(); }
+
96
+
101 std::chrono::seconds GetKeepAliveTimeout() { return keep_alive_timeout_; }
+
102 void SetKeepAliveTimeout(std::chrono::seconds keep_alive_timeout) {
+
103 keep_alive_timeout_ = keep_alive_timeout;
+
104 }
+
105
+
106 std::chrono::milliseconds GetMqttCommandTimeout() { return mqtt_command_timeout_; }
+
107 void SetMqttCommandTimeout(std::chrono::milliseconds mqtt_command_timeout) {
+
108 mqtt_command_timeout_ = mqtt_command_timeout;
+
109 }
+
110
+
111 std::chrono::seconds GetMinReconnectBackoffTimeout() { return min_reconnect_backoff_timeout_; }
+
112 void SetMinReconnectBackoffTimeout(std::chrono::seconds min_reconnect_backoff_timeout) {
+
113 min_reconnect_backoff_timeout_ = min_reconnect_backoff_timeout;
+
114 }
+
115
+
116 std::chrono::seconds GetMaxReconnectBackoffTimeout() { return max_reconnect_backoff_timeout_; }
+
117 void SetMaxReconnectBackoffTimeout(std::chrono::seconds max_reconnect_backoff_timeout) {
+
118 max_reconnect_backoff_timeout_ = max_reconnect_backoff_timeout;
+
119 }
+
120
+
121 std::shared_ptr<ActionData> GetAutoReconnectData() { return p_connect_data_; }
+
122 void SetAutoReconnectData(std::shared_ptr<ActionData> p_connect_data) { p_connect_data_ = p_connect_data; }
+
123
+
124 std::shared_ptr<Subscription> GetSubscription(util::String p_topic_name);
+
125
+
126 std::shared_ptr<Subscription> SetSubscriptionPacketInfo(util::String p_topic_name,
+
127 uint16_t packet_id,
+
128 uint8_t index_in_packet);
+
129
+
130 ResponseCode SetSubscriptionActive(uint16_t packet_id, uint8_t index_in_sub_packet, mqtt::QoS max_qos);
+
131
+
132 ResponseCode RemoveSubscription(uint16_t packet_id, uint8_t index_in_sub_packet);
+
133
+
134 ResponseCode RemoveAllSubscriptionsForPacketId(uint16_t packet_id);
+
135
+
136 ResponseCode RemoveSubscription(util::String p_topic_name);
+
137 };
+
138 }
+
139}
+
140
+
Action Base class and related definitions for IoT Client.
+
Contains the Client Core class.
+
Common class definitions for the MQTT Client.
+ +
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+ +
Client Core State Class.
Definition: ClientCoreState.hpp:92
+
void SetProcessQueuedActions(bool process_queued_actions)
Sets whether the Client is allowed to process queue actions.
Definition: ClientCoreState.hpp:221
+
Definition: ClientState.hpp:36
+
std::chrono::seconds GetKeepAliveTimeout()
Get duration of Keep alive interval in seconds.
Definition: ClientState.hpp:101
+
virtual uint16_t GetNextActionId()
Overload for Get next Action ID.
Definition: ClientState.hpp:95
+
+ + + + diff --git a/docs/html/_common_8cpp.html b/docs/html/_common_8cpp.html new file mode 100644 index 0000000..7c0e73f --- /dev/null +++ b/docs/html/_common_8cpp.html @@ -0,0 +1,108 @@ + + + + + + + +AWS IoT C++ SDK: Common.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Common.cpp File Reference
+
+
+
#include "mqtt/Common.hpp"
+#include <iostream>
+
+ + + + + + + + + + + +

+Macros

+#define SINGLE_LEVEL_WILDCARD   '+'
 
+#define MULTI_LEVEL_WILDCARD   '#'
 
+#define RESERVED_TOPIC   '$'
 
+#define SINGLE_LEVEL_REGEX_STRING   "[^/]*"
 
+#define MULTI_LEVEL_REGEX_STRING   u8"[^\uc1bf]*"
 
+
+ + + + diff --git a/docs/html/_common_8hpp.html b/docs/html/_common_8hpp.html new file mode 100644 index 0000000..b625543 --- /dev/null +++ b/docs/html/_common_8hpp.html @@ -0,0 +1,266 @@ + + + + + + + +AWS IoT C++ SDK: Common.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Common.hpp File Reference
+
+
+ +

Common class definitions for the MQTT Client. +More...

+
#include "util/Utf8String.hpp"
+#include "ResponseCode.hpp"
+
+

Go to the source code of this file.

+ + + + + + + + + + + +

+Data Structures

class  awsiotsdk::mqtt::WillOptions
 Last Will and Testament Definition. More...
 
class  awsiotsdk::mqtt::SubscriptionHandlerContextData
 MQTT Subscription Handler Context Data. More...
 
class  awsiotsdk::mqtt::Subscription
 MQTT Subscription Definition. More...
 
+ + + +

+Macros

+#define MAX_TOPICS_IN_ONE_SUBSCRIBE_PACKET   8
 
+ + + + + + + + + + +

+Enumerations

enum class  awsiotsdk::mqtt::Version { MQTT_3_1_1 = 4 + }
 MQTT Version Type. More...
 
enum class  awsiotsdk::mqtt::QoS { QOS0 = 0 +, QOS1 = 1 + }
 Quality of Service (QoS) Type. More...
 
enum class  awsiotsdk::mqtt::MessageTypes {
+  INVALID = 0 +, CONNECT = 1 +, CONNACK = 2 +, PUBLISH = 3 +,
+  PUBACK = 4 +, PUBREC = 5 +, PUBREL = 6 +, PUBCOMP = 7 +,
+  SUBSCRIBE = 8 +, SUBACK = 9 +, UNSUBSCRIBE = 10 +, UNSUBACK = 11 +,
+  PINGREQ = 12 +, PINGRESP = 13 +, DISCONNECT = 14 +, RESERVED = 15 +
+ }
 MQTT Message Types Definition. More...
 
+

Detailed Description

+

Enumeration Type Documentation

+ +

◆ MessageTypes

+ +
+
+ + + + + +
+ + + + +
enum class awsiotsdk::mqtt::MessageTypes
+
+strong
+
+

Defining a type for MQTT Messages

+ + + + + + + + + + + + + + + + + +
Enumerator
INVALID 

Invalid Message.

+
CONNECT 

CONNECT.

+
CONNACK 

CONNACK.

+
PUBLISH 

PUBLISH.

+
PUBACK 

PUBACK.

+
PUBREC 

PUBREC.

+
PUBREL 

PUBREL.

+
PUBCOMP 

PUBCOMP.

+
SUBSCRIBE 

SUBSCRIBE.

+
SUBACK 

SUBACK.

+
UNSUBSCRIBE 

UNSUBSCRIBE.

+
UNSUBACK 

UNSUBACK.

+
PINGREQ 

PINGREQ.

+
PINGRESP 

PINGRESP.

+
DISCONNECT 

DISCONNECT.

+
RESERVED 

Reserved for future use.

+
+ +
+
+ +

◆ QoS

+ +
+
+ + + + + +
+ + + + +
enum class awsiotsdk::mqtt::QoS
+
+strong
+
+

Defining a Quality of Service Type. QoS2 is not supported at this time

+ + + +
Enumerator
QOS0 

QoS0.

+
QOS1 

QoS1.

+
+ +
+
+ +

◆ Version

+ +
+
+ + + + + +
+ + + + +
enum class awsiotsdk::mqtt::Version
+
+strong
+
+

Defining an MQTT version type. Only 3.1.1 is supported at this time

+ + +
Enumerator
MQTT_3_1_1 

MQTT 3.1.1 (protocol message byte = 4)

+
+ +
+
+
+ + + + diff --git a/docs/html/_common_8hpp_source.html b/docs/html/_common_8hpp_source.html new file mode 100644 index 0000000..378dfca --- /dev/null +++ b/docs/html/_common_8hpp_source.html @@ -0,0 +1,290 @@ + + + + + + + +AWS IoT C++ SDK: Common.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Common.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include "util/Utf8String.hpp"
+
25#include "ResponseCode.hpp"
+
26
+
27#define MAX_TOPICS_IN_ONE_SUBSCRIBE_PACKET 8
+
28
+
29namespace awsiotsdk {
+
30 namespace mqtt {
+
37 enum class Version {
+
38 MQTT_3_1_1 = 4
+
39 };
+
40
+
47 enum class QoS {
+
48 QOS0 = 0,
+
49 QOS1 = 1
+
50 };
+
51
+
58 enum class MessageTypes {
+
59 INVALID = 0,
+
60 CONNECT = 1,
+
61 CONNACK = 2,
+
62 PUBLISH = 3,
+
63 PUBACK = 4,
+
64 PUBREC = 5,
+
65 PUBREL = 6,
+
66 PUBCOMP = 7,
+
67 SUBSCRIBE = 8,
+
68 SUBACK = 9,
+
69 UNSUBSCRIBE = 10,
+
70 UNSUBACK = 11,
+
71 PINGREQ = 12,
+
72 PINGRESP = 13,
+
73 DISCONNECT = 14,
+
74 RESERVED = 15
+
75 };
+
76
+ +
85 private:
+
86 std::unique_ptr<Utf8String> p_struct_id_;
+
87 bool is_retained_;
+
88 QoS qos_;
+
89 std::unique_ptr<Utf8String> p_topic_name_;
+
90 util::String message_;
+
91
+
92 public:
+
101 WillOptions(bool is_retained, QoS qos, std::unique_ptr<Utf8String> p_topic_name, util::String &message);
+
102
+
103 // Disabling default constructor. Defining a virtual destructor
+
104 // Ensure WillOptions Instances can be copied/moved
+
105 WillOptions() = delete; // Delete Default constructor
+
106 WillOptions(WillOptions &&) = default; // Default Move constructor
+
107 WillOptions &operator=(WillOptions &&) & = default; // Default Move assignment operator
+
108 virtual ~WillOptions() {}
+
109
+
110 // Define Copy constructor
+
111 WillOptions(const WillOptions &source);
+
112
+
113 // Define Copy assignment operator overload
+
114 WillOptions &operator=(const WillOptions &source) &{
+
115 is_retained_ = source.is_retained_;
+
116 qos_ = source.qos_;
+
117 p_struct_id_ = Utf8String::Create(source.p_struct_id_->ToStdString());
+
118 p_topic_name_ = Utf8String::Create(source.p_topic_name_->ToStdString());
+
119 message_ = source.message_;
+
120
+
121 return *this;
+
122 }
+
123
+
134 static std::unique_ptr<WillOptions> Create(bool is_retained, QoS qos,
+
135 std::unique_ptr<Utf8String> p_topic_name, util::String &message);
+
136
+
142 size_t Length();
+
143
+
149 void WriteToBuffer(util::String &buf);
+
150
+
156 void SetConnectFlags(unsigned char &p_flag);
+
157 };
+
158
+ +
166 public:
+ +
168 };
+
169
+ +
180 public:
+
187 typedef std::function<ResponseCode(util::String topic_name, util::String payload,
+
188 std::shared_ptr<SubscriptionHandlerContextData> p_app_handler_data)> ApplicationCallbackHandlerPtr;
+
189
+ +
191 std::shared_ptr<SubscriptionHandlerContextData> p_app_handler_data_;
+
192 util::String p_topic_regex_;
+
193
+
194 // Disabling default constructor. Defining a virtual destructor
+
195 // Ensure Subscription Instances can be copied/moved
+
196 Subscription() = delete; // Delete Default constructor
+
197 Subscription(const Subscription &) = default; // Delete Copy constructor
+
198 Subscription(Subscription &&) = default; // Default Move constructor
+
199 Subscription &operator=(const Subscription &) & = default; // Delete Copy assignment operator
+
200 Subscription &operator=(Subscription &&) & = default; // Default Move assignment operator
+
201 virtual ~Subscription() {
+
202 // Do NOT delete App handler data
+
203 }
+
204
+
213 Subscription(std::unique_ptr<Utf8String> p_topic_name,
+
214 QoS max_qos,
+
215 ApplicationCallbackHandlerPtr p_app_handler,
+
216 std::shared_ptr<SubscriptionHandlerContextData> p_app_handler_data);
+
217
+
228 static std::shared_ptr<Subscription> Create(std::unique_ptr<Utf8String> p_topic_name,
+
229 QoS max_qos,
+
230 ApplicationCallbackHandlerPtr p_app_handler,
+
231 std::shared_ptr<SubscriptionHandlerContextData> p_app_handler_data);
+
232
+
238 static bool IsValidTopicName(util::String p_topic_name);
+
239
+
245 bool IsActive() { return is_active_; }
+
246
+
252 void SetActive(bool value) { is_active_ = value; }
+
253
+
259 uint16_t GetPacketId() { return packet_id_; }
+
260
+
267 void SetAckIndex(uint16_t packet_id, uint8_t index_in_packet) {
+
268 packet_id_ = packet_id;
+
269 index_in_packet_ = index_in_packet;
+
270 }
+
271
+
276 QoS GetMaxQos() { return max_qos_; }
+
277
+
282 void SetMaxQos(mqtt::QoS max_qos) { max_qos_ = max_qos; }
+
283
+
288 size_t GetTopicNameLength() { return p_topic_name_->Length(); }
+
289
+
294 std::shared_ptr<Utf8String> GetTopicName() { return p_topic_name_; }
+
295
+
302 bool IsInSuback(uint16_t packet_id, uint8_t index_in_packet) {
+
303 return (packet_id == packet_id_ && index_in_packet == index_in_packet_);
+
304 }
+
305 protected:
+ +
307 uint16_t packet_id_;
+ + +
310 std::shared_ptr<Utf8String> p_topic_name_;
+
311 };
+
312 }
+
313}
+
QoS
Quality of Service (QoS) Type.
Definition: Common.hpp:47
+ + +
Version
MQTT Version Type.
Definition: Common.hpp:37
+
@ MQTT_3_1_1
MQTT 3.1.1 (protocol message byte = 4)
+
MessageTypes
MQTT Message Types Definition.
Definition: Common.hpp:58
+ + +
@ RESERVED
Reserved for future use.
+ + + + +
Strongly typed enumeration of return values from functions within the SDK.
+
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+ +
MQTT Subscription Handler Context Data.
Definition: Common.hpp:165
+
MQTT Subscription Definition.
Definition: Common.hpp:179
+
std::shared_ptr< Utf8String > p_topic_name_
Topic Name for this subscription.
Definition: Common.hpp:310
+
std::function< ResponseCode(util::String topic_name, util::String payload, std::shared_ptr< SubscriptionHandlerContextData > p_app_handler_data)> ApplicationCallbackHandlerPtr
Define handler for Application Callbacks.
Definition: Common.hpp:188
+
std::shared_ptr< Utf8String > GetTopicName()
Get Topic Name.
Definition: Common.hpp:294
+
size_t GetTopicNameLength()
Get Length of topic name for this subscription.
Definition: Common.hpp:288
+
ApplicationCallbackHandlerPtr p_app_handler_
Pointer to the Application Handler.
Definition: Common.hpp:190
+
void SetAckIndex(uint16_t packet_id, uint8_t index_in_packet)
Set expected index of Ack for this Subscription in the SUBACK packet.
Definition: Common.hpp:267
+
static std::shared_ptr< Subscription > Create(std::unique_ptr< Utf8String > p_topic_name, QoS max_qos, ApplicationCallbackHandlerPtr p_app_handler, std::shared_ptr< SubscriptionHandlerContextData > p_app_handler_data)
Factory method to create a Subscription instance.
Definition: Common.cpp:142
+
bool IsInSuback(uint16_t packet_id, uint8_t index_in_packet)
Is this subscription in the Suback with given packet ID and index.
Definition: Common.hpp:302
+
void SetActive(bool value)
Set Subscription status.
Definition: Common.hpp:252
+
bool IsActive()
Is Subscription Active?
Definition: Common.hpp:245
+
std::shared_ptr< SubscriptionHandlerContextData > p_app_handler_data_
Data to be passed to the Application Handler.
Definition: Common.hpp:191
+
uint16_t GetPacketId()
Get Packet ID for this subscription's Subscribe request.
Definition: Common.hpp:259
+
void SetMaxQos(mqtt::QoS max_qos)
Set Max QoS for this subscription.
Definition: Common.hpp:282
+
uint8_t index_in_packet_
Index of the subscription in the Subscribe/Unsubscribe Packet.
Definition: Common.hpp:308
+
bool is_active_
Boolean indicating weather the subscription is active or not.
Definition: Common.hpp:306
+
static bool IsValidTopicName(util::String p_topic_name)
Is the Topic Name Valid?
Definition: Common.cpp:107
+
QoS max_qos_
Max QoS for messages on this subscription.
Definition: Common.hpp:309
+
util::String p_topic_regex_
Topic regex string which is used if the topic is a wildcard topic.
Definition: Common.hpp:192
+
uint16_t packet_id_
Packet Id of the Subscribe/Unsubscribe Packet.
Definition: Common.hpp:307
+
QoS GetMaxQos()
Get Max QoS for this subscription.
Definition: Common.hpp:276
+
Last Will and Testament Definition.
Definition: Common.hpp:84
+
static std::unique_ptr< WillOptions > Create(bool is_retained, QoS qos, std::unique_ptr< Utf8String > p_topic_name, util::String &message)
Factory method to Create a Will Options instance.
Definition: Common.cpp:41
+
void SetConnectFlags(unsigned char &p_flag)
Set Connect flags in the provided buffer based on Will Options instance.
Definition: Common.cpp:90
+
void WriteToBuffer(util::String &buf)
Serialize and write Will Options to provided buffer.
Definition: Common.cpp:66
+
size_t Length()
Get length of Will Options message.
Definition: Common.cpp:60
+
+ + + + diff --git a/docs/html/_config_common_8cpp.html b/docs/html/_config_common_8cpp.html new file mode 100644 index 0000000..0d27dee --- /dev/null +++ b/docs/html/_config_common_8cpp.html @@ -0,0 +1,176 @@ + + + + + + + +AWS IoT C++ SDK: ConfigCommon.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ConfigCommon.cpp File Reference
+
+
+
#include <limits.h>
+#include <unistd.h>
+#include "util/logging/LogMacros.hpp"
+#include "ConfigCommon.hpp"
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define MAX_PATH_LENGTH_   PATH_MAX
 
+#define LOG_TAG_SAMPLE_CONFIG_COMMON   "[Sample Config]"
 
+#define SDK_CONFIG_ENDPOINT_KEY   "endpoint"
 
+#define SDK_CONFIG_ENDPOINT_MQTT_PORT_KEY   "mqtt_port"
 
+#define SDK_CONFIG_ENDPOINT_HTTPS_PORT_KEY   "https_port"
 
+#define SDK_CONFIG_ENDPOINT_GREENGRASS_DISCOVERY_PORT_KEY   "greengrass_discovery_port"
 
+#define SDK_CONFIG_ROOT_CA_RELATIVE_KEY   "root_ca_relative_path"
 
+#define SDK_CONFIG_DEVICE_CERT_RELATIVE_KEY   "device_certificate_relative_path"
 
+#define SDK_CONFIG_DEVICE_PRIVATE_KEY_RELATIVE_KEY   "device_private_key_relative_path"
 
+#define SDK_CONFIG_TLS_HANDSHAKE_TIMEOUT_MSECS_KEY   "tls_handshake_timeout_msecs"
 
+#define SDK_CONFIG_TLS_READ_TIMEOUT_MSECS_KEY   "tls_read_timeout_msecs"
 
+#define SDK_CONFIG_TLS_WRITE_TIMEOUT_MSECS_KEY   "tls_write_timeout_msecs"
 
+#define SDK_CONFIG_AWS_REGION_KEY   "aws_region"
 
+#define SDK_CONFIG_AWS_ACCESS_KEY_ID_KEY   "aws_access_key_id"
 
+#define SDK_CONFIG_AWS_SECRET_ACCESS_KEY   "aws_secret_access_key"
 
+#define SDK_CONFIG_AWS_SESSION_TOKEN_KEY   "aws_session_token"
 
+#define SDK_CONFIG_CLIENT_ID_KEY   "client_id"
 
+#define SDK_CONFIG_THING_NAME_KEY   "thing_name"
 
+#define SDK_CONFIG_IS_CLEAN_SESSION_KEY   "is_clean_session"
 
+#define SDK_CONFIG_MQTT_COMMAND_TIMEOUT_MSECS_KEY   "mqtt_command_timeout_msecs"
 
+#define SDK_CONFIG_KEEPALIVE_INTERVAL_SECS_KEY   "keepalive_interval_secs"
 
+#define SDK_CONFIG_MIN_RECONNECT_INTERVAL_SECS_KEY   "minimum_reconnect_interval_secs"
 
+#define SDK_CONFIG_MAX_RECONNECT_INTERVAL_SECS_KEY   "maximum_reconnect_interval_secs"
 
+#define SDK_CONFIG_MAX_ACKS_TO_WAIT_FOR_KEY   "maximum_acks_to_wait_for"
 
+#define SDK_CONFIG_MAX_TX_ACTION_QUEUE_LENGTH_KEY   "maximum_outgoing_action_queue_length"
 
+#define SDK_CONFIG_ACTION_PROCESSING_RATE_KEY   "action_processing_rate_hz"
 
+#define DISCOVER_ACTION_TIMEOUT_MSECS_KEY   "discover_action_timeout_msecs"
 
+
+ + + + diff --git a/docs/html/_config_common_8hpp_source.html b/docs/html/_config_common_8hpp_source.html new file mode 100644 index 0000000..0d20347 --- /dev/null +++ b/docs/html/_config_common_8hpp_source.html @@ -0,0 +1,153 @@ + + + + + + + +AWS IoT C++ SDK: ConfigCommon.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ConfigCommon.hpp
+
+
+
1/*
+
2 * Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
23#pragma once
+
24
+
25#include <chrono>
+
26
+ +
28#include "util/JsonParser.hpp"
+
29
+
30namespace awsiotsdk {
+ +
32 protected:
+
33 static util::JsonDocument sdk_config_json_;
+
34
+
35 static void LogParseError(const ResponseCode& response_code, const util::JsonDocument& config, util::String key);
+
36 public:
+
37 static uint16_t endpoint_mqtt_port_;
+
38 static uint16_t endpoint_https_port_;
+
39 static uint16_t endpoint_greengrass_discovery_port_;
+
40
+
41 static util::String endpoint_;
+
42 static util::String root_ca_path_;
+
43 static util::String client_cert_path_;
+
44 static util::String client_key_path_;
+
45 static util::String base_client_id_;
+
46 static util::String thing_name_;
+
47 static util::String aws_region_;
+
48 static util::String aws_access_key_id_;
+
49 static util::String aws_secret_access_key_;
+
50 static util::String aws_session_token_;
+
51
+
52 static std::chrono::milliseconds mqtt_command_timeout_;
+
53 static std::chrono::milliseconds tls_handshake_timeout_;
+
54 static std::chrono::milliseconds tls_read_timeout_;
+
55 static std::chrono::milliseconds tls_write_timeout_;
+
56 static std::chrono::milliseconds discover_action_timeout_;
+
57 static std::chrono::seconds keep_alive_timeout_secs_;
+
58
+
59 static bool is_clean_session_;
+
60 static std::chrono::seconds minimum_reconnect_interval_;
+
61 static std::chrono::seconds maximum_reconnect_interval_;
+
62 static size_t max_pending_acks_;
+
63 static size_t maximum_outgoing_action_queue_length_;
+
64 static uint32_t action_processing_rate_hz_;
+
65
+
66 static ResponseCode InitializeCommon(const util::String &config_file_path);
+
67 static util::String GetCurrentPath();
+
68 };
+
69}
+
70
+
71
+ +
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+ +
Definition: ConfigCommon.hpp:31
+
+ + + + diff --git a/docs/html/_connect_8cpp.html b/docs/html/_connect_8cpp.html new file mode 100644 index 0000000..f0c5c28 --- /dev/null +++ b/docs/html/_connect_8cpp.html @@ -0,0 +1,122 @@ + + + + + + + +AWS IoT C++ SDK: Connect.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Connect.cpp File Reference
+
+
+ + + + + + + + + + + + + + + + + + + + +

+Macros

+#define CONNECT_ACTION_DESCRIPTION   "MQTT Connect Action"
 
+#define DISCONNECT_ACTION_DESCRIPTION   "MQTT Disconnect Action"
 
+#define KEEPALIVE_ACTION_DESCRIPTION   "MQTT Keep alive Action"
 
+#define CONNECT_LOG_TAG   "[Connect]"
 
+#define DISCONNECT_LOG_TAG   "[Disconnect]"
 
+#define KEEPALIVE_LOG_TAG   "[KeepAlive]"
 
+#define MQTT_CONNECT_PROTOCOL_ID   "MQTT"
 
+#define CONNACK_RESERVED_PACKET_ID   0
 
+#define SDK_USAGE_METRICS_STRING   "?SDK=CPP&Version="
 
+
+ + + + diff --git a/docs/html/_connect_8hpp.html b/docs/html/_connect_8hpp.html new file mode 100644 index 0000000..2ae79a7 --- /dev/null +++ b/docs/html/_connect_8hpp.html @@ -0,0 +1,128 @@ + + + + + + + +AWS IoT C++ SDK: Connect.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Connect.hpp File Reference
+
+
+
#include "mqtt/ClientState.hpp"
+#include "mqtt/Packet.hpp"
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + +

+Data Structures

class  awsiotsdk::mqtt::ConnectPacket
 Connect Packet Type. More...
 
class  awsiotsdk::mqtt::DisconnectPacket
 Disconnect Packet Type. More...
 
class  awsiotsdk::mqtt::PingreqPacket
 
class  awsiotsdk::mqtt::ConnectActionAsync
 Define a class for ConnectActionAsync. More...
 
class  awsiotsdk::mqtt::DisconnectActionAsync
 Define a class for DisconnectActionAsync. More...
 
class  awsiotsdk::mqtt::KeepaliveActionRunner
 Define a class for KeepaliveActionRunner. More...
 
+ + + + +

+Enumerations

enum class  awsiotsdk::mqtt::ConnackReturnCode {
+  CONNECTION_ACCEPTED = 0 +, UNACCEPTABLE_PROTOCOL_VERSION_ERROR = 1 +, IDENTIFIER_REJECTED_ERROR = 2 +, SERVER_UNAVAILABLE_ERROR = 3 +,
+  BAD_USERDATA_ERROR = 4 +, NOT_AUTHORIZED_ERROR = 5 +
+ }
 Define strongly typed enum for Connack Return Codes.
 
+
+ + + + diff --git a/docs/html/_connect_8hpp_source.html b/docs/html/_connect_8hpp_source.html new file mode 100644 index 0000000..b24d0e6 --- /dev/null +++ b/docs/html/_connect_8hpp_source.html @@ -0,0 +1,332 @@ + + + + + + + +AWS IoT C++ SDK: Connect.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Connect.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include "mqtt/ClientState.hpp"
+
25#include "mqtt/Packet.hpp"
+
26
+
27namespace awsiotsdk {
+
28 namespace mqtt {
+
32 enum class ConnackReturnCode {
+
33 CONNECTION_ACCEPTED = 0,
+
34 UNACCEPTABLE_PROTOCOL_VERSION_ERROR = 1,
+
35 IDENTIFIER_REJECTED_ERROR = 2,
+
36 SERVER_UNAVAILABLE_ERROR = 3,
+
37 BAD_USERDATA_ERROR = 4,
+
38 NOT_AUTHORIZED_ERROR = 5
+
39 };
+
40
+
46 class ConnectPacket : public Packet {
+
47 protected:
+
48 bool
+ +
50 unsigned char connect_flags_;
+
51 std::chrono::seconds keep_alive_timeout_;
+ +
53 std::unique_ptr<Utf8String> p_protocol_id_;
+
54 std::unique_ptr<Utf8String> p_client_id_;
+
55 std::unique_ptr<WillOptions> p_will_msg_;
+
56
+
57 // Currently not supported by AWS IoT. Kept for future use
+
58 std::unique_ptr<Utf8String> p_username_;
+
59 //std::unique_ptr<Utf8String> p_password_; ///< MQTT Password
+
60
+
61 public:
+
62 // Ensure Default Constructor is deleted
+
63 // Disabling default, move and copy constructors to match Packet parent
+
64 ConnectPacket() = delete; // Default constructor
+
65 ConnectPacket(const ConnectPacket &) = delete; // Copy constructor
+
66 ConnectPacket(ConnectPacket &&) = delete; // Move constructor
+
67 ConnectPacket &operator=(const ConnectPacket &) & = delete; // Copy assignment operator
+
68 ConnectPacket &operator=(ConnectPacket &&) & = delete; // Move assignment operator
+
69 virtual ~ConnectPacket() = default; // Default destructor
+
70
+
85 ConnectPacket(bool is_clean_session,
+
86 mqtt::Version mqtt_version,
+
87 std::chrono::seconds keep_alive_timeout,
+
88 std::unique_ptr<Utf8String> p_client_id,
+
89 std::unique_ptr<Utf8String> p_username,
+
90 std::unique_ptr<Utf8String> p_password,
+
91 std::unique_ptr<mqtt::WillOptions> p_will_msg,
+
92 bool is_metrics_enabled);
+
93
+
108 ConnectPacket(bool is_clean_session,
+
109 mqtt::Version mqtt_version,
+
110 std::chrono::seconds keep_alive_timeout,
+
111 std::unique_ptr<Utf8String> p_client_id,
+
112 std::unique_ptr<Utf8String> p_username,
+
113 std::unique_ptr<Utf8String> p_password,
+
114 std::unique_ptr<mqtt::WillOptions> p_will_msg);
+
127 static std::shared_ptr<ConnectPacket> Create(bool is_clean_session,
+
128 mqtt::Version mqtt_version,
+
129 std::chrono::seconds keep_alive_timeout,
+
130 std::unique_ptr<Utf8String> p_client_id,
+
131 std::unique_ptr<Utf8String> p_username,
+
132 std::unique_ptr<Utf8String> p_password,
+
133 std::unique_ptr<mqtt::WillOptions> p_will_msg,
+
134 bool is_metrics_enabled);
+
135
+
147 static std::shared_ptr<ConnectPacket> Create(bool is_clean_session,
+
148 mqtt::Version mqtt_version,
+
149 std::chrono::seconds keep_alive_timeout,
+
150 std::unique_ptr<Utf8String> p_client_id,
+
151 std::unique_ptr<Utf8String> p_username,
+
152 std::unique_ptr<Utf8String> p_password,
+
153 std::unique_ptr<mqtt::WillOptions> p_will_msg);
+
154
+
159 util::String ToString();
+
160
+
165 std::chrono::seconds GetKeepAliveTimeout() { return keep_alive_timeout_; }
+
166
+
171 util::String GetClientID() { return p_client_id_ ? p_client_id_->ToStdString() : ""; }
+
172 };
+
173
+
179 class DisconnectPacket : public Packet {
+
180 public:
+
181 // Disabling default, move and copy constructors to match Packet parent
+
182 DisconnectPacket(const DisconnectPacket &) = delete; // Copy constructor
+
183 DisconnectPacket(DisconnectPacket &&) = delete; // Move constructor
+
184 DisconnectPacket &operator=(const DisconnectPacket &) & = delete; // Copy assignment operator
+
185 DisconnectPacket &operator=(DisconnectPacket &&) & = delete; // Move assignment operator
+
186 virtual ~DisconnectPacket() = default; // Default destructor
+
187
+ +
192
+
198 static std::shared_ptr<DisconnectPacket> Create();
+
199
+
204 util::String ToString();
+
205 };
+
206
+
207 class PingreqPacket : public Packet {
+
208 public:
+
209 // Disabling default, move and copy constructors to match Packet parent
+
210 PingreqPacket(const PingreqPacket &) = delete; // Copy constructor
+
211 PingreqPacket(PingreqPacket &&) = delete; // Move constructor
+
212 PingreqPacket &operator=(const PingreqPacket &) & = delete; // Copy assignment operator
+
213 PingreqPacket &operator=(PingreqPacket &&) & = delete; // Move assignment operator
+
214 virtual ~PingreqPacket() = default; // Default destructor
+
215
+ +
220
+
226 static std::shared_ptr<PingreqPacket> Create();
+
227
+
232 util::String ToString();
+
233 };
+
234
+
240 class ConnectActionAsync : public Action {
+
241 protected:
+
242 std::shared_ptr<ClientState> p_client_state_;
+
243 public:
+
244 // Disabling default, move and copy constructors to match Action parent
+
245 // Default virtual destructor
+
246 ConnectActionAsync() = delete;
+
247 // Default Copy constructor
+
248 ConnectActionAsync(const ConnectActionAsync &) = delete;
+
249 // Default Move constructor
+ +
251 // Default Copy assignment operator
+
252 ConnectActionAsync &operator=(const ConnectActionAsync &) & = delete;
+
253 // Default Move assignment operator
+
254 ConnectActionAsync &operator=(ConnectActionAsync &&) & = delete;
+
255 // Default destructor
+
256 virtual ~ConnectActionAsync() = default;
+
257
+
266 ConnectActionAsync(std::shared_ptr<ClientState> p_client_state);
+
267
+
274 static std::unique_ptr<Action> Create(std::shared_ptr<ActionState> p_action_state);
+
275
+
289 ResponseCode PerformAction(std::shared_ptr<NetworkConnection> p_network_connection,
+
290 std::shared_ptr<ActionData> p_action_data);
+
291 };
+
292
+ +
299 protected:
+
300 std::shared_ptr<ClientState> p_client_state_;
+
301 public:
+
302 // Disabling default, move and copy constructors to match Action parent
+
303 // Default virtual destructor
+
304 DisconnectActionAsync() = delete;
+
305 // Default Copy constructor
+ +
307 // Default Move constructor
+ +
309 // Default Copy assignment operator
+
310 DisconnectActionAsync &operator=(const DisconnectActionAsync &) & = delete;
+
311 // Default Move assignment operator
+
312 DisconnectActionAsync &operator=(DisconnectActionAsync &&) & = delete;
+
313 // Default destructor
+
314 virtual ~DisconnectActionAsync() = default;
+
315
+
324 DisconnectActionAsync(std::shared_ptr<ClientState> p_client_state);
+
325
+
332 static std::unique_ptr<Action> Create(std::shared_ptr<ActionState> p_action_state);
+
333
+
345 ResponseCode PerformAction(std::shared_ptr<NetworkConnection> p_network_connection,
+
346 std::shared_ptr<ActionData> p_action_data);
+
347 };
+
348
+ +
356 protected:
+
357 std::shared_ptr<ClientState> p_client_state_;
+
358 public:
+
359 // Disabling default, move and copy constructors to match Action parent
+
360 // Default virtual destructor
+
361 KeepaliveActionRunner() = delete;
+
362 // Default Copy constructor
+ +
364 // Default Move constructor
+ +
366 // Default Copy assignment operator
+
367 KeepaliveActionRunner &operator=(const KeepaliveActionRunner &) & = delete;
+
368 // Default Move assignment operator
+
369 KeepaliveActionRunner &operator=(KeepaliveActionRunner &&) & = delete;
+
370 // Default destructor
+
371 virtual ~KeepaliveActionRunner() = default;
+
372
+
381 KeepaliveActionRunner(std::shared_ptr<ClientState> p_client_state);
+
382
+
389 static std::unique_ptr<Action> Create(std::shared_ptr<ActionState> p_action_state);
+
390
+
404 ResponseCode PerformAction(std::shared_ptr<NetworkConnection> p_network_connection,
+
405 std::shared_ptr<ActionData> p_action_data);
+
406 };
+
407 }
+
408}
+ +
Version
MQTT Version Type.
Definition: Common.hpp:37
+
ConnackReturnCode
Define strongly typed enum for Connack Return Codes.
Definition: Connect.hpp:32
+ +
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+
Action Class.
Definition: Action.hpp:143
+
Define a class for ConnectActionAsync.
Definition: Connect.hpp:240
+
std::shared_ptr< ClientState > p_client_state_
Shared Client State instance.
Definition: Connect.hpp:242
+
ResponseCode PerformAction(std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
Perform MQTT Connect Action in Async mode.
Definition: Connect.cpp:284
+
static std::unique_ptr< Action > Create(std::shared_ptr< ActionState > p_action_state)
Factory Create method.
Definition: Connect.cpp:274
+
Connect Packet Type.
Definition: Connect.hpp:46
+
util::String GetClientID()
get the client ID from the connect packet
Definition: Connect.hpp:171
+
unsigned char connect_flags_
MQTT Connect flags byte.
Definition: Connect.hpp:50
+
std::chrono::seconds GetKeepAliveTimeout()
Get duration of Keep alive interval in seconds.
Definition: Connect.hpp:165
+
bool is_clean_session_
MQTT clean session. True = this session is to be treated as clean. Previous server state is cleared a...
Definition: Connect.hpp:49
+
std::chrono::seconds keep_alive_timeout_
MQTT Keepalive timeout in seconds.
Definition: Connect.hpp:51
+
util::String ToString()
Serialize this packet into a String.
Definition: Connect.cpp:179
+
static std::shared_ptr< ConnectPacket > Create(bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg, bool is_metrics_enabled)
Create Factory method.
Definition: Connect.cpp:135
+
std::unique_ptr< Utf8String > p_protocol_id_
The protocol ID for this connection.
Definition: Connect.hpp:53
+
std::unique_ptr< WillOptions > p_will_msg_
MQTT LWT parameters.
Definition: Connect.hpp:55
+
std::unique_ptr< Utf8String > p_username_
MQTT Username.
Definition: Connect.hpp:58
+
std::unique_ptr< Utf8String > p_client_id_
Pointer to a string defining the MQTT client ID (this needs to be unique per device across your AWS a...
Definition: Connect.hpp:54
+
mqtt::Version mqtt_version_
Desired MQTT version used during connection.
Definition: Connect.hpp:52
+
Define a class for DisconnectActionAsync.
Definition: Connect.hpp:298
+
static std::unique_ptr< Action > Create(std::shared_ptr< ActionState > p_action_state)
Factory Create method.
Definition: Connect.cpp:343
+
ResponseCode PerformAction(std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
Perform MQTT Disconnect Action in Async mode.
Definition: Connect.cpp:353
+
std::shared_ptr< ClientState > p_client_state_
Shared Client State instance.
Definition: Connect.hpp:300
+
Disconnect Packet Type.
Definition: Connect.hpp:179
+
static std::shared_ptr< DisconnectPacket > Create()
Create Factory method.
Definition: Connect.cpp:231
+
util::String ToString()
Serialize this packet into a String.
Definition: Connect.cpp:235
+
DisconnectPacket()
Constructor.
Definition: Connect.cpp:225
+
Define a class for KeepaliveActionRunner.
Definition: Connect.hpp:355
+
static std::unique_ptr< Action > Create(std::shared_ptr< ActionState > p_action_state)
Factory Create method.
Definition: Connect.cpp:400
+
std::shared_ptr< ClientState > p_client_state_
Shared Client State instance.
Definition: Connect.hpp:357
+
ResponseCode PerformAction(std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
Perform MQTT Keep Alive Action. Expects to run in a separate thread using ClientCore.
Definition: Connect.cpp:410
+
Define a base class for all MQTT Packet types.
Definition: Packet.hpp:113
+
Definition: Connect.hpp:207
+
util::String ToString()
Serialize this packet into a String.
Definition: Connect.cpp:257
+
static std::shared_ptr< PingreqPacket > Create()
Create Factory method.
Definition: Connect.cpp:253
+
PingreqPacket()
Constructor.
Definition: Connect.cpp:247
+
+ + + + diff --git a/docs/html/_console_log_system_8cpp.html b/docs/html/_console_log_system_8cpp.html new file mode 100644 index 0000000..baeca08 --- /dev/null +++ b/docs/html/_console_log_system_8cpp.html @@ -0,0 +1,87 @@ + + + + + + + +AWS IoT C++ SDK: ConsoleLogSystem.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ConsoleLogSystem.cpp File Reference
+
+
+
#include "util/logging/ConsoleLogSystem.hpp"
+#include <iostream>
+
+ + + + diff --git a/docs/html/_console_log_system_8hpp.html b/docs/html/_console_log_system_8hpp.html new file mode 100644 index 0000000..bae6b56 --- /dev/null +++ b/docs/html/_console_log_system_8hpp.html @@ -0,0 +1,97 @@ + + + + + + + +AWS IoT C++ SDK: ConsoleLogSystem.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ConsoleLogSystem.hpp File Reference
+
+
+
#include "util/logging/FormattedLogSystem.hpp"
+#include "util/Core_EXPORTS.hpp"
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

class  awsiotsdk::util::Logging::ConsoleLogSystem
 
+
+ + + + diff --git a/docs/html/_console_log_system_8hpp_source.html b/docs/html/_console_log_system_8hpp_source.html new file mode 100644 index 0000000..b6f2a29 --- /dev/null +++ b/docs/html/_console_log_system_8hpp_source.html @@ -0,0 +1,130 @@ + + + + + + + +AWS IoT C++ SDK: ConsoleLogSystem.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ConsoleLogSystem.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+ +
25#include "util/Core_EXPORTS.hpp"
+
26
+
27namespace awsiotsdk {
+
28 namespace util {
+
29 namespace Logging {
+
33 class AWS_API_EXPORT ConsoleLogSystem : public FormattedLogSystem {
+
34 public:
+
35
+ +
37
+
38 ConsoleLogSystem(LogLevel logLevel) :
+
39 Base(logLevel) {}
+
40
+
41 virtual ~ConsoleLogSystem() {}
+
42
+
43 protected:
+
44
+
45 virtual void ProcessFormattedStatement(util::String &&statement) override;
+
46 };
+
47
+
48 } // namespace Logging
+
49 } // namespace util
+
50} // namespace awsiotsdk
+ +
LogLevel
Definition: LogLevel.hpp:33
+
Definition: ConsoleLogSystem.hpp:33
+
Definition: FormattedLogSystem.hpp:36
+
+ + + + diff --git a/docs/html/_core___e_x_p_o_r_t_s_8hpp_source.html b/docs/html/_core___e_x_p_o_r_t_s_8hpp_source.html new file mode 100644 index 0000000..ebd97b6 --- /dev/null +++ b/docs/html/_core___e_x_p_o_r_t_s_8hpp_source.html @@ -0,0 +1,116 @@ + + + + + + + +AWS IoT C++ SDK: Core_EXPORTS.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Core_EXPORTS.hpp
+
+
+
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
16#pragma once
+
17
+
18#if defined (USE_WINDOWS_DLL_SEMANTICS) || defined (WIN32)
+
19#ifdef _MSC_VER
+
20#pragma warning(disable : 4251)
+
21#endif // _MSC_VER
+
22
+
23#ifdef USE_EXPORT
+
24#define AWS_API_EXPORT __declspec(dllexport)
+
25#else // USE_EXPORT
+
26#define AWS_API_EXPORT
+
27#endif // USE_EXPORT
+
28#else // defined (USE_WINDOWS_DLL_SEMANTICS) || defined (WIN32)
+
29#define AWS_API_EXPORT
+
30#endif // defined (USE_WINDOWS_DLL_SEMANTICS) || defined (WIN32)
+
31
+
+ + + + diff --git a/docs/html/_discovery_8cpp.html b/docs/html/_discovery_8cpp.html new file mode 100644 index 0000000..1c563b1 --- /dev/null +++ b/docs/html/_discovery_8cpp.html @@ -0,0 +1,123 @@ + + + + + + + +AWS IoT C++ SDK: Discovery.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Discovery.cpp File Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define DISCOVER_ACTION_DESCRIPTION   "AWS Greengrass Discover Action"
 
+#define DISCOVER_LOG_TAG   "[Discover]"
 
+#define DISCOVER_ACTION_REQUEST_TYPE_PREFIX   "GET "
 
+#define DISCOVER_ACTION_EXPECTED_SUCCESS_RESPONSE   "HTTP/1.1 200 OK"
 
+#define DISCOVER_ACTION_FAIL_INFO_NOT_PRESENT   "HTTP/1.1 404"
 
+#define DISCOVER_ACTION_FAIL_UNAUTHORIZED   "HTTP/1.1 401"
 
+#define DISCOVER_ACTION_FAIL_TOO_MANY_REQUESTS   "HTTP/1.1 429"
 
+#define HTTP_CONTENT_LENGTH_STRING   "content-length: "
 
+#define DISCOVER_PACKET_PAYLOAD_PREFIX   "/greengrass/discover/thing/"
 
+#define DISCOVER_PACKET_PAYLOAD_SUFFIX   " HTTP/1.1\r\n\r\n"
 
+
+ + + + diff --git a/docs/html/_discovery_8hpp.html b/docs/html/_discovery_8hpp.html new file mode 100644 index 0000000..339cce0 --- /dev/null +++ b/docs/html/_discovery_8hpp.html @@ -0,0 +1,104 @@ + + + + + + + +AWS IoT C++ SDK: Discovery.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Discovery.hpp File Reference
+
+
+
#include <chrono>
+#include "util/JsonParser.hpp"
+#include "mqtt/Packet.hpp"
+#include "mqtt/ClientState.hpp"
+#include "discovery/DiscoveryResponse.hpp"
+
+

Go to the source code of this file.

+ + + + + + + + +

+Data Structures

class  awsiotsdk::discovery::DiscoverRequestData
 Discover Request Packet Type. More...
 
class  awsiotsdk::discovery::DiscoverAction
 Define a class for DiscoverAction. More...
 
+
+ + + + diff --git a/docs/html/_discovery_8hpp_source.html b/docs/html/_discovery_8hpp_source.html new file mode 100644 index 0000000..52f1222 --- /dev/null +++ b/docs/html/_discovery_8hpp_source.html @@ -0,0 +1,210 @@ + + + + + + + +AWS IoT C++ SDK: Discovery.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Discovery.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include <chrono>
+
25
+
26#include "util/JsonParser.hpp"
+
27
+
28#include "mqtt/Packet.hpp"
+
29#include "mqtt/ClientState.hpp"
+ +
31
+
32namespace awsiotsdk {
+
33 namespace discovery {
+ +
40 protected:
+
41 std::unique_ptr<Utf8String> p_thing_name_;
+ +
43 std::chrono::milliseconds max_response_wait_time_;
+
44
+
45 public:
+ +
47
+
48 // Rule of 5 stuff
+
49 // Disable copying and moving because class contains DiscoveryResponse
+
50 // Delete Default constructor
+
51 DiscoverRequestData() = delete; // Default constructor
+
52 DiscoverRequestData(const DiscoverRequestData &) = delete; // Copy constructor
+
53 DiscoverRequestData(DiscoverRequestData &&) = delete; // Move constructor
+
54 DiscoverRequestData &operator=(const DiscoverRequestData &) & = delete; // Copy assignment operator
+
55 DiscoverRequestData &operator=(DiscoverRequestData &&) & = delete; // Move assignment operator
+
56 virtual ~DiscoverRequestData() = default; // Default destructor
+
57
+
67 DiscoverRequestData(std::unique_ptr<Utf8String> p_thing_name,
+
68 std::chrono::milliseconds max_response_wait_time);
+
69
+
77 static std::shared_ptr<DiscoverRequestData> Create(std::unique_ptr<Utf8String> p_thing_name,
+
78 std::chrono::milliseconds max_response_wait_time);
+
79
+
84 util::String ToString();
+
85
+
90 std::chrono::milliseconds GetMaxResponseWaitTime() { return max_response_wait_time_; }
+
91
+
96 virtual uint16_t GetActionId() { return 0; }
+
97
+
102 virtual void SetActionId(uint16_t action_id) { IOT_UNUSED(action_id); }
+
103 };
+
104
+
110 class DiscoverAction : public Action {
+
111 protected:
+
112 std::shared_ptr<mqtt::ClientState> p_client_state_;
+
113
+
125 ResponseCode ReadResponseFromNetwork(std::shared_ptr<NetworkConnection> p_network_connection,
+
126 util::String &sent_packet,
+
127 util::String &read_payload,
+
128 std::chrono::milliseconds max_response_wait_time);
+
129
+
140 ResponseCode MakeDiscoveryRequest(std::shared_ptr<NetworkConnection> p_network_connection,
+
141 const util::String packet_data);
+
142
+
153 ResponseCode InitializeDiscoveryResponseJson(const util::String received_response,
+
154 std::shared_ptr<DiscoverRequestData> discover_packet);
+
155
+
156 public:
+
157 // Disabling default, move and copy constructors to match Action parent
+
158 // Default virtual destructor
+
159 DiscoverAction() = delete;
+
160 // Default Copy constructor
+
161 DiscoverAction(const DiscoverAction &) = delete;
+
162 // Default Move constructor
+
163 DiscoverAction(DiscoverAction &&) = delete;
+
164 // Default Copy assignment operator
+
165 DiscoverAction &operator=(const DiscoverAction &) & = delete;
+
166 // Default Move assignment operator
+
167 DiscoverAction &operator=(DiscoverAction &&) & = delete;
+
168 // Default destructor
+
169 virtual ~DiscoverAction() = default;
+
170
+
179 DiscoverAction(std::shared_ptr<mqtt::ClientState> p_client_state);
+
180
+
187 static std::unique_ptr<Action> Create(std::shared_ptr<ActionState> p_action_state);
+
188
+
200 ResponseCode PerformAction(std::shared_ptr<NetworkConnection> p_network_connection,
+
201 std::shared_ptr<ActionData> p_action_data);
+
202 };
+
203 }
+
204}
+ +
Contains constant strings used as keys in the discovery response JSON.
+ + +
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+
Action Data Class.
Definition: Action.hpp:100
+
Action Class.
Definition: Action.hpp:143
+
Definition: DiscoveryResponse.hpp:79
+
Define a class for DiscoverAction.
Definition: Discovery.hpp:110
+
ResponseCode MakeDiscoveryRequest(std::shared_ptr< NetworkConnection > p_network_connection, const util::String packet_data)
Make the discovery request.
Definition: Discovery.cpp:217
+
ResponseCode PerformAction(std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
Performs the Discovery Action.
Definition: Discovery.cpp:242
+
static std::unique_ptr< Action > Create(std::shared_ptr< ActionState > p_action_state)
Factory Create method.
Definition: Discovery.cpp:70
+
std::shared_ptr< mqtt::ClientState > p_client_state_
Shared Client State instance.
Definition: Discovery.hpp:112
+
ResponseCode InitializeDiscoveryResponseJson(const util::String received_response, std::shared_ptr< DiscoverRequestData > discover_packet)
Initialize the discovery response json.
Definition: Discovery.cpp:229
+
ResponseCode ReadResponseFromNetwork(std::shared_ptr< NetworkConnection > p_network_connection, util::String &sent_packet, util::String &read_payload, std::chrono::milliseconds max_response_wait_time)
Parses the discovery response to get the header and response data.
Definition: Discovery.cpp:80
+
Discover Request Packet Type.
Definition: Discovery.hpp:39
+
DiscoveryResponse discovery_response_
Response received in Discover request.
Definition: Discovery.hpp:46
+
std::chrono::milliseconds max_response_wait_time_
Maximum time the device should wait for response.
Definition: Discovery.hpp:43
+
static std::shared_ptr< DiscoverRequestData > Create(std::unique_ptr< Utf8String > p_thing_name, std::chrono::milliseconds max_response_wait_time)
Create Factory method.
Definition: Discovery.cpp:53
+
std::unique_ptr< Utf8String > p_thing_name_
Utf8 string defining the Thing name.
Definition: Discovery.hpp:41
+
virtual void SetActionId(uint16_t action_id)
sets the action ID (currently unused in Discovery)
Definition: Discovery.hpp:102
+
virtual uint16_t GetActionId()
returns the action ID (currently unused in Discovery)
Definition: Discovery.hpp:96
+
util::String ToString()
Serialize this packet into a String.
Definition: Discovery.cpp:58
+
util::String discovery_request_data_
Packet data.
Definition: Discovery.hpp:42
+
std::chrono::milliseconds GetMaxResponseWaitTime()
return the max time for which it will wait for a discovery reply
Definition: Discovery.hpp:90
+
+ + + + diff --git a/docs/html/_discovery_response_8cpp.html b/docs/html/_discovery_response_8cpp.html new file mode 100644 index 0000000..85829f8 --- /dev/null +++ b/docs/html/_discovery_response_8cpp.html @@ -0,0 +1,98 @@ + + + + + + + +AWS IoT C++ SDK: DiscoveryResponse.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
DiscoveryResponse.cpp File Reference
+
+
+ + + + +

+Macros

+#define LOG_TAG_DISCOVERY_RESPONSE   "[Discovery Response]"
 
+
+ + + + diff --git a/docs/html/_discovery_response_8hpp.html b/docs/html/_discovery_response_8hpp.html new file mode 100644 index 0000000..e4fda44 --- /dev/null +++ b/docs/html/_discovery_response_8hpp.html @@ -0,0 +1,106 @@ + + + + + + + +AWS IoT C++ SDK: DiscoveryResponse.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
DiscoveryResponse.hpp File Reference
+
+
+ +

Contains constant strings used as keys in the discovery response JSON. +More...

+
#include <rapidjson/document.h>
+#include "util/memory/stl/String.hpp"
+#include "util/memory/stl/Vector.hpp"
+#include "util/memory/stl/Map.hpp"
+#include "util/JsonParser.hpp"
+
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

class  awsiotsdk::ConnectivityInfo
 
class  awsiotsdk::DiscoveryResponse
 
+

Detailed Description

+
+ + + + diff --git a/docs/html/_discovery_response_8hpp_source.html b/docs/html/_discovery_response_8hpp_source.html new file mode 100644 index 0000000..c37a6b1 --- /dev/null +++ b/docs/html/_discovery_response_8hpp_source.html @@ -0,0 +1,226 @@ + + + + + + + +AWS IoT C++ SDK: DiscoveryResponse.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
DiscoveryResponse.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
23#pragma once
+
24
+
25#include <rapidjson/document.h>
+
26
+ + + +
30
+
31#include "util/JsonParser.hpp"
+
32
+
33namespace awsiotsdk {
+
34
+ +
36 public:
+
37 util::String group_name_;
+
38 util::String ggc_name_;
+
39 util::String id_;
+
40 util::String host_address_;
+
41 util::String metadata_;
+
42 uint16_t port_;
+
43
+
44 // Rule of 5 stuff
+
45 // Disable copying/moving because subscription handler callbacks will not carry over automatically
+
46 // Default constructor
+
47 ConnectivityInfo() = default;
+
48 // Default Copy constructor
+
49 ConnectivityInfo(const ConnectivityInfo &) = default;
+
50 // Default Move constructor
+ +
52 // Default Copy assignment operator
+
53 ConnectivityInfo &operator=(const ConnectivityInfo &) & = default;
+
54 // Default Move assignment operator
+
55 ConnectivityInfo &operator=(ConnectivityInfo &&) & = default;
+
56 // Default destructor
+
57 ~ConnectivityInfo() = default;
+
58
+
68 ConnectivityInfo(util::String group_name, util::String ggc_name, util::String id, util::String host_address,
+
69 uint16_t port, util::String metadata) {
+
70 group_name_ = group_name;
+
71 ggc_name_ = ggc_name;
+
72 id_ = id;
+
73 host_address_ = host_address;
+
74 port_ = port;
+
75 metadata_ = metadata;
+
76 }
+
77 };
+
78
+ +
80 protected:
+
81 util::JsonDocument response_document_;
+
82
+
83 public:
+
84
+
85 // Constant keys used for parsing the discovery response Json
+
86 static const util::String GROUP_ARRAY_KEY;
+
87 static const util::String GROUP_ID_KEY;
+
88 static const util::String GGC_ARRAY_KEY;
+
89 static const util::String GGC_THING_ARN_KEY;
+
90 static const util::String ROOT_CA_KEY;
+
91 static const util::String CONNECTIVITY_INFO_ARRAY_KEY;
+
92 static const util::String ID_KEY;
+
93 static const util::String HOST_ADDRESS_KEY;
+
94 static const util::String PORT_KEY;
+
95 static const util::String METADATA_KEY;
+
96
+
97 static const util::String DEFAULT_DISCOVERY_RESPONSE_FILE_NAME;
+
98
+
99 // Rule of 5 stuff
+
100 // Disable copying/moving because subscription handler callbacks will not carry over automatically
+
101 // Default constructor
+
102 DiscoveryResponse() = default;
+
103 // Delete Copy constructor
+
104 DiscoveryResponse(const DiscoveryResponse &) = delete;
+
105 // Delete Move constructor
+ +
107 // Delete Copy assignment operator
+
108 DiscoveryResponse &operator=(const DiscoveryResponse &) & = delete;
+
109 // Delete Move assignment operator
+
110 DiscoveryResponse &operator=(DiscoveryResponse &&) & = delete;
+
111 // Custom destructor
+
112 virtual ~DiscoveryResponse();
+
113
+
119 DiscoveryResponse(util::JsonDocument response_document);
+
120
+
125 util::JsonDocument GetResponseDocument();
+
126
+
132 void SetResponseDocument(util::JsonDocument response_document);
+
133
+
146 ResponseCode GetParsedResponse(util::Vector <ConnectivityInfo> &connectivity_info_list,
+
147 util::Map <util::String, util::Vector<util::String>> &root_ca_map);
+
148
+
159 ResponseCode WriteToPath(util::String output_file_absolute_path);
+
160 };
+
161}
+
162
+
163
+ + +
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+ + +
Definition: DiscoveryResponse.hpp:35
+
util::String ggc_name_
Name of the GGC in the group.
Definition: DiscoveryResponse.hpp:38
+
uint16_t port_
port of the GGC to connect to
Definition: DiscoveryResponse.hpp:42
+
util::String group_name_
Name of the group that the GGC belongs to.
Definition: DiscoveryResponse.hpp:37
+
util::String metadata_
User defined metadata string.
Definition: DiscoveryResponse.hpp:41
+
ConnectivityInfo(util::String group_name, util::String ggc_name, util::String id, util::String host_address, uint16_t port, util::String metadata)
Constructor.
Definition: DiscoveryResponse.hpp:68
+
util::String host_address_
Host address of the GGC.
Definition: DiscoveryResponse.hpp:40
+
util::String id_
ID of the connectivity info.
Definition: DiscoveryResponse.hpp:39
+
Definition: DiscoveryResponse.hpp:79
+
static const util::String GROUP_ID_KEY
Key for group ID.
Definition: DiscoveryResponse.hpp:87
+
static const util::String CONNECTIVITY_INFO_ARRAY_KEY
Key for the array of connectivity information.
Definition: DiscoveryResponse.hpp:91
+
static const util::String GGC_THING_ARN_KEY
Key for thing ARN of the GGC.
Definition: DiscoveryResponse.hpp:89
+
ResponseCode GetParsedResponse(util::Vector< ConnectivityInfo > &connectivity_info_list, util::Map< util::String, util::Vector< util::String > > &root_ca_map)
Get the parsed discovery response.
Definition: DiscoveryResponse.cpp:66
+
void SetResponseDocument(util::JsonDocument response_document)
Set the Discovery Response Json Document in the Discovery Response Object.
Definition: DiscoveryResponse.cpp:49
+
static const util::String DEFAULT_DISCOVERY_RESPONSE_FILE_NAME
Default file into which the complete discovery response is stored.
Definition: DiscoveryResponse.hpp:97
+
static const util::String ID_KEY
Key for the ID in the connectivity information.
Definition: DiscoveryResponse.hpp:92
+
static const util::String GROUP_ARRAY_KEY
Key for array of groups.
Definition: DiscoveryResponse.hpp:86
+
util::JsonDocument response_document_
Json document that contains the complete Discovery Response.
Definition: DiscoveryResponse.hpp:81
+
static const util::String METADATA_KEY
Key for metadata for the connectivity information.
Definition: DiscoveryResponse.hpp:95
+
static const util::String ROOT_CA_KEY
Key for the root CAs of the group.
Definition: DiscoveryResponse.hpp:90
+
util::JsonDocument GetResponseDocument()
Return the full Discovery Response Json.
Definition: DiscoveryResponse.cpp:43
+
ResponseCode WriteToPath(util::String output_file_absolute_path)
Write the complete Discovery Response Json out to a file.
Definition: DiscoveryResponse.cpp:60
+
static const util::String HOST_ADDRESS_KEY
Key for host address in the connectivity information.
Definition: DiscoveryResponse.hpp:93
+
static const util::String GGC_ARRAY_KEY
Key for array of GGCs in the group.
Definition: DiscoveryResponse.hpp:88
+
static const util::String PORT_KEY
Key for port in the connectivity information.
Definition: DiscoveryResponse.hpp:94
+
+ + + + diff --git a/docs/html/_formatted_log_system_8cpp.html b/docs/html/_formatted_log_system_8cpp.html new file mode 100644 index 0000000..3a5dc55 --- /dev/null +++ b/docs/html/_formatted_log_system_8cpp.html @@ -0,0 +1,92 @@ + + + + + + + +AWS IoT C++ SDK: FormattedLogSystem.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
FormattedLogSystem.cpp File Reference
+
+
+
#include "util/logging/FormattedLogSystem.hpp"
+#include <chrono>
+#include <fstream>
+#include <cstdarg>
+#include <ctime>
+#include <stdio.h>
+#include <thread>
+
+ + + + diff --git a/docs/html/_formatted_log_system_8hpp.html b/docs/html/_formatted_log_system_8hpp.html new file mode 100644 index 0000000..d9a5ee2 --- /dev/null +++ b/docs/html/_formatted_log_system_8hpp.html @@ -0,0 +1,99 @@ + + + + + + + +AWS IoT C++ SDK: FormattedLogSystem.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
FormattedLogSystem.hpp File Reference
+
+
+
#include "util/Core_EXPORTS.hpp"
+#include "util/logging/LogSystemInterface.hpp"
+#include "util/logging/LogLevel.hpp"
+#include <atomic>
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

class  awsiotsdk::util::Logging::FormattedLogSystem
 
+
+ + + + diff --git a/docs/html/_formatted_log_system_8hpp_source.html b/docs/html/_formatted_log_system_8hpp_source.html new file mode 100644 index 0000000..58bcb7c --- /dev/null +++ b/docs/html/_formatted_log_system_8hpp_source.html @@ -0,0 +1,148 @@ + + + + + + + +AWS IoT C++ SDK: FormattedLogSystem.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
FormattedLogSystem.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include "util/Core_EXPORTS.hpp"
+ + +
27
+
28#include <atomic>
+
29
+
30namespace awsiotsdk {
+
31 namespace util {
+
32 namespace Logging {
+
36 class AWS_API_EXPORT FormattedLogSystem : public LogSystemInterface {
+
37 public:
+ +
39
+ +
44
+
45 virtual ~FormattedLogSystem() = default;
+
46
+
50 virtual LogLevel GetLogLevel(void) const override { return m_logLevel; }
+
51
+
55 void SetLogLevel(LogLevel logLevel) { m_logLevel.store(logLevel); }
+
56
+
60 virtual void Log(LogLevel logLevel, const char *tag, const char *function, unsigned int line,
+
61 const char *formatStr, ...) override;
+
62
+
66 virtual void LogStream(LogLevel logLevel,
+
67 const char *tag,
+
68 const util::OStringStream &messageStream) override;
+
69
+
70 protected:
+
75 virtual void ProcessFormattedStatement(util::String &&statement) = 0;
+
76
+
77 private:
+
78 std::atomic<LogLevel> m_logLevel;
+
79 };
+
80
+
81 } // namespace Logging
+
82 } // namespace util
+
83} // namespace awsiotsdk
+ +
LogLevel
Definition: LogLevel.hpp:33
+ +
Definition: FormattedLogSystem.hpp:36
+
virtual LogLevel GetLogLevel(void) const override
Definition: FormattedLogSystem.hpp:50
+
void SetLogLevel(LogLevel logLevel)
Definition: FormattedLogSystem.hpp:55
+
virtual void ProcessFormattedStatement(util::String &&statement)=0
+
Definition: LogSystemInterface.hpp:38
+
+ + + + diff --git a/docs/html/_greengrass_mqtt_client_8hpp.html b/docs/html/_greengrass_mqtt_client_8hpp.html new file mode 100644 index 0000000..c88fe5a --- /dev/null +++ b/docs/html/_greengrass_mqtt_client_8hpp.html @@ -0,0 +1,110 @@ + + + + + + + +AWS IoT C++ SDK: GreengrassMqttClient.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
GreengrassMqttClient.hpp File Reference
+
+
+ +

Contains the MQTT Client class for AWS Greengrass devices. +More...

+
#include "util/Utf8String.hpp"
+#include "util/JsonParser.hpp"
+#include "ClientCore.hpp"
+#include "mqtt/Connect.hpp"
+#include "mqtt/Publish.hpp"
+#include "mqtt/Subscribe.hpp"
+#include "mqtt/ClientState.hpp"
+#include "discovery/DiscoveryResponse.hpp"
+#include "mqtt/Client.hpp"
+
+

Go to the source code of this file.

+ + + + + +

+Data Structures

class  awsiotsdk::GreengrassMqttClient
 MQTT Client Class. More...
 
+

Detailed Description

+

Defines MQTT client wrapper using a Client Core instance. This is provided for ease of use. Instead of separately having to define Core Client and adding Actions to the client, applications can use this class directly. Similar to the Client class but also contains functions for Discovery.

+
+ + + + diff --git a/docs/html/_greengrass_mqtt_client_8hpp_source.html b/docs/html/_greengrass_mqtt_client_8hpp_source.html new file mode 100644 index 0000000..217b27b --- /dev/null +++ b/docs/html/_greengrass_mqtt_client_8hpp_source.html @@ -0,0 +1,188 @@ + + + + + + + +AWS IoT C++ SDK: GreengrassMqttClient.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
GreengrassMqttClient.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
26#pragma once
+
27
+
28#include "util/Utf8String.hpp"
+
29#include "util/JsonParser.hpp"
+
30
+
31#include "ClientCore.hpp"
+
32
+
33#include "mqtt/Connect.hpp"
+
34#include "mqtt/Publish.hpp"
+
35#include "mqtt/Subscribe.hpp"
+
36#include "mqtt/ClientState.hpp"
+
37
+ +
39#include "mqtt/Client.hpp"
+
40
+
41namespace awsiotsdk {
+
42
+
51 AWS_API_EXPORT class GreengrassMqttClient : public MqttClient {
+
52 protected:
+
65 GreengrassMqttClient(std::shared_ptr<NetworkConnection> p_network_connection,
+
66 std::chrono::milliseconds mqtt_command_timeout,
+ +
68 std::shared_ptr<DisconnectCallbackContextData> p_disconnect_app_handler_data,
+ +
70 std::shared_ptr<ReconnectCallbackContextData> p_reconnect_app_handler_data,
+ +
72 std::shared_ptr<ResubscribeCallbackContextData> p_resubscribe_app_handler_data);
+
73
+
82 GreengrassMqttClient(std::shared_ptr<NetworkConnection>
+
83 p_network_connection,
+
84 std::chrono::milliseconds mqtt_command_timeout,
+ +
86 std::shared_ptr<DisconnectCallbackContextData> p_disconnect_app_handler_data);
+
93 GreengrassMqttClient(std::shared_ptr<NetworkConnection> p_network_connection,
+
94 std::chrono::milliseconds mqtt_command_timeout);
+
95
+
96 public:
+
97
+
98 // Disabling default and copy constructors. Defining a virtual destructor
+
99 // Client instances should not be copied to avoid possible Connection issues with two clients
+
100 // using same connection data
+
101 GreengrassMqttClient() = delete; // Delete Default constructor
+
102 GreengrassMqttClient(const GreengrassMqttClient &) = delete; // Delete Copy constructor
+
103 GreengrassMqttClient(GreengrassMqttClient &&) = default; // Default Move constructor
+
104 GreengrassMqttClient &operator=(const GreengrassMqttClient &) & = delete; // Delete Copy assignment operator
+
105 GreengrassMqttClient &operator=(GreengrassMqttClient &&) & = default; // Default Move assignment operator
+
106 virtual ~GreengrassMqttClient();
+
107
+
116 static std::unique_ptr<GreengrassMqttClient> Create(std::shared_ptr<NetworkConnection> p_network_connection,
+
117 std::chrono::milliseconds mqtt_command_timeout);
+
118
+
128 static std::unique_ptr<GreengrassMqttClient> Create(std::shared_ptr<NetworkConnection> p_network_connection,
+
129 std::chrono::milliseconds mqtt_command_timeout,
+ +
131 std::shared_ptr<DisconnectCallbackContextData> p_disconnect_app_handler_data);
+
132
+
146 static std::unique_ptr<GreengrassMqttClient> Create(std::shared_ptr<NetworkConnection> p_network_connection,
+
147 std::chrono::milliseconds mqtt_command_timeout,
+ +
149 std::shared_ptr<DisconnectCallbackContextData> p_disconnect_app_handler_data,
+ +
151 std::shared_ptr<ReconnectCallbackContextData> p_reconnect_app_handler_data,
+ +
153 std::shared_ptr<ResubscribeCallbackContextData> p_resubscribe_app_handler_data);
+
154
+
167 virtual ResponseCode Discover(std::chrono::milliseconds action_reponse_timeout,
+
168 std::unique_ptr<Utf8String> p_thing_name,
+
169 DiscoveryResponse &discovery_response);
+
170 };
+
171}
+
Contains the MQTT Client class.
+
Contains the Client Core class.
+ + +
Contains constant strings used as keys in the discovery response JSON.
+ +
MQTT Publish and Puback Actions and Action data definitions for IoT Client.
+
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+
MQTT Subscribe and Unsubscribe Actions and Action data definitions for IoT Client.
+ +
std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< ReconnectCallbackContextData > p_app_handler_data, ResponseCode reconnect_result)> ApplicationReconnectCallbackPtr
Define Handler for Reconnect Callbacks.
Definition: ClientCoreState.hpp:160
+
std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< DisconnectCallbackContextData > p_app_handler_data)> ApplicationDisconnectCallbackPtr
Define Handler for Disconnect Callbacks.
Definition: ClientCoreState.hpp:147
+
std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< ResubscribeCallbackContextData > p_app_handler_data, ResponseCode resubscribe_result)> ApplicationResubscribeCallbackPtr
Define Handler for Resubscribe Callbacks.
Definition: ClientCoreState.hpp:173
+
Definition: DiscoveryResponse.hpp:79
+
MQTT Client Class.
Definition: GreengrassMqttClient.hpp:51
+
virtual ResponseCode Discover(std::chrono::milliseconds action_reponse_timeout, std::unique_ptr< Utf8String > p_thing_name, DiscoveryResponse &discovery_response)
Performs a Sync Discovery operation.
Definition: GreengrassMqttClient.cpp:123
+
static std::unique_ptr< GreengrassMqttClient > Create(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)
Create factory method. Returns a unique instance of GreengrassMqttClient.
Definition: GreengrassMqttClient.cpp:35
+
MQTT Client Class.
Definition: Client.hpp:46
+
+ + + + diff --git a/docs/html/_jobs_8cpp.html b/docs/html/_jobs_8cpp.html new file mode 100644 index 0000000..7608039 --- /dev/null +++ b/docs/html/_jobs_8cpp.html @@ -0,0 +1,123 @@ + + + + + + + +AWS IoT C++ SDK: Jobs.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Jobs.cpp File Reference
+
+
+
#include "util/logging/LogMacros.hpp"
+#include "jobs/Jobs.hpp"
+
+ + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define BASE_THINGS_TOPIC   "$aws/things/"
 
+#define NOTIFY_OPERATION   "notify"
 
+#define NOTIFY_NEXT_OPERATION   "notify-next"
 
+#define GET_OPERATION   "get"
 
+#define START_NEXT_OPERATION   "start-next"
 
+#define WILDCARD_OPERATION   "+"
 
+#define UPDATE_OPERATION   "update"
 
+#define ACCEPTED_REPLY   "accepted"
 
+#define REJECTED_REPLY   "rejected"
 
+#define WILDCARD_REPLY   "#"
 
+
+ + + + diff --git a/docs/html/_jobs_8hpp.html b/docs/html/_jobs_8hpp.html new file mode 100644 index 0000000..6a19fa1 --- /dev/null +++ b/docs/html/_jobs_8hpp.html @@ -0,0 +1,96 @@ + + + + + + + +AWS IoT C++ SDK: Jobs.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Jobs.hpp File Reference
+
+
+
#include "mqtt/Client.hpp"
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

class  awsiotsdk::Jobs
 
+
+ + + + diff --git a/docs/html/_jobs_8hpp_source.html b/docs/html/_jobs_8hpp_source.html new file mode 100644 index 0000000..580ce5f --- /dev/null +++ b/docs/html/_jobs_8hpp_source.html @@ -0,0 +1,220 @@ + + + + + + + +AWS IoT C++ SDK: Jobs.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Jobs.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include "mqtt/Client.hpp"
+
25
+
26namespace awsiotsdk {
+
27 class Jobs {
+
28 public:
+
29 // Disabling default and copy constructors.
+
30 Jobs() = delete; // Delete Default constructor
+
31 Jobs(const Jobs &) = delete; // Delete Copy constructor
+
32 Jobs(Jobs &&) = default; // Default Move constructor
+
33 Jobs &operator=(const Jobs &) & = delete; // Delete Copy assignment operator
+
34 Jobs &operator=(Jobs &&) & = default; // Default Move assignment operator
+
35
+
46 static std::unique_ptr<Jobs> Create(std::shared_ptr<MqttClient> p_mqtt_client,
+
47 mqtt::QoS qos,
+
48 const util::String &thing_name,
+
49 const util::String &client_token = util::String());
+
50
+
51 enum JobExecutionTopicType {
+
52 JOB_UNRECOGNIZED_TOPIC = 0,
+
53 JOB_GET_PENDING_TOPIC,
+
54 JOB_START_NEXT_TOPIC,
+
55 JOB_DESCRIBE_TOPIC,
+
56 JOB_UPDATE_TOPIC,
+
57 JOB_NOTIFY_TOPIC,
+
58 JOB_NOTIFY_NEXT_TOPIC,
+
59 JOB_WILDCARD_TOPIC
+
60 };
+
61
+
62 enum JobExecutionTopicReplyType {
+
63 JOB_UNRECOGNIZED_TOPIC_TYPE = 0,
+
64 JOB_REQUEST_TYPE,
+
65 JOB_ACCEPTED_REPLY_TYPE,
+
66 JOB_REJECTED_REPLY_TYPE,
+
67 JOB_WILDCARD_REPLY_TYPE
+
68 };
+
69
+
70 enum JobExecutionStatus {
+
71 JOB_EXECUTION_STATUS_NOT_SET = 0,
+
72 JOB_EXECUTION_QUEUED,
+
73 JOB_EXECUTION_IN_PROGRESS,
+
74 JOB_EXECUTION_FAILED,
+
75 JOB_EXECUTION_SUCCEEDED,
+
76 JOB_EXECUTION_CANCELED,
+
77 JOB_EXECUTION_REJECTED,
+
78 /***
+
79 * Used for any status not in the supported list of statuses
+
80 */
+
81 JOB_EXECUTION_UNKNOWN_STATUS = 99
+
82 };
+
83
+
95 std::unique_ptr<Utf8String> GetJobTopic(JobExecutionTopicType topicType,
+
96 JobExecutionTopicReplyType replyType = JOB_REQUEST_TYPE,
+
97 const util::String &jobId = util::String());
+
98
+
109 ResponseCode SendJobsQuery(JobExecutionTopicType topicType,
+
110 const util::String &jobId = util::String());
+
111
+
121 ResponseCode SendJobsStartNext(const util::Map<util::String, util::String> &statusDetailsMap = util::Map<util::String, util::String>());
+
122
+
135 ResponseCode SendJobsDescribe(const util::String &jobId = util::String(),
+
136 int64_t executionNumber = 0, // set to 0 to ignore
+
137 bool includeJobDocument = true);
+
138
+
154 ResponseCode SendJobsUpdate(const util::String &jobId,
+
155 JobExecutionStatus status,
+
156 const util::Map<util::String, util::String> &statusDetailsMap = util::Map<util::String, util::String>(),
+
157 int64_t expectedVersion = 0, // set to 0 to ignore
+
158 int64_t executionNumber = 0, // set to 0 to ignore
+
159 bool includeJobExecutionState = false,
+
160 bool includeJobDocument = false);
+
161
+
175 std::shared_ptr<mqtt::Subscription> CreateJobsSubscription(mqtt::Subscription::ApplicationCallbackHandlerPtr p_app_handler,
+
176 std::shared_ptr<mqtt::SubscriptionHandlerContextData> p_app_handler_data,
+
177 JobExecutionTopicType topicType = JOB_WILDCARD_TOPIC,
+
178 JobExecutionTopicReplyType replyType = JOB_REQUEST_TYPE,
+
179 const util::String &jobId = util::String());
+
180 protected:
+
181 std::shared_ptr<MqttClient> p_mqtt_client_;
+
182 mqtt::QoS qos_;
+
183 util::String thing_name_;
+
184 util::String client_token_;
+
185
+
196 Jobs(std::shared_ptr<MqttClient> p_mqtt_client,
+
197 mqtt::QoS qos,
+
198 const util::String &thing_name,
+
199 const util::String &client_token);
+
200
+
201 static bool BaseTopicRequiresJobId(JobExecutionTopicType topicType);
+
202 static const util::String GetOperationForBaseTopic(JobExecutionTopicType topicType);
+
203 static const util::String GetSuffixForTopicType(JobExecutionTopicReplyType replyType);
+
204 static const util::String GetExecutionStatus(JobExecutionStatus status);
+
205 static util::String Escape(const util::String &value);
+
206 static util::String SerializeStatusDetails(const util::Map<util::String, util::String> &statusDetailsMap);
+
207
+
208 util::String SerializeJobExecutionUpdatePayload(JobExecutionStatus status,
+
209 const util::Map<util::String, util::String> &statusDetailsMap = util::Map<util::String, util::String>(),
+
210 int64_t expectedVersion = 0,
+
211 int64_t executionNumber = 0,
+
212 bool includeJobExecutionState = false,
+
213 bool includeJobDocument = false);
+
214 util::String SerializeDescribeJobExecutionPayload(int64_t executionNumber = 0,
+
215 bool includeJobDocument = true);
+
216 util::String SerializeStartNextPendingJobExecutionPayload(const util::Map<util::String, util::String> &statusDetailsMap = util::Map<util::String, util::String>());
+
217 util::String SerializeClientTokenPayload();
+
218 };
+
219}
+
Contains the MQTT Client class.
+
QoS
Quality of Service (QoS) Type.
Definition: Common.hpp:47
+
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+
Definition: Jobs.hpp:27
+
ResponseCode SendJobsStartNext(const util::Map< util::String, util::String > &statusDetailsMap=util::Map< util::String, util::String >())
SendJobsStartNext.
Definition: Jobs.cpp:289
+
std::shared_ptr< mqtt::Subscription > CreateJobsSubscription(mqtt::Subscription::ApplicationCallbackHandlerPtr p_app_handler, std::shared_ptr< mqtt::SubscriptionHandlerContextData > p_app_handler_data, JobExecutionTopicType topicType=JOB_WILDCARD_TOPIC, JobExecutionTopicReplyType replyType=JOB_REQUEST_TYPE, const util::String &jobId=util::String())
CreateJobsSubscription.
Definition: Jobs.cpp:333
+
static std::unique_ptr< Jobs > Create(std::shared_ptr< MqttClient > p_mqtt_client, mqtt::QoS qos, const util::String &thing_name, const util::String &client_token=util::String())
Create factory method. Returns a unique instance of Jobs.
Definition: Jobs.cpp:39
+
ResponseCode SendJobsDescribe(const util::String &jobId=util::String(), int64_t executionNumber=0, bool includeJobDocument=true)
SendJobsDescribe.
Definition: Jobs.cpp:300
+
std::unique_ptr< Utf8String > GetJobTopic(JobExecutionTopicType topicType, JobExecutionTopicReplyType replyType=JOB_REQUEST_TYPE, const util::String &jobId=util::String())
GetJobTopic.
Definition: Jobs.cpp:164
+
ResponseCode SendJobsQuery(JobExecutionTopicType topicType, const util::String &jobId=util::String())
SendJobsQuery.
Definition: Jobs.cpp:277
+
ResponseCode SendJobsUpdate(const util::String &jobId, JobExecutionStatus status, const util::Map< util::String, util::String > &statusDetailsMap=util::Map< util::String, util::String >(), int64_t expectedVersion=0, int64_t executionNumber=0, bool includeJobExecutionState=false, bool includeJobDocument=false)
SendJobsUpdate.
Definition: Jobs.cpp:313
+
std::function< ResponseCode(util::String topic_name, util::String payload, std::shared_ptr< SubscriptionHandlerContextData > p_app_handler_data)> ApplicationCallbackHandlerPtr
Define handler for Application Callbacks.
Definition: Common.hpp:188
+
+ + + + diff --git a/docs/html/_json_parser_8cpp.html b/docs/html/_json_parser_8cpp.html new file mode 100644 index 0000000..f28581a --- /dev/null +++ b/docs/html/_json_parser_8cpp.html @@ -0,0 +1,93 @@ + + + + + + + +AWS IoT C++ SDK: JsonParser.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
JsonParser.cpp File Reference
+
+
+
#include <rapidjson/filereadstream.h>
+#include <rapidjson/filewritestream.h>
+#include <rapidjson/stringbuffer.h>
+#include <rapidjson/writer.h>
+#include <fstream>
+#include <iostream>
+#include <memory>
+#include "util/JsonParser.hpp"
+
+ + + + diff --git a/docs/html/_json_parser_8hpp.html b/docs/html/_json_parser_8hpp.html new file mode 100644 index 0000000..544f037 --- /dev/null +++ b/docs/html/_json_parser_8hpp.html @@ -0,0 +1,116 @@ + + + + + + + +AWS IoT C++ SDK: JsonParser.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
JsonParser.hpp File Reference
+
+
+
#include <cstdint>
+#include <rapidjson/document.h>
+#include "util/memory/stl/String.hpp"
+#include "ResponseCode.hpp"
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

class  awsiotsdk::util::JsonParser
 
+ + + +

+Macros

+#define MAX_CONFIG_FILE_SIZE_BYTES   4096
 
+ + + + + +

+Typedefs

+using awsiotsdk::util::JsonDocument = rapidjson::Document
 
+using awsiotsdk::util::JsonValue = rapidjson::Value
 
+
+ + + + diff --git a/docs/html/_json_parser_8hpp_source.html b/docs/html/_json_parser_8hpp_source.html new file mode 100644 index 0000000..bfeb2c4 --- /dev/null +++ b/docs/html/_json_parser_8hpp_source.html @@ -0,0 +1,164 @@ + + + + + + + +AWS IoT C++ SDK: JsonParser.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
JsonParser.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include <cstdint>
+
25#include <rapidjson/document.h>
+
26
+ +
28#include "ResponseCode.hpp"
+
29
+
30#define MAX_CONFIG_FILE_SIZE_BYTES 4096 //Increase if adding more configuration options
+
31
+
32namespace awsiotsdk {
+
33 namespace util {
+
34 using JsonDocument = rapidjson::Document;
+
35 using JsonValue = rapidjson::Value;
+
36
+
37 class JsonParser {
+
38 public:
+
39 static ResponseCode InitializeFromJsonFile(JsonDocument &json_document,
+
40 const util::String &input_file_path);
+
41
+
42 static ResponseCode InitializeFromJsonString(JsonDocument &json_document,
+
43 const util::String &input_json_string);
+
44
+
45 static ResponseCode GetBoolValue(const JsonDocument &json_document, const char *key, bool &value);
+
46
+
47 static ResponseCode GetIntValue(const JsonDocument &json_document, const char *key, int &value);
+
48
+
49 static ResponseCode GetUint16Value(const JsonDocument &json_document, const char *key,
+
50 uint16_t &value);
+
51
+
52 static ResponseCode GetUint32Value(const JsonDocument &json_document, const char *key,
+
53 uint32_t &value);
+
54
+
55 static ResponseCode GetSizeTValue(const JsonDocument &json_document, const char *key, size_t &value);
+
56
+
57 static ResponseCode GetCStringValue(const JsonDocument &json_document, const char *key, char *value,
+
58 uint16_t max_string_len);
+
59
+
60 static ResponseCode GetStringValue(const JsonDocument &json_document, const char *key,
+
61 util::String &value);
+
62
+
63 static rapidjson::ParseErrorCode GetParseErrorCode(const JsonDocument &json_document);
+
64
+
65 static size_t GetParseErrorOffset(const JsonDocument &json_document);
+
66
+
67 static ResponseCode MergeValues(JsonValue &target, JsonValue &source, JsonValue::AllocatorType &allocator);
+
68
+
69 static ResponseCode DiffValues(JsonValue &target_doc,
+
70 JsonValue &old_doc,
+
71 JsonValue &new_doc,
+
72 JsonValue::AllocatorType &allocator);
+
73
+
74 static util::String ToString(JsonDocument &json_document);
+
75
+
76 static util::String ToString(JsonValue &json_value);
+
77
+
78 static ResponseCode WriteToFile(JsonDocument &json_document, const util::String &output_file_path);
+
79 };
+
80 }
+
81}
+
Strongly typed enumeration of return values from functions within the SDK.
+
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+ +
Definition: JsonParser.hpp:37
+
+ + + + diff --git a/docs/html/_log_level_8cpp.html b/docs/html/_log_level_8cpp.html new file mode 100644 index 0000000..2d08c5b --- /dev/null +++ b/docs/html/_log_level_8cpp.html @@ -0,0 +1,97 @@ + + + + + + + +AWS IoT C++ SDK: LogLevel.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
LogLevel.cpp File Reference
+
+
+
#include "util/logging/LogLevel.hpp"
+#include "util/memory/stl/String.hpp"
+#include <cassert>
+
+ + + +

+Functions

+AWS_API_EXPORT util::String awsiotsdk::util::Logging::GetLogLevelName (LogLevel logLevel)
 
+
+ + + + diff --git a/docs/html/_log_level_8hpp.html b/docs/html/_log_level_8hpp.html new file mode 100644 index 0000000..c361961 --- /dev/null +++ b/docs/html/_log_level_8hpp.html @@ -0,0 +1,138 @@ + + + + + + + +AWS IoT C++ SDK: LogLevel.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
LogLevel.hpp File Reference
+
+
+
#include "util/Core_EXPORTS.hpp"
+#include "util/memory/stl/String.hpp"
+
+

Go to the source code of this file.

+ + + + +

+Enumerations

enum class  awsiotsdk::util::Logging::LogLevel : int {
+  Off = 0 +, Fatal = 1 +, Error = 2 +, Warn = 3 +,
+  Info = 4 +, Debug = 5 +, Trace = 6 +
+ }
 
+ + + +

+Functions

+AWS_API_EXPORT util::String awsiotsdk::util::Logging::GetLogLevelName (LogLevel logLevel)
 
+

Enumeration Type Documentation

+ +

◆ LogLevel

+ +
+
+ + + + + +
+ + + + +
enum class awsiotsdk::util::Logging::LogLevel : int
+
+strong
+
+

LogLevel used to control verbosity of logging system.

+ +
+
+
+ + + + diff --git a/docs/html/_log_level_8hpp_source.html b/docs/html/_log_level_8hpp_source.html new file mode 100644 index 0000000..f60fd9c --- /dev/null +++ b/docs/html/_log_level_8hpp_source.html @@ -0,0 +1,124 @@ + + + + + + + +AWS IoT C++ SDK: LogLevel.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
LogLevel.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include "util/Core_EXPORTS.hpp"
+ +
26
+
27namespace awsiotsdk {
+
28 namespace util {
+
29 namespace Logging {
+
33 enum class LogLevel : int {
+
34 Off = 0,
+
35 Fatal = 1,
+
36 Error = 2,
+
37 Warn = 3,
+
38 Info = 4,
+
39 Debug = 5,
+
40 Trace = 6
+
41 };
+
42
+
43 AWS_API_EXPORT util::String GetLogLevelName(LogLevel logLevel);
+
44 } // namespace Logging
+
45 } // namespace util
+
46} // namespace awsiotsdk
+
LogLevel
Definition: LogLevel.hpp:33
+ +
+ + + + diff --git a/docs/html/_log_macros_8hpp.html b/docs/html/_log_macros_8hpp.html new file mode 100644 index 0000000..a97c4c1 --- /dev/null +++ b/docs/html/_log_macros_8hpp.html @@ -0,0 +1,647 @@ + + + + + + + +AWS IoT C++ SDK: LogMacros.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
LogMacros.hpp File Reference
+
+
+
#include "util/Core_EXPORTS.hpp"
+#include "util/logging/LogLevel.hpp"
+#include "util/logging/Logging.hpp"
+#include "util/logging/LogSystemInterface.hpp"
+#include "util/memory/stl/StringStream.hpp"
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define AWS_LOG(level, tag, ...)
 
#define AWS_LOG_FATAL(tag, ...)
 
#define AWS_LOG_ERROR(tag, ...)
 
#define AWS_LOG_WARN(tag, ...)
 
#define AWS_LOG_INFO(tag, ...)
 
#define AWS_LOG_DEBUG(tag, ...)
 
#define AWS_LOG_TRACE(tag, ...)
 
#define AWS_LOGSTREAM(level, tag, streamExpression)
 
#define AWS_LOGSTREAM_FATAL(tag, streamExpression)
 
#define AWS_LOGSTREAM_ERROR(tag, streamExpression)
 
#define AWS_LOGSTREAM_WARN(tag, streamExpression)
 
#define AWS_LOGSTREAM_INFO(tag, streamExpression)
 
#define AWS_LOGSTREAM_DEBUG(tag, streamExpression)
 
#define AWS_LOGSTREAM_TRACE(tag, streamExpression)
 
+

Macro Definition Documentation

+ +

◆ AWS_LOG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define AWS_LOG( level,
 tag,
 ... 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= level ) \
+
{ \
+
logSystem->Log(level, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
} \
+
}
+
Definition: LogSystemInterface.hpp:38
+
virtual LogLevel GetLogLevel(void) const =0
+
virtual void Log(LogLevel logLevel, const char *tag, const char *function, unsigned int line, const char *formatStr,...)=0
+
+
+
+ +

◆ AWS_LOG_DEBUG

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define AWS_LOG_DEBUG( tag,
 ... 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Debug ) \
+
{ \
+
logSystem->Log(awsiotsdk::util::Logging::LogLevel::Debug, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
} \
+
}
+
+
+
+ +

◆ AWS_LOG_ERROR

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define AWS_LOG_ERROR( tag,
 ... 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Error ) \
+
{ \
+
logSystem->Log(awsiotsdk::util::Logging::LogLevel::Error, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
} \
+
}
+
+
+
+ +

◆ AWS_LOG_FATAL

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define AWS_LOG_FATAL( tag,
 ... 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Fatal ) \
+
{ \
+
logSystem->Log(awsiotsdk::util::Logging::LogLevel::Fatal, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
} \
+
}
+
+
+
+ +

◆ AWS_LOG_INFO

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define AWS_LOG_INFO( tag,
 ... 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Info ) \
+
{ \
+
logSystem->Log(awsiotsdk::util::Logging::LogLevel::Info, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
} \
+
}
+
+
+
+ +

◆ AWS_LOG_TRACE

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define AWS_LOG_TRACE( tag,
 ... 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Trace ) \
+
{ \
+
logSystem->Log(awsiotsdk::util::Logging::LogLevel::Trace, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
} \
+
}
+
+
+
+ +

◆ AWS_LOG_WARN

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define AWS_LOG_WARN( tag,
 ... 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Warn ) \
+
{ \
+
logSystem->Log(awsiotsdk::util::Logging::LogLevel::Warn, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
} \
+
}
+
+
+
+ +

◆ AWS_LOGSTREAM

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define AWS_LOGSTREAM( level,
 tag,
 streamExpression 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= level ) \
+
{ \
+
awsiotsdk::util::OStringStream logStream; \
+
logStream << streamExpression; \
+
logSystem->LogStream( logLevel, tag, logStream ); \
+
} \
+
}
+
virtual void LogStream(LogLevel logLevel, const char *tag, const util::OStringStream &messageStream)=0
+
+
+
+ +

◆ AWS_LOGSTREAM_DEBUG

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define AWS_LOGSTREAM_DEBUG( tag,
 streamExpression 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Debug ) \
+
{ \
+
awsiotsdk::util::OStringStream logStream; \
+
logStream << streamExpression; \
+
logSystem->LogStream( awsiotsdk::util::Logging::LogLevel::Debug, tag, logStream ); \
+
} \
+
}
+
+
+
+ +

◆ AWS_LOGSTREAM_ERROR

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define AWS_LOGSTREAM_ERROR( tag,
 streamExpression 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Error ) \
+
{ \
+
awsiotsdk::util::OStringStream logStream; \
+
logStream << streamExpression; \
+
logSystem->LogStream( awsiotsdk::util::Logging::LogLevel::Error, tag, logStream ); \
+
} \
+
}
+
+
+
+ +

◆ AWS_LOGSTREAM_FATAL

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define AWS_LOGSTREAM_FATAL( tag,
 streamExpression 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Fatal ) \
+
{ \
+
awsiotsdk::util::OStringStream logStream; \
+
logStream << streamExpression; \
+
logSystem->LogStream( awsiotsdk::util::Logging::LogLevel::Fatal, tag, logStream ); \
+
} \
+
}
+
+
+
+ +

◆ AWS_LOGSTREAM_INFO

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define AWS_LOGSTREAM_INFO( tag,
 streamExpression 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Info ) \
+
{ \
+
awsiotsdk::util::OStringStream logStream; \
+
logStream << streamExpression; \
+
logSystem->LogStream( awsiotsdk::util::Logging::LogLevel::Info, tag, logStream ); \
+
} \
+
}
+
+
+
+ +

◆ AWS_LOGSTREAM_TRACE

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define AWS_LOGSTREAM_TRACE( tag,
 streamExpression 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Trace ) \
+
{ \
+
awsiotsdk::util::OStringStream logStream; \
+
logStream << streamExpression; \
+
logSystem->LogStream( awsiotsdk::util::Logging::LogLevel::Trace, tag, logStream ); \
+
} \
+
}
+
+
+
+ +

◆ AWS_LOGSTREAM_WARN

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define AWS_LOGSTREAM_WARN( tag,
 streamExpression 
)
+
+Value:
{ \
+
awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Warn ) \
+
{ \
+
awsiotsdk::util::OStringStream logStream; \
+
logStream << streamExpression; \
+
logSystem->LogStream( awsiotsdk::util::Logging::LogLevel::Warn, tag, logStream ); \
+
} \
+
}
+
+
+
+
+ + + + diff --git a/docs/html/_log_macros_8hpp_source.html b/docs/html/_log_macros_8hpp_source.html new file mode 100644 index 0000000..fcf6ac6 --- /dev/null +++ b/docs/html/_log_macros_8hpp_source.html @@ -0,0 +1,280 @@ + + + + + + + +AWS IoT C++ SDK: LogMacros.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
LogMacros.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
21#pragma once
+
22
+
23#include "util/Core_EXPORTS.hpp"
+
24
+ + + + +
29
+
30// While macros are usually grotty, using them here lets us have a simple function call interface for logging that
+
31//
+
32// (1) Can be compiled out completely, so you don't even have to pay the cost to check the log level (which will be a virtual function call and a std::atomic<> read) if you don't want any AWS logging
+
33// (2) If you use logging and the log statement doesn't pass the conditional log filter level, not only do you not pay the cost of building the log string, you don't pay the cost for allocating or
+
34// getting any of the values used in building the log string, as they're in a scope (if-statement) that never gets entered.
+
35
+
36#ifdef DISABLE_AWS_LOGGING
+
37
+
38#define AWS_LOG(level, tag, ...)
+
39#define AWS_LOG_FATAL(tag, ...)
+
40#define AWS_LOG_ERROR(tag, ...)
+
41#define AWS_LOG_WARN(tag, ...)
+
42#define AWS_LOG_INFO(tag, ...)
+
43#define AWS_LOG_DEBUG(tag, ...)
+
44#define AWS_LOG_TRACE(tag, ...)
+
45
+
46#define AWS_LOGSTREAM(level, tag, streamExpression)
+
47#define AWS_LOGSTREAM_FATAL(tag, streamExpression)
+
48#define AWS_LOGSTREAM_ERROR(tag, streamExpression)
+
49#define AWS_LOGSTREAM_WARN(tag, streamExpression)
+
50#define AWS_LOGSTREAM_INFO(tag, streamExpression)
+
51#define AWS_LOGSTREAM_DEBUG(tag, streamExpression)
+
52#define AWS_LOGSTREAM_TRACE(tag, streamExpression)
+
53
+
54#else
+
55
+
56#define AWS_LOG(level, tag, ...) \
+
57 { \
+
58 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
59 if ( logSystem && logSystem->GetLogLevel() >= level ) \
+
60 { \
+
61 logSystem->Log(level, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
62 } \
+
63 }
+
64
+
65#define AWS_LOG_FATAL(tag, ...) \
+
66 { \
+
67 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
68 if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Fatal ) \
+
69 { \
+
70 logSystem->Log(awsiotsdk::util::Logging::LogLevel::Fatal, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
71 } \
+
72 }
+
73
+
74#define AWS_LOG_ERROR(tag, ...) \
+
75 { \
+
76 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
77 if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Error ) \
+
78 { \
+
79 logSystem->Log(awsiotsdk::util::Logging::LogLevel::Error, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
80 } \
+
81 }
+
82
+
83#define AWS_LOG_WARN(tag, ...) \
+
84 { \
+
85 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
86 if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Warn ) \
+
87 { \
+
88 logSystem->Log(awsiotsdk::util::Logging::LogLevel::Warn, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
89 } \
+
90 }
+
91
+
92#define AWS_LOG_INFO(tag, ...) \
+
93 { \
+
94 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
95 if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Info ) \
+
96 { \
+
97 logSystem->Log(awsiotsdk::util::Logging::LogLevel::Info, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
98 } \
+
99 }
+
100
+
101#define AWS_LOG_DEBUG(tag, ...) \
+
102 { \
+
103 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
104 if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Debug ) \
+
105 { \
+
106 logSystem->Log(awsiotsdk::util::Logging::LogLevel::Debug, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
107 } \
+
108 }
+
109
+
110#define AWS_LOG_TRACE(tag, ...) \
+
111 { \
+
112 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
113 if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Trace ) \
+
114 { \
+
115 logSystem->Log(awsiotsdk::util::Logging::LogLevel::Trace, tag, __FUNCTION__, __LINE__, __VA_ARGS__); \
+
116 } \
+
117 }
+
118
+
119#define AWS_LOGSTREAM(level, tag, streamExpression) \
+
120 { \
+
121 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
122 if ( logSystem && logSystem->GetLogLevel() >= level ) \
+
123 { \
+
124 awsiotsdk::util::OStringStream logStream; \
+
125 logStream << streamExpression; \
+
126 logSystem->LogStream( logLevel, tag, logStream ); \
+
127 } \
+
128 }
+
129
+
130#define AWS_LOGSTREAM_FATAL(tag, streamExpression) \
+
131 { \
+
132 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
133 if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Fatal ) \
+
134 { \
+
135 awsiotsdk::util::OStringStream logStream; \
+
136 logStream << streamExpression; \
+
137 logSystem->LogStream( awsiotsdk::util::Logging::LogLevel::Fatal, tag, logStream ); \
+
138 } \
+
139 }
+
140
+
141#define AWS_LOGSTREAM_ERROR(tag, streamExpression) \
+
142 { \
+
143 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
144 if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Error ) \
+
145 { \
+
146 awsiotsdk::util::OStringStream logStream; \
+
147 logStream << streamExpression; \
+
148 logSystem->LogStream( awsiotsdk::util::Logging::LogLevel::Error, tag, logStream ); \
+
149 } \
+
150 }
+
151
+
152#define AWS_LOGSTREAM_WARN(tag, streamExpression) \
+
153 { \
+
154 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
155 if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Warn ) \
+
156 { \
+
157 awsiotsdk::util::OStringStream logStream; \
+
158 logStream << streamExpression; \
+
159 logSystem->LogStream( awsiotsdk::util::Logging::LogLevel::Warn, tag, logStream ); \
+
160 } \
+
161 }
+
162
+
163#define AWS_LOGSTREAM_INFO(tag, streamExpression) \
+
164 { \
+
165 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
166 if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Info ) \
+
167 { \
+
168 awsiotsdk::util::OStringStream logStream; \
+
169 logStream << streamExpression; \
+
170 logSystem->LogStream( awsiotsdk::util::Logging::LogLevel::Info, tag, logStream ); \
+
171 } \
+
172 }
+
173
+
174#define AWS_LOGSTREAM_DEBUG(tag, streamExpression) \
+
175 { \
+
176 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
177 if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Debug ) \
+
178 { \
+
179 awsiotsdk::util::OStringStream logStream; \
+
180 logStream << streamExpression; \
+
181 logSystem->LogStream( awsiotsdk::util::Logging::LogLevel::Debug, tag, logStream ); \
+
182 } \
+
183 }
+
184
+
185#define AWS_LOGSTREAM_TRACE(tag, streamExpression) \
+
186 { \
+
187 awsiotsdk::util::Logging::LogSystemInterface* logSystem = awsiotsdk::util::Logging::GetLogSystem(); \
+
188 if ( logSystem && logSystem->GetLogLevel() >= awsiotsdk::util::Logging::LogLevel::Trace ) \
+
189 { \
+
190 awsiotsdk::util::OStringStream logStream; \
+
191 logStream << streamExpression; \
+
192 logSystem->LogStream( awsiotsdk::util::Logging::LogLevel::Trace, tag, logStream ); \
+
193 } \
+
194 }
+
195
+
196#endif // DISABLE_AWS_LOGGING
+ + + + +
+ + + + diff --git a/docs/html/_log_system_interface_8hpp.html b/docs/html/_log_system_interface_8hpp.html new file mode 100644 index 0000000..441d31f --- /dev/null +++ b/docs/html/_log_system_interface_8hpp.html @@ -0,0 +1,98 @@ + + + + + + + +AWS IoT C++ SDK: LogSystemInterface.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
LogSystemInterface.hpp File Reference
+
+
+
#include "util/Core_EXPORTS.hpp"
+#include "util/memory/stl/String.hpp"
+#include "util/memory/stl/StringStream.hpp"
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

class  awsiotsdk::util::Logging::LogSystemInterface
 
+
+ + + + diff --git a/docs/html/_log_system_interface_8hpp_source.html b/docs/html/_log_system_interface_8hpp_source.html new file mode 100644 index 0000000..705a041 --- /dev/null +++ b/docs/html/_log_system_interface_8hpp_source.html @@ -0,0 +1,134 @@ + + + + + + + +AWS IoT C++ SDK: LogSystemInterface.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
LogSystemInterface.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include "util/Core_EXPORTS.hpp"
+ + +
27
+
28namespace awsiotsdk {
+
29 namespace util {
+
30 namespace Logging {
+
31 enum class LogLevel : int;
+
32
+
38 class AWS_API_EXPORT LogSystemInterface {
+
39 public:
+
40 virtual ~LogSystemInterface() = default;
+
41
+
45 virtual LogLevel GetLogLevel(void) const = 0;
+
46
+
50 virtual void Log(LogLevel logLevel, const char *tag, const char *function, unsigned int line, const char *formatStr, ...) = 0;
+
51
+
55 virtual void LogStream(LogLevel logLevel,
+
56 const char *tag,
+
57 const util::OStringStream &messageStream) = 0;
+
58 };
+
59
+
60 } // namespace Logging
+
61 } // namespace util
+
62} // namespace awsiotsdk
+
LogLevel
Definition: LogLevel.hpp:33
+ + +
Definition: LogSystemInterface.hpp:38
+
virtual void LogStream(LogLevel logLevel, const char *tag, const util::OStringStream &messageStream)=0
+
virtual LogLevel GetLogLevel(void) const =0
+
virtual void Log(LogLevel logLevel, const char *tag, const char *function, unsigned int line, const char *formatStr,...)=0
+
+ + + + diff --git a/docs/html/_logging_8cpp.html b/docs/html/_logging_8cpp.html new file mode 100644 index 0000000..9153646 --- /dev/null +++ b/docs/html/_logging_8cpp.html @@ -0,0 +1,198 @@ + + + + + + + +AWS IoT C++ SDK: Logging.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Logging.cpp File Reference
+
+
+
#include "util/logging/Logging.hpp"
+#include "util/logging/LogSystemInterface.hpp"
+#include <memory>
+
+ + + + + + + + + + + +

+Functions

AWS_API_EXPORT void awsiotsdk::util::Logging::InitializeAWSLogging (const std::shared_ptr< LogSystemInterface > &logSystem)
 
AWS_API_EXPORT void awsiotsdk::util::Logging::ShutdownAWSLogging (void)
 
AWS_API_EXPORT LogSystemInterfaceawsiotsdk::util::Logging::GetLogSystem ()
 
AWS_API_EXPORT void awsiotsdk::util::Logging::PushLogger (const std::shared_ptr< LogSystemInterface > &logSystem)
 
AWS_API_EXPORT void awsiotsdk::util::Logging::PopLogger ()
 
+

Function Documentation

+ +

◆ GetLogSystem()

+ +
+
+ + + + + + + +
LogSystemInterface * awsiotsdk::util::Logging::GetLogSystem ()
+
+

Get currently configured log system instance.

+ +
+
+ +

◆ InitializeAWSLogging()

+ +
+
+ + + + + + + + +
void awsiotsdk::util::Logging::InitializeAWSLogging (const std::shared_ptr< LogSystemInterface > & logSystem)
+
+

Call this at the beginning of your program, prior to any AWS calls.

+ +
+
+ +

◆ PopLogger()

+ +
+
+ + + + + + + +
void awsiotsdk::util::Logging::PopLogger ()
+
+

Pops the logger off the logger stack and replaces the current logger with it. Disables logging if the top logger is actually a nullptr

+ +
+
+ +

◆ PushLogger()

+ +
+
+ + + + + + + + +
void awsiotsdk::util::Logging::PushLogger (const std::shared_ptr< LogSystemInterface > & logSystem)
+
+

Replaces the current logger with a new one, while pushing the old one onto a 1-deep stack; primarily for testing

+ +
+
+ +

◆ ShutdownAWSLogging()

+ +
+
+ + + + + + + + +
void awsiotsdk::util::Logging::ShutdownAWSLogging (void )
+
+

Call this at the exit point of your program, after all calls have finished.

+ +
+
+
+ + + + diff --git a/docs/html/_logging_8hpp.html b/docs/html/_logging_8hpp.html new file mode 100644 index 0000000..29d9455 --- /dev/null +++ b/docs/html/_logging_8hpp.html @@ -0,0 +1,199 @@ + + + + + + + +AWS IoT C++ SDK: Logging.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Logging.hpp File Reference
+
+
+
#include <memory>
+#include "util/Core_EXPORTS.hpp"
+
+

Go to the source code of this file.

+ + + + + + + + + + + + +

+Functions

AWS_API_EXPORT void awsiotsdk::util::Logging::InitializeAWSLogging (const std::shared_ptr< LogSystemInterface > &logSystem)
 
AWS_API_EXPORT void awsiotsdk::util::Logging::ShutdownAWSLogging (void)
 
AWS_API_EXPORT LogSystemInterfaceawsiotsdk::util::Logging::GetLogSystem ()
 
AWS_API_EXPORT void awsiotsdk::util::Logging::PushLogger (const std::shared_ptr< LogSystemInterface > &logSystem)
 
AWS_API_EXPORT void awsiotsdk::util::Logging::PopLogger ()
 
+

Function Documentation

+ +

◆ GetLogSystem()

+ +
+
+ + + + + + + +
LogSystemInterface * awsiotsdk::util::Logging::GetLogSystem ()
+
+

Get currently configured log system instance.

+ +
+
+ +

◆ InitializeAWSLogging()

+ +
+
+ + + + + + + + +
void awsiotsdk::util::Logging::InitializeAWSLogging (const std::shared_ptr< LogSystemInterface > & logSystem)
+
+

Call this at the beginning of your program, prior to any AWS calls.

+ +
+
+ +

◆ PopLogger()

+ +
+
+ + + + + + + +
void awsiotsdk::util::Logging::PopLogger ()
+
+

Pops the logger off the logger stack and replaces the current logger with it. Disables logging if the top logger is actually a nullptr

+ +
+
+ +

◆ PushLogger()

+ +
+
+ + + + + + + + +
void awsiotsdk::util::Logging::PushLogger (const std::shared_ptr< LogSystemInterface > & logSystem)
+
+

Replaces the current logger with a new one, while pushing the old one onto a 1-deep stack; primarily for testing

+ +
+
+ +

◆ ShutdownAWSLogging()

+ +
+
+ + + + + + + + +
void awsiotsdk::util::Logging::ShutdownAWSLogging (void )
+
+

Call this at the exit point of your program, after all calls have finished.

+ +
+
+
+ + + + diff --git a/docs/html/_logging_8hpp_source.html b/docs/html/_logging_8hpp_source.html new file mode 100644 index 0000000..c0cd68b --- /dev/null +++ b/docs/html/_logging_8hpp_source.html @@ -0,0 +1,132 @@ + + + + + + + +AWS IoT C++ SDK: Logging.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Logging.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include <memory>
+
25#include "util/Core_EXPORTS.hpp"
+
26
+
27namespace awsiotsdk {
+
28 namespace util {
+
29 namespace Logging {
+
30 class LogSystemInterface;
+
31
+
32 // Standard interface
+
33
+
37 AWS_API_EXPORT void InitializeAWSLogging(const std::shared_ptr<LogSystemInterface> &logSystem);
+
38
+
42 AWS_API_EXPORT void ShutdownAWSLogging(void);
+
43
+
47 AWS_API_EXPORT LogSystemInterface *GetLogSystem();
+
48
+
49 // Testing interface
+
50
+
54 AWS_API_EXPORT void PushLogger(const std::shared_ptr<LogSystemInterface> &logSystem);
+
55
+
59 AWS_API_EXPORT void PopLogger();
+
60
+
61 } // namespace Logging
+
62 } // namespace util
+
63} // namespace awsiotsdk
+
AWS_API_EXPORT LogSystemInterface * GetLogSystem()
Definition: Logging.cpp:45
+
AWS_API_EXPORT void PopLogger()
Definition: Logging.cpp:54
+
AWS_API_EXPORT void InitializeAWSLogging(const std::shared_ptr< LogSystemInterface > &logSystem)
Definition: Logging.cpp:37
+
AWS_API_EXPORT void PushLogger(const std::shared_ptr< LogSystemInterface > &logSystem)
Definition: Logging.cpp:49
+
AWS_API_EXPORT void ShutdownAWSLogging(void)
Definition: Logging.cpp:41
+
+ + + + diff --git a/docs/html/_map_8hpp.html b/docs/html/_map_8hpp.html new file mode 100644 index 0000000..e27fcc5 --- /dev/null +++ b/docs/html/_map_8hpp.html @@ -0,0 +1,98 @@ + + + + + + + +AWS IoT C++ SDK: Map.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Map.hpp File Reference
+
+
+
#include <map>
+
+

Go to the source code of this file.

+ + + + + +

+Typedefs

+template<typename K , typename V >
using awsiotsdk::util::Map = std::map< K, V >
 
+
+ + + + diff --git a/docs/html/_map_8hpp_source.html b/docs/html/_map_8hpp_source.html new file mode 100644 index 0000000..f79cbd3 --- /dev/null +++ b/docs/html/_map_8hpp_source.html @@ -0,0 +1,109 @@ + + + + + + + +AWS IoT C++ SDK: Map.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Map.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include <map>
+
25
+
26namespace awsiotsdk {
+
27 namespace util {
+
28 template<typename K, typename V> using Map = std::map<K, V>;
+
29 } // namespace util
+
30} // namespace awsiotsdk
+
+ + + + diff --git a/docs/html/_network_connection_8cpp.html b/docs/html/_network_connection_8cpp.html new file mode 100644 index 0000000..c4a08ee --- /dev/null +++ b/docs/html/_network_connection_8cpp.html @@ -0,0 +1,92 @@ + + + + + + + +AWS IoT C++ SDK: NetworkConnection.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
NetworkConnection.cpp File Reference
+
+
+ +

Network interface base class for IoT Client. +More...

+

Detailed Description

+

Defines an interface to the Network layer to be used by the MQTT client. These functions should not be implemented/modified by the derived classes

+
+ + + + diff --git a/docs/html/_network_connection_8hpp.html b/docs/html/_network_connection_8hpp.html new file mode 100644 index 0000000..02118bc --- /dev/null +++ b/docs/html/_network_connection_8hpp.html @@ -0,0 +1,109 @@ + + + + + + + +AWS IoT C++ SDK: NetworkConnection.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
NetworkConnection.hpp File Reference
+
+
+ +

Network interface base class for IoT Client. +More...

+
#include <cstdint>
+#include <string>
+#include <mutex>
+#include <memory>
+#include "util/Core_EXPORTS.hpp"
+#include "util/memory/stl/String.hpp"
+#include "util/memory/stl/Vector.hpp"
+#include "ResponseCode.hpp"
+
+

Go to the source code of this file.

+ + + + + +

+Data Structures

class  awsiotsdk::NetworkConnection
 Network Connection Class. More...
 
+

Detailed Description

+

Defines an interface to the Network layer to be used by the MQTT client. Starting point for porting the SDK to the networking layer of a new platform.

+
+ + + + diff --git a/docs/html/_network_connection_8hpp_source.html b/docs/html/_network_connection_8hpp_source.html new file mode 100644 index 0000000..1838134 --- /dev/null +++ b/docs/html/_network_connection_8hpp_source.html @@ -0,0 +1,162 @@ + + + + + + + +AWS IoT C++ SDK: NetworkConnection.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
NetworkConnection.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
24#pragma once
+
25
+
26#include <cstdint>
+
27#include <string>
+
28#include <mutex>
+
29#include <memory>
+
30
+
31#include "util/Core_EXPORTS.hpp"
+ + +
34
+
35#include "ResponseCode.hpp"
+
36
+
37namespace awsiotsdk {
+
46 AWS_API_EXPORT class NetworkConnection {
+
47 protected:
+
51 std::mutex read_mutex;
+
52 std::mutex write_mutex;
+
53
+ +
64
+
74 virtual ResponseCode WriteInternal(const util::String &buf, size_t &size_written_bytes_out) = 0;
+
75
+
86 virtual ResponseCode ReadInternal(util::Vector<unsigned char> &buf, size_t buf_read_offset,
+
87 size_t size_bytes_to_read, size_t &size_read_bytes_out) = 0;
+
88
+ +
97
+
98 public:
+
106 virtual bool IsConnected() = 0;
+
107
+
115 virtual bool IsPhysicalLayerConnected() = 0;
+
116
+
124 virtual ResponseCode Connect() final;
+
125
+
135 virtual ResponseCode Write(const util::String &buf, size_t &size_written_bytes_out) final;
+
136
+
147 virtual ResponseCode Read(util::Vector<unsigned char> &buf, size_t buf_read_offset,
+
148 size_t size_bytes_to_read, size_t &size_read_bytes_out) final;
+
149
+
160 virtual ResponseCode Disconnect() final;
+
161
+
162 virtual ~NetworkConnection() {}
+
163 };
+
164}
+
Strongly typed enumeration of return values from functions within the SDK.
+
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+ + +
Network Connection Class.
Definition: NetworkConnection.hpp:46
+
std::mutex read_mutex
Mutex for synchronizing read operations.
Definition: NetworkConnection.hpp:51
+
virtual bool IsPhysicalLayerConnected()=0
Check if Network Physical layer is still connected.
+
virtual ResponseCode ConnectInternal()=0
Create a Network socket and open the connection.
+
virtual bool IsConnected()=0
Check if Network layer is still connected.
+
std::mutex write_mutex
Mutex for synchronizing write operations.
Definition: NetworkConnection.hpp:52
+
virtual ResponseCode Disconnect() final
Disconnect from network socket.
Definition: NetworkConnection.cpp:65
+
virtual ResponseCode Read(util::Vector< unsigned char > &buf, size_t buf_read_offset, size_t size_bytes_to_read, size_t &size_read_bytes_out) final
Read bytes from the network socket.
Definition: NetworkConnection.cpp:50
+
virtual ResponseCode Connect() final
Create a Network socket and open the connection.
Definition: NetworkConnection.cpp:29
+
virtual ResponseCode WriteInternal(const util::String &buf, size_t &size_written_bytes_out)=0
Write bytes to the network socket.
+
virtual ResponseCode DisconnectInternal()=0
Disconnect from network socket.
+
virtual ResponseCode Write(const util::String &buf, size_t &size_written_bytes_out) final
Write bytes to the network socket.
Definition: NetworkConnection.cpp:36
+
virtual ResponseCode ReadInternal(util::Vector< unsigned char > &buf, size_t buf_read_offset, size_t size_bytes_to_read, size_t &size_read_bytes_out)=0
Read bytes from the network socket.
+
+ + + + diff --git a/docs/html/_network_read_8cpp.html b/docs/html/_network_read_8cpp.html new file mode 100644 index 0000000..cf9ecda --- /dev/null +++ b/docs/html/_network_read_8cpp.html @@ -0,0 +1,106 @@ + + + + + + + +AWS IoT C++ SDK: NetworkRead.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
NetworkRead.cpp File Reference
+
+
+
#include <iostream>
+#include <chrono>
+#include <thread>
+#include "util/logging/LogMacros.hpp"
+#include "mqtt/ClientState.hpp"
+#include "mqtt/NetworkRead.hpp"
+
+ + + + + + + +

+Macros

+#define MAX_NO_OF_REMAINING_LENGTH_BYTES   4
 
+#define NETWORK_READ_LOG_TAG   "[Network Read]"
 
+#define CONNACK_RESERVED_PACKET_ID   0
 
+
+ + + + diff --git a/docs/html/_network_read_8hpp.html b/docs/html/_network_read_8hpp.html new file mode 100644 index 0000000..20c23e2 --- /dev/null +++ b/docs/html/_network_read_8hpp.html @@ -0,0 +1,109 @@ + + + + + + + +AWS IoT C++ SDK: NetworkRead.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
NetworkRead.hpp File Reference
+
+
+
#include "util/memory/stl/Map.hpp"
+#include "ResponseCode.hpp"
+#include "Action.hpp"
+#include "Connect.hpp"
+#include "Publish.hpp"
+#include "Subscribe.hpp"
+
+

Go to the source code of this file.

+ + + + + +

+Data Structures

class  awsiotsdk::mqtt::NetworkReadActionRunner
 Define a class for NetworkReadActionRunner. More...
 
+ + + +

+Macros

+#define MAX_NO_OF_REMAINING_LENGTH_BYTES   4
 
+
+ + + + diff --git a/docs/html/_network_read_8hpp_source.html b/docs/html/_network_read_8hpp_source.html new file mode 100644 index 0000000..6f7a113 --- /dev/null +++ b/docs/html/_network_read_8hpp_source.html @@ -0,0 +1,171 @@ + + + + + + + +AWS IoT C++ SDK: NetworkRead.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
NetworkRead.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+ +
25
+
26#include "ResponseCode.hpp"
+
27#include "Action.hpp"
+
28#include "Connect.hpp"
+
29#include "Publish.hpp"
+
30#include "Subscribe.hpp"
+
31
+
32#define MAX_NO_OF_REMAINING_LENGTH_BYTES 4
+
33
+
34namespace awsiotsdk {
+
35 namespace mqtt {
+
36
+ +
44 protected:
+
45 std::shared_ptr<ClientState> p_client_state_;
+
46 std::shared_ptr<NetworkConnection> p_network_connection_;
+
47
+
48 std::atomic_bool is_waiting_for_connack_;
+
49
+
57 ResponseCode DecodeRemainingLength(size_t &rem_len);
+
58
+
67 ResponseCode ReadPacketFromNetwork(unsigned char &fixed_header_byte, util::Vector<unsigned char> &read_buf);
+
68
+
76 ResponseCode HandleConnack(const util::Vector<unsigned char> &read_buf);
+
77
+
88 ResponseCode HandlePublish(const util::Vector<unsigned char> &read_buf,
+
89 bool is_duplicate,
+
90 bool is_retained,
+
91 QoS qos);
+
92
+
100 ResponseCode HandlePuback(const util::Vector<unsigned char> &read_buf);
+
101
+
109 ResponseCode HandleSuback(const util::Vector<unsigned char> &read_buf);
+
110
+
118 ResponseCode HandleUnsuback(const util::Vector<unsigned char> &read_buf);
+
119 public:
+
120
+
129 NetworkReadActionRunner(std::shared_ptr<ClientState> p_client_state);
+
130
+
137 static std::unique_ptr<Action> Create(std::shared_ptr<ActionState> p_action_state);
+
138
+
149 ResponseCode PerformAction(std::shared_ptr<NetworkConnection> p_network_connection,
+
150 std::shared_ptr<ActionData> p_action_data);
+
151 };
+
152 }
+
153}
+
Action Base class and related definitions for IoT Client.
+
QoS
Quality of Service (QoS) Type.
Definition: Common.hpp:47
+ + +
MQTT Publish and Puback Actions and Action data definitions for IoT Client.
+
Strongly typed enumeration of return values from functions within the SDK.
+
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+
MQTT Subscribe and Unsubscribe Actions and Action data definitions for IoT Client.
+
Action Class.
Definition: Action.hpp:143
+
Define a class for NetworkReadActionRunner.
Definition: NetworkRead.hpp:43
+
ResponseCode HandleSuback(const util::Vector< unsigned char > &read_buf)
Handle MQTT Suback packet.
Definition: NetworkRead.cpp:276
+
static std::unique_ptr< Action > Create(std::shared_ptr< ActionState > p_action_state)
Factory Create method.
Definition: NetworkRead.cpp:46
+
ResponseCode HandleUnsuback(const util::Vector< unsigned char > &read_buf)
Handle MQTT Unsuback packet.
Definition: NetworkRead.cpp:318
+
ResponseCode PerformAction(std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
Perform Network Read Action in Async mode.
Definition: NetworkRead.cpp:106
+
std::atomic_bool is_waiting_for_connack_
Is this waiting for connack?
Definition: NetworkRead.hpp:48
+
ResponseCode HandlePuback(const util::Vector< unsigned char > &read_buf)
Handle MQTT Puback packet.
Definition: NetworkRead.cpp:266
+
ResponseCode HandlePublish(const util::Vector< unsigned char > &read_buf, bool is_duplicate, bool is_retained, QoS qos)
Handle MQTT Publish packet.
Definition: NetworkRead.cpp:232
+
ResponseCode ReadPacketFromNetwork(unsigned char &fixed_header_byte, util::Vector< unsigned char > &read_buf)
Read MQTT Packet from buffer.
Definition: NetworkRead.cpp:84
+
ResponseCode DecodeRemainingLength(size_t &rem_len)
Decode Remaining length from MQTT packet.
Definition: NetworkRead.cpp:56
+
std::shared_ptr< ClientState > p_client_state_
Shared Client State instance.
Definition: NetworkRead.hpp:45
+
ResponseCode HandleConnack(const util::Vector< unsigned char > &read_buf)
Handle MQTT Connack packet.
Definition: NetworkRead.cpp:192
+
std::shared_ptr< NetworkConnection > p_network_connection_
Shared Network Connection instance.
Definition: NetworkRead.hpp:46
+
+ + + + diff --git a/docs/html/_packet_8cpp.html b/docs/html/_packet_8cpp.html new file mode 100644 index 0000000..2567c4c --- /dev/null +++ b/docs/html/_packet_8cpp.html @@ -0,0 +1,140 @@ + + + + + + + +AWS IoT C++ SDK: Packet.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Packet.cpp File Reference
+
+
+
#include <algorithm>
+#include "ResponseCode.hpp"
+#include "mqtt/Packet.hpp"
+#include <cstdio>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define MAX_MQTT_PACKET_REM_LEN_BYTES   268435455
 
+#define MQTT_FIXED_HEADER_BYTE_CONNECT   0x10
 
+#define MQTT_FIXED_HEADER_BYTE_CONNACK   0x20
 
+#define MQTT_FIXED_HEADER_BYTE_PUBLISH   0x30
 
+#define MQTT_FIXED_HEADER_BYTE_PUBACK   0x40
 
+#define MQTT_FIXED_HEADER_BYTE_PUBREC   0x50
 
+#define MQTT_FIXED_HEADER_BYTE_PUBREL   0x62
 
+#define MQTT_FIXED_HEADER_BYTE_PUBCOMP   0x70
 
+#define MQTT_FIXED_HEADER_BYTE_SUBSCRIBE   0x82
 
+#define MQTT_FIXED_HEADER_BYTE_SUBACK   0x90
 
+#define MQTT_FIXED_HEADER_BYTE_UNSUBSCRIBE   0xA2
 
+#define MQTT_FIXED_HEADER_BYTE_UNSUBACK   0xB0
 
+#define MQTT_FIXED_HEADER_BYTE_PINGREQ   0xC0
 
+#define MQTT_FIXED_HEADER_BYTE_PINGRESP   0xD0
 
+#define MQTT_FIXED_HEADER_BYTE_DISCONNECT   0xE0
 
+
+ + + + diff --git a/docs/html/_packet_8hpp.html b/docs/html/_packet_8hpp.html new file mode 100644 index 0000000..ea059b4 --- /dev/null +++ b/docs/html/_packet_8hpp.html @@ -0,0 +1,107 @@ + + + + + + + +AWS IoT C++ SDK: Packet.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Packet.hpp File Reference
+
+
+
#include <string>
+#include <iostream>
+#include <memory>
+#include "util/Utf8String.hpp"
+#include "Action.hpp"
+#include "ResponseCode.hpp"
+#include "NetworkConnection.hpp"
+#include "mqtt/Common.hpp"
+
+

Go to the source code of this file.

+ + + + + + + + +

+Data Structures

class  awsiotsdk::mqtt::PacketFixedHeader
 Define a class for the MQTT Fixed header. More...
 
class  awsiotsdk::mqtt::Packet
 Define a base class for all MQTT Packet types. More...
 
+
+ + + + diff --git a/docs/html/_packet_8hpp_source.html b/docs/html/_packet_8hpp_source.html new file mode 100644 index 0000000..47600fd --- /dev/null +++ b/docs/html/_packet_8hpp_source.html @@ -0,0 +1,207 @@ + + + + + + + +AWS IoT C++ SDK: Packet.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Packet.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
21#pragma once
+
22
+
23#include <string>
+
24#include <iostream>
+
25#include <memory>
+
26
+
27#include "util/Utf8String.hpp"
+
28
+
29#include "Action.hpp"
+
30#include "ResponseCode.hpp"
+
31#include "NetworkConnection.hpp"
+
32
+
33#include "mqtt/Common.hpp"
+
34
+
35namespace awsiotsdk {
+
36 namespace mqtt {
+ +
41 private:
+
42 MessageTypes message_type_;
+
43 unsigned char fixed_header_byte_;
+
44 size_t remaining_length_;
+
45 bool is_valid_;
+
46
+
47 public:
+ +
53
+
65 ResponseCode Initialize(MessageTypes message_type, bool is_duplicate, QoS qos, bool is_retained,
+
66 size_t rem_len);
+
67
+ +
74
+ +
81
+
86 size_t GetRemainingLength() { return remaining_length_; }
+
87
+ +
93
+
98 size_t Length() {
+
99 return GetRemainingLengthByteCount() + 1;
+
100 }
+
101
+
107 void AppendToBuffer(util::String &p_buf);
+
108 };
+
109
+
113 class Packet : public ActionData {
+
114 protected:
+ + + +
118 std::atomic_uint_fast16_t packet_id_;
+
119
+
120 public:
+
121 // Rule of 5 stuff
+
122 // Disable copying and moving because class contains std::atomic<> types used for thread synchronization
+
123 Packet() = default; // Default constructor
+
124 Packet(const Packet &) = delete; // Copy constructor
+
125 Packet(Packet &&) = delete; // Move constructor
+
126 Packet &operator=(const Packet &) & = delete; // Copy assignment operator
+
127 Packet &operator=(Packet &&) & = delete; // Move assignment operator
+
128 virtual ~Packet() = default; // Default destructor
+
129
+
130 uint16_t GetActionId() { return (uint16_t) packet_id_.load(std::memory_order_relaxed); }
+
131 void SetActionId(uint16_t action_id) { packet_id_.store(action_id, std::memory_order_relaxed); }
+
132 bool isPacketDataValid();
+
133
+
134 uint16_t GetPacketId() { return (uint16_t) packet_id_.load(std::memory_order_relaxed); }
+
135 void SetPacketId(uint16_t packet_id) { packet_id_.store(packet_id, std::memory_order_relaxed); }
+
136
+
137 size_t Size() { return serialized_packet_length_; }
+
138
+
139 static void AppendUInt16ToBuffer(util::String &buf, uint16_t value);
+
140 static void AppendUtf8StringToBuffer(util::String &buf, std::unique_ptr<Utf8String> &utf8_str);
+
141 static void AppendUtf8StringToBuffer(util::String &buf, std::shared_ptr<Utf8String> &utf8_str);
+
142
+
143 static uint16_t ReadUInt16FromBuffer(const util::Vector<unsigned char> &buf, size_t &extract_index);
+
144 static std::unique_ptr<Utf8String> ReadUtf8StringFromBuffer(const util::Vector<unsigned char> &buf,
+
145 size_t &extract_index);
+
146
+
147 virtual util::String ToString() = 0;
+
148 };
+
149 }
+
150}
+
Action Base class and related definitions for IoT Client.
+
Common class definitions for the MQTT Client.
+
QoS
Quality of Service (QoS) Type.
Definition: Common.hpp:47
+
MessageTypes
MQTT Message Types Definition.
Definition: Common.hpp:58
+
Network interface base class for IoT Client.
+
Strongly typed enumeration of return values from functions within the SDK.
+
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+ +
Action Data Class.
Definition: Action.hpp:100
+
Define a class for the MQTT Fixed header.
Definition: Packet.hpp:40
+
void AppendToBuffer(util::String &p_buf)
Append this header to a string.
Definition: Packet.cpp:168
+
size_t Length()
Get length of the fixed header.
Definition: Packet.hpp:98
+
bool isHeaderValid()
Is this a valid fixed header?
+
size_t GetRemainingLength()
Get remaining length.
Definition: Packet.hpp:86
+
size_t GetRemainingLengthByteCount()
Get number of bytes required to store remaining length.
Definition: Packet.cpp:152
+
MessageTypes GetMessageType()
Get message type.
+
PacketFixedHeader()
Constructor.
Definition: Packet.cpp:66
+
ResponseCode Initialize(MessageTypes message_type, bool is_duplicate, QoS qos, bool is_retained, size_t rem_len)
Initialize the fixed header with provided values. Checks for validity.
Definition: Packet.cpp:72
+
Define a base class for all MQTT Packet types.
Definition: Packet.hpp:113
+
void SetActionId(uint16_t action_id)
Set the Action ID for this run of the Action.
Definition: Packet.hpp:131
+
size_t serialized_packet_length_
Serialized length of the entire packet including fixed header.
Definition: Packet.hpp:117
+
uint16_t GetActionId()
Get ID of the current run of this Action.
Definition: Packet.hpp:130
+
std::atomic_uint_fast16_t packet_id_
Message sequence identifier. Handled automatically by the MQTT client.
Definition: Packet.hpp:118
+
size_t packet_size_
Size of the packet.
Definition: Packet.hpp:116
+
PacketFixedHeader fixed_header_
Fixed header for this packet instance.
Definition: Packet.hpp:115
+
+ + + + diff --git a/docs/html/_publish_8cpp.html b/docs/html/_publish_8cpp.html new file mode 100644 index 0000000..48c05f5 --- /dev/null +++ b/docs/html/_publish_8cpp.html @@ -0,0 +1,111 @@ + + + + + + + +AWS IoT C++ SDK: Publish.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Publish.cpp File Reference
+
+
+ +

MQTT Publish and Puback Actions and Action data definitions for IoT Client. +More...

+ + + + + + + + + + +

+Macros

+#define PUBLISH_ACTION_DESCRIPTION   "MQTT Publish Action"
 
+#define PUBACK_ACTION_DESCRIPTION   "MQTT Puback Action"
 
+#define PUBLISH_ACTION_LOG_TAG   "[Publish]"
 
+#define PUBACK_ACTION_LOG_TAG   "[Puback]"
 
+

Detailed Description

+

Defines classes for perform MQTT Publish and Puback Actions in Async mode for the IoT Client. Also defines the packet types used by these actions.

+
+ + + + diff --git a/docs/html/_publish_8hpp.html b/docs/html/_publish_8hpp.html new file mode 100644 index 0000000..4aad203 --- /dev/null +++ b/docs/html/_publish_8hpp.html @@ -0,0 +1,112 @@ + + + + + + + +AWS IoT C++ SDK: Publish.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Publish.hpp File Reference
+
+
+ +

MQTT Publish and Puback Actions and Action data definitions for IoT Client. +More...

+
#include "mqtt/ClientState.hpp"
+#include "mqtt/Packet.hpp"
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Data Structures

class  awsiotsdk::mqtt::PublishPacket
 Publish Message Packet Type. More...
 
class  awsiotsdk::mqtt::PubackPacket
 Define a class for Puback Packet type. More...
 
class  awsiotsdk::mqtt::PublishActionAsync
 Define a class for PublishActionAsync. More...
 
class  awsiotsdk::mqtt::PubackActionAsync
 Define a class for PubackActionAsync. More...
 
+

Detailed Description

+

Defines classes for perform MQTT Publish and Puback Actions in Async mode for the IoT Client. Also defines the packet types used by these actions.

+
+ + + + diff --git a/docs/html/_publish_8hpp_source.html b/docs/html/_publish_8hpp_source.html new file mode 100644 index 0000000..7225a5a --- /dev/null +++ b/docs/html/_publish_8hpp_source.html @@ -0,0 +1,264 @@ + + + + + + + +AWS IoT C++ SDK: Publish.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Publish.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
24#pragma once
+
25
+
26#include "mqtt/ClientState.hpp"
+
27#include "mqtt/Packet.hpp"
+
28
+
29namespace awsiotsdk {
+
30 namespace mqtt {
+
36 class PublishPacket : public Packet {
+
37 protected:
+ + + +
41 std::unique_ptr<Utf8String> p_topic_name_;
+
42 util::String payload_;
+
43 public:
+
44 // Ensure Default Constructor is deleted
+
45 // Disabling default, move and copy constructors to match Packet parent
+
46 PublishPacket() = delete; // Default constructor
+
47 PublishPacket(const PublishPacket &) = delete; // Copy constructor
+
48 PublishPacket(PublishPacket &&) = delete; // Move constructor
+
49 PublishPacket &operator=(const PublishPacket &) & = delete; // Copy assignment operator
+
50 PublishPacket &operator=(PublishPacket &&) & = delete; // Move assignment operator
+
51 virtual ~PublishPacket() = default; // Default destructor
+
52
+
65 PublishPacket(std::unique_ptr<Utf8String> p_topic_name,
+
66 bool is_retained,
+
67 bool is_duplicate,
+
68 QoS qos,
+
69 const util::String &payload);
+
70
+
82 PublishPacket(const util::Vector<unsigned char> &buf, bool is_retained, bool is_duplicate, QoS qos);
+
83
+
94 static std::shared_ptr<PublishPacket> Create(std::unique_ptr<Utf8String> p_topic_name,
+
95 bool is_retained,
+
96 bool is_duplicate,
+
97 QoS qos,
+
98 const util::String &payload);
+
99
+
109 static std::shared_ptr<PublishPacket> Create(const util::Vector<unsigned char> &buf,
+
110 bool is_retained,
+
111 bool is_duplicate,
+
112 QoS qos);
+
113
+
118 bool IsRetained() { return is_retained_; }
+
119
+
124 bool IsDuplicate() { return is_duplicate_; }
+
125
+
130 util::String GetTopicName() { return p_topic_name_->ToStdString(); }
+
131
+
136 util::String GetPayload() { return payload_; }
+
137
+
142 size_t GetPayloadLen() { return payload_.length(); }
+
143
+
148 util::String ToString();
+
149
+
150 QoS GetQoS() { return qos_; }
+
151 };
+
152
+
158 class PubackPacket : public Packet {
+
159 protected:
+
160 std::atomic_uint_fast16_t publish_packet_id_;
+
161 public:
+
162 // Ensure Default Constructor is deleted
+
163 // Disabling default, move and copy constructors to match Packet parent
+
164 PubackPacket() = delete; // Default constructor
+
165 PubackPacket(const PubackPacket &) = delete; // Copy constructor
+
166 PubackPacket(PubackPacket &&) = delete; // Move constructor
+
167 PubackPacket &operator=(const PubackPacket &) & = delete; // Copy assignment operator
+
168 PubackPacket &operator=(PubackPacket &&) & = delete; // Move assignment operator
+
169 virtual ~PubackPacket() = default; // Default destructor
+
170
+
176 PubackPacket(uint16_t publish_packet_id);
+
177
+
183 static std::shared_ptr<PubackPacket> Create(uint16_t publish_packet_id);
+
184
+
189 util::String ToString();
+
190
+
191 uint16_t GetPublishPacketId() { return (uint16_t) publish_packet_id_.load(std::memory_order_relaxed); }
+
192 void SetPublishPacketId(uint16_t publish_packet_id) { publish_packet_id_.store(publish_packet_id,
+
193 std::memory_order_relaxed); }
+
194 };
+
195
+
201 class PublishActionAsync : public Action {
+
202 protected:
+
203 std::shared_ptr<ClientState> p_client_state_;
+
204 public:
+
205 // Disabling default, move and copy constructors to match Action parent
+
206 // Default virtual destructor
+
207 PublishActionAsync() = delete;
+
208 // Delete Copy constructor
+
209 PublishActionAsync(const PublishActionAsync &) = delete;
+
210 // Delete Move constructor
+ +
212 // Delete Copy assignment operator
+
213 PublishActionAsync &operator=(const PublishActionAsync &) & = delete;
+
214 // Delete Move assignment operator
+
215 PublishActionAsync &operator=(PublishActionAsync &&) & = delete;
+
216 // Default destructor
+
217 virtual ~PublishActionAsync() = default;
+
218
+
227 PublishActionAsync(std::shared_ptr<ClientState> p_client_state);
+
228
+
235 static std::unique_ptr<Action> Create(std::shared_ptr<ActionState> p_action_state);
+
236
+
248 ResponseCode PerformAction(std::shared_ptr<NetworkConnection> p_network_connection,
+
249 std::shared_ptr<ActionData> p_action_data);
+
250 };
+
251
+
257 class PubackActionAsync : public Action {
+
258 protected:
+
259 std::shared_ptr<ClientState> p_client_state_;
+
260 public:
+
261 // Disabling default, move and copy constructors to match Action parent
+
262 PubackActionAsync() = delete;
+
263 // Delete Copy constructor
+
264 PubackActionAsync(const PubackActionAsync &) = delete;
+
265 // Delete Move constructor
+ +
267 // Delete Copy assignment operator
+
268 PubackActionAsync &operator=(const PubackActionAsync &) & = delete;
+
269 // Delete Move assignment operator
+
270 PubackActionAsync &operator=(PubackActionAsync &&) & = delete;
+
271 // Default destructor
+
272 virtual ~PubackActionAsync() = default;
+
273
+
282 PubackActionAsync(std::shared_ptr<ClientState> p_client_state);
+
283
+
290 static std::unique_ptr<Action> Create(std::shared_ptr<ActionState> p_action_state);
+
291
+
303 ResponseCode PerformAction(std::shared_ptr<NetworkConnection> p_network_connection,
+
304 std::shared_ptr<ActionData> p_action_data);
+
305 };
+
306 }
+
307}
+ +
QoS
Quality of Service (QoS) Type.
Definition: Common.hpp:47
+ +
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+
Action Class.
Definition: Action.hpp:143
+
Define a base class for all MQTT Packet types.
Definition: Packet.hpp:113
+
Define a class for PubackActionAsync.
Definition: Publish.hpp:257
+
ResponseCode PerformAction(std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
Perform MQTT Puback Action in Async mode.
Definition: Publish.cpp:233
+
std::shared_ptr< ClientState > p_client_state_
Shared Client State instance.
Definition: Publish.hpp:259
+
static std::unique_ptr< Action > Create(std::shared_ptr< ActionState > p_action_state)
Factory Create method.
Definition: Publish.cpp:223
+
Define a class for Puback Packet type.
Definition: Publish.hpp:158
+
util::String ToString()
Serialize this packet into a String.
Definition: Publish.cpp:155
+
static std::shared_ptr< PubackPacket > Create(uint16_t publish_packet_id)
Factory Create method.
Definition: Publish.cpp:151
+
Define a class for PublishActionAsync.
Definition: Publish.hpp:201
+
static std::unique_ptr< Action > Create(std::shared_ptr< ActionState > p_action_state)
Factory Create method.
Definition: Publish.cpp:172
+
ResponseCode PerformAction(std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
Perform MQTT Publish Action in Async mode.
Definition: Publish.cpp:182
+
std::shared_ptr< ClientState > p_client_state_
Shared Client State instance.
Definition: Publish.hpp:203
+
Publish Message Packet Type.
Definition: Publish.hpp:36
+
util::String GetTopicName()
Get String containing topic name for this message.
Definition: Publish.hpp:130
+
bool IsRetained()
Get the value of the Is Retained flag.
Definition: Publish.hpp:118
+
util::String ToString()
Serialize this packet into a String.
Definition: Publish.cpp:126
+
bool is_duplicate_
Is this message a duplicate QoS > 0 message? Handled automatically by the MQTT client.
Definition: Publish.hpp:39
+
QoS qos_
Message Quality of Service.
Definition: Publish.hpp:40
+
util::String payload_
MQTT message payload.
Definition: Publish.hpp:42
+
util::String GetPayload()
Get string containing Payload.
Definition: Publish.hpp:136
+
bool IsDuplicate()
Get the value of the Is Duplicate message flag.
Definition: Publish.hpp:124
+
size_t GetPayloadLen()
Get length of the payload.
Definition: Publish.hpp:142
+
std::unique_ptr< Utf8String > p_topic_name_
Topic Name this packet was published to.
Definition: Publish.hpp:41
+
static std::shared_ptr< PublishPacket > Create(std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, QoS qos, const util::String &payload)
Create Factory method using Individual data.
Definition: Publish.cpp:104
+
bool is_retained_
Retained messages are NOT supported by the AWS IoT Service at the time of this SDK release.
Definition: Publish.hpp:38
+
+ + + + diff --git a/docs/html/_queue_8hpp.html b/docs/html/_queue_8hpp.html new file mode 100644 index 0000000..3ffbdee --- /dev/null +++ b/docs/html/_queue_8hpp.html @@ -0,0 +1,100 @@ + + + + + + + +AWS IoT C++ SDK: Queue.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Queue.hpp File Reference
+
+
+
#include "util/Core_EXPORTS.hpp"
+#include <deque>
+#include <queue>
+
+

Go to the source code of this file.

+ + + + + +

+Typedefs

+template<typename T >
using awsiotsdk::util::Queue = std::queue< T >
 
+
+ + + + diff --git a/docs/html/_queue_8hpp_source.html b/docs/html/_queue_8hpp_source.html new file mode 100644 index 0000000..fddba24 --- /dev/null +++ b/docs/html/_queue_8hpp_source.html @@ -0,0 +1,112 @@ + + + + + + + +AWS IoT C++ SDK: Queue.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Queue.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
23#pragma once
+
24
+
25#include "util/Core_EXPORTS.hpp"
+
26
+
27#include <deque>
+
28#include <queue>
+
29
+
30namespace awsiotsdk {
+
31 namespace util {
+
32 template<typename T> using Queue = std::queue<T>;
+
33 } // namespace util
+
34} // namespace awsiotsdk
+
+ + + + diff --git a/docs/html/_response_code_8cpp.html b/docs/html/_response_code_8cpp.html new file mode 100644 index 0000000..0fbe581 --- /dev/null +++ b/docs/html/_response_code_8cpp.html @@ -0,0 +1,139 @@ + + + + + + + +AWS IoT C++ SDK: ResponseCode.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ResponseCode.cpp File Reference
+
+
+ +

Response Code class with helper functions. +More...

+
#include "ResponseCode.hpp"
+#include "util/logging/LogSystemInterface.hpp"
+#include <iostream>
+
+ + + +

+Functions

std::ostream & awsiotsdk::operator<< (std::ostream &os, ResponseCode rc)
 
+

Detailed Description

+

Defines a helper functions to convert Response Codes to strings

+

Function Documentation

+ +

◆ operator<<()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::ostream & awsiotsdk::operator<< (std::ostream & os,
ResponseCode rc 
)
+
+

Overloading the << stream operator for ResponseCode

+
Parameters
+ + + +
osostream being filled
rcResponseCode
+
+
+
Returns
ostream&
+ +
+
+
+ + + + diff --git a/docs/html/_response_code_8hpp.html b/docs/html/_response_code_8hpp.html new file mode 100644 index 0000000..c317951 --- /dev/null +++ b/docs/html/_response_code_8hpp.html @@ -0,0 +1,852 @@ + + + + + + + +AWS IoT C++ SDK: ResponseCode.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ResponseCode.hpp File Reference
+
+
+ +

Strongly typed enumeration of return values from functions within the SDK. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Namespaces

namespace  awsiotsdk::ResponseHelper
 Response Helper for converting ResponseCode into Strings.
 
+ + + +

+Macros

+#define IOT_UNUSED(x)   (void)(x)
 
+ + + + +

+Enumerations

enum class  awsiotsdk::ResponseCode {
+  DISCOVER_ACTION_NO_INFORMATION_PRESENT = 401 +, DISCOVER_ACTION_SUCCESS = 400 +, SHADOW_RECEIVED_DELTA = 301 +, SHADOW_REQUEST_ACCEPTED = 300 +,
+  NETWORK_PHYSICAL_LAYER_CONNECTED = 203 +, NETWORK_MANUALLY_DISCONNECTED = 202 +, NETWORK_ATTEMPTING_RECONNECT = 201 +, NETWORK_RECONNECTED = 200 +,
+  MQTT_NOTHING_TO_READ = 101 +, MQTT_CONNACK_CONNECTION_ACCEPTED = 100 +, SUCCESS = 0 +, FAILURE = -1 +,
+  NULL_VALUE_ERROR = -2 +, FILE_OPEN_ERROR = -100 +, FILE_NAME_INVALID = -101 +, MUTEX_INIT_ERROR = -200 +,
+  MUTEX_LOCK_ERROR = -201 +, MUTEX_UNLOCK_ERROR = -202 +, MUTEX_DESTROY_ERROR = -203 +, THREAD_EXITING = -204 +,
+  NETWORK_TCP_CONNECT_ERROR = -300 +, NETWORK_TCP_SETUP_ERROR = -301 +, NETWORK_TCP_UNKNOWN_HOST = -302 +, NETWORK_TCP_NO_ENDPOINT_SPECIFIED = -303 +,
+  NETWORK_SSL_INIT_ERROR = -400 +, NETWORK_SSL_ROOT_CRT_PARSE_ERROR = -401 +, NETWORK_SSL_DEVICE_CRT_PARSE_ERROR = -402 +, NETWORK_SSL_KEY_PARSE_ERROR = -403 +,
+  NETWORK_SSL_TLS_HANDSHAKE_ERROR = -404 +, NETWORK_SSL_CONNECT_ERROR = -405 +, NETWORK_SSL_CONNECT_TIMEOUT_ERROR = -406 +, NETWORK_SSL_CONNECTION_CLOSED_ERROR = -407 +,
+  NETWORK_SSL_WRITE_ERROR = -408 +, NETWORK_SSL_WRITE_TIMEOUT_ERROR = -409 +, NETWORK_SSL_READ_ERROR = -410 +, NETWORK_SSL_READ_TIMEOUT_ERROR = -411 +,
+  NETWORK_SSL_NOTHING_TO_READ = -412 +, NETWORK_SSL_UNKNOWN_ERROR = -413 +, NETWORK_SSL_SERVER_VERIFICATION_ERROR = -414 +, NETWORK_DISCONNECTED_ERROR = -500 +,
+  NETWORK_RECONNECT_TIMED_OUT_ERROR = -501 +, NETWORK_ALREADY_CONNECTED_ERROR = -502 +, NETWORK_PHYSICAL_LAYER_DISCONNECTED = -503 +, NETWORK_NOTHING_TO_WRITE_ERROR = -504 +,
+  ACTION_NOT_REGISTERED_ERROR = -601 +, ACTION_QUEUE_FULL = -602 +, ACTION_CREATE_FAILED = -603 +, MQTT_CONNECTION_ERROR = -701 +,
+  MQTT_CONNECT_TIMEOUT_ERROR = -702 +, MQTT_REQUEST_TIMEOUT_ERROR = -703 +, MQTT_UNEXPECTED_CLIENT_STATE_ERROR = -704 +, MQTT_CLIENT_NOT_IDLE_ERROR = -705 +,
+  MQTT_RX_MESSAGE_PACKET_TYPE_INVALID_ERROR = -706 +, MQTT_MAX_SUBSCRIPTIONS_REACHED_ERROR = -707 +, MQTT_DECODE_REMAINING_LENGTH_ERROR = -708 +, MQTT_CONNACK_UNKNOWN_ERROR = -709 +,
+  MQTT_CONNACK_UNACCEPTABLE_PROTOCOL_VERSION_ERROR = -710 +, MQTT_CONNACK_IDENTIFIER_REJECTED_ERROR = -711 +, MQTT_CONNACK_SERVER_UNAVAILABLE_ERROR = -712 +, MQTT_CONNACK_BAD_USERDATA_ERROR = -713 +,
+  MQTT_CONNACK_NOT_AUTHORIZED_ERROR = -714 +, MQTT_NO_SUBSCRIPTION_FOUND = -715 +, MQTT_SUBSCRIPTION_NOT_ACTIVE = -716 +, MQTT_UNEXPECTED_PACKET_FORMAT_ERROR = -717 +,
+  MQTT_TOO_MANY_SUBSCRIPTIONS_IN_REQUEST = -718 +, MQTT_INVALID_DATA_ERROR = -719 +, MQTT_SUBSCRIBE_PARTIALLY_FAILED = -720 +, MQTT_SUBSCRIBE_FAILED = -721 +,
+  JSON_PARSE_KEY_NOT_FOUND_ERROR = -800 +, JSON_PARSE_KEY_UNEXPECTED_TYPE_ERROR = -801 +, JSON_PARSING_ERROR = -802 +, JSON_MERGE_FAILED = -803 +,
+  JSON_DIFF_FAILED = -804 +, SHADOW_WAIT_FOR_PUBLISH = -900 +, SHADOW_JSON_BUFFER_TRUNCATED = -901 +, SHADOW_JSON_ERROR = -902 +,
+  SHADOW_JSON_EMPTY_ERROR = -903 +, SHADOW_REQUEST_MAP_EMPTY = -904 +, SHADOW_MQTT_DISCONNECTED_ERROR = -905 +, SHADOW_UNEXPECTED_RESPONSE_TYPE = -906 +,
+  SHADOW_UNEXPECTED_RESPONSE_TOPIC = -907 +, SHADOW_REQUEST_REJECTED = -908 +, SHADOW_MQTT_CLIENT_NOT_SET_ERROR = -909 +, SHADOW_NOTHING_TO_UPDATE = -910 +,
+  SHADOW_UNEXPECTED_RESPONSE_PAYLOAD = -911 +, SHADOW_RECEIVED_OLD_VERSION_UPDATE = -912 +, WEBSOCKET_SIGN_URL_NO_MEM = -1000 +, WEBSOCKET_GEN_CLIENT_KEY_ERROR = -1001 +,
+  WEBSOCKET_HANDSHAKE_ERROR = -1002 +, WEBSOCKET_HANDSHAKE_WRITE = -1003 +, WEBSOCKET_HANDSHAKE_READ = -1004 +, WEBSOCKET_HANDSHAKE_VERIFY_ERROR = -1005 +,
+  WEBSOCKET_WSLAY_CONTEXT_INIT_ERROR = -1006 +, WEBSOCKET_FRAME_RECEIVE_ERROR = -1007 +, WEBSOCKET_FRAME_TRANSMIT_ERROR = -1008 +, WEBSOCKET_PROTOCOL_VIOLATION = -1009 +,
+  WEBSOCKET_MAX_LIFETIME_REACHED = -1010 +, WEBSOCKET_DISCONNECT_ERROR = -1011 +, WEBSOCKET_GET_UTC_TIME_FAILED = -1012 +, DISCOVER_ACTION_REQUEST_FAILED_ERROR = -1100 +,
+  DISCOVER_ACTION_REQUEST_TIMED_OUT_ERROR = -1101 +, DISCOVER_ACTION_UNAUTHORIZED = -1102 +, DISCOVER_ACTION_SERVER_ERROR = -1103 +, DISCOVER_ACTION_REQUEST_OVERLOAD = -1104 +,
+  DISCOVER_RESPONSE_UNEXPECTED_JSON_STRUCTURE_ERROR = -1200 +, JOBS_INVALID_TOPIC_ERROR = -1300 +
+ }
 Response Code enum class. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

std::ostream & awsiotsdk::operator<< (std::ostream &os, ResponseCode rc)
 
+const util::String awsiotsdk::ResponseHelper::DISCOVER_ACTION_NO_INFORMATION_PRESENT_STRING ("No information found for device")
 
+const util::String awsiotsdk::ResponseHelper::DISCOVER_ACTION_SUCCESS_STRING ("Discover action successful")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_RECEIVED_DELTA_STRING ("Received the shadow delta")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_REQUEST_ACCEPTED_STRING ("Shadow request accepted")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_PHYSICAL_LAYER_CONNECTED_STRING ("Physical network layer connected")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_MANUALLY_DISCONNECTED_STRING ("Network manually disconnected")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_ATTEMPTING_RECONNECT_STRING ("Attempting to reconnect to the network")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_RECONNECTED_STRING ("Network reconnected")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_NOTHING_TO_READ_STRING ("No MQTT packets received")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_CONNACK_CONNECTION_ACCEPTED_STRING ("Successfully connected to MQTT server")
 
+const util::String awsiotsdk::ResponseHelper::SUCCESS_STRING ("Success")
 
+const util::String awsiotsdk::ResponseHelper::FAILURE_STRING ("Failure")
 
+const util::String awsiotsdk::ResponseHelper::NULL_VALUE_ERROR_STRING ("One or more parameters were null")
 
+const util::String awsiotsdk::ResponseHelper::FILE_OPEN_ERROR_STRING ("Error occurred while trying to open the file")
 
+const util::String awsiotsdk::ResponseHelper::FILE_NAME_INVALID_STRING ("File name provided is invalid or of zero length")
 
+const util::String awsiotsdk::ResponseHelper::MUTEX_INIT_ERROR_STRING ("Error occurred while initializing the mutex")
 
+const util::String awsiotsdk::ResponseHelper::MUTEX_LOCK_ERROR_STRING ("Error occurred while locking the mutex")
 
+const util::String awsiotsdk::ResponseHelper::MUTEX_UNLOCK_ERROR_STRING ("Error occurred while unlocking the mutex")
 
+const util::String awsiotsdk::ResponseHelper::MUTEX_DESTROY_ERROR_STRING ("Error occurred while destroying the mutex")
 
+const util::String awsiotsdk::ResponseHelper::THREAD_EXITING_STRING ("Thread is exiting")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_TCP_CONNECT_ERROR_STRING ("TCP Error occurred while opening a socket")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_TCP_SETUP_ERROR_STRING ("Error occurred while setting up the TCP socket")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_TCP_UNKNOWN_HOST_STRING ("Unable to find host specified")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_TCP_NO_ENDPOINT_SPECIFIED_STRING ("No endpoint specified")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_INIT_ERROR_STRING ("Error occurred while initializing SSL")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_ROOT_CRT_PARSE_ERROR_STRING ("Error occurred while parsing the root CRT")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_DEVICE_CRT_PARSE_ERROR_STRING ("Error occurred while parsing the device CRT")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_KEY_PARSE_ERROR_STRING ("Error occurred while parsing the private key")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_TLS_HANDSHAKE_ERROR_STRING ("Error occurred while performing the TLS handshake")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_CONNECT_ERROR_STRING ("Error occurred during the connect attempt")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_CONNECT_TIMEOUT_ERROR_STRING ("The connect attempt timed out")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_CONNECTION_CLOSED_ERROR_STRING ("The SSL connection was closed")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_WRITE_ERROR_STRING ("Error occurred during the SSL write operation")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_WRITE_TIMEOUT_ERROR_STRING ("The SSL write operation timed out")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_READ_ERROR_STRING ("Error occurred during the SSL read operation")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_READ_TIMEOUT_ERROR_STRING ("The SSL read operation timed out")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_NOTHING_TO_READ_STRING ("No SSL packets received")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_UNKNOWN_ERROR_STRING ("Unknown error occurred during an SSL operation")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_SSL_SERVER_VERIFICATION_ERROR_STRING ("Unable to verify server name")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_DISCONNECTED_ERROR_STRING ("Network is disconnected")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_RECONNECT_TIMED_OUT_ERROR_STRING ("Reconnect operation time out")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_ALREADY_CONNECTED_ERROR_STRING ("Network is already connected")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_PHYSICAL_LAYER_DISCONNECTED_STRING ("Physical network layer is disconnected")
 
+const util::String awsiotsdk::ResponseHelper::NETWORK_NOTHING_TO_WRITE_ERROR_STRING ("No packets to write to the network")
 
+const util::String awsiotsdk::ResponseHelper::ACTION_NOT_REGISTERED_ERROR_STRING ("The action attempted is not registered with the client")
 
+const util::String awsiotsdk::ResponseHelper::ACTION_QUEUE_FULL_STRING ("The client action queue is full")
 
+const util::String awsiotsdk::ResponseHelper::ACTION_CREATE_FAILED_STRING ("The client was unable to create the action")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_CONNECTION_ERROR_STRING ("Unable to establish the MQTT connection")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_CONNECT_TIMEOUT_ERROR_STRING ("The MQTT connect operation timed out")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_REQUEST_TIMEOUT_ERROR_STRING ("The MQTT request timed out")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_UNEXPECTED_CLIENT_STATE_ERROR_STRING ("The MQTT client is in an unexpected state")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_CLIENT_NOT_IDLE_ERROR_STRING ("The MQTT client is not idle")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_RX_MESSAGE_PACKET_TYPE_INVALID_ERROR_STRING ("The MQTT message is of an invalid type")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_MAX_SUBSCRIPTIONS_REACHED_ERROR_STRING ("Reached maximum MQTT subscriptions")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_DECODE_REMAINING_LENGTH_ERROR_STRING ("Error occurred while decoding the remaining length of the MQTT message")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_CONNACK_UNKNOWN_ERROR_STRING ("MQTT connect request failed with server returning an unknown error")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_CONNACK_UNACCEPTABLE_PROTOCOL_VERSION_ERROR_STRING ("MQTT connect request failed with server returning an unacceptable protocol error")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_CONNACK_IDENTIFIER_REJECTED_ERROR_STRING ("MQTT connect request failed with server returning an identifier rejected error")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_CONNACK_SERVER_UNAVAILABLE_ERROR_STRING ("MQTT connect request failed with server returning an unavailable error")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_CONNACK_BAD_USERDATA_ERROR_STRING ("MQTT connect request failed with server returning a bad userdata error")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_CONNACK_NOT_AUTHORIZED_ERROR_STRING ("MQTT connect request failed with server returning a not authorized error")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_NO_SUBSCRIPTION_FOUND_STRING ("No MQTT subscriptions were found for the requested topic")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_SUBSCRIPTION_NOT_ACTIVE_STRING ("The MQTT subscription specified is not active")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_UNEXPECTED_PACKET_FORMAT_ERROR_STRING ("Unable to serialize the MQTT packet as the format is unexpected")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_TOO_MANY_SUBSCRIPTIONS_IN_REQUEST_STRING ("Too many subscriptions were provided in the MQTT subscribe/unsubscribe request")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_INVALID_DATA_ERROR_STRING ("Invalid/Insufficient data was provided in the MQTT request")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_SUBSCRIBE_PARTIALLY_FAILED_STRING ("Failed to subscribe to atleast one of the topics in the subscribe request")
 
+const util::String awsiotsdk::ResponseHelper::MQTT_SUBSCRIBE_FAILED_STRING ("Failed to subscribe to any of the topics in the subscribe request")
 
+const util::String awsiotsdk::ResponseHelper::JSON_PARSE_KEY_NOT_FOUND_ERROR_STRING ("Unable to find the requested key in the JSON")
 
+const util::String awsiotsdk::ResponseHelper::JSON_PARSE_KEY_UNEXPECTED_TYPE_ERROR_STRING ("The value for the JSON key was of an unexpected type")
 
+const util::String awsiotsdk::ResponseHelper::JSON_PARSING_ERROR_STRING ("Error occurred while parsing the JSON")
 
+const util::String awsiotsdk::ResponseHelper::JSON_MERGE_FAILED_STRING ("Failed to merge the JSON")
 
+const util::String awsiotsdk::ResponseHelper::JSON_DIFF_FAILED_STRING ("Failed to diff the JSON")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_WAIT_FOR_PUBLISH_STRING ("Waiting for previously published shadow updates")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_JSON_BUFFER_TRUNCATED_STRING ("Shadow JSON is truncated as size specified is less than the size of the JSON")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_JSON_ERROR_STRING ("Encoding error occurred while printing the shadow JSON")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_JSON_EMPTY_ERROR_STRING ("The shadow JSON is empty")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_REQUEST_MAP_EMPTY_STRING ("The shadow request map is empty ")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_MQTT_DISCONNECTED_ERROR_STRING ("The shadow's MQTT connection is inactive")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_UNEXPECTED_RESPONSE_TYPE_STRING ("The shadow response received is of an unexpected type")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_UNEXPECTED_RESPONSE_TOPIC_STRING ("The shadow response was received on an unexpected topic")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_REQUEST_REJECTED_STRING ("The shadow request was rejected by the server")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_MQTT_CLIENT_NOT_SET_ERROR_STRING ("There is no client set for this shadow")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_NOTHING_TO_UPDATE_STRING ("There are no shadow updates to be performed")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_UNEXPECTED_RESPONSE_PAYLOAD_STRING ("The shadow response is in an unexpected format")
 
+const util::String awsiotsdk::ResponseHelper::SHADOW_RECEIVED_OLD_VERSION_UPDATE_STRING ("The received shadow version is older than the current one on the device")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_SIGN_URL_NO_MEM_STRING ("Internal buffer overflowed while signing WebSocket URL")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_GEN_CLIENT_KEY_ERROR_STRING ("Error occurred while generating WebSocket handshake client key")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_HANDSHAKE_ERROR_STRING ("Unable to complete WebSocket handshake")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_HANDSHAKE_WRITE_STRING ("Unable to transmit WebSocket handshake request")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_HANDSHAKE_READ_STRING ("Unable to receive WebSocket handshake request")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_HANDSHAKE_VERIFY_ERROR_STRING ("Unable to verify handshake response from the server")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_WSLAY_CONTEXT_INIT_ERROR_STRING ("Erro occurred while initializing the WebSocket WSLay context")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_FRAME_RECEIVE_ERROR_STRING ("Error occurred while receiving WebSocket frame")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_FRAME_TRANSMIT_ERROR_STRING ("Error occurred while transmitting WebSocket frame")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_PROTOCOL_VIOLATION_STRING ("Protocol violation was detected in the received WebSocket frames")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_MAX_LIFETIME_REACHED_STRING ("Max lifetime of the WebSocket connection was reached")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_DISCONNECT_ERROR_STRING ("Error occurred while disconnecting the WebSocket")
 
+const util::String awsiotsdk::ResponseHelper::WEBSOCKET_GET_UTC_TIME_FAILED_STRING ("WebSocket wrapper is unable to get the UTC ")
 
+const util::String awsiotsdk::ResponseHelper::DISCOVER_ACTION_REQUEST_FAILED_ERROR_STRING ("Unable to perform the discover action")
 
+const util::String awsiotsdk::ResponseHelper::DISCOVER_ACTION_REQUEST_TIMED_OUT_ERROR_STRING ("The discover action request timed out")
 
+const util::String awsiotsdk::ResponseHelper::DISCOVER_ACTION_UNAUTHORIZED_STRING ("The device was unauthorized to perform the discovery action")
 
+const util::String awsiotsdk::ResponseHelper::DISCOVER_ACTION_SERVER_ERROR_STRING ("Server returned unknown error while performing the discovery action")
 
+const util::String awsiotsdk::ResponseHelper::DISCOVER_ACTION_REQUEST_OVERLOAD_STRING ("The discovery action is overloading the server, try again after some time")
 
+const util::String awsiotsdk::ResponseHelper::DISCOVER_RESPONSE_UNEXPECTED_JSON_STRUCTURE_ERROR_STRING ("The discover response JSON is incomplete ")
 
+const util::String awsiotsdk::ResponseHelper::JOBS_INVALID_TOPIC_ERROR_STRING ("Invalid jobs topic")
 
util::String awsiotsdk::ResponseHelper::ToString (ResponseCode rc)
 
+

Detailed Description

+

Contains the return codes used by the SDK and helper functions to convert the ResponseCode into human readable strings

+

Enumeration Type Documentation

+ +

◆ ResponseCode

+ +
+
+ + + + + +
+ + + + +
enum class awsiotsdk::ResponseCode
+
+strong
+
+

Strongly typed enumeration of return values from functions within the SDK. Values less than -1 are specific error codes Value of -1 is a generic failure response Value of 0 is a generic success response Values greater than 0 are specific non-error return codes Values have been grouped based on source or type of code

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Enumerator
DISCOVER_ACTION_NO_INFORMATION_PRESENT 

Discover Action response showed no discovery information is present for this thing name.

+
DISCOVER_ACTION_SUCCESS 

Discover Action found connectivity information for this thing name.

+
SHADOW_RECEIVED_DELTA 

Returned when a delta update is received.

+
SHADOW_REQUEST_ACCEPTED 

Returned when the request has been accepted.

+
NETWORK_PHYSICAL_LAYER_CONNECTED 

Returned when the Network physical layer is connected.

+
NETWORK_MANUALLY_DISCONNECTED 

Returned when the Network is manually disconnected.

+
NETWORK_ATTEMPTING_RECONNECT 

Returned when the Network is disconnected and the reconnect attempt is in progress.

+
NETWORK_RECONNECTED 

Return value of yield function to indicate auto-reconnect was successful.

+
MQTT_NOTHING_TO_READ 

Returned when a read attempt is made on the TLS buffer and it is empty.

+
MQTT_CONNACK_CONNECTION_ACCEPTED 

Returned when a connection request is successful and packet response is connection accepted.

+
SUCCESS 

Success return value - no error occurred.

+
FAILURE 

A generic error. Not enough information for a specific error code.

+
NULL_VALUE_ERROR 

A required parameter was passed as null.

+
FILE_OPEN_ERROR 

Unable to open the requested file.

+
FILE_NAME_INVALID 

File name is invalid or of zero length.

+
MUTEX_INIT_ERROR 

Mutex initialization failed.

+
MUTEX_LOCK_ERROR 

Mutex lock request failed.

+
MUTEX_UNLOCK_ERROR 

Mutex unlock request failed.

+
MUTEX_DESTROY_ERROR 

Mutex destroy failed.

+
THREAD_EXITING 

Thread is exiting, returned when thread exits in the middle of an operation.

+
NETWORK_TCP_CONNECT_ERROR 

The TCP socket could not be established.

+
NETWORK_TCP_SETUP_ERROR 

Error associated with setting up the parameters of a Socket.

+
NETWORK_TCP_UNKNOWN_HOST 

Returned when the server is unknown.

+
NETWORK_TCP_NO_ENDPOINT_SPECIFIED 

Returned when the Network connection was not provided an endpoint.

+
NETWORK_SSL_INIT_ERROR 

SSL initialization error at the TLS layer.

+
NETWORK_SSL_ROOT_CRT_PARSE_ERROR 

Returned when the root certificate is invalid.

+
NETWORK_SSL_DEVICE_CRT_PARSE_ERROR 

Returned when the device certificate is invalid.

+
NETWORK_SSL_KEY_PARSE_ERROR 

An error occurred when loading the certificates. The certificates could not be located or are incorrectly formatted.

+
NETWORK_SSL_TLS_HANDSHAKE_ERROR 

The TLS handshake failed due to unknown error.

+
NETWORK_SSL_CONNECT_ERROR 

An unknown occurred while waiting for the TLS handshake to complete.

+
NETWORK_SSL_CONNECT_TIMEOUT_ERROR 

A timeout occurred while waiting for the TLS handshake to complete.

+
NETWORK_SSL_CONNECTION_CLOSED_ERROR 

The SSL Connection was closed.

+
NETWORK_SSL_WRITE_ERROR 

A Generic write error based on the platform used.

+
NETWORK_SSL_WRITE_TIMEOUT_ERROR 

SSL Write times out.

+
NETWORK_SSL_READ_ERROR 

A Generic error based on the platform used.nerator seeding failed.

+
NETWORK_SSL_READ_TIMEOUT_ERROR 

SSL Read times out.

+
NETWORK_SSL_NOTHING_TO_READ 

Returned when there is nothing to read in the TLS read buffer.

+
NETWORK_SSL_UNKNOWN_ERROR 

A generic error code for Network SSL layer errors.

+
NETWORK_SSL_SERVER_VERIFICATION_ERROR 

Server name verification failure.

+
NETWORK_DISCONNECTED_ERROR 

Returned when the Network is disconnected and reconnect is either disabled or physical layer is disconnected.

+
NETWORK_RECONNECT_TIMED_OUT_ERROR 

Returned when the Network is disconnected and the reconnect attempt has timed out.

+
NETWORK_ALREADY_CONNECTED_ERROR 

Returned when the Network is already connected and a connection attempt is made.

+
NETWORK_PHYSICAL_LAYER_DISCONNECTED 

Returned when the physical layer is disconnected.

+
NETWORK_NOTHING_TO_WRITE_ERROR 

Returned when the Network write function is passed an empty buffer as argument.

+
ACTION_NOT_REGISTERED_ERROR 

Requested action is not registered with the core client.

+
ACTION_QUEUE_FULL 

Core Client Action queue is full.

+
ACTION_CREATE_FAILED 

Core Client was not able to create the requested action.

+
MQTT_CONNECTION_ERROR 

A connection could not be established.

+
MQTT_CONNECT_TIMEOUT_ERROR 

A timeout occurred while waiting for the MQTT connect to complete.

+
MQTT_REQUEST_TIMEOUT_ERROR 

A timeout occurred while waiting for the TLS request to complete.

+
MQTT_UNEXPECTED_CLIENT_STATE_ERROR 

The current client state does not match the expected value.

+
MQTT_CLIENT_NOT_IDLE_ERROR 

The client state is not idle when request is being made.

+
MQTT_RX_MESSAGE_PACKET_TYPE_INVALID_ERROR 

The MQTT RX buffer received corrupt or unexpected message.

+
MQTT_MAX_SUBSCRIPTIONS_REACHED_ERROR 

The client is subscribed to the maximum possible number of subscriptions.

+
MQTT_DECODE_REMAINING_LENGTH_ERROR 

Failed to decode the remaining packet length on incoming packet.

+
MQTT_CONNACK_UNKNOWN_ERROR 

Connect request failed with the server returning an unknown error.

+
MQTT_CONNACK_UNACCEPTABLE_PROTOCOL_VERSION_ERROR 

Connect request failed with the server returning an unacceptable protocol version error.

+
MQTT_CONNACK_IDENTIFIER_REJECTED_ERROR 

Connect request failed with the server returning an identifier rejected error.

+
MQTT_CONNACK_SERVER_UNAVAILABLE_ERROR 

Connect request failed with the server returning an unavailable error.

+
MQTT_CONNACK_BAD_USERDATA_ERROR 

Connect request failed with the server returning a bad userdata error.

+
MQTT_CONNACK_NOT_AUTHORIZED_ERROR 

Connect request failed with the server failing to authenticate the request.

+
MQTT_NO_SUBSCRIPTION_FOUND 

No subscription exists for requested topic.

+
MQTT_SUBSCRIPTION_NOT_ACTIVE 

Subscription exists but is not active, waiting for Suback or Ack not received.

+
MQTT_UNEXPECTED_PACKET_FORMAT_ERROR 

Deserialization failed because packet data was in an unexpected format.

+
MQTT_TOO_MANY_SUBSCRIPTIONS_IN_REQUEST 

Too many subscriptions were provided in the Subscribe/Unsubscribe request.

+
MQTT_INVALID_DATA_ERROR 

Provided data is invalid/not sufficient for the request.

+
MQTT_SUBSCRIBE_PARTIALLY_FAILED 

Failed to subscribe to atleast one of the topics in the subscribe request.

+
MQTT_SUBSCRIBE_FAILED 

Unable to subscribe to any of the topics in the subscribe request.

+
JSON_PARSE_KEY_NOT_FOUND_ERROR 

JSON Parser was not able to find the requested key in the specified JSON.

+
JSON_PARSE_KEY_UNEXPECTED_TYPE_ERROR 

The value type was different from the expected type.

+
JSON_PARSING_ERROR 

An error occurred while parsing the JSON string. Usually malformed JSON.

+
JSON_MERGE_FAILED 

Returned when the JSON merge request fails unexpectedly.

+
JSON_DIFF_FAILED 

Returned when the JSON diff request fails unexpectedly.

+
SHADOW_WAIT_FOR_PUBLISH 

Shadow: The response Ack table is currently full waiting for previously published updates.

+
SHADOW_JSON_BUFFER_TRUNCATED 

Any time an snprintf writes more than size value, this error will be returned.

+
SHADOW_JSON_ERROR 

Any time an snprintf encounters an encoding error or not enough space in the given buffer.

+
SHADOW_JSON_EMPTY_ERROR 

Returned when the provided json document is empty.

+
SHADOW_REQUEST_MAP_EMPTY 

Returned when the provided request map is empty.

+
SHADOW_MQTT_DISCONNECTED_ERROR 

Returned when the MQTT connection is not active.

+
SHADOW_UNEXPECTED_RESPONSE_TYPE 

Returned when the Response type in the recevied payload is unexpected.

+
SHADOW_UNEXPECTED_RESPONSE_TOPIC 

Returned when Response is received on an unexpected topic.

+
SHADOW_REQUEST_REJECTED 

Returned when the request has been rejected by the server.

+
SHADOW_MQTT_CLIENT_NOT_SET_ERROR 

Returned when there is no client set for this shadow.

+
SHADOW_NOTHING_TO_UPDATE 

Returned when there is nothing to update for a Shadow Update request.

+
SHADOW_UNEXPECTED_RESPONSE_PAYLOAD 

Returned when the response payload is in an unexpected format.

+
SHADOW_RECEIVED_OLD_VERSION_UPDATE 

Returned when a version update is received with an older version than the current one on the device.

+
WEBSOCKET_SIGN_URL_NO_MEM 

Internal buffer overflow when signing secured WebSocket url.

+
WEBSOCKET_GEN_CLIENT_KEY_ERROR 

Error in generating WebSocket handhshake client key.

+
WEBSOCKET_HANDSHAKE_ERROR 

WebSocket handshake generic error.

+
WEBSOCKET_HANDSHAKE_WRITE 

WebSocket handshake error in sending request.

+
WEBSOCKET_HANDSHAKE_READ 

WebSocket handhshake error in receiving request.

+
WEBSOCKET_HANDSHAKE_VERIFY_ERROR 

WebSocket handshake error in verifying server response.

+
WEBSOCKET_WSLAY_CONTEXT_INIT_ERROR 

WebSocket wslay context init error.

+
WEBSOCKET_FRAME_RECEIVE_ERROR 

WebSocket error in receiving frames.

+
WEBSOCKET_FRAME_TRANSMIT_ERROR 

WebSocket error in sending frames.

+
WEBSOCKET_PROTOCOL_VIOLATION 

WebSocket protocol violation detected in receiving frames.

+
WEBSOCKET_MAX_LIFETIME_REACHED 

WebSocket connection max life time window reached.

+
WEBSOCKET_DISCONNECT_ERROR 

WebSocket disconnect error.

+
WEBSOCKET_GET_UTC_TIME_FAILED 

Returned when the WebSocket wrapper cannot get UTC time.

+
DISCOVER_ACTION_REQUEST_FAILED_ERROR 

Discover Action request failed.

+
DISCOVER_ACTION_REQUEST_TIMED_OUT_ERROR 

Discover Action request timed out.

+
DISCOVER_ACTION_UNAUTHORIZED 

Discover Action repsonse showed that this device does not have authorization to query the server.

+
DISCOVER_ACTION_SERVER_ERROR 

Discover Action failed due to some server side error.

+
DISCOVER_ACTION_REQUEST_OVERLOAD 

Discover Action failed due to too many requests, try again after some time.

+
DISCOVER_RESPONSE_UNEXPECTED_JSON_STRUCTURE_ERROR 

Discover Response Json is missing expected keys.

+
JOBS_INVALID_TOPIC_ERROR 

Jobs invalid topic.

+
+ +
+
+

Function Documentation

+ +

◆ operator<<()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::ostream & awsiotsdk::operator<< (std::ostream & os,
ResponseCode rc 
)
+
+

Overloading the << stream operator for ResponseCode

+
Parameters
+ + + +
osostream being filled
rcResponseCode
+
+
+
Returns
ostream&
+ +
+
+
+ + + + diff --git a/docs/html/_response_code_8hpp_source.html b/docs/html/_response_code_8hpp_source.html new file mode 100644 index 0000000..da9ddff --- /dev/null +++ b/docs/html/_response_code_8hpp_source.html @@ -0,0 +1,493 @@ + + + + + + + +AWS IoT C++ SDK: ResponseCode.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ResponseCode.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+ +
24
+
25#pragma once
+
26
+
27// Used to avoid warnings in case of unused parameters in function pointers
+
28#define IOT_UNUSED(x) (void)(x)
+
29
+
30namespace awsiotsdk {
+
41 enum class ResponseCode {
+
42 // Discovery Success Codes
+
43
+ + +
46
+
47 // Shadow Success Codes
+
48
+ + +
51
+
52 // Network Success Codes
+
53
+ + + + +
58
+
59 // MQTT Success Codes
+
60
+ + +
63
+
64 // Generic Response Codes
+
65
+
66 SUCCESS = 0,
+
67 FAILURE = -1,
+
68 NULL_VALUE_ERROR = -2,
+
69
+
70 // I/O Error Codes
+
71
+
72 FILE_OPEN_ERROR = -100,
+
73 FILE_NAME_INVALID = -101,
+
74
+
75 // Threading Error Codes
+
76
+
77 MUTEX_INIT_ERROR = -200,
+
78 MUTEX_LOCK_ERROR = -201,
+
79 MUTEX_UNLOCK_ERROR = -202,
+
80 MUTEX_DESTROY_ERROR = -203,
+
81 THREAD_EXITING = -204,
+
82
+
83 // Network TCP Error Codes
+
84
+ + + + +
89
+
90 // Network SSL Error Codes
+
91
+ + + + + + + + + + + + + + + +
107
+
108 // Network Generic Error Codes
+
109
+ + + + + +
115
+
116 // ClientCore Error Codes
+
117
+ +
119 ACTION_QUEUE_FULL = -602,
+
120 ACTION_CREATE_FAILED = -603,
+
121
+
122 // MQTT Error Codes
+
123
+
124 MQTT_CONNECTION_ERROR = -701,
+ + + + + + + + + + + + + + + + + + + +
144 MQTT_SUBSCRIBE_FAILED = -721,
+
145
+
146 // JSON Parsing Error Codes
+
147
+ + +
150 JSON_PARSING_ERROR = -802,
+
151 JSON_MERGE_FAILED = -803,
+
152 JSON_DIFF_FAILED = -804,
+
153
+
154 // Shadow Error Codes
+
155
+ + +
158 SHADOW_JSON_ERROR = -902,
+ + + + + + + + + + +
169
+
170 // WebSocket Error Codes
+
171
+ + + + + + + + + + + + + +
185
+
186 // Discovery Error Codes
+
187
+ + + + + +
193
+
194 // Discovery Response Parsing Error Codes
+
195
+ +
197
+
198 // Jobs Error Codes
+
199
+ +
201 };
+
202
+
210 std::ostream &operator<<(std::ostream &os, ResponseCode rc);
+
211
+
215 namespace ResponseHelper {
+
216 const util::String DISCOVER_ACTION_NO_INFORMATION_PRESENT_STRING("No information found for device");
+
217 const util::String DISCOVER_ACTION_SUCCESS_STRING("Discover action successful");
+
218 const util::String SHADOW_RECEIVED_DELTA_STRING("Received the shadow delta");
+
219 const util::String SHADOW_REQUEST_ACCEPTED_STRING("Shadow request accepted");
+
220 const util::String NETWORK_PHYSICAL_LAYER_CONNECTED_STRING("Physical network layer connected");
+
221 const util::String NETWORK_MANUALLY_DISCONNECTED_STRING("Network manually disconnected");
+
222 const util::String NETWORK_ATTEMPTING_RECONNECT_STRING("Attempting to reconnect to the network");
+
223 const util::String NETWORK_RECONNECTED_STRING("Network reconnected");
+
224 const util::String MQTT_NOTHING_TO_READ_STRING("No MQTT packets received");
+
225 const util::String MQTT_CONNACK_CONNECTION_ACCEPTED_STRING("Successfully connected to MQTT server");
+
226 const util::String SUCCESS_STRING("Success");
+
227 const util::String FAILURE_STRING("Failure");
+
228 const util::String NULL_VALUE_ERROR_STRING("One or more parameters were null");
+
229 const util::String FILE_OPEN_ERROR_STRING("Error occurred while trying to open the file");
+
230 const util::String FILE_NAME_INVALID_STRING("File name provided is invalid or of zero length");
+
231 const util::String MUTEX_INIT_ERROR_STRING("Error occurred while initializing the mutex");
+
232 const util::String MUTEX_LOCK_ERROR_STRING("Error occurred while locking the mutex");
+
233 const util::String MUTEX_UNLOCK_ERROR_STRING("Error occurred while unlocking the mutex");
+
234 const util::String MUTEX_DESTROY_ERROR_STRING("Error occurred while destroying the mutex");
+
235 const util::String THREAD_EXITING_STRING("Thread is exiting");
+
236 const util::String NETWORK_TCP_CONNECT_ERROR_STRING("TCP Error occurred while opening a socket");
+
237 const util::String NETWORK_TCP_SETUP_ERROR_STRING("Error occurred while setting up the TCP socket");
+
238 const util::String NETWORK_TCP_UNKNOWN_HOST_STRING("Unable to find host specified");
+
239 const util::String NETWORK_TCP_NO_ENDPOINT_SPECIFIED_STRING("No endpoint specified");
+
240 const util::String NETWORK_SSL_INIT_ERROR_STRING("Error occurred while initializing SSL");
+
241 const util::String NETWORK_SSL_ROOT_CRT_PARSE_ERROR_STRING("Error occurred while parsing the root CRT");
+
242 const util::String NETWORK_SSL_DEVICE_CRT_PARSE_ERROR_STRING("Error occurred while parsing the device CRT");
+
243 const util::String NETWORK_SSL_KEY_PARSE_ERROR_STRING("Error occurred while parsing the private key");
+
244 const util::String NETWORK_SSL_TLS_HANDSHAKE_ERROR_STRING("Error occurred while performing the TLS handshake");
+
245 const util::String NETWORK_SSL_CONNECT_ERROR_STRING("Error occurred during the connect attempt");
+
246 const util::String NETWORK_SSL_CONNECT_TIMEOUT_ERROR_STRING("The connect attempt timed out");
+
247 const util::String NETWORK_SSL_CONNECTION_CLOSED_ERROR_STRING("The SSL connection was closed");
+
248 const util::String NETWORK_SSL_WRITE_ERROR_STRING("Error occurred during the SSL write operation");
+
249 const util::String NETWORK_SSL_WRITE_TIMEOUT_ERROR_STRING("The SSL write operation timed out");
+
250 const util::String NETWORK_SSL_READ_ERROR_STRING("Error occurred during the SSL read operation");
+
251 const util::String NETWORK_SSL_READ_TIMEOUT_ERROR_STRING("The SSL read operation timed out");
+
252 const util::String NETWORK_SSL_NOTHING_TO_READ_STRING("No SSL packets received");
+
253 const util::String NETWORK_SSL_UNKNOWN_ERROR_STRING("Unknown error occurred during an SSL operation");
+
254 const util::String NETWORK_SSL_SERVER_VERIFICATION_ERROR_STRING("Unable to verify server name");
+
255 const util::String NETWORK_DISCONNECTED_ERROR_STRING("Network is disconnected");
+
256 const util::String NETWORK_RECONNECT_TIMED_OUT_ERROR_STRING("Reconnect operation time out");
+
257 const util::String NETWORK_ALREADY_CONNECTED_ERROR_STRING("Network is already connected");
+
258 const util::String NETWORK_PHYSICAL_LAYER_DISCONNECTED_STRING("Physical network layer is disconnected");
+
259 const util::String NETWORK_NOTHING_TO_WRITE_ERROR_STRING("No packets to write to the network");
+
260 const util::String ACTION_NOT_REGISTERED_ERROR_STRING("The action attempted is not registered with the client");
+
261 const util::String ACTION_QUEUE_FULL_STRING("The client action queue is full");
+
262 const util::String ACTION_CREATE_FAILED_STRING("The client was unable to create the action");
+
263 const util::String MQTT_CONNECTION_ERROR_STRING("Unable to establish the MQTT connection");
+
264 const util::String MQTT_CONNECT_TIMEOUT_ERROR_STRING("The MQTT connect operation timed out");
+
265 const util::String MQTT_REQUEST_TIMEOUT_ERROR_STRING("The MQTT request timed out");
+
266 const util::String MQTT_UNEXPECTED_CLIENT_STATE_ERROR_STRING("The MQTT client is in an unexpected state");
+
267 const util::String MQTT_CLIENT_NOT_IDLE_ERROR_STRING("The MQTT client is not idle");
+
268 const util::String MQTT_RX_MESSAGE_PACKET_TYPE_INVALID_ERROR_STRING("The MQTT message is of an invalid type");
+
269 const util::String MQTT_MAX_SUBSCRIPTIONS_REACHED_ERROR_STRING("Reached maximum MQTT subscriptions");
+
270 const util::String MQTT_DECODE_REMAINING_LENGTH_ERROR_STRING("Error occurred while decoding the remaining length of the MQTT message");
+
271 const util::String MQTT_CONNACK_UNKNOWN_ERROR_STRING("MQTT connect request failed with server returning an unknown error");
+
272 const util::String MQTT_CONNACK_UNACCEPTABLE_PROTOCOL_VERSION_ERROR_STRING("MQTT connect request failed with server returning an unacceptable protocol error");
+
273 const util::String MQTT_CONNACK_IDENTIFIER_REJECTED_ERROR_STRING("MQTT connect request failed with server returning an identifier rejected error");
+
274 const util::String MQTT_CONNACK_SERVER_UNAVAILABLE_ERROR_STRING("MQTT connect request failed with server returning an unavailable error");
+
275 const util::String MQTT_CONNACK_BAD_USERDATA_ERROR_STRING("MQTT connect request failed with server returning a bad userdata error");
+
276 const util::String MQTT_CONNACK_NOT_AUTHORIZED_ERROR_STRING("MQTT connect request failed with server returning a not authorized error");
+
277 const util::String MQTT_NO_SUBSCRIPTION_FOUND_STRING("No MQTT subscriptions were found for the requested topic");
+
278 const util::String MQTT_SUBSCRIPTION_NOT_ACTIVE_STRING("The MQTT subscription specified is not active");
+
279 const util::String MQTT_UNEXPECTED_PACKET_FORMAT_ERROR_STRING("Unable to serialize the MQTT packet as the format is unexpected");
+
280 const util::String MQTT_TOO_MANY_SUBSCRIPTIONS_IN_REQUEST_STRING("Too many subscriptions were provided in the MQTT subscribe/unsubscribe request");
+
281 const util::String MQTT_INVALID_DATA_ERROR_STRING("Invalid/Insufficient data was provided in the MQTT request");
+
282 const util::String MQTT_SUBSCRIBE_PARTIALLY_FAILED_STRING("Failed to subscribe to atleast one of the topics in the subscribe request");
+
283 const util::String MQTT_SUBSCRIBE_FAILED_STRING("Failed to subscribe to any of the topics in the subscribe request");
+
284 const util::String JSON_PARSE_KEY_NOT_FOUND_ERROR_STRING("Unable to find the requested key in the JSON");
+
285 const util::String JSON_PARSE_KEY_UNEXPECTED_TYPE_ERROR_STRING("The value for the JSON key was of an unexpected type");
+
286 const util::String JSON_PARSING_ERROR_STRING("Error occurred while parsing the JSON");
+
287 const util::String JSON_MERGE_FAILED_STRING("Failed to merge the JSON");
+
288 const util::String JSON_DIFF_FAILED_STRING("Failed to diff the JSON");
+
289 const util::String SHADOW_WAIT_FOR_PUBLISH_STRING("Waiting for previously published shadow updates");
+
290 const util::String SHADOW_JSON_BUFFER_TRUNCATED_STRING("Shadow JSON is truncated as size specified is less than the size of the JSON");
+
291 const util::String SHADOW_JSON_ERROR_STRING("Encoding error occurred while printing the shadow JSON");
+
292 const util::String SHADOW_JSON_EMPTY_ERROR_STRING("The shadow JSON is empty");
+
293 const util::String SHADOW_REQUEST_MAP_EMPTY_STRING("The shadow request map is empty ");
+
294 const util::String SHADOW_MQTT_DISCONNECTED_ERROR_STRING("The shadow's MQTT connection is inactive");
+
295 const util::String SHADOW_UNEXPECTED_RESPONSE_TYPE_STRING("The shadow response received is of an unexpected type");
+
296 const util::String SHADOW_UNEXPECTED_RESPONSE_TOPIC_STRING("The shadow response was received on an unexpected topic");
+
297 const util::String SHADOW_REQUEST_REJECTED_STRING("The shadow request was rejected by the server");
+
298 const util::String SHADOW_MQTT_CLIENT_NOT_SET_ERROR_STRING("There is no client set for this shadow");
+
299 const util::String SHADOW_NOTHING_TO_UPDATE_STRING("There are no shadow updates to be performed");
+
300 const util::String SHADOW_UNEXPECTED_RESPONSE_PAYLOAD_STRING("The shadow response is in an unexpected format");
+
301 const util::String SHADOW_RECEIVED_OLD_VERSION_UPDATE_STRING("The received shadow version is older than the current one on the device");
+
302 const util::String WEBSOCKET_SIGN_URL_NO_MEM_STRING("Internal buffer overflowed while signing WebSocket URL");
+
303 const util::String WEBSOCKET_GEN_CLIENT_KEY_ERROR_STRING("Error occurred while generating WebSocket handshake client key");
+
304 const util::String WEBSOCKET_HANDSHAKE_ERROR_STRING("Unable to complete WebSocket handshake");
+
305 const util::String WEBSOCKET_HANDSHAKE_WRITE_STRING("Unable to transmit WebSocket handshake request");
+
306 const util::String WEBSOCKET_HANDSHAKE_READ_STRING("Unable to receive WebSocket handshake request");
+
307 const util::String WEBSOCKET_HANDSHAKE_VERIFY_ERROR_STRING("Unable to verify handshake response from the server");
+
308 const util::String WEBSOCKET_WSLAY_CONTEXT_INIT_ERROR_STRING("Erro occurred while initializing the WebSocket WSLay context");
+
309 const util::String WEBSOCKET_FRAME_RECEIVE_ERROR_STRING("Error occurred while receiving WebSocket frame");
+
310 const util::String WEBSOCKET_FRAME_TRANSMIT_ERROR_STRING("Error occurred while transmitting WebSocket frame");
+
311 const util::String WEBSOCKET_PROTOCOL_VIOLATION_STRING("Protocol violation was detected in the received WebSocket frames");
+
312 const util::String WEBSOCKET_MAX_LIFETIME_REACHED_STRING("Max lifetime of the WebSocket connection was reached");
+
313 const util::String WEBSOCKET_DISCONNECT_ERROR_STRING("Error occurred while disconnecting the WebSocket");
+
314 const util::String WEBSOCKET_GET_UTC_TIME_FAILED_STRING("WebSocket wrapper is unable to get the UTC ");
+
315 const util::String DISCOVER_ACTION_REQUEST_FAILED_ERROR_STRING("Unable to perform the discover action");
+
316 const util::String DISCOVER_ACTION_REQUEST_TIMED_OUT_ERROR_STRING("The discover action request timed out");
+
317 const util::String DISCOVER_ACTION_UNAUTHORIZED_STRING("The device was unauthorized to perform the discovery action");
+
318 const util::String DISCOVER_ACTION_SERVER_ERROR_STRING("Server returned unknown error while performing the discovery action");
+
319 const util::String DISCOVER_ACTION_REQUEST_OVERLOAD_STRING("The discovery action is overloading the server, try again after some time");
+
320 const util::String DISCOVER_RESPONSE_UNEXPECTED_JSON_STRUCTURE_ERROR_STRING("The discover response JSON is incomplete ");
+
321 const util::String JOBS_INVALID_TOPIC_ERROR_STRING("Invalid jobs topic");
+
322
+
328 util::String ToString(ResponseCode rc);
+
329
+
330 }
+
331}
+
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+
@ MQTT_CONNACK_NOT_AUTHORIZED_ERROR
Connect request failed with the server failing to authenticate the request.
+
@ SHADOW_UNEXPECTED_RESPONSE_TOPIC
Returned when Response is received on an unexpected topic.
+
@ MQTT_SUBSCRIBE_PARTIALLY_FAILED
Failed to subscribe to atleast one of the topics in the subscribe request.
+
@ DISCOVER_ACTION_NO_INFORMATION_PRESENT
Discover Action response showed no discovery information is present for this thing name.
+
@ FILE_OPEN_ERROR
Unable to open the requested file.
+
@ NETWORK_DISCONNECTED_ERROR
Returned when the Network is disconnected and reconnect is either disabled or physical layer is disco...
+
@ NETWORK_SSL_DEVICE_CRT_PARSE_ERROR
Returned when the device certificate is invalid.
+
@ MQTT_UNEXPECTED_CLIENT_STATE_ERROR
The current client state does not match the expected value.
+
@ SHADOW_RECEIVED_DELTA
Returned when a delta update is received.
+
@ MQTT_NO_SUBSCRIPTION_FOUND
No subscription exists for requested topic.
+
@ WEBSOCKET_GET_UTC_TIME_FAILED
Returned when the WebSocket wrapper cannot get UTC time.
+
@ DISCOVER_RESPONSE_UNEXPECTED_JSON_STRUCTURE_ERROR
Discover Response Json is missing expected keys.
+
@ SHADOW_REQUEST_MAP_EMPTY
Returned when the provided request map is empty.
+
@ NETWORK_PHYSICAL_LAYER_DISCONNECTED
Returned when the physical layer is disconnected.
+
@ DISCOVER_ACTION_REQUEST_OVERLOAD
Discover Action failed due to too many requests, try again after some time.
+
@ ACTION_CREATE_FAILED
Core Client was not able to create the requested action.
+
@ MUTEX_UNLOCK_ERROR
Mutex unlock request failed.
+
@ MQTT_MAX_SUBSCRIPTIONS_REACHED_ERROR
The client is subscribed to the maximum possible number of subscriptions.
+
@ SHADOW_JSON_EMPTY_ERROR
Returned when the provided json document is empty.
+
@ THREAD_EXITING
Thread is exiting, returned when thread exits in the middle of an operation.
+
@ WEBSOCKET_HANDSHAKE_WRITE
WebSocket handshake error in sending request.
+
@ NETWORK_SSL_READ_ERROR
A Generic error based on the platform used.nerator seeding failed.
+
@ NETWORK_PHYSICAL_LAYER_CONNECTED
Returned when the Network physical layer is connected.
+
@ WEBSOCKET_SIGN_URL_NO_MEM
Internal buffer overflow when signing secured WebSocket url.
+
@ FAILURE
A generic error. Not enough information for a specific error code.
+
@ NETWORK_TCP_NO_ENDPOINT_SPECIFIED
Returned when the Network connection was not provided an endpoint.
+
@ NETWORK_SSL_KEY_PARSE_ERROR
An error occurred when loading the certificates. The certificates could not be located or are incorre...
+
@ SHADOW_REQUEST_REJECTED
Returned when the request has been rejected by the server.
+
@ WEBSOCKET_FRAME_TRANSMIT_ERROR
WebSocket error in sending frames.
+
@ NETWORK_NOTHING_TO_WRITE_ERROR
Returned when the Network write function is passed an empty buffer as argument.
+
@ FILE_NAME_INVALID
File name is invalid or of zero length.
+
@ SHADOW_NOTHING_TO_UPDATE
Returned when there is nothing to update for a Shadow Update request.
+
@ MQTT_CONNACK_SERVER_UNAVAILABLE_ERROR
Connect request failed with the server returning an unavailable error.
+
@ WEBSOCKET_DISCONNECT_ERROR
WebSocket disconnect error.
+
@ DISCOVER_ACTION_REQUEST_TIMED_OUT_ERROR
Discover Action request timed out.
+
@ NETWORK_TCP_CONNECT_ERROR
The TCP socket could not be established.
+
@ NETWORK_RECONNECTED
Return value of yield function to indicate auto-reconnect was successful.
+
@ MQTT_NOTHING_TO_READ
Returned when a read attempt is made on the TLS buffer and it is empty.
+
@ WEBSOCKET_GEN_CLIENT_KEY_ERROR
Error in generating WebSocket handhshake client key.
+
@ NETWORK_ALREADY_CONNECTED_ERROR
Returned when the Network is already connected and a connection attempt is made.
+
@ NETWORK_RECONNECT_TIMED_OUT_ERROR
Returned when the Network is disconnected and the reconnect attempt has timed out.
+
@ WEBSOCKET_HANDSHAKE_VERIFY_ERROR
WebSocket handshake error in verifying server response.
+
@ JSON_PARSING_ERROR
An error occurred while parsing the JSON string. Usually malformed JSON.
+
@ MQTT_CONNACK_CONNECTION_ACCEPTED
Returned when a connection request is successful and packet response is connection accepted.
+
@ MQTT_TOO_MANY_SUBSCRIPTIONS_IN_REQUEST
Too many subscriptions were provided in the Subscribe/Unsubscribe request.
+
@ MQTT_CONNECTION_ERROR
A connection could not be established.
+
@ SHADOW_UNEXPECTED_RESPONSE_TYPE
Returned when the Response type in the recevied payload is unexpected.
+
@ MQTT_CONNACK_UNKNOWN_ERROR
Connect request failed with the server returning an unknown error.
+
@ MQTT_SUBSCRIBE_FAILED
Unable to subscribe to any of the topics in the subscribe request.
+
@ SHADOW_MQTT_DISCONNECTED_ERROR
Returned when the MQTT connection is not active.
+
@ DISCOVER_ACTION_REQUEST_FAILED_ERROR
Discover Action request failed.
+
@ NETWORK_SSL_READ_TIMEOUT_ERROR
SSL Read times out.
+
@ NETWORK_SSL_NOTHING_TO_READ
Returned when there is nothing to read in the TLS read buffer.
+
@ NETWORK_SSL_INIT_ERROR
SSL initialization error at the TLS layer.
+
@ NETWORK_SSL_CONNECTION_CLOSED_ERROR
The SSL Connection was closed.
+
@ DISCOVER_ACTION_UNAUTHORIZED
Discover Action repsonse showed that this device does not have authorization to query the server.
+
@ MQTT_CONNACK_BAD_USERDATA_ERROR
Connect request failed with the server returning a bad userdata error.
+
@ DISCOVER_ACTION_SUCCESS
Discover Action found connectivity information for this thing name.
+
@ SHADOW_RECEIVED_OLD_VERSION_UPDATE
Returned when a version update is received with an older version than the current one on the device.
+
@ MQTT_REQUEST_TIMEOUT_ERROR
A timeout occurred while waiting for the TLS request to complete.
+
@ MUTEX_DESTROY_ERROR
Mutex destroy failed.
+
@ NETWORK_SSL_CONNECT_TIMEOUT_ERROR
A timeout occurred while waiting for the TLS handshake to complete.
+
@ JSON_PARSE_KEY_UNEXPECTED_TYPE_ERROR
The value type was different from the expected type.
+
@ JSON_MERGE_FAILED
Returned when the JSON merge request fails unexpectedly.
+
@ NETWORK_TCP_UNKNOWN_HOST
Returned when the server is unknown.
+
@ WEBSOCKET_PROTOCOL_VIOLATION
WebSocket protocol violation detected in receiving frames.
+
@ MQTT_CONNACK_UNACCEPTABLE_PROTOCOL_VERSION_ERROR
Connect request failed with the server returning an unacceptable protocol version error.
+
@ DISCOVER_ACTION_SERVER_ERROR
Discover Action failed due to some server side error.
+
@ WEBSOCKET_HANDSHAKE_READ
WebSocket handhshake error in receiving request.
+
@ MQTT_INVALID_DATA_ERROR
Provided data is invalid/not sufficient for the request.
+
@ NETWORK_ATTEMPTING_RECONNECT
Returned when the Network is disconnected and the reconnect attempt is in progress.
+
@ NETWORK_SSL_SERVER_VERIFICATION_ERROR
Server name verification failure.
+
@ MQTT_SUBSCRIPTION_NOT_ACTIVE
Subscription exists but is not active, waiting for Suback or Ack not received.
+
@ NETWORK_SSL_CONNECT_ERROR
An unknown occurred while waiting for the TLS handshake to complete.
+
@ MQTT_UNEXPECTED_PACKET_FORMAT_ERROR
Deserialization failed because packet data was in an unexpected format.
+
@ JSON_PARSE_KEY_NOT_FOUND_ERROR
JSON Parser was not able to find the requested key in the specified JSON.
+
@ MQTT_CONNECT_TIMEOUT_ERROR
A timeout occurred while waiting for the MQTT connect to complete.
+
@ MQTT_RX_MESSAGE_PACKET_TYPE_INVALID_ERROR
The MQTT RX buffer received corrupt or unexpected message.
+
@ SUCCESS
Success return value - no error occurred.
+
@ NETWORK_TCP_SETUP_ERROR
Error associated with setting up the parameters of a Socket.
+
@ SHADOW_MQTT_CLIENT_NOT_SET_ERROR
Returned when there is no client set for this shadow.
+
@ ACTION_NOT_REGISTERED_ERROR
Requested action is not registered with the core client.
+
@ MUTEX_LOCK_ERROR
Mutex lock request failed.
+
@ SHADOW_REQUEST_ACCEPTED
Returned when the request has been accepted.
+
@ NETWORK_SSL_UNKNOWN_ERROR
A generic error code for Network SSL layer errors.
+
@ NETWORK_SSL_WRITE_ERROR
A Generic write error based on the platform used.
+
@ SHADOW_WAIT_FOR_PUBLISH
Shadow: The response Ack table is currently full waiting for previously published updates.
+
@ WEBSOCKET_FRAME_RECEIVE_ERROR
WebSocket error in receiving frames.
+
@ WEBSOCKET_HANDSHAKE_ERROR
WebSocket handshake generic error.
+
@ WEBSOCKET_MAX_LIFETIME_REACHED
WebSocket connection max life time window reached.
+
@ NETWORK_SSL_TLS_HANDSHAKE_ERROR
The TLS handshake failed due to unknown error.
+
@ MUTEX_INIT_ERROR
Mutex initialization failed.
+
@ NETWORK_MANUALLY_DISCONNECTED
Returned when the Network is manually disconnected.
+
@ NETWORK_SSL_ROOT_CRT_PARSE_ERROR
Returned when the root certificate is invalid.
+
@ SHADOW_JSON_BUFFER_TRUNCATED
Any time an snprintf writes more than size value, this error will be returned.
+
@ NETWORK_SSL_WRITE_TIMEOUT_ERROR
SSL Write times out.
+
@ MQTT_CONNACK_IDENTIFIER_REJECTED_ERROR
Connect request failed with the server returning an identifier rejected error.
+
@ JOBS_INVALID_TOPIC_ERROR
Jobs invalid topic.
+
@ ACTION_QUEUE_FULL
Core Client Action queue is full.
+
@ WEBSOCKET_WSLAY_CONTEXT_INIT_ERROR
WebSocket wslay context init error.
+
@ MQTT_DECODE_REMAINING_LENGTH_ERROR
Failed to decode the remaining packet length on incoming packet.
+
@ SHADOW_UNEXPECTED_RESPONSE_PAYLOAD
Returned when the response payload is in an unexpected format.
+
@ JSON_DIFF_FAILED
Returned when the JSON diff request fails unexpectedly.
+
@ NULL_VALUE_ERROR
A required parameter was passed as null.
+
@ SHADOW_JSON_ERROR
Any time an snprintf encounters an encoding error or not enough space in the given buffer.
+
@ MQTT_CLIENT_NOT_IDLE_ERROR
The client state is not idle when request is being made.
+ +
util::String ToString(ResponseCode rc)
Definition: ResponseCode.cpp:354
+
+ + + + diff --git a/docs/html/_shadow_8cpp.html b/docs/html/_shadow_8cpp.html new file mode 100644 index 0000000..c8d4fc6 --- /dev/null +++ b/docs/html/_shadow_8cpp.html @@ -0,0 +1,173 @@ + + + + + + + +AWS IoT C++ SDK: Shadow.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Shadow.cpp File Reference
+
+
+
#include <chrono>
+#include "shadow/Shadow.hpp"
+#include "util/logging/LogMacros.hpp"
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define SUBSCRIPTION_SETTING_TIME_SECS   2
 
+#define SHADOW_REQUEST_TYPE_GET_STRING   "get"
 
+#define SHADOW_REQUEST_TYPE_UPDATE_STRING   "update"
 
+#define SHADOW_REQUEST_TYPE_DELETE_STRING   "delete"
 
+#define SHADOW_REQUEST_TYPE_DELTA_STRING   "delta"
 
+#define SHADOW_RESPONSE_TYPE_ACCEPTED_STRING   "accepted"
 
+#define SHADOW_RESPONSE_TYPE_REJECTED_STRING   "rejected"
 
+#define SHADOW_RESPONSE_TYPE_DELTA_STRING   "delta"
 
+#define SHADOW_TOPIC_PREFIX   "$aws/things/"
 
+#define SHADOW_TOPIC_MIDDLE   "/shadow/"
 
#define SHADOW_DOCUMENT_EMPTY_STRING
 
+#define SHADOW_DOCUMENT_STATE_KEY   "state"
 
+#define SHADOW_DOCUMENT_REPORTED_KEY   "reported"
 
+#define SHADOW_DOCUMENT_DESIRED_KEY   "desired"
 
+#define SHADOW_DOCUMENT_CLIENT_TOKEN_KEY   "clientToken"
 
+#define SHADOW_DOCUMENT_VERSION_KEY   "version"
 
+#define SHADOW_DOCUMENT_TIMESTAMP_KEY   "timestamp"
 
+#define SHADOW_LOG_TAG   "[Shadow]"
 
+

Macro Definition Documentation

+ +

◆ SHADOW_DOCUMENT_EMPTY_STRING

+ +
+
+ + + + +
#define SHADOW_DOCUMENT_EMPTY_STRING
+
+Value:
"{" \
+
" \"state\" : {" \
+
" \"desired\" : {" \
+
" }," \
+
" \"reported\" : {" \
+
" }" \
+
" }," \
+
" \"version\" : 0," \
+
" \"clientToken\" : \"empty\"," \
+
" \"timestamp\": 0" \
+
"}"
+
+
+
+
+ + + + diff --git a/docs/html/_shadow_8hpp.html b/docs/html/_shadow_8hpp.html new file mode 100644 index 0000000..a822a6b --- /dev/null +++ b/docs/html/_shadow_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + +AWS IoT C++ SDK: Shadow.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Shadow.hpp File Reference
+
+
+ +

This file defines a shadow type for AWS IoT Shadow operations. +More...

+
#include <memory>
+#include <chrono>
+#include <mutex>
+#include <atomic>
+#include "util/memory/stl/String.hpp"
+#include "util/memory/stl/Vector.hpp"
+#include "util/JsonParser.hpp"
+#include "mqtt/Client.hpp"
+
+

Go to the source code of this file.

+ + + + + +

+Data Structures

class  awsiotsdk::Shadow
 Define a type for Shadow. More...
 
+ + + + + + + +

+Enumerations

enum class  awsiotsdk::ShadowRequestType { Get = 0x01 +, Update = 0x02 +, Delete = 0x04 +, Delta = 0x08 + }
 Define a type for Shadow Requests. More...
 
enum class  awsiotsdk::ShadowResponseType { Rejected = 0 +, Accepted = 1 +, Delta = 2 + }
 Define a type for Shadow Responses.
 
+

Detailed Description

+

This file defines a shadow type for AWS IoT Shadow operations. It also defines related types ShadowRequestType, ShadowResponseType and a shadow response handler

+

Enumeration Type Documentation

+ +

◆ ShadowRequestType

+ +
+
+ + + + + +
+ + + + +
enum class awsiotsdk::ShadowRequestType
+
+strong
+
+

Documents type is not currently supported

+ +
+
+
+ + + + diff --git a/docs/html/_shadow_8hpp_source.html b/docs/html/_shadow_8hpp_source.html new file mode 100644 index 0000000..8df8acf --- /dev/null +++ b/docs/html/_shadow_8hpp_source.html @@ -0,0 +1,269 @@ + + + + + + + +AWS IoT C++ SDK: Shadow.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Shadow.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 *
+
15 */
+
16
+
26#pragma once
+
27
+
28#include <memory>
+
29#include <chrono>
+
30#include <mutex>
+
31#include <atomic>
+
32
+ + +
35#include "util/JsonParser.hpp"
+
36
+
37#include "mqtt/Client.hpp"
+
38
+
39namespace awsiotsdk {
+
45 enum class ShadowRequestType {
+
46 Get = 0x01,
+
47 Update = 0x02,
+
48 Delete = 0x04,
+
49 Delta = 0x08
+
50 };
+
51
+
55 enum class ShadowResponseType {
+
56 Rejected = 0,
+
57 Accepted = 1,
+
58 Delta = 2
+
59 };
+
60
+
64 class Shadow {
+
65 public:
+
75 typedef std::function<ResponseCode(util::String, ShadowRequestType, ShadowResponseType,
+
76 util::JsonDocument &)> RequestHandlerPtr;
+
77
+
86 Shadow(std::shared_ptr<MqttClient> p_mqtt_client, std::chrono::milliseconds mqtt_command_timeout,
+
87 util::String &thing_name, util::String &client_token_prefix);
+
88
+
89 // Rule of 5 stuff
+
90 // Disable copying/moving because subscription handler callbacks will not carry over automatically
+
91 Shadow() = delete; // Default constructor
+
92 Shadow(const Shadow &) = delete; // Delete Copy constructor
+
93 Shadow(Shadow &&) = delete; // Delete Move constructor
+
94 Shadow &operator=(const Shadow &) & = delete; // Delete Copy assignment operator
+
95 Shadow &operator=(Shadow &&) & = delete; // Delete Move assignment operator
+
96 virtual ~Shadow(); // Custom destructor
+
97
+
108 static std::unique_ptr<Shadow> Create(std::shared_ptr<MqttClient> p_mqtt_client,
+
109 std::chrono::milliseconds mqtt_command_timeout, util::String &thing_name,
+
110 util::String &client_token_prefix);
+
111
+
131 ResponseCode UpdateDeviceShadow(util::JsonDocument &document);
+
132
+
137 util::JsonDocument GetDeviceReported();
+
138
+
143 util::JsonDocument GetDeviceDesired();
+
144
+
149 util::JsonDocument GetDeviceDocument();
+
150
+
155 util::JsonDocument GetServerReported();
+
156
+
161 util::JsonDocument GetServerDesired();
+
162
+
167 util::JsonDocument GetServerDocument();
+
168
+ +
179
+ +
191
+ +
203
+
210 ResponseCode HandleGetResponse(ShadowResponseType response_type, util::JsonDocument &payload);
+
211
+
218 ResponseCode HandleUpdateResponse(ShadowResponseType response_type, util::JsonDocument &payload);
+
219
+
226 ResponseCode HandleDeleteResponse(ShadowResponseType response_type, util::JsonDocument &payload);
+
227
+ +
232
+
237 uint32_t GetCurrentVersionNumber();
+
238
+
244 bool IsInSync();
+
245
+
256 ResponseCode AddShadowSubscription(util::Map<ShadowRequestType, RequestHandlerPtr> &request_mapping);
+
257
+
271 ResponseCode SubscriptionHandler(util::String topic_name, util::String payload,
+
272 std::shared_ptr<mqtt::SubscriptionHandlerContextData> p_app_handler_data);
+
273
+
278 static util::JsonDocument GetEmptyShadowDocument();
+
279
+
280 protected:
+ + + + +
285
+ +
287
+
288 util::String thing_name_;
+
289 util::String client_token_prefix_;
+
290 util::String client_token_;
+ +
292 util::String shadow_topic_get_;
+
293 util::String shadow_topic_delta_;
+
294 util::String shadow_topic_update_;
+
295 util::String shadow_topic_delete_;
+ + + +
299
+
300 std::chrono::milliseconds mqtt_command_timeout_;
+
301
+
302 util::JsonDocument cur_server_state_document_;
+
303 util::JsonDocument cur_device_state_document_;
+
304
+
305 util::Map<ShadowRequestType, RequestHandlerPtr> request_mapping_;
+
306
+
307 std::shared_ptr<MqttClient> p_mqtt_client_;
+
308 };
+
309}
+
310
+
Contains the MQTT Client class.
+ +
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+
ShadowResponseType
Define a type for Shadow Responses.
Definition: Shadow.hpp:55
+
ShadowRequestType
Define a type for Shadow Requests.
Definition: Shadow.hpp:45
+ + +
Define a type for Shadow.
Definition: Shadow.hpp:64
+
ResponseCode PerformGetAsync()
Perform a Get operation for this shadow.
Definition: Shadow.cpp:510
+
ResponseCode HandleDeleteResponse(ShadowResponseType response_type, util::JsonDocument &payload)
Handle response for Delete Request.
Definition: Shadow.cpp:285
+
util::JsonDocument GetServerDesired()
Get desired state of the shadow state received from the server.
Definition: Shadow.cpp:491
+
util::JsonDocument GetDeviceReported()
Get reported state of the shadow on the device.
Definition: Shadow.cpp:458
+
util::String shadow_topic_get_
Get topic for this shadow.
Definition: Shadow.hpp:292
+
void ResetClientTokenSuffix()
Reset the timestamp generated client suffix.
Definition: Shadow.cpp:619
+
ResponseCode PerformUpdateAsync()
Perform an Update operation for this shadow.
Definition: Shadow.cpp:537
+
util::String shadow_topic_delete_
Delete topic for this shadow.
Definition: Shadow.hpp:295
+
bool IsInSync()
Get whether the server shadow state is in sync.
Definition: Shadow.cpp:630
+
util::JsonDocument GetDeviceDesired()
Get desired state of the shadow on the device.
Definition: Shadow.cpp:465
+
ResponseCode SubscriptionHandler(util::String topic_name, util::String payload, std::shared_ptr< mqtt::SubscriptionHandlerContextData > p_app_handler_data)
Subscription handler for Shadow actions.
Definition: Shadow.cpp:309
+
util::JsonDocument GetDeviceDocument()
Get state document of the shadow on the device.
Definition: Shadow.cpp:472
+
std::function< ResponseCode(util::String, ShadowRequestType, ShadowResponseType, util::JsonDocument &)> RequestHandlerPtr
Request Handler type for Shadow requests. Called after Shadow instance processes incoming message.
Definition: Shadow.hpp:76
+
ResponseCode HandleGetResponse(ShadowResponseType response_type, util::JsonDocument &payload)
Handle response for Get Request.
Definition: Shadow.cpp:172
+
ResponseCode UpdateDeviceShadow(util::JsonDocument &document)
Update device shadow.
Definition: Shadow.cpp:448
+
ResponseCode AddShadowSubscription(util::Map< ShadowRequestType, RequestHandlerPtr > &request_mapping)
Add a specific shadow subscription.
Definition: Shadow.cpp:347
+
util::Map< ShadowRequestType, RequestHandlerPtr > request_mapping_
Request mappings for shadow actions.
Definition: Shadow.hpp:305
+
std::shared_ptr< MqttClient > p_mqtt_client_
IoT Client being used by this Shadow instance.
Definition: Shadow.hpp:307
+
util::String shadow_topic_delta_
Delta topic for this shadow.
Definition: Shadow.hpp:293
+
uint32_t cur_shadow_version_
Current version of the shadow as received from the server.
Definition: Shadow.hpp:286
+
util::String shadow_topic_action_prefix_
Shadow topic action prefix.
Definition: Shadow.hpp:291
+
util::JsonDocument GetServerReported()
Get reported state of the shadow state received from the server.
Definition: Shadow.cpp:478
+
std::chrono::milliseconds mqtt_command_timeout_
Mqtt command timeout.
Definition: Shadow.hpp:300
+
ResponseCode HandleUpdateResponse(ShadowResponseType response_type, util::JsonDocument &payload)
Handle response for Update Request.
Definition: Shadow.cpp:210
+
static util::JsonDocument GetEmptyShadowDocument()
Static function that creates and returns an empty Shadow json document.
Definition: Shadow.cpp:166
+
util::String response_type_delta_text_
Delta response postfix.
Definition: Shadow.hpp:296
+
util::JsonDocument GetServerDocument()
Get state document of the shadow state received from the server.
Definition: Shadow.cpp:504
+
util::String client_token_prefix_
Client token prefix being used for shadow actions.
Definition: Shadow.hpp:289
+
util::String thing_name_
Thing name for this shadow instance.
Definition: Shadow.hpp:288
+
util::String shadow_topic_update_
Update topic for this shadow.
Definition: Shadow.hpp:294
+
bool is_delta_subscription_active_
Status of the delta subscription.
Definition: Shadow.hpp:284
+
util::String response_type_rejected_text_
Rejected reponse postfix.
Definition: Shadow.hpp:297
+
bool is_delete_subscription_active_
Status of the delete subscription.
Definition: Shadow.hpp:283
+
static std::unique_ptr< Shadow > Create(std::shared_ptr< MqttClient > p_mqtt_client, std::chrono::milliseconds mqtt_command_timeout, util::String &thing_name, util::String &client_token_prefix)
Factory method to create Shadow instances.
Definition: Shadow.cpp:106
+
util::String client_token_
Full client token as generated while constructing this instance.
Definition: Shadow.hpp:290
+
util::String response_type_accepted_text_
Accepted response postfix.
Definition: Shadow.hpp:298
+
ResponseCode PerformDeleteAsync()
Perform a Delete operation for this shadow.
Definition: Shadow.cpp:593
+
bool is_get_subscription_active_
Status of the get subscription.
Definition: Shadow.hpp:281
+
uint32_t GetCurrentVersionNumber()
Get the current version number of the shadow.
Definition: Shadow.cpp:626
+
util::JsonDocument cur_server_state_document_
Last received shadow state document from the server.
Definition: Shadow.hpp:302
+
util::JsonDocument cur_device_state_document_
Current shadow state document on the device.
Definition: Shadow.hpp:303
+
bool is_update_subscription_active_
Status of the update subscription.
Definition: Shadow.hpp:282
+
+ + + + diff --git a/docs/html/_string_8hpp.html b/docs/html/_string_8hpp.html new file mode 100644 index 0000000..b52e524 --- /dev/null +++ b/docs/html/_string_8hpp.html @@ -0,0 +1,99 @@ + + + + + + + +AWS IoT C++ SDK: String.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
String.hpp File Reference
+
+
+
#include "util/Core_EXPORTS.hpp"
+#include <functional>
+#include <string>
+
+

Go to the source code of this file.

+ + + + +

+Typedefs

+using awsiotsdk::util::String = std::basic_string< char, std::char_traits< char > >
 
+
+ + + + diff --git a/docs/html/_string_8hpp_source.html b/docs/html/_string_8hpp_source.html new file mode 100644 index 0000000..38a7fb7 --- /dev/null +++ b/docs/html/_string_8hpp_source.html @@ -0,0 +1,118 @@ + + + + + + + +AWS IoT C++ SDK: String.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
String.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include "util/Core_EXPORTS.hpp"
+
25#include <functional>
+
26#include <string>
+
27
+
28namespace awsiotsdk {
+
29 namespace util {
+
30 using String = std::basic_string<char, std::char_traits<char>>;
+
31
+
32#ifdef _WIN32
+
33 using WString = std::basic_string<wchar_t, std::char_traits<wchar_t>>;
+
34#endif
+
35 } // namespace util
+
36} // namespace awsiotsdk
+
37
+
38
+
39
+
+ + + + diff --git a/docs/html/_string_stream_8hpp.html b/docs/html/_string_stream_8hpp.html new file mode 100644 index 0000000..978f21d --- /dev/null +++ b/docs/html/_string_stream_8hpp.html @@ -0,0 +1,107 @@ + + + + + + + +AWS IoT C++ SDK: StringStream.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
StringStream.hpp File Reference
+
+
+
#include "util/Core_EXPORTS.hpp"
+#include <sstream>
+
+

Go to the source code of this file.

+ + + + + + + + + + +

+Typedefs

+typedef std::basic_stringstream< char, std::char_traits< char > > awsiotsdk::util::StringStream
 
+typedef std::basic_istringstream< char, std::char_traits< char > > awsiotsdk::util::IStringStream
 
+typedef std::basic_ostringstream< char, std::char_traits< char > > awsiotsdk::util::OStringStream
 
+typedef std::basic_stringbuf< char, std::char_traits< char > > awsiotsdk::util::StringBuf
 
+
+ + + + diff --git a/docs/html/_string_stream_8hpp_source.html b/docs/html/_string_stream_8hpp_source.html new file mode 100644 index 0000000..25f8f87 --- /dev/null +++ b/docs/html/_string_stream_8hpp_source.html @@ -0,0 +1,114 @@ + + + + + + + +AWS IoT C++ SDK: StringStream.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
StringStream.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include "util/Core_EXPORTS.hpp"
+
25
+
26#include <sstream>
+
27
+
28namespace awsiotsdk {
+
29 namespace util {
+
30 typedef std::basic_stringstream<char, std::char_traits<char> > StringStream;
+
31 typedef std::basic_istringstream<char, std::char_traits<char> > IStringStream;
+
32 typedef std::basic_ostringstream<char, std::char_traits<char> > OStringStream;
+
33 typedef std::basic_stringbuf<char, std::char_traits<char> > StringBuf;
+
34 } // namespace util
+
35} // namespace awsiotsdk
+
+ + + + diff --git a/docs/html/_subscribe_8cpp.html b/docs/html/_subscribe_8cpp.html new file mode 100644 index 0000000..715931d --- /dev/null +++ b/docs/html/_subscribe_8cpp.html @@ -0,0 +1,112 @@ + + + + + + + +AWS IoT C++ SDK: Subscribe.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Subscribe.cpp File Reference
+
+
+ +

MQTT Subscribe and Unsubscribe Actions and Action data definitions for IoT Client. +More...

+ + + + + + + + + + +

+Macros

+#define SUBSCRIBE_ACTION_DESCRIPTION   "MQTT Subscribe Action"
 
+#define UNSUBSCRIBE_ACTION_DESCRIPTION   "MQTT Unsubscribe Action"
 
+#define SUBSCRIBE_ACTION_LOG_TAG   "[Subscribe]"
 
+#define UNSUBSCRIBE_ACTION_LOG_TAG   "[Unsubscribe]"
 
+

Detailed Description

+

Defines classes for perform MQTT Subscribe and Unsubscribe Actions in Async mode for the IoT Client. Also defines the packet types used by these actions as well as the related Ack packet types.

+
+ + + + diff --git a/docs/html/_subscribe_8hpp.html b/docs/html/_subscribe_8hpp.html new file mode 100644 index 0000000..6711dc7 --- /dev/null +++ b/docs/html/_subscribe_8hpp.html @@ -0,0 +1,121 @@ + + + + + + + +AWS IoT C++ SDK: Subscribe.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Subscribe.hpp File Reference
+
+
+ +

MQTT Subscribe and Unsubscribe Actions and Action data definitions for IoT Client. +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Data Structures

class  awsiotsdk::mqtt::SubscribePacket
 Define a class for Subscribe Packet type. More...
 
class  awsiotsdk::mqtt::SubackPacket
 Define a class for Suback Packet type. More...
 
class  awsiotsdk::mqtt::UnsubscribePacket
 Define a class for Unsubscribe Packet type. More...
 
class  awsiotsdk::mqtt::UnsubackPacket
 Define a class for Unsuback Packet type. More...
 
class  awsiotsdk::mqtt::SubscribeActionAsync
 Define a class for SubscribeActionAsync. More...
 
class  awsiotsdk::mqtt::UnsubscribeActionAsync
 Define a class for UnsubscribeActionAsync. More...
 
+

Detailed Description

+

Defines classes for perform MQTT Subscribe and Unsubscribe Actions in Async mode for the IoT Client. Also defines the packet types used by these actions as well as the related Ack packet types.

+
+ + + + diff --git a/docs/html/_subscribe_8hpp_source.html b/docs/html/_subscribe_8hpp_source.html new file mode 100644 index 0000000..f0f3d69 --- /dev/null +++ b/docs/html/_subscribe_8hpp_source.html @@ -0,0 +1,275 @@ + + + + + + + +AWS IoT C++ SDK: Subscribe.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Subscribe.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
24#pragma once
+
25
+
26#include "util/Utf8String.hpp"
+ + +
29#include "mqtt/Packet.hpp"
+
30#include "mqtt/Publish.hpp"
+
31
+
32namespace awsiotsdk {
+
33 namespace mqtt {
+
39 class SubscribePacket : public Packet {
+
40 public:
+
41 // Public to avoid extra move/copy operations when in use by action
+
42 util::Vector <std::shared_ptr<Subscription>>
+ +
44
+
45 // Ensure Default Constructor is deleted
+
46 // Disabling default, move and copy constructors to match Packet parent
+
47 SubscribePacket() = delete; // Default constructor
+
48 SubscribePacket(const SubscribePacket &) = delete; // Copy constructor
+
49 SubscribePacket(SubscribePacket &&) = delete; // Move constructor
+
50 SubscribePacket &operator=(const SubscribePacket &) & = delete; // Copy assignment operator
+
51 SubscribePacket &operator=(SubscribePacket &&) & = delete; // Move assignment operator
+
52 virtual ~SubscribePacket() = default; // Default destructor
+
53
+
62 SubscribePacket(util::Vector <std::shared_ptr<Subscription>> subscription_list);
+
63
+
69 static std::shared_ptr<SubscribePacket> Create(util::Vector <std::shared_ptr<Subscription>> subscription_list);
+
70
+
75 util::String ToString();
+
76 };
+
77
+
83 class SubackPacket : public Packet {
+
84 public:
+
85 // Public to avoid extra move/copy operations when in use by action
+
86 util::Vector <uint8_t> suback_list_;
+
87
+
88 // Ensure Default Constructor is deleted
+
89 // Disabling default, move and copy constructors to match Packet parent
+
90 SubackPacket() = delete; // Default constructor
+
91 SubackPacket(const SubackPacket &) = delete; // Copy constructor
+
92 SubackPacket(SubackPacket &&) = delete; // Move constructor
+
93 SubackPacket &operator=(const SubackPacket &) & = delete; // Copy assignment operator
+
94 SubackPacket &operator=(SubackPacket &&) & = delete; // Move assignment operator
+
95 virtual ~SubackPacket() = default; // Default destructor
+
96
+
105 SubackPacket(const util::Vector<unsigned char> &buf);
+
106
+
112 static std::shared_ptr<SubackPacket> Create(const util::Vector<unsigned char> &buf);
+
113
+
118 util::String ToString();
+
119 };
+
120
+
126 class UnsubscribePacket : public Packet {
+
127 public:
+
128 // Public to avoid copying/returning reference in Unsubscribe Action
+
129 util::Vector <std::unique_ptr<Utf8String>> topic_list_;
+
130
+
131 // Ensure Default Constructor is deleted
+
132 // Disabling default, move and copy constructors to match Packet parent
+
133 UnsubscribePacket() = delete; // Default constructor
+
134 UnsubscribePacket(const UnsubscribePacket &) = delete; // Copy constructor
+
135 UnsubscribePacket(UnsubscribePacket &&) = delete; // Move constructor
+
136 UnsubscribePacket &operator=(const UnsubscribePacket &) & = delete; // Copy assignment operator
+
137 UnsubscribePacket &operator=(UnsubscribePacket &&) & = delete; // Move assignment operator
+
138 virtual ~UnsubscribePacket() = default; // Default destructor
+
139
+
148 UnsubscribePacket(util::Vector <std::unique_ptr<Utf8String>> topic_list);
+
149
+
155 static std::shared_ptr<UnsubscribePacket> Create(util::Vector <std::unique_ptr<Utf8String>> topic_list);
+
156
+
161 util::String ToString();
+
162 };
+
163
+
169 class UnsubackPacket : public Packet {
+
170 public:
+
171 // Ensure Default Constructor is deleted
+
172 // Disabling default, move and copy constructors to match Packet parent
+
173 UnsubackPacket() = delete; // Default constructor
+
174 UnsubackPacket(const UnsubackPacket &) = delete; // Copy constructor
+
175 UnsubackPacket(UnsubackPacket &&) = delete; // Move constructor
+
176 UnsubackPacket &operator=(const UnsubackPacket &) & = delete; // Copy assignment operator
+
177 UnsubackPacket &operator=(UnsubackPacket &&) & = delete; // Move assignment operator
+
178 virtual ~UnsubackPacket() = default; // Default destructor
+
179
+
188 UnsubackPacket(const util::Vector<unsigned char> &buf);
+
189
+
195 static std::shared_ptr<UnsubackPacket> Create(const util::Vector<unsigned char> &buf);
+
196
+
201 util::String ToString();
+
202 };
+
203
+ +
210 protected:
+
211 std::shared_ptr<ClientState> p_client_state_;
+
212 public:
+
213 // Disabling default, move and copy constructors to match Action parent
+
214 // Default virtual destructor
+
215 SubscribeActionAsync() = delete;
+
216 // Default Copy constructor
+ +
218 // Default Move constructor
+ +
220 // Default Copy assignment operator
+
221 SubscribeActionAsync &operator=(const SubscribeActionAsync &) & = delete;
+
222 // Default Move assignment operator
+
223 SubscribeActionAsync &operator=(SubscribeActionAsync &&) & = delete;
+
224 // Default destructor
+
225 virtual ~SubscribeActionAsync() = default;
+
226
+
235 SubscribeActionAsync(std::shared_ptr<ClientState> p_client_state);
+
236
+
243 static std::unique_ptr<Action> Create(std::shared_ptr<ActionState> p_action_state);
+
244
+
256 ResponseCode PerformAction(std::shared_ptr<NetworkConnection> p_network_connection,
+
257 std::shared_ptr<ActionData> p_action_data);
+
258 };
+
259
+ +
266 protected:
+
267 std::shared_ptr<ClientState> p_client_state_;
+
268 public:
+
269 // Disabling default, move and copy constructors to match Action parent
+
270 // Default virtual destructor
+
271 UnsubscribeActionAsync() = delete;
+
272 // Default Copy constructor
+ +
274 // Default Move constructor
+ +
276 // Default Copy assignment operator
+
277 UnsubscribeActionAsync &operator=(const UnsubscribeActionAsync &) & = delete;
+
278 // Default Move assignment operator
+
279 UnsubscribeActionAsync &operator=(UnsubscribeActionAsync &&) & = delete;
+
280 // Default destructor
+
281 virtual ~UnsubscribeActionAsync() = default;
+
282
+
291 UnsubscribeActionAsync(std::shared_ptr<ClientState> p_client_state);
+
292
+
299 static std::unique_ptr<Action> Create(std::shared_ptr<ActionState> p_action_state);
+
300
+
313 ResponseCode PerformAction(std::shared_ptr<NetworkConnection> p_network_connection,
+
314 std::shared_ptr<ActionData> p_action_data);
+
315 };
+
316 }
+
317}
+ + +
MQTT Publish and Puback Actions and Action data definitions for IoT Client.
+
ResponseCode
Response Code enum class.
Definition: ResponseCode.hpp:41
+ + +
Action Class.
Definition: Action.hpp:143
+
Define a base class for all MQTT Packet types.
Definition: Packet.hpp:113
+
Define a class for Suback Packet type.
Definition: Subscribe.hpp:83
+
util::Vector< uint8_t > suback_list_
Vector containing subacks included in this packet.
Definition: Subscribe.hpp:86
+
util::String ToString()
Serialize this packet into a String.
Definition: Subscribe.cpp:118
+
static std::shared_ptr< SubackPacket > Create(const util::Vector< unsigned char > &buf)
Factory Create method.
Definition: Subscribe.cpp:110
+
Define a class for SubscribeActionAsync.
Definition: Subscribe.hpp:209
+
ResponseCode PerformAction(std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
Perform MQTT Subscribe Action in Async mode.
Definition: Subscribe.cpp:222
+
std::shared_ptr< ClientState > p_client_state_
Shared Client State instance.
Definition: Subscribe.hpp:211
+
static std::unique_ptr< Action > Create(std::shared_ptr< ActionState > p_action_state)
Factory Create method.
Definition: Subscribe.cpp:212
+
Define a class for Subscribe Packet type.
Definition: Subscribe.hpp:39
+
util::String ToString()
Serialize this packet into a String.
Definition: Subscribe.cpp:66
+
util::Vector< std::shared_ptr< Subscription > > subscription_list_
Vector containing subscriptions included in this packet.
Definition: Subscribe.hpp:43
+
static std::shared_ptr< SubscribePacket > Create(util::Vector< std::shared_ptr< Subscription > > subscription_list)
Factory Create method.
Definition: Subscribe.cpp:58
+
Define a class for Unsuback Packet type.
Definition: Subscribe.hpp:169
+
util::String ToString()
Serialize this packet into a String.
Definition: Subscribe.cpp:194
+
static std::shared_ptr< UnsubackPacket > Create(const util::Vector< unsigned char > &buf)
Factory Create method.
Definition: Subscribe.cpp:186
+
Define a class for UnsubscribeActionAsync.
Definition: Subscribe.hpp:265
+
ResponseCode PerformAction(std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
Perform MQTT Unsubscribe Action in Async mode.
Definition: Subscribe.cpp:312
+
std::shared_ptr< ClientState > p_client_state_
Shared Client State instance.
Definition: Subscribe.hpp:267
+
static std::unique_ptr< Action > Create(std::shared_ptr< ActionState > p_action_state)
Factory Create method.
Definition: Subscribe.cpp:302
+
Define a class for Unsubscribe Packet type.
Definition: Subscribe.hpp:126
+
static std::shared_ptr< UnsubscribePacket > Create(util::Vector< std::unique_ptr< Utf8String > > topic_list)
Factory Create method.
Definition: Subscribe.cpp:151
+
util::String ToString()
Serialize this packet into a String.
Definition: Subscribe.cpp:159
+
+ + + + diff --git a/docs/html/_thread_task_8cpp.html b/docs/html/_thread_task_8cpp.html new file mode 100644 index 0000000..b453bdc --- /dev/null +++ b/docs/html/_thread_task_8cpp.html @@ -0,0 +1,96 @@ + + + + + + + +AWS IoT C++ SDK: ThreadTask.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ThreadTask.cpp File Reference
+
+
+
#include "util/threading/ThreadTask.hpp"
+#include "util/logging/LogMacros.hpp"
+
+ + + +

+Macros

+#define THREAD_TASK_LOG_TAG   "[Thread Task]"
 
+
+ + + + diff --git a/docs/html/_thread_task_8hpp_source.html b/docs/html/_thread_task_8hpp_source.html new file mode 100644 index 0000000..f9e2dc8 --- /dev/null +++ b/docs/html/_thread_task_8hpp_source.html @@ -0,0 +1,150 @@ + + + + + + + +AWS IoT C++ SDK: ThreadTask.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ThreadTask.hpp
+
+
+
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include <functional>
+
25#include <thread>
+
26#include <atomic>
+
27
+
28#include "util/Core_EXPORTS.hpp"
+
29
+
30#include "NetworkConnection.hpp"
+
31#include "Action.hpp"
+
32
+
33namespace awsiotsdk {
+
34 namespace util {
+
35 namespace Threading {
+
36 enum class DestructorAction {
+
37 JOIN,
+
38 DETACH
+
39 };
+
40
+
41 class AWS_API_EXPORT ThreadTask {
+
42 public:
+
43 ThreadTask(DestructorAction destructor_action, std::shared_ptr<std::atomic_bool> sync_point,
+
44 util::String thread_descriptor);
+ +
46
+
47 // Rule of 5 stuff.
+
48 // Don't copy or move
+
49 ThreadTask(const ThreadTask &) = delete;
+
50 ThreadTask &operator=(const ThreadTask &) = delete;
+
51 ThreadTask(ThreadTask &&) = delete;
+
52 ThreadTask &operator=(ThreadTask &&) = delete;
+
53
+
54 template<class Fn, class ... Args>
+
55 void Run(Fn &&fn, Args &&... args) {
+
56 m_thread_ = std::thread(std::bind(std::forward<Fn>(fn), std::forward<Args>(args)...));
+
57 }
+
58
+
59 void Stop();
+
60 private:
+
61 DestructorAction destructor_action_;
+
62 std::shared_ptr<std::atomic_bool> m_continue_;
+
63 std::thread m_thread_;
+
64 util::String thread_descriptor_;
+
65 };
+
66 }
+
67 }
+
68}
+
Action Base class and related definitions for IoT Client.
+
Network interface base class for IoT Client.
+
Definition: ThreadTask.hpp:41
+
+ + + + diff --git a/docs/html/_utf8_string_8cpp.html b/docs/html/_utf8_string_8cpp.html new file mode 100644 index 0000000..1c858fc --- /dev/null +++ b/docs/html/_utf8_string_8cpp.html @@ -0,0 +1,230 @@ + + + + + + + +AWS IoT C++ SDK: Utf8String.cpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Utf8String.cpp File Reference
+
+
+
#include <rapidjson/encodings.h>
+#include <rapidjson/stream.h>
+#include <rapidjson/stringbuffer.h>
+#include "util/Utf8String.hpp"
+
+ + + +

+Macros

+#define UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(IT, END)   {utf_error ret = increase_safely(IT, END); if (ret != UTF8_OK) return ret;}
 
+ + + + + + + +

+Typedefs

+typedef unsigned char awsiotsdk::utf8::uint8_t
 
+typedef unsigned short awsiotsdk::utf8::uint16_t
 
+typedef unsigned int awsiotsdk::utf8::uint32_t
 
+ + + +

+Enumerations

enum  utf_error {
+  UTF8_OK +, NOT_ENOUGH_ROOM +, INVALID_LEAD +, INCOMPLETE_SEQUENCE +,
+  OVERLONG_SEQUENCE +, INVALID_CODE_POINT +
+ }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+template<typename octet_type >
uint8_t awsiotsdk::utf8::internal::mask8 (octet_type oc)
 
+template<typename u16_type >
uint16_t awsiotsdk::utf8::internal::mask16 (u16_type oc)
 
+template<typename octet_type >
bool awsiotsdk::utf8::internal::is_trail (octet_type oc)
 
+template<typename u16 >
bool awsiotsdk::utf8::internal::is_lead_surrogate (u16 cp)
 
+template<typename u16 >
bool awsiotsdk::utf8::internal::is_trail_surrogate (u16 cp)
 
+template<typename u16 >
bool awsiotsdk::utf8::internal::is_surrogate (u16 cp)
 
+template<typename u32 >
bool awsiotsdk::utf8::internal::is_code_point_valid (u32 cp)
 
+template<typename octet_iterator >
std::iterator_traits< octet_iterator >::difference_type awsiotsdk::utf8::internal::sequence_length (octet_iterator lead_it)
 
+template<typename octet_difference_type >
bool awsiotsdk::utf8::internal::is_overlong_sequence (uint32_t cp, octet_difference_type length)
 
+template<typename octet_iterator >
utf_error awsiotsdk::utf8::internal::increase_safely (octet_iterator &it, octet_iterator end)
 Helper for get_sequence_x.
 
+template<typename octet_iterator >
utf_error awsiotsdk::utf8::internal::get_sequence_1 (octet_iterator &it, octet_iterator end, uint32_t &code_point)
 get_sequence_x functions decode utf-8 sequences of the length x
 
+template<typename octet_iterator >
utf_error awsiotsdk::utf8::internal::get_sequence_2 (octet_iterator &it, octet_iterator end, uint32_t &code_point)
 
+template<typename octet_iterator >
utf_error awsiotsdk::utf8::internal::get_sequence_3 (octet_iterator &it, octet_iterator end, uint32_t &code_point)
 
+template<typename octet_iterator >
utf_error awsiotsdk::utf8::internal::get_sequence_4 (octet_iterator &it, octet_iterator end, uint32_t &code_point)
 
+template<typename octet_iterator >
utf_error awsiotsdk::utf8::internal::validate_next (octet_iterator &it, octet_iterator end, uint32_t &code_point)
 
+template<typename octet_iterator >
utf_error awsiotsdk::utf8::internal::validate_next (octet_iterator &it, octet_iterator end)
 
+template<typename octet_iterator >
octet_iterator awsiotsdk::utf8::find_invalid (octet_iterator start, octet_iterator end)
 The library API - functions intended to be called by the users.
 
+template<typename octet_iterator >
bool awsiotsdk::utf8::is_valid (octet_iterator start, octet_iterator end)
 
+ + + + + + + + + + + + + + + +

+Variables

+const uint16_t awsiotsdk::utf8::internal::LEAD_SURROGATE_MIN = 0xd800u
 
+const uint16_t awsiotsdk::utf8::internal::LEAD_SURROGATE_MAX = 0xdbffu
 
+const uint16_t awsiotsdk::utf8::internal::TRAIL_SURROGATE_MIN = 0xdc00u
 
+const uint16_t awsiotsdk::utf8::internal::TRAIL_SURROGATE_MAX = 0xdfffu
 
+const uint16_t awsiotsdk::utf8::internal::LEAD_OFFSET = LEAD_SURROGATE_MIN - (0x10000 >> 10)
 
+const uint32_t awsiotsdk::utf8::internal::SURROGATE_OFFSET = 0x10000u - (LEAD_SURROGATE_MIN << 10) - TRAIL_SURROGATE_MIN
 
+const uint32_t awsiotsdk::utf8::internal::CODE_POINT_MAX = 0x0010ffffu
 
+
+ + + + diff --git a/docs/html/_utf8_string_8hpp.html b/docs/html/_utf8_string_8hpp.html new file mode 100644 index 0000000..c573642 --- /dev/null +++ b/docs/html/_utf8_string_8hpp.html @@ -0,0 +1,97 @@ + + + + + + + +AWS IoT C++ SDK: Utf8String.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Utf8String.hpp File Reference
+
+
+
#include <memory>
+#include "util/memory/stl/String.hpp"
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

class  awsiotsdk::Utf8String
 
+
+ + + + diff --git a/docs/html/_utf8_string_8hpp_source.html b/docs/html/_utf8_string_8hpp_source.html new file mode 100644 index 0000000..52e09e7 --- /dev/null +++ b/docs/html/_utf8_string_8hpp_source.html @@ -0,0 +1,140 @@ + + + + + + + +AWS IoT C++ SDK: Utf8String.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Utf8String.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include <memory>
+ +
26
+
27namespace awsiotsdk {
+
28 class Utf8String {
+
29 protected:
+
30 util::String data;
+
31 std::size_t length;
+
32
+
33 Utf8String(util::String str);
+
34
+
35 Utf8String(const char *str, std::size_t length);
+
36
+
37 static bool IsValidInput(util::String str);
+
38
+
39 static bool IsValidInput(const char *str, std::size_t length);
+
40
+
41 public:
+
42 // Rule of 5 stuff
+
43 // Disabling default constructor while keeping defaults for the rest
+
44 Utf8String() = delete; // Delete Default constructor
+
45 Utf8String(const Utf8String &) = default; // Copy constructor
+
46 Utf8String(Utf8String &&) = default; // Move constructor
+
47 Utf8String &operator=(const Utf8String &) & = default; // Copy assignment operator
+
48 Utf8String &operator=(Utf8String &&) & = default; // Move assignment operator
+
49 ~Utf8String() = default; // Default destructor
+
50
+
51 static std::unique_ptr<Utf8String> Create(util::String str);
+
52
+
53 static std::unique_ptr<Utf8String> Create(const char *str, std::size_t length);
+
54
+
55 std::size_t Length();
+
56
+
57 util::String ToStdString();
+
58 };
+
59}
+ +
Definition: Utf8String.hpp:28
+
+ + + + diff --git a/docs/html/_vector_8hpp.html b/docs/html/_vector_8hpp.html new file mode 100644 index 0000000..55a2d37 --- /dev/null +++ b/docs/html/_vector_8hpp.html @@ -0,0 +1,99 @@ + + + + + + + +AWS IoT C++ SDK: Vector.hpp File Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Vector.hpp File Reference
+
+
+
#include "util/Core_EXPORTS.hpp"
+#include <vector>
+
+

Go to the source code of this file.

+ + + + + +

+Typedefs

+template<typename T >
using awsiotsdk::util::Vector = std::vector< T >
 
+
+ + + + diff --git a/docs/html/_vector_8hpp_source.html b/docs/html/_vector_8hpp_source.html new file mode 100644 index 0000000..3e7148a --- /dev/null +++ b/docs/html/_vector_8hpp_source.html @@ -0,0 +1,110 @@ + + + + + + + +AWS IoT C++ SDK: Vector.hpp Source File + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Vector.hpp
+
+
+Go to the documentation of this file.
1/*
+
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
3 *
+
4 * Licensed under the Apache License, Version 2.0 (the "License").
+
5 * You may not use this file except in compliance with the License.
+
6 * A copy of the License is located at
+
7 *
+
8 * http://aws.amazon.com/apache2.0
+
9 *
+
10 * or in the "license" file accompanying this file. This file is distributed
+
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+
12 * express or implied. See the License for the specific language governing
+
13 * permissions and limitations under the License.
+
14 */
+
15
+
22#pragma once
+
23
+
24#include "util/Core_EXPORTS.hpp"
+
25#include <vector>
+
26
+
27namespace awsiotsdk {
+
28 namespace util {
+
29 template<typename T> using Vector = std::vector<T>;
+
30 } // namespace util
+
31} // namespace awsiotsdk
+
+ + + + diff --git a/docs/html/annotated.html b/docs/html/annotated.html new file mode 100644 index 0000000..0ef7ca6 --- /dev/null +++ b/docs/html/annotated.html @@ -0,0 +1,139 @@ + + + + + + + +AWS IoT C++ SDK: Data Structures + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structures
+
+
+
Here are the data structures with brief descriptions:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Nawsiotsdk
 Ndiscovery
 CDiscoverActionDefine a class for DiscoverAction
 CDiscoverRequestDataDiscover Request Packet Type
 Nmqtt
 CClientState
 CConnectActionAsyncDefine a class for ConnectActionAsync
 CConnectPacketConnect Packet Type
 CDisconnectActionAsyncDefine a class for DisconnectActionAsync
 CDisconnectPacketDisconnect Packet Type
 CKeepaliveActionRunnerDefine a class for KeepaliveActionRunner
 CNetworkReadActionRunnerDefine a class for NetworkReadActionRunner
 CPacketDefine a base class for all MQTT Packet types
 CPacketFixedHeaderDefine a class for the MQTT Fixed header
 CPingreqPacket
 CPubackActionAsyncDefine a class for PubackActionAsync
 CPubackPacketDefine a class for Puback Packet type
 CPublishActionAsyncDefine a class for PublishActionAsync
 CPublishPacketPublish Message Packet Type
 CSubackPacketDefine a class for Suback Packet type
 CSubscribeActionAsyncDefine a class for SubscribeActionAsync
 CSubscribePacketDefine a class for Subscribe Packet type
 CSubscriptionMQTT Subscription Definition
 CSubscriptionHandlerContextDataMQTT Subscription Handler Context Data
 CUnsubackPacketDefine a class for Unsuback Packet type
 CUnsubscribeActionAsyncDefine a class for UnsubscribeActionAsync
 CUnsubscribePacketDefine a class for Unsubscribe Packet type
 CWillOptionsLast Will and Testament Definition
 Nutil
 NLogging
 CConsoleLogSystem
 CFormattedLogSystem
 CLogSystemInterface
 NThreading
 CThreadTask
 CJsonParser
 CActionAction Class
 CActionDataAction Data Class
 CActionStateAction State Class
 CClientCoreClient Core Class
 CClientCoreStateClient Core State Class
 CPendingAckDataPending Ack Data Class
 CConfigCommon
 CConnectivityInfo
 CDisconnectCallbackContextDataMQTT Disconnect Callback Context Data
 CDiscoveryResponse
 CGreengrassMqttClientMQTT Client Class
 CJobs
 CMqttClientMQTT Client Class
 CNetworkConnectionNetwork Connection Class
 CReconnectCallbackContextDataMQTT Reconnect Callback Context Data
 CResubscribeCallbackContextDataMQTT Resubscribe Callback Context Data
 CShadowDefine a type for Shadow
 CUtf8String
+
+
+ + + + diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/docs/html/bc_sd.png b/docs/html/bc_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..31ca888dc71049713b35c351933a8d0f36180bf1 GIT binary patch literal 635 zcmV->0)+jEP)Jwi0r1~gdSq#w{Bu1q z`craw(p2!hu$4C_$Oc3X(sI6e=9QSTwPt{G) z=htT&^~&c~L2~e{r5_5SYe7#Is-$ln>~Kd%$F#tC65?{LvQ}8O`A~RBB0N~`2M+waajO;5>3B&-viHGJeEK2TQOiPRa zfDKyqwMc4wfaEh4jt>H`nW_Zidwk@Bowp`}(VUaj-pSI(-1L>FJVsX}Yl9~JsqgsZ zUD9(rMwf23Gez6KPa|wwInZodP-2}9@fK0Ga_9{8SOjU&4l`pH4@qlQp83>>HT$xW zER^U>)MyV%t(Lu=`d=Y?{k1@}&r7ZGkFQ%z%N+sE9BtYjovzxyxCPxN6&@wLK{soQ zSmkj$aLI}miuE^p@~4}mg9OjDfGEkgY4~^XzLRUBB*O{+&vq<3v(E%+k_i%=`~j%{ Vj14gnt9}3g002ovPDHLkV1n!oC4m3{ literal 0 HcmV?d00001 diff --git a/docs/html/bdwn.png b/docs/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + + +AWS IoT C++ SDK: awsiotsdk::Action Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::Action Class Referenceabstract
+
+
+ +

Action Class. + More...

+ +

#include <Action.hpp>

+
+Inheritance diagram for awsiotsdk::Action:
+
+
+ + +awsiotsdk::discovery::DiscoverAction +awsiotsdk::mqtt::ConnectActionAsync +awsiotsdk::mqtt::DisconnectActionAsync +awsiotsdk::mqtt::KeepaliveActionRunner +awsiotsdk::mqtt::NetworkReadActionRunner +awsiotsdk::mqtt::PubackActionAsync +awsiotsdk::mqtt::PublishActionAsync +awsiotsdk::mqtt::SubscribeActionAsync +awsiotsdk::mqtt::UnsubscribeActionAsync + +
+ + + + +

+Public Types

typedef std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
 
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

ActionType GetActionType ()
 Get Type of this Action. More...
 
util::String GetActionInfo ()
 Get information/description about the current action. More...
 
void SetParentThreadSync (std::shared_ptr< std::atomic_bool > p_thread_continue)
 Sets the parent thread sync variable. More...
 
virtual ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)=0
 Virtual base function for Performing Action. More...
 
Action (const Action &)=delete
 
Action (Action &&)=delete
 
+Actionoperator= (const Action &) &=delete
 
+Actionoperator= (Action &&) &=delete
 
 Action (ActionType action_type, util::String action_info_string)
 Action Constructor. More...
 
+ + + + + + + +

+Protected Member Functions

ResponseCode ReadFromNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, util::Vector< unsigned char > &read_buf, size_t bytes_to_read)
 Generic Network Read function for all actions. More...
 
ResponseCode WriteToNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, const util::String &write_buf)
 Generic Network Write function for all actions. More...
 
+ + + + + + + + + + +

+Protected Attributes

+ActionType action_type_
 Type of the action.
 
+util::String action_info_string_
 Info string.
 
+std::shared_ptr< std::atomic_bool > p_thread_continue_
 Shared atomic variable used for sync when action is run in separate thread.
 
+

Detailed Description

+

Defines a base class for SDK Actions. Provides basic template for concrete implementations. Also includes code for Thread sync with client core. All Actions that can be performed by the Client Core must inherit from this class. This is a pure virtual class and cannot be instantiated

+

Member Typedef Documentation

+ +

◆ CreateHandlerPtr

+ +
+
+ + + + +
typedef std::function<std::unique_ptr<Action>(std::shared_ptr<ActionState> p_action_state)> awsiotsdk::Action::CreateHandlerPtr
+
+

Define a type for Create Factory method. Takes Action state as argument and returns a unique_ptr to a new action instance

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ Action()

+ +
+
+ + + + + + + + + + + + + + + + + + +
awsiotsdk::Action::Action (ActionType action_type,
util::String action_info_string 
)
+
+
Parameters
+ + + +
action_type- Type fo the Action being instantiated
action_info_string- Info string describing the action
+
+
+ +
+
+

Member Function Documentation

+ +

◆ GetActionInfo()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::Action::GetActionInfo ()
+
+inline
+
+

Gets runtime information about the currently running Action if it was set when the action was created

+
Returns
String containing Info Text
+ +
+
+ +

◆ GetActionType()

+ +
+
+ + + + + +
+ + + + + + + +
ActionType awsiotsdk::Action::GetActionType ()
+
+inline
+
+
Returns
ActionType
+ +
+
+ +

◆ PerformAction()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual ResponseCode awsiotsdk::Action::PerformAction (std::shared_ptr< NetworkConnectionp_network_connection,
std::shared_ptr< ActionDatap_action_data 
)
+
+pure virtual
+
+

This function is called by Client Core and defines how the Action is Performed. This is a pure virtual function. Inherited classes MUST implement this.

+
Parameters
+ + + +
p_network_connection- Network connection to be used to perform the Action
p_action_data- Action data to be used for this run of the action
+
+
+
Returns
ResponseCode indicating result of the API call
+ +

Implemented in awsiotsdk::discovery::DiscoverAction, awsiotsdk::mqtt::ConnectActionAsync, awsiotsdk::mqtt::DisconnectActionAsync, awsiotsdk::mqtt::KeepaliveActionRunner, awsiotsdk::mqtt::NetworkReadActionRunner, awsiotsdk::mqtt::PublishActionAsync, awsiotsdk::mqtt::PubackActionAsync, awsiotsdk::mqtt::SubscribeActionAsync, and awsiotsdk::mqtt::UnsubscribeActionAsync.

+ +
+
+ +

◆ ReadFromNetworkBuffer()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::Action::ReadFromNetworkBuffer (std::shared_ptr< NetworkConnectionp_network_connection,
util::Vector< unsigned char > & read_buf,
size_t bytes_to_read 
)
+
+protected
+
+
Parameters
+ + + + +
p_network_connection- Network connection to be used to perform Read
read_buf- Buffer read data should be copied to. Assumed to already have enough memory reserved
bytes_to_read- Number of bytes to read
+
+
+
Returns
ResponeCode indicating result of the API call
+ +
+
+ +

◆ SetParentThreadSync()

+ +
+
+ + + + + +
+ + + + + + + + +
void awsiotsdk::Action::SetParentThreadSync (std::shared_ptr< std::atomic_bool > p_thread_continue)
+
+inline
+
+
Parameters
+ + +
p_thread_continue- Pointer to the new sync variable to use
+
+
+ +
+
+ +

◆ WriteToNetworkBuffer()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::Action::WriteToNetworkBuffer (std::shared_ptr< NetworkConnectionp_network_connection,
const util::String & write_buf 
)
+
+protected
+
+
Parameters
+ + + +
p_network_connection- Network connection to be used to perform Write
read_buf- Buffer containing data to be written to the network instance
+
+
+
Returns
ResponeCode indicating result of the API call
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_action.png b/docs/html/classawsiotsdk_1_1_action.png new file mode 100644 index 0000000000000000000000000000000000000000..d850fd9566538541c368b7dfa117488f7ce9c5d2 GIT binary patch literal 5560 zcmds5cT`i^zCPzbPzVT85+s12AjMEr6b3~4NMtTjrGyfaK~Xw_gz6a;P*A`Kf+J#~ zC<0Oi1_DGW85Id41868w1Vkwr=|yr6>bvsZyKk-c&%3kk+iU&S-Z|%FowC3Em3_g+ z`k;uAj1T|-A_PlwI{<)?Atbhu59t^|JM57TXY-ST1&_x=hVRE`!%`mK)zelBlFn#* z&tNc+nDR?gV$jOoR$UA#6vEclqO2=b#;Utm3$!aRmnV8E*A z?JN0_H$yo-FTJMjsj0-CHYo*+93bSLy@>#mNIauD@d|RkP62_28&g`~Fq0^tJ)ke7 zeYgq$8e0#i!D%Kz=n{^JeT`b;nB_*_654%iO}8(ZT6V-I;z9FU4ZPG#_h z0{MV)G6>iWaru;5A>jYKMl_*|LwY+*P!}I#wpdm?Vq-^yM$UeD;#735SE~uqN_Rw+H3UK5M7+KBz!Y4 z#A``iB|mxbn0(DfvCgJQU!3@+7X6d&yNQaCH-BwJmm2mRc*~oXP{cFP;9Pa>jR`OL z+&h0uD5s>74GfF6@AU~}YIv|x?wsftc${Nt7l)$SLjr15OP>R)tN3kyx8I}|fCYtR zcQaZRXSZntDiu72=xX3_br+Qv7N@tdR8;Lw<-1XGtRur{ZzFxdm!G;{J_X0U&ySa? zT~)ol<+iYw;X7%D^i<@W%Bb#-`h0-f+dN=2{heyZ5n1L{8`6{uTzHRn&s>lc6%EZ{plKjvAuaj#IR>%s=7J>jl}?*ED2C)Y~JUf zB`sDA9fSjGn+Ku3AK?RkRs*`~AZ_O38b&(MXa#~{8Gr$9VKK(ENHTa7Yz>w@33a5@ zZ3IX_?3Q(_V?Boc730jhjoQgWnUZj9-;V&{&;?W}0MwTPv@QuW2?Qd&K&1i|3}+e= zzErVzr{=1p>nnp5o(f^=T7vtl_ixY8$Q8h88rY!D2tB1ide)&=V^}7;osdxqXrVF> zbd4stXEv}e6i`;LZO~L4xKlcixjfQH5puy?Oc*}eOGZzg@{Ky@ZznAwU+rc~JAr5H z1m`juzhdOMR`gWnz-p|f$nBQdi~_b73!4{{;NFx=;RRa|^hw}AI&6|yoZRk_Q|%X& zh3z!C4E|cSX#>HmMX{9@pLiutX$(eDouH@2`^b(?=Z!EVb||hqEhPggQqGTTu0wMX zsOWOM1v4L4r}qxsl`1id;9U{6IaoLO!!=1GUZXhxo-oMzLr#OysKyu;(O?*==B5jC9l-|a6>Z)2fD(t~%efiOa6a%dV=4MF`elN_uCO+vX@+vM z;?s|RR0OUTHolF>^Us;($~JCIZ16Xx(j%rq0%RrR8{J+&fTRO7t`%j#ZrX2Yaov+U zu&aLJvzv^mL3>I<4Y^kSl@?I|wbfOhENS1o3GcJMq9%%s|5ht%+Ks<$R|7a;X8+vXeUrUg*hak zW5tkcD9)8P%A?jdvI`-d15+;#^Fq6y;#=X!L)DMkIw z3Np^e1kr#^hbq{DV^4pMuFCtY7m!N6zMO4D?75oVqnt6@?JfFh|4f{N!+?IJJVafKdx~QPjpp)PgNSLj&u-|GzQUNPOp-@f+42 z7h}p^v*i*-Zz{!XLUZ$kxf>ul+OF=j>f}wCPZ4~0VpC>MzrX$N7Zp0EXC6@> zIrseZL*Zw|i(FZ$l5Q{dDHGU#x&Gv}2BFg87tVE`euuJzO6hgfBm75G=k_&D)>9(K zmVeV3_ZK-<<{UNl_$)2tCowLydX8ZC0?#-uD4pATf2vT(n_A`wC%!9RzC@_xTx*a?mek~pS)xP^){QGRdAWLzTQ);l{20L9`Oet>@05lZ|-A6-^fEpy?j9 zYJ+!b;=V>Uf~KY~Xxe(j4SS-wFoab~skA>kS7p@c^~(aiB^GnbagB@2B+sa^iAAGv zp&jo#Z{2Y;aXHD{(G={~Z~vQJUS_vflpfk91KzE3soKfuycL8Gzdy@{#-&IDg+*41 zwZ|Y?TJr_Da52uG)cpa*w$Rl`StA}-Jmt3)3FzGIs272f=R&xzBDttz9tB4Fcmx>sP=AI88;PIyV{#n`zMdr_ms6y zvm(%T$ErpwkyUP;df!>yEe(8-!EJ)ZMw8nB7+mm1CXf7A)#SD{eA^-T#(_#|%9!uS|1NB>mY}vy`$*DTS394w zaO&#AZeRZp?-cCvp-wdnM|2Ov2}Qka8*@^%mW@lJD2;8yaBh6jv$}t#XZ+6C{_c$l z{-4UKQ>-MXM?P1EmnCF% zg{PB0GcA-0enHjPtN}><&~mYciOxt|XlZo%Ftc`cBBv^)?uF;`oy;zILgy9?$5c?2 zFCx0$LRCx1Mk&(}CO#5`_?@g#&V^R9q4U@;&|%bxYsUo^RxqbNrdBuZFy2yL|0yk; zwWFEEE7=Ti1n5#6x)2j%W!fL3&d~X&RCIUms5z`k%%QK@b>vABdum3P7yYc3gZmU( z_RSlfHto4OI!Z4q+T|I4N4()t^8Q zu3JwF0N>yO`AMy>g!2_OJ1d!@MfXM!{To|SfyTG4mi_z#A3z^221dOXoU15ll)($Y z%OVr~s%hHEZN{O+?c%g92IPhqps2p->GcNawy%5a6WlRn@1CH3EjL-_cw{qqreKOdP2{x!QLPPFc&h7osaJ%MZ zwhLmP!=2$hV7}JuqCPfXG@Se)^Yq9sR_D#qdJ2yXt~j;$yN7yG+#|9*W}aW^<^(JU zidKk-P+X%b-<1L?5PoWJ_LoThyd(mNTZ^$CKe=z0I(l_ypl)HE@^F(ZQ%=9<0HMqU z#wwFi$?S@VFkdUNOA(54eg%0O5uv&)XN~#_odGkN5T21F9<&l#81AvASUTIWjjR(n zd9WYT2`XyIkL<;L3tdJ0_*uQ!)!BnM0S_^f+NZF0iDG*j`yw5z;7rR8;v>R95Q4W+ zZ`~?q@eh;sV7|*)Nn%+)?v2Mrv3`Tv9mfMP91A3Rv9qT#F4FV=;i8u_4GF9Wif6RT z5AV`~bfbGduD-d`4p^BaJ}WM?N_-AwA>=ani0~mjckAfm0R&7K&eLuTXHbgM*^c4d zMS=`&y^Q@Ei&oNqGSb$q*_tn0SD&tGWfScDFr1fLIJzjG8IhJ7b8R6Pm2Qy1WJtJ4 zye4jRIQqbUNnrfc0Z)N(gXXB|P1CLxgY-_Bz6q}?6?T05u3|%>AMgwlc-XPE!m#bE zL*?T0Nx7H418cgao#z^oN+zChojsmASkN(%<<`g7`c?I=^^cgow*NM4 ZbgqSZE{<-|jqI@k1Pg2P2d1Pme+Rc04e$T} literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1_action_data.html b/docs/html/classawsiotsdk_1_1_action_data.html new file mode 100644 index 0000000..283fded --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_action_data.html @@ -0,0 +1,228 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::ActionData Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::ActionData Class Referenceabstract
+
+
+ +

Action Data Class. + More...

+ +

#include <Action.hpp>

+
+Inheritance diagram for awsiotsdk::ActionData:
+
+
+ + +awsiotsdk::discovery::DiscoverRequestData +awsiotsdk::mqtt::Packet +awsiotsdk::mqtt::ConnectPacket +awsiotsdk::mqtt::DisconnectPacket +awsiotsdk::mqtt::PingreqPacket +awsiotsdk::mqtt::PubackPacket +awsiotsdk::mqtt::PublishPacket +awsiotsdk::mqtt::SubackPacket +awsiotsdk::mqtt::SubscribePacket +awsiotsdk::mqtt::UnsubackPacket +awsiotsdk::mqtt::UnsubscribePacket + +
+ + + + +

+Public Types

typedef std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
 
+ + + + + + + + + + + + + + + +

+Public Member Functions

ActionData (const ActionData &)=default
 
ActionData (ActionData &&)=default
 
+ActionDataoperator= (const ActionData &) &=default
 
+ActionDataoperator= (ActionData &&) &=default
 
virtual uint16_t GetActionId ()=0
 Get ID of the current run of this Action. More...
 
virtual void SetActionId (uint16_t action_id)=0
 Set the Action ID for this run of the Action. More...
 
+ + + + +

+Data Fields

+AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to call when response is received for this action.
 
+

Detailed Description

+

Defines an Action Data class which contains dynamic information to be used by the action Instance of concrete implementation of this class is passed as argument each time Perform Action is called This is a pure virtual class, cannot be instantiated

+

Member Typedef Documentation

+ +

◆ AsyncAckNotificationHandlerPtr

+ +
+
+ + + + +
typedef std::function<void(uint16_t action_id, ResponseCode rc)> awsiotsdk::ActionData::AsyncAckNotificationHandlerPtr
+
+

Define a type for the Async Ack notification handler Clients can provide an instance of this to receive notification on status of Async API calls

+ +
+
+

Member Function Documentation

+ +

◆ GetActionId()

+ +
+
+ + + + + +
+ + + + + + + +
virtual uint16_t awsiotsdk::ActionData::GetActionId ()
+
+pure virtual
+
+
Returns
uint16_t - Action ID
+ +

Implemented in awsiotsdk::discovery::DiscoverRequestData, and awsiotsdk::mqtt::Packet.

+ +
+
+ +

◆ SetActionId()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void awsiotsdk::ActionData::SetActionId (uint16_t action_id)
+
+pure virtual
+
+
Parameters
+ + +
action_id- new Action ID
+
+
+ +

Implemented in awsiotsdk::discovery::DiscoverRequestData, and awsiotsdk::mqtt::Packet.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_action_data.png b/docs/html/classawsiotsdk_1_1_action_data.png new file mode 100644 index 0000000000000000000000000000000000000000..a305083a337cb963ed78667b92fbea7883451c3e GIT binary patch literal 7056 zcmds6dt6f4+Ab@z(vWH$+A=sh3qCyl1Zf% zC0dh~rHndCCW;!PnH6<1(NMf=C5oVe1j4sA=G2@zzjJ=``@Zjw*?(}^d#$zCTKjpQ z=Xu|qpFj(Tm|F$MhB9`-u)2GG?Mo6kh+EBvDe`-GMiu+|@A{lxC< zTX4^cCJGkM^2H8%ph)^rid{2h$@5w7M0_Rf$L)yBxTqAozPf07%8HPNHyPsc&0XCC zBrv~#N9o;f`$F}GgRe&4rPOCm7_>lUYkW+XWMyJu|gKf;L9E z=yeI;MqtE=lPiA!8&EqelgWM*qCDG)FBXlgUw6Rp*E|=!r3T-dPrsl$b;Brh=G~&q z@AQmvVLF>nJexW7=K4y{ctcN8^T~Z6*hfHMM*ey6D`7>y5A5&$xJX7#bi4o%$0_FNzu(hH|XKp)7P(YZr&Ar zdb}@@);<5K5Cu!$M1z%jU}ymnl6TpWT7u>{oIyTqp6sH*%FkHTp)%2`1BNa^t~AvQ z^8N?rTT5GC_qLE*DLmAJlw|xnexu$P`Ouu|9_JBt2-DBseWBH~dS(x|UxOW%mVJGn zQK&F!B($-wvXzM%g{q?|`uS+n-r)+>P-08Ix)`lG5sD`tPcP^xvfrceskwN*TYMX? zT(lfU7>^KYg8E+s^h<5$UZvsU$D$lc!7O4eiwon%J~}rJ^HS~S_Vq=iP|+<< z1$PS6r}%kH`%Z@Q0~i(WLki{|T8>fEObTGt*$b^ZVnt&fS7ayPO8$^xaH?|m!C=qGsSX@y_#bCyk($E+`)pH8WN>QcC zgUfw)i5KVSk9ITPkxe9g-XVFds+tm-@-0T4VIna+DIav?4ynnzO9pq7h(cU&Srj8u zdB5D0Idi6g)t!TA7kl!Nce1p6<`ZQ>&oi8&Kj5C~8+!{*1BEQrx1Y)p_KaWMNfoq} z?i{R$q^X>3JO6Rw9FqJHMZRs(+!$arR*Xj0c@On?SYk+9scY=?0yNf4I7TXOplmoX zL>^1wQ;-T`7&m$SCK~y&0{|fTvdQyBP~5@3(~CC*EY(0k3Uc8F--B=)s#L_ekb~bX zGBX3Qb7(M(W2?6?WCn+U?qAhu>~cnO8` z`}hQrIs0_(``CMba)JKNj{*`p`S~b??lu{^fw!O-_d{Rh^$i2c{pztRSU2k?x>6rZ z-yy?fs*NXt){PIF{&*c&W7lo?%4xQXF=ul?1654&`=CP7P24~nS|k_V6q zeOsM*z%GWH>@u=Fn?@_GjHaokd@}rk-4)(WXQwwp8{?-MXqjv{gI?72!DyBpGW&yUE z*$xwSV5FK~KJzFlS$2ytOR_$5<&%fBC4>t>FCeqB>T$3Zdl0*WXAVIM0>bgEk0AAb zjI+smuFio23Rh7RbY|M5f}jEd{{dG27I(}D?wh*CLK~4~b3^pVh?;PTf#meXUlWWV zu>)cY3<+qU@tE}}g=5=kjcdvuURjQ={D;&F?dM-3mH^4OpOpNcTDfX7A%k8Y`mi6@ z)9*lM%7^*PAkjF#mD2i4E7hXTT8p|6u5J3qsCx~e?(Jc<3|rPo3Lk(g6Y@$iQY;9L zO7~HUWmWu_ysT4Bmstmllx77_&4*PZ{m~b*THoVtFMb&!O@sruyDRV>W|$T{)jXpp zwf}x-+3kl*eRT_xsC`~mt!%ldm#i; z@3-(Aq@xUdxA?4+k>rS|iUMm?a{2QS87nRzIhoKZ;5N{;$KI{JorU9xo+#duC%xr41B0%9R~yU^cEZw=>%|@ z38+B=-8$lcD{Tw-=MiEh4cK{&4v)GR4ZpIg*$ zt^;?Zi7iVnX1$MWbd`g^t4~ z>fcMA=DC@Kg;rJHxd!*B#ZG72F~hh$2ICo}|43gbJ5^sP#X3l?D7K0sh~nV-&`>V! zxzdErd=e(_rv}rBn`j=}AvJ5DSdi|(<(KAOE^nj_M77Tw(Tc3kUQX}M^Pz*H8d7UI zEdSpa)qN<)O%L4Iu`*rK0^&&~}IJ({A^4&Oyro{{FFmnXC!iJC%x*mx3r z!<=0KW2`gO+vXA7RcR(ut!pP>mkO6ZoP-^N9L^nk8juzn*-HXL)Jv}a8FTT0+`Ww_ z_CAQpxIY}|NmD`gWav6trQh#dpWa=b7}M-ql1~usQ z@paI1@C={cF*!`w$VnW0)I*K$_*aTEKI}VEAu5!vRz%+%jbt&ENi5$@G~Ro#Vb^H$ z>pD;O5`KbvE`Ol=x7$G%cN8-FEQJQI)?7g{vOhrW`Uj{5jADxj4cIc_GoO4qp9Bou zPQp$^nkz7LhMmeR)T%xE*E^QW@{{EStM;r(Lo&2ds8v;SUDV~#lU~)gc{i-2M` zCtWh*Sz zcIr&uu<7itBEWHE$PL|sC{yXLCkt&F{Bi1OmfC+s;rQ@lXDH;$niE@AneukeHT0Vj3@7*K@N;i{W%@+aYs`myeim&3I zsFuiB<#JH9aUZ}vkD>}5)sF;;qI*WA^c!6(Eb5pLO3SK<4IYxG#yyl35$LB6N4Nx25-*-suZp8m zd+!sl--3B0d)w^6v=8=F%z0}kVAyqHTKE?;K+>Ap8jnkE0@P#ZhT(&5!C7?aGZqYx73j*wKn@lZ|L^^k_8dG`-VXeLo z&jb9el2I((TWVOdIP#M?x^XSUXx5=zTGiG*(noplBl zbz*I{y^qU_6Be<#V}mt?QPd&3VHS0(m-W~CZYxFWe+xwDcXt=qQIUu|h#LD*ap z^+bL!+-I-c_VvXHrt;6xYHYPKi#SoCt1**=B#jsJ1-s8|ioVw0n+J-+_%HlxDHccR zA*i}u*)^3nI@w*6;=HO8)avOiMg@)*7&C}!C*;-?F^KUaoz6swjj_6#N{XdHU|cP# z-<+o#;r$A5o(Fi}q0am>R~;PL+fs4D + + + + + + +AWS IoT C++ SDK: awsiotsdk::ActionState Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::ActionState Class Referenceabstract
+
+
+ +

Action State Class. + More...

+ +

#include <Action.hpp>

+
+Inheritance diagram for awsiotsdk::ActionState:
+
+
+ + +awsiotsdk::ClientCoreState +awsiotsdk::mqtt::ClientState + +
+ + + + + + + + + + + + + +

+Public Member Functions

virtual uint16_t GetNextActionId ()=0
 Get Action ID of the next Action. More...
 
ActionState (const ActionState &)=delete
 
ActionState (ActionState &&)=delete
 
+ActionStateoperator= (const ActionState &) &=delete
 
+ActionStateoperator= (ActionState &&) &=delete
 
+

Detailed Description

+

Defines an Action State class which is retained by each Action for its lifetime This is a pure virtual class, cannot be instantiated

+

Member Function Documentation

+ +

◆ GetNextActionId()

+ +
+
+ + + + + +
+ + + + + + + +
virtual uint16_t awsiotsdk::ActionState::GetNextActionId ()
+
+pure virtual
+
+
Returns
uint16_t Next Action ID
+ +

Implemented in awsiotsdk::ClientCoreState, and awsiotsdk::mqtt::ClientState.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_action_state.png b/docs/html/classawsiotsdk_1_1_action_state.png new file mode 100644 index 0000000000000000000000000000000000000000..4a026085bbfb3a70778818b68d37f19b777226f9 GIT binary patch literal 1065 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$TgBeJMzY}l)QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#Nthc)B=-R4~4sdw1Pq1)i36 z$5ns+`R~!K-^h8=GWL1X)m=$Z>It74-^M8~ol+(?spG^xE(bxuex?AIBa8JJ`dg1Z z{cF(rBk|YgPk(pzX(%24v08eMy2rCh(S3W2>+Um6WBz7bcP4Rq=dV!lZM`8=_$;pR z9X~&1m!<5Q`pymsUB+mgTv-XvBR!vrea>v^yPM-aBW$hSC!?dDF8!ev)d#s#`TWn4I3TfLf@e`YtAb~hNQ27Di~J3liC5V_pZW4{&AsyDX8w~l^IgB{ zw}1b^=mT6E7i1UL&QnpJ8@rz2v}4tle#5`X^E_!|b|KQ^M$M+X(&wrnk`uc}z?Q1=?ld_^fp9L~Z zTH?;=F-h((H_+>QHUfidFGE85TfQGvxqdsWAI#3rKlGMyaW~_E2 zpuxa+U@=~S7yp^hSUy+(ddl)Sd#lf+-&zcwmliXqc=p#Z_;9bbn~^>#>&DG5|6+Db z`JP<0^`f}>kL?XdcSYQfpD!EM@Koimfqe0e)J1hyTXi3CT#di7^ViJnuMbAwklTFr zwe7F#EI0mafdu1XwNq{FzG|kx!2F|N_UD$>a*K&oYyP}p)&Fy)R4*?e^s!*T$2*MI z_V~EZPC6(0!S=xo*Y#GH^262!#T@#6%0l**-Rxce9^s*VBo)Ut zKi7*}`a`H-W|DE{?j2j_zI?QD>aA6`40dhw-FPPT(sK9k_)CgYzH5I)lZxGNUpyfti}Y)78&qol`;+04bO5r2qf` literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1_client_core.html b/docs/html/classawsiotsdk_1_1_client_core.html new file mode 100644 index 0000000..67e02d5 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_client_core.html @@ -0,0 +1,455 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::ClientCore Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

Client Core Class. + More...

+ +

#include <ClientCore.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

ClientCore (const ClientCore &)=delete
 
ClientCore (ClientCore &&)=delete
 
+ClientCoreoperator= (const ClientCore &) &=delete
 
+ClientCoreoperator= (ClientCore &&) &=delete
 
void SetProcessQueuedActions (bool process_queued_actions)
 Enable/Disable processing of queued actions. More...
 
ResponseCode RegisterAction (ActionType action_type, Action::CreateHandlerPtr p_action_create_handler)
 Register Action for execution by Client Core. More...
 
ResponseCode PerformAction (ActionType action_type, std::shared_ptr< ActionData > action_data, std::chrono::milliseconds action_reponse_timeout)
 Perform Action in Blocking Mode. More...
 
ResponseCode PerformActionAsync (ActionType action_type, std::shared_ptr< ActionData > action_data, uint16_t &action_id_out)
 Perform Action in Asynchronous Mode. More...
 
ResponseCode CreateActionRunner (ActionType action_type, std::shared_ptr< ActionData > action_data)
 Create Thread Task to execute request Action Type. More...
 
void GracefulShutdownAllThreadTasks ()
 Waits for all threads to complete their tasks and then clears them. More...
 
+ + + + +

+Static Public Member Functions

static std::unique_ptr< ClientCoreCreate (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ClientCoreState > p_state)
 Factory method for creating a Client Core instance. More...
 
+ + + + +

+Protected Member Functions

 ClientCore (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ClientCoreState > p_state)
 Constructor. More...
 
+ + + + + + + +

+Protected Attributes

+util::Map< ActionType, std::shared_ptr< util::Threading::ThreadTask > > thread_map_
 Map for storing currently active threads.
 
+std::shared_ptr< ClientCoreStatep_client_core_state_
 Client Core state instance.
 
+

Detailed Description

+

Defining a class for the Core Client. This class is responsible for performing both Sync and Async actions It contains the action queue, an action registry and a map to keep track of running threads It also keeps track of the Common Action State as well as the Network connection

+

Constructor & Destructor Documentation

+ +

◆ ClientCore()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
awsiotsdk::ClientCore::ClientCore (std::shared_ptr< NetworkConnectionp_network_connection,
std::shared_ptr< ClientCoreStatep_state 
)
+
+protected
+
+
Parameters
+ + + +
p_network_connection- Network Connection instance to be passed as argument to actions
p_state- Client Core state instance
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< ClientCore > awsiotsdk::ClientCore::Create (std::shared_ptr< NetworkConnectionp_network_connection,
std::shared_ptr< ClientCoreStatep_state 
)
+
+static
+
+
Parameters
+ + + +
p_network_connection- Network Connection instance to be passed as argument to actions
p_state- Client Core state instance
+
+
+
Returns
std::unique_ptr<ClientCore> instance
+ +
+
+ +

◆ CreateActionRunner()

+ +
+
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::ClientCore::CreateActionRunner (ActionType action_type,
std::shared_ptr< ActionDataaction_data 
)
+
+

This API will create a new instance of the Action Type that is request in the API call and call perform action on that instance in a new Thread Task. If the Action is Thread Aware, it will be executed until it finishes or the Thread Task is terminated (Usually on exit).

+
Parameters
+ + + +
action_type- Type of the Action to be executed. Must be registered
action_data- Action Data to be passed as argument to the Action instance
+
+
+
Returns
ResponseCode indicating result of the API call
+ +
+
+ +

◆ GracefulShutdownAllThreadTasks()

+ +
+
+ + + + + + + +
void awsiotsdk::ClientCore::GracefulShutdownAllThreadTasks ()
+
+

This API will go through all the active Thread Tasks and waits for them to complete their respective tasks. The completed Thread Task is then cleared.

+ +
+
+ +

◆ PerformAction()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::ClientCore::PerformAction (ActionType action_type,
std::shared_ptr< ActionDataaction_data,
std::chrono::milliseconds action_reponse_timeout 
)
+
+

This API will perform the Action in Blocking mode. The timeout for the action to give a valid response is provided as an argument. This API stops processing of all outbound actions until Response is received for the requested Action Type

+
Parameters
+ + + + +
action_type- Type of the Action to be executed. Must be registered
action_data- Action Data to be passed as argument to the Action instance
action_reponse_timeout- Timeout for this API call
+
+
+
Returns
ResponseCode indicating result of the API call
+ +
+
+ +

◆ PerformActionAsync()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::ClientCore::PerformActionAsync (ActionType action_type,
std::shared_ptr< ActionDataaction_data,
uint16_t & action_id_out 
)
+
+

This API will enqueue the the Action to be performed Asynchronously. If an Async Ack Handler is provided in the Action data, and the Action expects to receive an Ack, the calling Action will be notified using Action ID and Response Code. This API returns Action ID as an out parameter

+
Parameters
+ + + + +
action_type- Type of the Action to be executed. Must be registered
action_data- Action Data to be passed as argument to the Action instance
[out]action_id_out- Action ID assigned to this request
+
+
+
Returns
ResponseCode indicating result of the enqueue operation
+ +
+
+ +

◆ RegisterAction()

+ +
+
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::ClientCore::RegisterAction (ActionType action_type,
Action::CreateHandlerPtr p_action_create_handler 
)
+
+

This function allows Actions to be registered to be executed at a later stage by Client Core. Actions must be registered before PerformAction can be called using the Action Type. This also applies to Creating Action runners which allow running Actions in dedicated Thread Tasks. Only one Action can be registered to each Action Type. If a second call is made with the same Action Type, the previous registration will be overwritten

+
Parameters
+ + + +
action_type- Type of the Action that will be creating using the provided handler
p_action_create_handler- Factory method pointer which returns an Action instance
+
+
+
Returns
ResponseCode indicating result of the API call
+ +
+
+ +

◆ SetProcessQueuedActions()

+ +
+
+ + + + + +
+ + + + + + + + +
void awsiotsdk::ClientCore::SetProcessQueuedActions (bool process_queued_actions)
+
+inline
+
+
Parameters
+ + +
process_queued_actions- boolean value indicating new state
+
+
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_client_core_state.html b/docs/html/classawsiotsdk_1_1_client_core_state.html new file mode 100644 index 0000000..fc2d0ef --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_client_core_state.html @@ -0,0 +1,931 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::ClientCoreState Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

Client Core State Class. + More...

+ +

#include <ClientCoreState.hpp>

+
+Inheritance diagram for awsiotsdk::ClientCoreState:
+
+
+ + +awsiotsdk::ActionState +awsiotsdk::mqtt::ClientState + +
+ + + + + +

+Data Structures

class  PendingAckData
 Pending Ack Data Class. More...
 
+ + + + + + + + + + +

+Public Types

typedef std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< DisconnectCallbackContextData > p_app_handler_data)> ApplicationDisconnectCallbackPtr
 Define Handler for Disconnect Callbacks. More...
 
typedef std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< ReconnectCallbackContextData > p_app_handler_data, ResponseCode reconnect_result)> ApplicationReconnectCallbackPtr
 Define Handler for Reconnect Callbacks. More...
 
typedef std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< ResubscribeCallbackContextData > p_app_handler_data, ResponseCode resubscribe_result)> ApplicationResubscribeCallbackPtr
 Define Handler for Resubscribe Callbacks. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual uint16_t GetNextActionId ()
 Overload for Get next Action ID. More...
 
size_t GetMaxActionQueueSize ()
 Get current value of maximum action queue size. More...
 
void SetMaxActionQueueSize (size_t max_queue_size)
 Set max size for action queue. More...
 
std::shared_ptr< std::atomic_bool > GetCoreExecutionSyncPoint ()
 Get pointer to sync point used for execution status of the Core instance. More...
 
void SetProcessQueuedActions (bool process_queued_actions)
 Sets whether the Client is allowed to process queue actions. More...
 
bool CanProcessQueuedActions ()
 Get whether the Client can process queued actions. More...
 
void ProcessOutboundActionQueue (std::shared_ptr< std::atomic_bool > thread_task_out_sync)
 Process the outbound action queue. More...
 
ResponseCode PerformAction (ActionType action_type, std::shared_ptr< ActionData > action_data, std::chrono::milliseconds action_reponse_timeout)
 Perform Action in Blocking Mode. More...
 
ResponseCode RegisterAction (ActionType action_type, Action::CreateHandlerPtr p_action_create_handler, std::shared_ptr< ActionState > p_action_state)
 Register Action for execution by Client Core. More...
 
ResponseCode GetActionCreateHandler (ActionType action_type, Action::CreateHandlerPtr *p_action_create_handler)
 Get the Create Factory Method for the specified action type. More...
 
ResponseCode EnqueueOutboundAction (ActionType action_type, std::shared_ptr< ActionData > action_data, uint16_t &action_id_out)
 Enqueue Action for processing in Outbound Queue. More...
 
ResponseCode RegisterPendingAck (uint16_t action_id, ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler)
 Register Ack Handler for provided action id. More...
 
void DeletePendingAck (uint16_t action_id)
 Delete Ack Handler for specified Action ID. More...
 
void ForwardReceivedAck (uint16_t action_id, ResponseCode rc)
 Call registered Ack handler if it exists for specified Packet id. More...
 
void DeleteExpiredAcks ()
 Delete all expired Acks. More...
 
void ClearRegisteredActions ()
 Clears all registered Actions. More...
 
void ClearOutboundActionQueue ()
 Clears all pending outbound Actions. More...
 
ClientCoreState ()
 Default Constructor.
 
+virtual ~ClientCoreState ()
 Destructor.
 
ClientCoreState (const ClientCoreState &)=delete
 
ClientCoreState (ClientCoreState &&)=delete
 
+ClientCoreStateoperator= (const ClientCoreState &) &=delete
 
+ClientCoreStateoperator= (ClientCoreState &&) &=delete
 
- Public Member Functions inherited from awsiotsdk::ActionState
virtual uint16_t GetNextActionId ()=0
 Get Action ID of the next Action. More...
 
ActionState (const ActionState &)=delete
 
ActionState (ActionState &&)=delete
 
+ActionStateoperator= (const ActionState &) &=delete
 
+ActionStateoperator= (ActionState &&) &=delete
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

+ApplicationDisconnectCallbackPtr disconnect_handler_ptr_
 Pointer to the Application Disconnect Callback.
 
+std::shared_ptr< DisconnectCallbackContextDatap_disconnect_app_handler_data_
 Data to be passed to the Application Handler.
 
+ApplicationReconnectCallbackPtr reconnect_handler_ptr_
 Pointer to the Application Reconnect Callback.
 
+std::shared_ptr< ReconnectCallbackContextDatap_reconnect_app_handler_data_
 Data to be passed to the Application Handler.
 
+ApplicationResubscribeCallbackPtr resubscribe_handler_ptr_
 Pointer to the Application Resubscribe Callback.
 
+std::shared_ptr< ResubscribeCallbackContextDatap_resubscribe_app_handler_data_
 Data to be passed to the Application Handler.
 
+std::shared_ptr< NetworkConnectionp_network_connection_
 Network connection instance to use for this instance of the Client This is shared between Actions, public to avoid multiple shared pointer operations while passing as argument by ClientCore.
 
+ + + + +

+Protected Member Functions

void SyncActionHandler (uint16_t action_id, ResponseCode rc)
 Internal Action Handler for Sync Action responses. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+std::atomic< uint16_t > next_action_id_
 Atomic, ID of the next Action that will be enqueued.
 
+std::atomic_int cur_core_threads_
 Atomic, Count of currently running core threads.
 
+std::atomic_int max_hardware_threads_
 Atomic, Count of the maximum allowed hardware threads.
 
+std::atomic_size_t max_queue_size_
 Atomic, Current configured max queue size.
 
+std::chrono::seconds ack_timeout_
 Timeout for pending Acks, older Acks are deleted with a failed response.
 
+std::mutex register_action_lock_
 Mutex for Register Action Request flow.
 
+std::mutex ack_map_lock_
 Mutex for Ack Map operations.
 
+std::mutex sync_action_request_lock_
 Mutex for Sync Action Request flow.
 
+std::mutex sync_action_response_lock_
 Mutex for Sync Action Response flow.
 
+std::condition_variable sync_action_response_wait_
 Condition variable used to wake up calling thread on Sync Action response.
 
+ResponseCode sync_action_response_
 Variable to store received Sync Action response.
 
+std::atomic_bool process_queued_actions_
 Atomic, indicates whether currently queued Actions should be processed or not.
 
+std::shared_ptr< std::atomic_bool > continue_execution_
 Atomic, Used to synchronize running threads, false value causes running threads to stop.
 
+util::Map< ActionType, std::unique_ptr< Action > > action_map_
 Map containing currently initialized Action Instances.
 
+util::Map< uint16_t, std::unique_ptr< PendingAckData > > pending_ack_map_
 Map containing currently pending Acks.
 
+util::Map< ActionType, Action::CreateHandlerPtraction_create_handler_map_
 Map containing currently registered Action Types and corrosponding Factories.
 
+util::Queue< std::pair< ActionType, std::shared_ptr< ActionData > > > outbound_action_queue_
 Queue of outbound actions.
 
+

Detailed Description

+

Defining a class for the Core Client State. This class is responsible for maintaing the state information for the core client It can also be extended to provide state information to Actions. It contains the action queue, an action registry and also keeps track of the Common Action State as well as the Network connection

+

Member Typedef Documentation

+ +

◆ ApplicationDisconnectCallbackPtr

+ +
+
+ + + + +
typedef std::function<ResponseCode(util::String mqtt_client_id, std::shared_ptr<DisconnectCallbackContextData> p_app_handler_data)> awsiotsdk::ClientCoreState::ApplicationDisconnectCallbackPtr
+
+

This handler is used to provide notification to the application when a disconnect occurs NOTE: This handler should be NON-BLOCKING

+ +
+
+ +

◆ ApplicationReconnectCallbackPtr

+ +
+
+ + + + +
typedef std::function<ResponseCode(util::String mqtt_client_id, std::shared_ptr<ReconnectCallbackContextData> p_app_handler_data, ResponseCode reconnect_result)> awsiotsdk::ClientCoreState::ApplicationReconnectCallbackPtr
+
+

This handler is used to provide notification to the application when a reconnect occurs NOTE: This handler should be NON-BLOCKING

+ +
+
+ +

◆ ApplicationResubscribeCallbackPtr

+ +
+
+ + + + +
typedef std::function<ResponseCode(util::String mqtt_client_id, std::shared_ptr<ResubscribeCallbackContextData> p_app_handler_data, ResponseCode resubscribe_result)> awsiotsdk::ClientCoreState::ApplicationResubscribeCallbackPtr
+
+

This handler is used to provide notification to the application when a resubscribe occurs. NOTE: This handler should be NON-BLOCKING

+ +
+
+

Member Function Documentation

+ +

◆ CanProcessQueuedActions()

+ +
+
+ + + + + +
+ + + + + + + +
bool awsiotsdk::ClientCoreState::CanProcessQueuedActions ()
+
+inline
+
+
Returns
boolean value indicating status
+ +
+
+ +

◆ ClearOutboundActionQueue()

+ +
+
+ + + + + + + +
void awsiotsdk::ClientCoreState::ClearOutboundActionQueue ()
+
+

Utility method to remove all pending outbound actions registered by the client. Also helps in breaking out of cyclic reference introduced when EnqueueOutboundAction is called.

+ +
+
+ +

◆ ClearRegisteredActions()

+ +
+
+ + + + + + + +
void awsiotsdk::ClientCoreState::ClearRegisteredActions ()
+
+

Utility method to remove all registered actions by the client. Also helps in breaking out of cyclic reference introduced when RegisterAction is called.

+ +
+
+ +

◆ DeleteExpiredAcks()

+ +
+
+ + + + + + + +
void awsiotsdk::ClientCoreState::DeleteExpiredAcks ()
+
+

Deletes all Acks where the timeouts have expired. Responds with Code indicating request timeout

+ +
+
+ +

◆ DeletePendingAck()

+ +
+
+ + + + + + + + +
void awsiotsdk::ClientCoreState::DeletePendingAck (uint16_t action_id)
+
+
Parameters
+ + +
action_id- Action ID
+
+
+ +
+
+ +

◆ EnqueueOutboundAction()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::ClientCoreState::EnqueueOutboundAction (ActionType action_type,
std::shared_ptr< ActionDataaction_data,
uint16_t & action_id_out 
)
+
+
Parameters
+ + + + +
action_type- Type of the Action
action_data- Data to be passed to perform Action
action_id_out[out]- Action ID that was assigned to this action by the Client
+
+
+
Returns
ResponseCode indicating result of the API call
+ +
+
+ +

◆ ForwardReceivedAck()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void awsiotsdk::ClientCoreState::ForwardReceivedAck (uint16_t action_id,
ResponseCode rc 
)
+
+
Parameters
+ + + +
action_id- Action ID
rc- Response Code to pass to the Handler if found
+
+
+ +
+
+ +

◆ GetActionCreateHandler()

+ +
+
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::ClientCoreState::GetActionCreateHandler (ActionType action_type,
Action::CreateHandlerPtrp_action_create_handler 
)
+
+
Parameters
+ + + +
action_type- Type of the Action for which the handler is required
p_action_create_handler[out]- Create factory method for this Action
+
+
+
Returns
ResponseCode indicating result of the API call
+ +
+
+ +

◆ GetCoreExecutionSyncPoint()

+ +
+
+ + + + + +
+ + + + + + + +
std::shared_ptr< std::atomic_bool > awsiotsdk::ClientCoreState::GetCoreExecutionSyncPoint ()
+
+inline
+
+

This sync point is used to indicate SDK is still continuing execution. Set to false when exiting

+
Returns
std::shared_ptr<std::atomic_bool> pointer to the sync point
+ +
+
+ +

◆ GetMaxActionQueueSize()

+ +
+
+ + + + + +
+ + + + + + + +
size_t awsiotsdk::ClientCoreState::GetMaxActionQueueSize ()
+
+inline
+
+
Returns
size_t max_queue_size_
+ +
+
+ +

◆ GetNextActionId()

+ +
+
+ + + + + +
+ + + + + + + +
virtual uint16_t awsiotsdk::ClientCoreState::GetNextActionId ()
+
+inlinevirtual
+
+
Returns
uint16_t Action ID
+ +

Implements awsiotsdk::ActionState.

+ +

Reimplemented in awsiotsdk::mqtt::ClientState.

+ +
+
+ +

◆ PerformAction()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::ClientCoreState::PerformAction (ActionType action_type,
std::shared_ptr< ActionDataaction_data,
std::chrono::milliseconds action_reponse_timeout 
)
+
+

This API will perform the Action in Blocking mode. The timeout for the action to give a valid response is provided as an argument. This API stops processing of all outbound actions until Response is received for the requested Action Type

+
Parameters
+ + + + +
action_type- Type of the Action to be executed. Must be registered
action_data- Action Data to be passed as argument to the Action instance
action_reponse_timeout- Timeout for this API call
+
+
+
Returns
ResponseCode indicating result of the API call
+ +
+
+ +

◆ ProcessOutboundActionQueue()

+ +
+
+ + + + + + + + +
void awsiotsdk::ClientCoreState::ProcessOutboundActionQueue (std::shared_ptr< std::atomic_bool > thread_task_out_sync)
+
+

This function processes the actions queued up in the Outbound action queue. The function accepts a Sync point that can be used to control execution in a separate thread. If the value is set to false for the sync point, the function will perform one action from the queue. This puts the running thread to sleep if there are no queued up actions. DO NOT call from main thread unless you have a separate thread to queue up actions

+
Parameters
+ + +
thread_task_out_sync
+
+
+

process_queued_actions_ ||

+ +
+
+ +

◆ RegisterAction()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::ClientCoreState::RegisterAction (ActionType action_type,
Action::CreateHandlerPtr p_action_create_handler,
std::shared_ptr< ActionStatep_action_state 
)
+
+

This function allows Actions to be registered to be executed at a later stage by Client Core. Actions must be registered before PerformAction can be called using the Action Type. This also applies to Creating Action runners which allow running Actions in dedicated Thread Tasks. Only one Action can be registered to each Action Type. If a second call is made with the same Action Type, the previous registration will be overwritten

+
Parameters
+ + + + +
action_type- Type of the Action that will be created using the provided handler
p_action_create_handler- Factory method pointer which returns an Action instance
p_action_state- Shared_ptr to use as argument for Action create
+
+
+
Returns
ResponseCode indicating result of the API call
+ +
+
+ +

◆ RegisterPendingAck()

+ +
+
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::ClientCoreState::RegisterPendingAck (uint16_t action_id,
ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler 
)
+
+
Parameters
+ + + +
action_id- Action ID
p_async_ack_handler- Handler to call on response
+
+
+
Returns
ResponseCode indicating result of the API call
+ +
+
+ +

◆ SetMaxActionQueueSize()

+ +
+
+ + + + + +
+ + + + + + + + +
void awsiotsdk::ClientCoreState::SetMaxActionQueueSize (size_t max_queue_size)
+
+inline
+
+
Parameters
+ + +
size_tmax_queue_size
+
+
+ +
+
+ +

◆ SetProcessQueuedActions()

+ +
+
+ + + + + +
+ + + + + + + + +
void awsiotsdk::ClientCoreState::SetProcessQueuedActions (bool process_queued_actions)
+
+inline
+
+
Parameters
+ + +
process_queued_actionsvalue to set it to
+
+
+ +
+
+ +

◆ SyncActionHandler()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void awsiotsdk::ClientCoreState::SyncActionHandler (uint16_t action_id,
ResponseCode rc 
)
+
+protected
+
+
Parameters
+ + + +
action_id- ID of the Action that response was received for
rc- Received response
+
+
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_client_core_state.png b/docs/html/classawsiotsdk_1_1_client_core_state.png new file mode 100644 index 0000000000000000000000000000000000000000..4ac8c09c41ac8a1846b3728672e779ca64947f5e GIT binary patch literal 1058 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$TgBeJMzY}l)QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#Nt>db&7It74-^M9FpHnVoMR<-;MJ>4BKPXUWLcrFblFSIk2(JqHfuh zvo90=cB}MGYtWsxjjzXLR$yIUXXLewv)^)DUUk(qZkffzsx^mha&KF1y)Lsz=6dzU zmL-zYHMg~ImwpkR?r@t?yg|$F{;Ho7uRK;es#?5w!L!;opJU#+hpuA?oqWbp(Q~o& zf!9G+S04!0#q#ZEshO1YIC=LDr<;1$)|#xp8oTE6tw&Q#Y+ol$y5q{|F-eY9!Lv%F zLFMJe{R}gT&q;GL>{}(y@Mg_j#`yJTIm_8=KEL(dVVh85$nZm?f#E?Q15<-LBL@Re z8$$(tfxq<)noGBAp5Ws0EtH|F1E^X_N$xL0h0msHUL zt8d=kAe!WO{n@WQ9VeD-el40{>CyiU7J5v59=9aq@>g50Ivd@wt8tg*-jg$o8+4Zd z!%rp2?WduzRKVPV!bw$3*{e5azMk?(Wzq3dXX8HnVhc5mV|;Z*e&;UsHAh#8&G{A> zxu0ETVIE`XW0|FiN;*L?M%TNamB@dq47}F%T--ckcFMy7Hj~_<_-5mWhYl|}{cVBe z53Yi#Nz&&_3SWC%KDv17v;PMd+aKTWn1BD?(NotxdjGl>tE04OF;jrck;M!mf*&;) zTwQE_i8BOyWhOHo2>;5|Fn6oj{5dt(PO{zT)4ab63yriRHg{=-Z6kxc3+L zs~vc@d@Zx`#Iz~$rh#TQIYuiNGG2YizVYGpYnDeluOvTB*ROcEd|h#2^D3$ShOXy) z8=j?F-4ZEY*YLa{S$yv+kNuHby$U(+Yd + + + + + + +AWS IoT C++ SDK: awsiotsdk::ClientCoreState::PendingAckData Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::ClientCoreState::PendingAckData Class Reference
+
+
+ +

Pending Ack Data Class. + More...

+ +

#include <ClientCoreState.hpp>

+ + + + + + + + +

+Data Fields

+std::chrono::system_clock::time_point time_of_request_
 Time at which the request was sent.
 
+ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to which response must be sent.
 
+

Detailed Description

+

Defining an internal class for storing information about Pending Acks.

+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_config_common.html b/docs/html/classawsiotsdk_1_1_config_common.html new file mode 100644 index 0000000..7b6a5fa --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_config_common.html @@ -0,0 +1,190 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::ConfigCommon Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + + + +

+Static Public Member Functions

+static ResponseCode InitializeCommon (const util::String &config_file_path)
 
+static util::String GetCurrentPath ()
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Attributes

+static uint16_t endpoint_mqtt_port_
 
+static uint16_t endpoint_https_port_
 
+static uint16_t endpoint_greengrass_discovery_port_
 
+static util::String endpoint_
 
+static util::String root_ca_path_
 
+static util::String client_cert_path_
 
+static util::String client_key_path_
 
+static util::String base_client_id_
 
+static util::String thing_name_
 
+static util::String aws_region_
 
+static util::String aws_access_key_id_
 
+static util::String aws_secret_access_key_
 
+static util::String aws_session_token_
 
+static std::chrono::milliseconds mqtt_command_timeout_
 
+static std::chrono::milliseconds tls_handshake_timeout_
 
+static std::chrono::milliseconds tls_read_timeout_
 
+static std::chrono::milliseconds tls_write_timeout_
 
+static std::chrono::milliseconds discover_action_timeout_
 
+static std::chrono::seconds keep_alive_timeout_secs_
 
+static bool is_clean_session_
 
+static std::chrono::seconds minimum_reconnect_interval_
 
+static std::chrono::seconds maximum_reconnect_interval_
 
+static size_t max_pending_acks_
 
+static size_t maximum_outgoing_action_queue_length_
 
+static uint32_t action_processing_rate_hz_
 
+ + + +

+Static Protected Member Functions

+static void LogParseError (const ResponseCode &response_code, const util::JsonDocument &config, util::String key)
 
+ + + +

+Static Protected Attributes

+static util::JsonDocument sdk_config_json_
 
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_connectivity_info.html b/docs/html/classawsiotsdk_1_1_connectivity_info.html new file mode 100644 index 0000000..5adb747 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_connectivity_info.html @@ -0,0 +1,205 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::ConnectivityInfo Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::ConnectivityInfo Class Reference
+
+
+ + + + + + + + + + + + + +

+Public Member Functions

ConnectivityInfo (const ConnectivityInfo &)=default
 
ConnectivityInfo (ConnectivityInfo &&)=default
 
+ConnectivityInfooperator= (const ConnectivityInfo &) &=default
 
+ConnectivityInfooperator= (ConnectivityInfo &&) &=default
 
 ConnectivityInfo (util::String group_name, util::String ggc_name, util::String id, util::String host_address, uint16_t port, util::String metadata)
 Constructor. More...
 
+ + + + + + + + + + + + + + + + + + + +

+Data Fields

+util::String group_name_
 Name of the group that the GGC belongs to.
 
+util::String ggc_name_
 Name of the GGC in the group.
 
+util::String id_
 ID of the connectivity info.
 
+util::String host_address_
 Host address of the GGC.
 
+util::String metadata_
 User defined metadata string.
 
+uint16_t port_
 port of the GGC to connect to
 
+

Constructor & Destructor Documentation

+ +

◆ ConnectivityInfo()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::ConnectivityInfo::ConnectivityInfo (util::String group_name,
util::String ggc_name,
util::String id,
util::String host_address,
uint16_t port,
util::String metadata 
)
+
+inline
+
+
Parameters
+ + + + + + +
group_name- name of the group that the GGC belongs to
ggc_name- name of the GGC in the above thing group
host_address- host address of the GGC
port- port number of the GGC
metadata- user defined metadata string
+
+
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_disconnect_callback_context_data.html b/docs/html/classawsiotsdk_1_1_disconnect_callback_context_data.html new file mode 100644 index 0000000..ee217aa --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_disconnect_callback_context_data.html @@ -0,0 +1,92 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::DisconnectCallbackContextData Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
awsiotsdk::DisconnectCallbackContextData Class Referenceabstract
+
+
+ +

MQTT Disconnect Callback Context Data. + More...

+ +

#include <ClientCoreState.hpp>

+

Detailed Description

+

This class can be used to provide customer context data to be provided with each disconnect callback. Uses a pure virtual destructor to allow for polymorphism

+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_discovery_response.html b/docs/html/classawsiotsdk_1_1_discovery_response.html new file mode 100644 index 0000000..b57c0db --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_discovery_response.html @@ -0,0 +1,305 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::DiscoveryResponse Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::DiscoveryResponse Class Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

DiscoveryResponse (const DiscoveryResponse &)=delete
 
DiscoveryResponse (DiscoveryResponse &&)=delete
 
+DiscoveryResponseoperator= (const DiscoveryResponse &) &=delete
 
+DiscoveryResponseoperator= (DiscoveryResponse &&) &=delete
 
 DiscoveryResponse (util::JsonDocument response_document)
 Constructor. More...
 
util::JsonDocument GetResponseDocument ()
 Return the full Discovery Response Json. More...
 
void SetResponseDocument (util::JsonDocument response_document)
 Set the Discovery Response Json Document in the Discovery Response Object. More...
 
ResponseCode GetParsedResponse (util::Vector< ConnectivityInfo > &connectivity_info_list, util::Map< util::String, util::Vector< util::String > > &root_ca_map)
 Get the parsed discovery response. More...
 
ResponseCode WriteToPath (util::String output_file_absolute_path)
 Write the complete Discovery Response Json out to a file. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Attributes

+static const util::String GROUP_ARRAY_KEY = "GGGroups"
 Key for array of groups.
 
+static const util::String GROUP_ID_KEY = "GGGroupId"
 Key for group ID.
 
+static const util::String GGC_ARRAY_KEY = "Cores"
 Key for array of GGCs in the group.
 
+static const util::String GGC_THING_ARN_KEY = "thingArn"
 Key for thing ARN of the GGC.
 
+static const util::String ROOT_CA_KEY = "CAs"
 Key for the root CAs of the group.
 
+static const util::String CONNECTIVITY_INFO_ARRAY_KEY = "Connectivity"
 Key for the array of connectivity information.
 
+static const util::String ID_KEY = "Id"
 Key for the ID in the connectivity information.
 
+static const util::String HOST_ADDRESS_KEY = "HostAddress"
 Key for host address in the connectivity information.
 
+static const util::String PORT_KEY = "PortNumber"
 Key for port in the connectivity information.
 
+static const util::String METADATA_KEY = "Metadata"
 Key for metadata for the connectivity information.
 
+static const util::String DEFAULT_DISCOVERY_RESPONSE_FILE_NAME = "discovery_response.json"
 Default file into which the complete discovery response is stored.
 
+ + + + +

+Protected Attributes

+util::JsonDocument response_document_
 Json document that contains the complete Discovery Response.
 
+

Constructor & Destructor Documentation

+ +

◆ DiscoveryResponse()

+ +
+
+ + + + + + + + +
awsiotsdk::DiscoveryResponse::DiscoveryResponse (util::JsonDocument response_document)
+
+
Parameters
+ + +
response_document- Json document containing full Discovery Response
+
+
+ +
+
+

Member Function Documentation

+ +

◆ GetParsedResponse()

+ +
+
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::DiscoveryResponse::GetParsedResponse (util::Vector< ConnectivityInfo > & connectivity_info_list,
util::Map< util::String, util::Vector< util::String > > & root_ca_map 
)
+
+

Get the parse vector of all the connectivity information present in the Discovery Response Json along with a map of all the root CAs that correspond the the groups present in the Discovery Response. Returns SUCCESS if parsed successfully or DISCOVER_RESPONSE_UNEXPECTED_JSON_STRUCTURE_ERROR if the Json structure cannot be parsed

+
Parameters
+ + + +
connectivity_info_list- vector in which the connectivity information is stored
root_ca_map- mapping between groups and filenames of the root CAs
+
+
+
Returns
ResponseCode
+ +
+
+ +

◆ GetResponseDocument()

+ +
+
+ + + + + + + +
util::JsonDocument awsiotsdk::DiscoveryResponse::GetResponseDocument ()
+
+
Returns
JsonDocument
+ +
+
+ +

◆ SetResponseDocument()

+ +
+
+ + + + + + + + +
void awsiotsdk::DiscoveryResponse::SetResponseDocument (util::JsonDocument response_document)
+
+
Parameters
+ + +
response_document
+
+
+ +
+
+ +

◆ WriteToPath()

+ +
+
+ + + + + + + + +
ResponseCode awsiotsdk::DiscoveryResponse::WriteToPath (util::String output_file_absolute_path)
+
+

Function to write out the whole Discovery Response Json out to a file that can be consumed by other applications directly. Returns SUCCESS if it was able to write to the file correctly. Otherwise throws FILE_OPEN_ERROR if the file cannot be opened to write to it or FILE_NAME_INVALID if the file name passed in is invalid.

+
Parameters
+ + +
output_file_absolute_path- absolute file path to which the Json will be written out to
+
+
+
Returns
ResponseCode
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_greengrass_mqtt_client.html b/docs/html/classawsiotsdk_1_1_greengrass_mqtt_client.html new file mode 100644 index 0000000..2ff181f --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_greengrass_mqtt_client.html @@ -0,0 +1,677 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::GreengrassMqttClient Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::GreengrassMqttClient Class Reference
+
+
+ +

MQTT Client Class. + More...

+ +

#include <GreengrassMqttClient.hpp>

+
+Inheritance diagram for awsiotsdk::GreengrassMqttClient:
+
+
+ + +awsiotsdk::MqttClient + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

GreengrassMqttClient (const GreengrassMqttClient &)=delete
 
GreengrassMqttClient (GreengrassMqttClient &&)=default
 
+GreengrassMqttClientoperator= (const GreengrassMqttClient &) &=delete
 
+GreengrassMqttClientoperator= (GreengrassMqttClient &&) &=default
 
virtual ResponseCode Discover (std::chrono::milliseconds action_reponse_timeout, std::unique_ptr< Utf8String > p_thing_name, DiscoveryResponse &discovery_response)
 Performs a Sync Discovery operation. More...
 
- Public Member Functions inherited from awsiotsdk::MqttClient
MqttClient (const MqttClient &)=delete
 
MqttClient (MqttClient &&)=default
 
+MqttClientoperator= (const MqttClient &) &=delete
 
+MqttClientoperator= (MqttClient &&) &=default
 
virtual ResponseCode Connect (std::chrono::milliseconds action_response_timeout, bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg)
 Perform Sync Connect. More...
 
virtual ResponseCode Connect (std::chrono::milliseconds action_response_timeout, bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg, bool is_metrics_enabled)
 Perform Sync Connect. More...
 
virtual ResponseCode Disconnect (std::chrono::milliseconds action_response_timeout)
 Perform Sync Disconnect. More...
 
virtual ResponseCode Publish (std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, mqtt::QoS qos, const util::String &payload, std::chrono::milliseconds action_response_timeout)
 Perform Sync Publish. More...
 
virtual ResponseCode Subscribe (util::Vector< std::shared_ptr< mqtt::Subscription > > subscription_list, std::chrono::milliseconds action_response_timeout)
 Perform Sync Subscribe. More...
 
virtual ResponseCode Unsubscribe (util::Vector< std::unique_ptr< Utf8String > > topic_list, std::chrono::milliseconds action_response_timeout)
 Perform Sync Unsubscribe. More...
 
virtual ResponseCode PublishAsync (std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, mqtt::QoS qos, const util::String &payload, ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler, uint16_t &packet_id_out)
 Perform Async Publish. More...
 
virtual ResponseCode SubscribeAsync (util::Vector< std::shared_ptr< mqtt::Subscription > > subscription_list, ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler, uint16_t &packet_id_out)
 Perform Async Subscribe. More...
 
virtual ResponseCode UnsubscribeAsync (util::Vector< std::unique_ptr< Utf8String > > topic_list, ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler, uint16_t &packet_id_out)
 Perform Async Unsubscribe. More...
 
virtual bool IsConnected ()
 Check if Client is in Connected state. More...
 
virtual void SetAutoReconnectEnabled (bool value)
 Sets the auto-reconnect flag for the client. More...
 
virtual bool IsAutoReconnectEnabled ()
 returns the current state of the auto-reconnect flag More...
 
virtual std::chrono::seconds GetMinReconnectBackoffTimeout ()
 returns the minimum back-off time value More...
 
virtual void SetMinReconnectBackoffTimeout (std::chrono::seconds min_reconnect_backoff_timeout)
 sets the minimum back-off time value More...
 
virtual std::chrono::seconds GetMaxReconnectBackoffTimeout ()
 returns the maximum back-off time value More...
 
virtual void SetMaxReconnectBackoffTimeout (std::chrono::seconds max_reconnect_backoff_timeout)
 sets the maximum back-off time value More...
 
virtual ResponseCode SetDisconnectCallbackPtr (ClientCoreState::ApplicationDisconnectCallbackPtr p_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_app_handler_data)
 Set the callback function for disconnects. More...
 
virtual ResponseCode SetReconnectCallbackPtr (ClientCoreState::ApplicationReconnectCallbackPtr p_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_app_handler_data)
 Set the callback function for reconnects. More...
 
virtual ResponseCode SetResubscribeCallbackPtr (ClientCoreState::ApplicationResubscribeCallbackPtr p_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_app_handler_data)
 Set the callback function for resubscribes. More...
 
+ + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static std::unique_ptr< GreengrassMqttClientCreate (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)
 Create factory method. Returns a unique instance of GreengrassMqttClient. More...
 
static std::unique_ptr< GreengrassMqttClientCreate (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)
 Create factory method, with additional parameters for disconnect callback. More...
 
static std::unique_ptr< GreengrassMqttClientCreate (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)
 Create factory method, with additional parameters for disconnect, reconnect and resubscribe callbacks. More...
 
- Static Public Member Functions inherited from awsiotsdk::MqttClient
static std::unique_ptr< MqttClientCreate (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)
 Create factory method. Returns a unique instance of MqttClient. More...
 
static std::unique_ptr< MqttClientCreate (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)
 Create factory method, with additional parameters for disconnect callback. More...
 
static std::unique_ptr< MqttClientCreate (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr p_resubscribec_callback, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)
 Create factory method, with additional parameters for disconnect, reconnect and resubscribe callbacks. More...
 
+ + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

 GreengrassMqttClient (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)
 Constructor. More...
 
 GreengrassMqttClient (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)
 Constructor. More...
 
 GreengrassMqttClient (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)
 Constructor. More...
 
- Protected Member Functions inherited from awsiotsdk::MqttClient
 MqttClient (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)
 Constructor. More...
 
 MqttClient (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)
 Constructor. More...
 
 MqttClient (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)
 Constructor. More...
 
+ + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from awsiotsdk::MqttClient
+std::unique_ptr< ClientCorep_client_core_
 Unique pointer to the Client Core instance.
 
+std::shared_ptr< mqtt::ClientStatep_client_state_
 MQTT Client state.
 
+

Detailed Description

+

Defining a class for the MQTT Client. This class is a wrapper on the Core Client and creates a Client Core instance with MQTT Actions It also provides APIs to perform MQTT operations directly on the Core Client instance

+

Constructor & Destructor Documentation

+ +

◆ GreengrassMqttClient() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::GreengrassMqttClient::GreengrassMqttClient (std::shared_ptr< NetworkConnectionp_network_connection,
std::chrono::milliseconds mqtt_command_timeout,
ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr,
std::shared_ptr< DisconnectCallbackContextDatap_disconnect_app_handler_data,
ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr,
std::shared_ptr< ReconnectCallbackContextDatap_reconnect_app_handler_data,
ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr,
std::shared_ptr< ResubscribeCallbackContextDatap_resubscribe_app_handler_data 
)
+
+protected
+
+
Parameters
+ + + + + + + + + +
p_network_connection- Network connection to use with this MQTT Client instance
mqtt_command_timeout- Command timeout in milliseconds for internal blocking operations (Reconnect and Resubscribe)
disconnect_callback_ptr- pointer of the disconnect callback handler
p_disconnect_app_handler_data- context data for the disconnect handler
reconnect_callback_ptr- pointer of the reconnect callback handler
p_reconnect_app_handler_data- context data for the reconnect handler
resubscribe_callback_ptr- pointer of the resubscribe callback handler
p_resubscribe_app_handler_data- context data for the resubscribe handler
+
+
+ +
+
+ +

◆ GreengrassMqttClient() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::GreengrassMqttClient::GreengrassMqttClient (std::shared_ptr< NetworkConnectionp_network_connection,
std::chrono::milliseconds mqtt_command_timeout,
ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr,
std::shared_ptr< DisconnectCallbackContextDatap_disconnect_app_handler_data 
)
+
+protected
+
+
Parameters
+ + + + + +
p_network_connection- Network connection to use with this MQTT Client instance
mqtt_command_timeout- Command timeout in milliseconds for internal blocking operations (Reconnect and Resubscribe)
disconnect_callback_ptr_ptr- pointer of the disconnect callback handler
p_disconnect_app_handler_data- context data for the disconnect handler
+
+
+ +
+
+ +

◆ GreengrassMqttClient() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
awsiotsdk::GreengrassMqttClient::GreengrassMqttClient (std::shared_ptr< NetworkConnectionp_network_connection,
std::chrono::milliseconds mqtt_command_timeout 
)
+
+protected
+
+
Parameters
+ + + +
p_network_connection- Network connection to use with this MQTT Client instance
mqtt_command_timeout- Command timeout in milliseconds for internal blocking operations (Reconnect and Resubscribe)
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< GreengrassMqttClient > awsiotsdk::GreengrassMqttClient::Create (std::shared_ptr< NetworkConnectionp_network_connection,
std::chrono::milliseconds mqtt_command_timeout 
)
+
+static
+
+
Parameters
+ + + +
p_network_connection- Network connection to use with this MQTT Client instance
mqtt_command_timeout- Command timeout in milliseconds for internal blocking operations (Reconnect and Resubscribe)
+
+
+
Returns
std::unique_ptr<GreengrassMqttClient> pointing to a unique MQTT client instance
+ +
+
+ +

◆ Create() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::unique_ptr< GreengrassMqttClient > awsiotsdk::GreengrassMqttClient::Create (std::shared_ptr< NetworkConnectionp_network_connection,
std::chrono::milliseconds mqtt_command_timeout,
ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr,
std::shared_ptr< DisconnectCallbackContextDatap_disconnect_app_handler_data 
)
+
+static
+
+
Parameters
+ + + + + +
p_network_connection- Network connection to use with this MQTT Client instance
mqtt_command_timeout- Command timeout in milliseconds for internal blocking operations (Reconnect and Resubscribe)
disconnect_callback_ptr- pointer of the disconnect callback handler
p_disconnect_app_handler_data- context data for the disconnect handler
+
+
+
Returns
std::unique_ptr<MqttClient> pointing to a unique MQTT client instance
+ +
+
+ +

◆ Create() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::unique_ptr< GreengrassMqttClient > awsiotsdk::GreengrassMqttClient::Create (std::shared_ptr< NetworkConnectionp_network_connection,
std::chrono::milliseconds mqtt_command_timeout,
ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr,
std::shared_ptr< DisconnectCallbackContextDatap_disconnect_app_handler_data,
ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr,
std::shared_ptr< ReconnectCallbackContextDatap_reconnect_app_handler_data,
ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr,
std::shared_ptr< ResubscribeCallbackContextDatap_resubscribe_app_handler_data 
)
+
+static
+
+
Parameters
+ + + + + + + + + +
p_network_connection- Network connection to use with this MQTT Client instance
mqtt_command_timeout- Command timeout in milliseconds for internal blocking operations (Reconnect and Resubscribe)
disconnect_callback_ptr- pointer of the disconnect callback handler
p_app_handler_data- context data for the disconnect handler
reconnect_callback_ptr- pointer of the reconnect callback handler
p_reconnect_app_handler_data- context data for the reconnect handler
resubscribe_callback_ptr- pointer of the resubscribe callback handler
p_resubscribe_app_handler_data- context data for the resubscribe handler
+
+
+
Returns
std::unique_ptr<MqttClient> pointing to a unique MQTT client instance
+ +
+
+ +

◆ Discover()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::GreengrassMqttClient::Discover (std::chrono::milliseconds action_reponse_timeout,
std::unique_ptr< Utf8Stringp_thing_name,
DiscoveryResponsediscovery_response 
)
+
+virtual
+
+

Performs a blocking discovery operation to receive the connectivity information for the GGCs in the group this device belongs to. Returns DISCOVERY_RESPONSE_SUCCESS if successful. The action timeout is the time for which the client waits for a response AFTER the request is sent.

+
Parameters
+ + + + +
action_response_timeout
p_thing_name
discovery_response_payload
+
+
+
Returns
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_greengrass_mqtt_client.png b/docs/html/classawsiotsdk_1_1_greengrass_mqtt_client.png new file mode 100644 index 0000000000000000000000000000000000000000..563f7de8732dd84951f6f62a76db1839bee892de GIT binary patch literal 804 zcmeAS@N?(olHy`uVBq!ia0vp^2Z1<%gBeIpU-r-gNJ$6ygt-3y{~ySF@#br3|Doj; z2ATyD)6cv(aNqz?Jb2RO6+k)8k|4ie1|S~{%$a6iVPIfd@9E+gQo;Ck?(4qS3Op_C zom*youYYt|Eha}HbJuQL9iiN1ii|mS$#?eO*p@px>V`*Ak}lIEnbocilajv%H(kh- z<^N{6_4Dp4@^bUbDzf`k{J&IJ7kC!f9EpBuukma3UxtHn>z;hSdFJij$3Hr`ZQZ7^ zN;jpy|CqT=CD&t{`=s?H^A)7FuibRcVORG4n|$WWRZH4d`Ayn$p*m8;qk3n_hV`Gs zo>opf@aQ|oIpc1X?7h=n?cS|DJ}JVqG5V{dmH8|AAqKOk!PAXg5Q` z7BNPKo~ud>4I86a7!1O?85oXb2{If2>SmBw?aIKAyp@9?VGV|&b)rrj!Q76M)UGK_ zSOU~K$s|ml!)v+pw~7y!=b1WA+PB)oQrc5)(ZgejlGWAxdYpXelfL-6{u63@p(y$8 zW*$e`4U^Z<@XYI*cr7+>>Bg7eDw5MenLn*pt?09{J3B36a^`hoN3(pHn*l5`n?igeas?7RH}bYoe^GXo5o+X?;4Aps?QDrV_?T5YGC;j=Ar%X#0Q*BgF6-{lvYxbCf&W8A$LvQ5WQ z+83N^UR@lZxaZ8Ga}BpVYx#0?cTIJzo44Ba)P~(UBy%Xt2(F3OJ#8IbUREs_R3MfiNpA{ Ze2DVAkXGp;e_(oM@O1TaS?83{1OU1saNhs` literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1_jobs.html b/docs/html/classawsiotsdk_1_1_jobs.html new file mode 100644 index 0000000..7dbfcb1 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_jobs.html @@ -0,0 +1,624 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::Jobs Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + + + + + +

+Public Types

enum  JobExecutionTopicType {
+  JOB_UNRECOGNIZED_TOPIC = 0 +, JOB_GET_PENDING_TOPIC +, JOB_START_NEXT_TOPIC +, JOB_DESCRIBE_TOPIC +,
+  JOB_UPDATE_TOPIC +, JOB_NOTIFY_TOPIC +, JOB_NOTIFY_NEXT_TOPIC +, JOB_WILDCARD_TOPIC +
+ }
 
enum  JobExecutionTopicReplyType {
+  JOB_UNRECOGNIZED_TOPIC_TYPE = 0 +, JOB_REQUEST_TYPE +, JOB_ACCEPTED_REPLY_TYPE +, JOB_REJECTED_REPLY_TYPE +,
+  JOB_WILDCARD_REPLY_TYPE +
+ }
 
enum  JobExecutionStatus {
+  JOB_EXECUTION_STATUS_NOT_SET = 0 +, JOB_EXECUTION_QUEUED +, JOB_EXECUTION_IN_PROGRESS +, JOB_EXECUTION_FAILED +,
+  JOB_EXECUTION_SUCCEEDED +, JOB_EXECUTION_CANCELED +, JOB_EXECUTION_REJECTED +, JOB_EXECUTION_UNKNOWN_STATUS = 99 +
+ }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Jobs (const Jobs &)=delete
 
Jobs (Jobs &&)=default
 
+Jobsoperator= (const Jobs &) &=delete
 
+Jobsoperator= (Jobs &&) &=default
 
std::unique_ptr< Utf8StringGetJobTopic (JobExecutionTopicType topicType, JobExecutionTopicReplyType replyType=JOB_REQUEST_TYPE, const util::String &jobId=util::String())
 GetJobTopic. More...
 
ResponseCode SendJobsQuery (JobExecutionTopicType topicType, const util::String &jobId=util::String())
 SendJobsQuery. More...
 
ResponseCode SendJobsStartNext (const util::Map< util::String, util::String > &statusDetailsMap=util::Map< util::String, util::String >())
 SendJobsStartNext. More...
 
ResponseCode SendJobsDescribe (const util::String &jobId=util::String(), int64_t executionNumber=0, bool includeJobDocument=true)
 SendJobsDescribe. More...
 
ResponseCode SendJobsUpdate (const util::String &jobId, JobExecutionStatus status, const util::Map< util::String, util::String > &statusDetailsMap=util::Map< util::String, util::String >(), int64_t expectedVersion=0, int64_t executionNumber=0, bool includeJobExecutionState=false, bool includeJobDocument=false)
 SendJobsUpdate. More...
 
std::shared_ptr< mqtt::SubscriptionCreateJobsSubscription (mqtt::Subscription::ApplicationCallbackHandlerPtr p_app_handler, std::shared_ptr< mqtt::SubscriptionHandlerContextData > p_app_handler_data, JobExecutionTopicType topicType=JOB_WILDCARD_TOPIC, JobExecutionTopicReplyType replyType=JOB_REQUEST_TYPE, const util::String &jobId=util::String())
 CreateJobsSubscription. More...
 
+ + + + +

+Static Public Member Functions

static std::unique_ptr< JobsCreate (std::shared_ptr< MqttClient > p_mqtt_client, mqtt::QoS qos, const util::String &thing_name, const util::String &client_token=util::String())
 Create factory method. Returns a unique instance of Jobs. More...
 
+ + + + + + + + + + + + +

+Protected Member Functions

 Jobs (std::shared_ptr< MqttClient > p_mqtt_client, mqtt::QoS qos, const util::String &thing_name, const util::String &client_token)
 Jobs constructor. More...
 
+util::String SerializeJobExecutionUpdatePayload (JobExecutionStatus status, const util::Map< util::String, util::String > &statusDetailsMap=util::Map< util::String, util::String >(), int64_t expectedVersion=0, int64_t executionNumber=0, bool includeJobExecutionState=false, bool includeJobDocument=false)
 
+util::String SerializeDescribeJobExecutionPayload (int64_t executionNumber=0, bool includeJobDocument=true)
 
+util::String SerializeStartNextPendingJobExecutionPayload (const util::Map< util::String, util::String > &statusDetailsMap=util::Map< util::String, util::String >())
 
+util::String SerializeClientTokenPayload ()
 
+ + + + + + + + + + + + + +

+Static Protected Member Functions

+static bool BaseTopicRequiresJobId (JobExecutionTopicType topicType)
 
+static const util::String GetOperationForBaseTopic (JobExecutionTopicType topicType)
 
+static const util::String GetSuffixForTopicType (JobExecutionTopicReplyType replyType)
 
+static const util::String GetExecutionStatus (JobExecutionStatus status)
 
+static util::String Escape (const util::String &value)
 
+static util::String SerializeStatusDetails (const util::Map< util::String, util::String > &statusDetailsMap)
 
+ + + + + + + + + +

+Protected Attributes

+std::shared_ptr< MqttClientp_mqtt_client_
 
+mqtt::QoS qos_
 
+util::String thing_name_
 
+util::String client_token_
 
+

Constructor & Destructor Documentation

+ +

◆ Jobs()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::Jobs::Jobs (std::shared_ptr< MqttClientp_mqtt_client,
mqtt::QoS qos,
const util::String & thing_name,
const util::String & client_token 
)
+
+protected
+
+

Create Jobs object storing given parameters in created instance

+
Parameters
+ + + + + +
p_mqtt_client- mqtt client
qos- QoS
thing_name- Thing name
client_token- Client token for correlating messages (optional)
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::unique_ptr< Jobs > awsiotsdk::Jobs::Create (std::shared_ptr< MqttClientp_mqtt_client,
mqtt::QoS qos,
const util::String & thing_name,
const util::String & client_token = util::String() 
)
+
+static
+
+
Parameters
+ + + + + +
p_mqtt_client- mqtt client
qos- QoS
thing_name- Thing name
client_token- Client token for correlating messages (optional)
+
+
+
Returns
std::unique_ptr<Jobs> pointing to a unique Jobs instance
+ +
+
+ +

◆ CreateJobsSubscription()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::shared_ptr< mqtt::Subscription > awsiotsdk::Jobs::CreateJobsSubscription (mqtt::Subscription::ApplicationCallbackHandlerPtr p_app_handler,
std::shared_ptr< mqtt::SubscriptionHandlerContextDatap_app_handler_data,
JobExecutionTopicType topicType = JOB_WILDCARD_TOPIC,
JobExecutionTopicReplyType replyType = JOB_REQUEST_TYPE,
const util::String & jobId = util::String() 
)
+
+

Create a Jobs Subscription instance

+
Parameters
+ + + + + + +
p_app_handler- Application Handler instance
p_app_handler_data- Data to be passed to application handler. Can be nullptr
topicType- Jobs topic type to subscribe to (defaults to JOB_WILDCARD_TOPIC)
jobId- Job id, can be $next to indicate next queued or in process job, can also be omitted if N/A
replyType- Topic reply type (optional, defaults to JOB_REQUEST_TYPE which omits the reply type in the subscription)
+
+
+
Returns
shared_ptr Subscription instance
+ +
+
+ +

◆ GetJobTopic()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
std::unique_ptr< Utf8String > awsiotsdk::Jobs::GetJobTopic (JobExecutionTopicType topicType,
JobExecutionTopicReplyType replyType = JOB_REQUEST_TYPE,
const util::String & jobId = util::String() 
)
+
+

This function creates a job topic based on the provided parameters.

+
Parameters
+ + + + +
topicType- Jobs topic type
replyType- Topic reply type (optional)
jobId- Job id, can be $next to indicate next queued or in process job, can also be omitted if N/A
+
+
+
Returns
nullptr on error, unique_ptr pointing to a topic string if successful
+ +
+
+ +

◆ SendJobsDescribe()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::Jobs::SendJobsDescribe (const util::String & jobId = util::String(),
int64_t executionNumber = 0,
bool includeJobDocument = true 
)
+
+

Send request for job execution details

+
Parameters
+ + + + +
jobId- Job id, can be $next to indicate next queued or in process job, can also be omitted to request all pending and in progress job executions
executionNumber- Specific execution number to describe, omit to match latest
includeJobDocument- Flag to indicate whether response should include job document
+
+
+
Returns
ResponseCode indicating status of publish request
+ +
+
+ +

◆ SendJobsQuery()

+ +
+
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::Jobs::SendJobsQuery (JobExecutionTopicType topicType,
const util::String & jobId = util::String() 
)
+
+

Send a query to the Jobs service using the provided mqtt client

+
Parameters
+ + + +
topicType- Jobs topic type for type of query
jobId- Job id, can be $next to indicate next queued or in process job, can also be omitted if N/A
+
+
+
Returns
ResponseCode indicating status of publish request
+ +
+
+ +

◆ SendJobsStartNext()

+ +
+
+ + + + + + + + +
ResponseCode awsiotsdk::Jobs::SendJobsStartNext (const util::Map< util::String, util::String > & statusDetailsMap = util::Map<util::String, util::String>())
+
+

Call Jobs start-next API to start the next pending job execution and trigger response

+
Parameters
+ + +
statusDetails- Status details to be associated with started job execution (optional)
+
+
+
Returns
ResponseCode indicating status of publish request
+ +
+
+ +

◆ SendJobsUpdate()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::Jobs::SendJobsUpdate (const util::String & jobId,
JobExecutionStatus status,
const util::Map< util::String, util::String > & statusDetailsMap = util::Map<util::String, util::String>(),
int64_t expectedVersion = 0,
int64_t executionNumber = 0,
bool includeJobExecutionState = false,
bool includeJobDocument = false 
)
+
+

Send update for specified job

+
Parameters
+ + + + + + + + +
jobId- Job id associated with job execution to be updated
status- New job execution status
statusDetailsMap- Status details to be associated with job execution (optional)
expectedVersion- Optional expected current job execution number, error response if mismatched
executionNumber- Specific execution number to update, omit to match latest
includeJobExecutionState- Include job execution state in response (optional)
includeJobDocument- Include job document in response (optional)
+
+
+
Returns
ResponseCode indicating status of publish request
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_mqtt_client.html b/docs/html/classawsiotsdk_1_1_mqtt_client.html new file mode 100644 index 0000000..57e6baf --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_mqtt_client.html @@ -0,0 +1,1485 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::MqttClient Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

MQTT Client Class. + More...

+ +

#include <Client.hpp>

+
+Inheritance diagram for awsiotsdk::MqttClient:
+
+
+ + +awsiotsdk::GreengrassMqttClient + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

MqttClient (const MqttClient &)=delete
 
MqttClient (MqttClient &&)=default
 
+MqttClientoperator= (const MqttClient &) &=delete
 
+MqttClientoperator= (MqttClient &&) &=default
 
virtual ResponseCode Connect (std::chrono::milliseconds action_response_timeout, bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg)
 Perform Sync Connect. More...
 
virtual ResponseCode Connect (std::chrono::milliseconds action_response_timeout, bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg, bool is_metrics_enabled)
 Perform Sync Connect. More...
 
virtual ResponseCode Disconnect (std::chrono::milliseconds action_response_timeout)
 Perform Sync Disconnect. More...
 
virtual ResponseCode Publish (std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, mqtt::QoS qos, const util::String &payload, std::chrono::milliseconds action_response_timeout)
 Perform Sync Publish. More...
 
virtual ResponseCode Subscribe (util::Vector< std::shared_ptr< mqtt::Subscription > > subscription_list, std::chrono::milliseconds action_response_timeout)
 Perform Sync Subscribe. More...
 
virtual ResponseCode Unsubscribe (util::Vector< std::unique_ptr< Utf8String > > topic_list, std::chrono::milliseconds action_response_timeout)
 Perform Sync Unsubscribe. More...
 
virtual ResponseCode PublishAsync (std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, mqtt::QoS qos, const util::String &payload, ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler, uint16_t &packet_id_out)
 Perform Async Publish. More...
 
virtual ResponseCode SubscribeAsync (util::Vector< std::shared_ptr< mqtt::Subscription > > subscription_list, ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler, uint16_t &packet_id_out)
 Perform Async Subscribe. More...
 
virtual ResponseCode UnsubscribeAsync (util::Vector< std::unique_ptr< Utf8String > > topic_list, ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler, uint16_t &packet_id_out)
 Perform Async Unsubscribe. More...
 
virtual bool IsConnected ()
 Check if Client is in Connected state. More...
 
virtual void SetAutoReconnectEnabled (bool value)
 Sets the auto-reconnect flag for the client. More...
 
virtual bool IsAutoReconnectEnabled ()
 returns the current state of the auto-reconnect flag More...
 
virtual std::chrono::seconds GetMinReconnectBackoffTimeout ()
 returns the minimum back-off time value More...
 
virtual void SetMinReconnectBackoffTimeout (std::chrono::seconds min_reconnect_backoff_timeout)
 sets the minimum back-off time value More...
 
virtual std::chrono::seconds GetMaxReconnectBackoffTimeout ()
 returns the maximum back-off time value More...
 
virtual void SetMaxReconnectBackoffTimeout (std::chrono::seconds max_reconnect_backoff_timeout)
 sets the maximum back-off time value More...
 
virtual ResponseCode SetDisconnectCallbackPtr (ClientCoreState::ApplicationDisconnectCallbackPtr p_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_app_handler_data)
 Set the callback function for disconnects. More...
 
virtual ResponseCode SetReconnectCallbackPtr (ClientCoreState::ApplicationReconnectCallbackPtr p_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_app_handler_data)
 Set the callback function for reconnects. More...
 
virtual ResponseCode SetResubscribeCallbackPtr (ClientCoreState::ApplicationResubscribeCallbackPtr p_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_app_handler_data)
 Set the callback function for resubscribes. More...
 
+ + + + + + + + + + +

+Static Public Member Functions

static std::unique_ptr< MqttClientCreate (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)
 Create factory method. Returns a unique instance of MqttClient. More...
 
static std::unique_ptr< MqttClientCreate (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)
 Create factory method, with additional parameters for disconnect callback. More...
 
static std::unique_ptr< MqttClientCreate (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr p_resubscribec_callback, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)
 Create factory method, with additional parameters for disconnect, reconnect and resubscribe callbacks. More...
 
+ + + + + + + + + + +

+Protected Member Functions

 MqttClient (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)
 Constructor. More...
 
 MqttClient (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)
 Constructor. More...
 
 MqttClient (std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)
 Constructor. More...
 
+ + + + + + + +

+Protected Attributes

+std::unique_ptr< ClientCorep_client_core_
 Unique pointer to the Client Core instance.
 
+std::shared_ptr< mqtt::ClientStatep_client_state_
 MQTT Client state.
 
+

Detailed Description

+

Defining a class for the MQTT Client. This class is a wrapper on the Core Client and creates a Client Core instance with MQTT Actions It also provides APIs to perform MQTT operations directly on the Core Client instance

+

Constructor & Destructor Documentation

+ +

◆ MqttClient() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::MqttClient::MqttClient (std::shared_ptr< NetworkConnectionp_network_connection,
std::chrono::milliseconds mqtt_command_timeout,
ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr,
std::shared_ptr< DisconnectCallbackContextDatap_disconnect_app_handler_data,
ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr,
std::shared_ptr< ReconnectCallbackContextDatap_reconnect_app_handler_data,
ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr,
std::shared_ptr< ResubscribeCallbackContextDatap_resubscribe_app_handler_data 
)
+
+protected
+
+
Parameters
+ + + + + + + + + +
p_network_connection- Network connection to use with this MQTT Client instance
mqtt_command_timeout- Command timeout in milliseconds for internal blocking operations (Reconnect and Resubscribe)
disconnect_callback_ptr- pointer of the disconnect callback handler
p_disconnect_app_handler_data- context data for the disconnect handler
reconnect_callback_ptr- pointer of the reconnect callback handler
p_reconnect_app_handler_data- context data for the reconnect handler
resubscribe_callback_ptr- pointer of the resubscribe callback handler
p_resubscribe_app_handler_data- context data for the resubscribe handler
+
+
+ +
+
+ +

◆ MqttClient() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::MqttClient::MqttClient (std::shared_ptr< NetworkConnectionp_network_connection,
std::chrono::milliseconds mqtt_command_timeout,
ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr,
std::shared_ptr< DisconnectCallbackContextDatap_disconnect_app_handler_data 
)
+
+protected
+
+
Parameters
+ + + + + +
p_network_connection- Network connection to use with this MQTT Client instance
mqtt_command_timeout- Command timeout in milliseconds for internal blocking operations (Reconnect and Resubscribe)
disconnect_callback_ptr- pointer of the disconnect callback handler
p_disconnect_app_handler_data- context data for the disconnect handler
+
+
+ +
+
+ +

◆ MqttClient() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
awsiotsdk::MqttClient::MqttClient (std::shared_ptr< NetworkConnectionp_network_connection,
std::chrono::milliseconds mqtt_command_timeout 
)
+
+protected
+
+
Parameters
+ + + +
p_network_connection- Network connection to use with this MQTT Client instance
mqtt_command_timeout- Command timeout in milliseconds for internal blocking operations (Reconnect and Resubscribe)
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Connect() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::MqttClient::Connect (std::chrono::milliseconds action_response_timeout,
bool is_clean_session,
mqtt::Version mqtt_version,
std::chrono::seconds keep_alive_timeout,
std::unique_ptr< Utf8Stringp_client_id,
std::unique_ptr< Utf8Stringp_username,
std::unique_ptr< Utf8Stringp_password,
std::unique_ptr< mqtt::WillOptionsp_will_msg 
)
+
+virtual
+
+

Performs a Network and MQTT Connect operation in blocking mode. Action timeout here is the time for which the client waits for a response AFTER the request is sent. SDK metrics enabled by default

+
Parameters
+ + + + + + + + + +
action_response_timeoutTimeout in milliseconds within which response should be obtained after request is sent
is_clean_session
mqtt_version
keep_alive_timeout
p_client_id
p_username
p_password
p_will_msgLast Will and Testament message
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ Connect() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::MqttClient::Connect (std::chrono::milliseconds action_response_timeout,
bool is_clean_session,
mqtt::Version mqtt_version,
std::chrono::seconds keep_alive_timeout,
std::unique_ptr< Utf8Stringp_client_id,
std::unique_ptr< Utf8Stringp_username,
std::unique_ptr< Utf8Stringp_password,
std::unique_ptr< mqtt::WillOptionsp_will_msg,
bool is_metrics_enabled 
)
+
+virtual
+
+

Performs a Network and MQTT Connect operation in blocking mode. Action timeout here is the time for which the client waits for a response AFTER the request is sent.

+
Parameters
+ + + + + + + + + + +
action_response_timeoutTimeout in milliseconds within which response should be obtained after request is sent
is_clean_session
mqtt_version
keep_alive_timeout
p_client_id
p_username
p_password
p_will_msgLast Will and Testament message
is_metrics_enabled
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ Create() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::unique_ptr< MqttClient > awsiotsdk::MqttClient::Create (std::shared_ptr< NetworkConnectionp_network_connection,
std::chrono::milliseconds mqtt_command_timeout 
)
+
+static
+
+
Parameters
+ + + +
p_network_connection- Network connection to use with this MQTT Client instance
mqtt_command_timeout- Command timeout in milliseconds for internal blocking operations (Reconnect and Resubscribe)
+
+
+
Returns
std::unique_ptr<MqttClient> pointing to a unique MQTT client instance
+ +
+
+ +

◆ Create() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::unique_ptr< MqttClient > awsiotsdk::MqttClient::Create (std::shared_ptr< NetworkConnectionp_network_connection,
std::chrono::milliseconds mqtt_command_timeout,
ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr,
std::shared_ptr< DisconnectCallbackContextDatap_disconnect_app_handler_data 
)
+
+static
+
+
Parameters
+ + + + + +
p_network_connection- Network connection to use with this MQTT Client instance
mqtt_command_timeout- Command timeout in milliseconds for internal blocking operations (Reconnect and Resubscribe)
disconnect_callback_ptr_ptr- pointer of the disconnect callback handler
p_app_handler_data- context data for the disconnect handler
+
+
+
Returns
std::unique_ptr<MqttClient> pointing to a unique MQTT client instance
+ +
+
+ +

◆ Create() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::unique_ptr< MqttClient > awsiotsdk::MqttClient::Create (std::shared_ptr< NetworkConnectionp_network_connection,
std::chrono::milliseconds mqtt_command_timeout,
ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr,
std::shared_ptr< DisconnectCallbackContextDatap_disconnect_app_handler_data,
ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr,
std::shared_ptr< ReconnectCallbackContextDatap_reconnect_app_handler_data,
ClientCoreState::ApplicationResubscribeCallbackPtr p_resubscribec_callback,
std::shared_ptr< ResubscribeCallbackContextDatap_resubscribe_app_handler_data 
)
+
+static
+
+
Parameters
+ + + + + + + + + +
p_network_connection- Network connection to use with this MQTT Client instance
mqtt_command_timeout- Command timeout in milliseconds for internal blocking operations (Reconnect and Resubscribe)
disconnect_callback_ptr- pointer of the disconnect callback handler
p_app_handler_data- context data for the disconnect handler
reconnect_callback_ptr- pointer of the reconnect callback handler
p_reconnect_app_handler_data- context data for the reconnect handler
resubscribe_callback_ptr- pointer of the resubscribe callback handler
p_resubscribe_app_handler_data- context data for the resubscribe handler
+
+
+
Returns
std::unique_ptr<MqttClient> pointing to a unique MQTT client instance
+ +
+
+ +

◆ Disconnect()

+ +
+
+ + + + + +
+ + + + + + + + +
ResponseCode awsiotsdk::MqttClient::Disconnect (std::chrono::milliseconds action_response_timeout)
+
+virtual
+
+

Performs a Network and MQTT Disconnect operation in blocking mode. Action timeout here is the time for which the client waits for a response AFTER the request is sent.

+
Parameters
+ + +
action_response_timeout- Timeout in milliseconds within which response should be obtained after request is sent
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ GetMaxReconnectBackoffTimeout()

+ +
+
+ + + + + +
+ + + + + + + +
std::chrono::seconds awsiotsdk::MqttClient::GetMaxReconnectBackoffTimeout ()
+
+virtual
+
+

Returns the maximum back-off time that is set, which is the maximum time a client waits for before attempting a reconnect.

+
Returns
seconds
+ +
+
+ +

◆ GetMinReconnectBackoffTimeout()

+ +
+
+ + + + + +
+ + + + + + + +
std::chrono::seconds awsiotsdk::MqttClient::GetMinReconnectBackoffTimeout ()
+
+virtual
+
+

Returns the minimum back-off time that is set, which is the minimum time a client waits for before attempting a reconnect.

+
Returns
seconds
+ +
+
+ +

◆ IsAutoReconnectEnabled()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool awsiotsdk::MqttClient::IsAutoReconnectEnabled ()
+
+inlinevirtual
+
+
Returns
boolean indicating state of the flag
+ +
+
+ +

◆ IsConnected()

+ +
+
+ + + + + +
+ + + + + + + +
bool awsiotsdk::MqttClient::IsConnected ()
+
+virtual
+
+
Returns
boolean indicating connection status
+ +
+
+ +

◆ Publish()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::MqttClient::Publish (std::unique_ptr< Utf8Stringp_topic_name,
bool is_retained,
bool is_duplicate,
mqtt::QoS qos,
const util::String & payload,
std::chrono::milliseconds action_response_timeout 
)
+
+virtual
+
+

Performs a MQTT Publish operation in blocking mode. Action timeout here is the time for which the client waits for a response AFTER the request is sent.

+
Parameters
+ + + + + + + +
p_topic_nametopic name on which the publish is performed
is_retainedlast message is retained
is_duplicateis a duplicate message
qosquality of service
payloadMQTT message payload
action_response_timeoutTimeout in milliseconds within which response should be obtained after request is sent
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ PublishAsync()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::MqttClient::PublishAsync (std::unique_ptr< Utf8Stringp_topic_name,
bool is_retained,
bool is_duplicate,
mqtt::QoS qos,
const util::String & payload,
ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler,
uint16_t & packet_id_out 
)
+
+virtual
+
+

Performs a MQTT Publish operation in Async mode. In the case of QoS1 requests, packet ID obtained from this function can be used to match Ack to specific requests if needed. QoS0 requests do not have a corrosponding Ack message and we do not support QoS2 at this time. The request is queued up and in the case of QoS1, the Ack Handler is called if a PUBACK is received. If not, the handler is called with a ResponseCode indicating timeout

+
Parameters
+ + + + + + + + +
p_topic_nameon which the publish is performed
is_retainedlast message is retained
is_duplicateis a duplicate message
qosquality of service
payloadMQTT message payload
p_async_ack_handlerthe ack handling function
packet_id_outpacket ID of the message being sent
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ SetAutoReconnectEnabled()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void awsiotsdk::MqttClient::SetAutoReconnectEnabled (bool value)
+
+inlinevirtual
+
+
Parameters
+ + +
valuefor setting the flag
+
+
+ +
+
+ +

◆ SetDisconnectCallbackPtr()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::MqttClient::SetDisconnectCallbackPtr (ClientCoreState::ApplicationDisconnectCallbackPtr p_callback_ptr,
std::shared_ptr< DisconnectCallbackContextDatap_app_handler_data 
)
+
+virtual
+
+
Parameters
+ + + +
p_callback_ptr
p_app_handler_data
+
+
+
Returns
ResponseCode indicating whether the callback was set successfully
+ +
+
+ +

◆ SetMaxReconnectBackoffTimeout()

+ +
+
+ + + + + +
+ + + + + + + + +
void awsiotsdk::MqttClient::SetMaxReconnectBackoffTimeout (std::chrono::seconds max_reconnect_backoff_timeout)
+
+virtual
+
+
Parameters
+ + +
max_reconnect_backoff_timeout
+
+
+ +
+
+ +

◆ SetMinReconnectBackoffTimeout()

+ +
+
+ + + + + +
+ + + + + + + + +
void awsiotsdk::MqttClient::SetMinReconnectBackoffTimeout (std::chrono::seconds min_reconnect_backoff_timeout)
+
+virtual
+
+
Parameters
+ + +
min_reconnect_backoff_timeout
+
+
+ +
+
+ +

◆ SetReconnectCallbackPtr()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::MqttClient::SetReconnectCallbackPtr (ClientCoreState::ApplicationReconnectCallbackPtr p_callback_ptr,
std::shared_ptr< ReconnectCallbackContextDatap_app_handler_data 
)
+
+virtual
+
+
Parameters
+ + + +
p_callback_ptr
p_app_handler_data
+
+
+
Returns
ResponseCode indicating whether the callback was set successfully
+ +
+
+ +

◆ SetResubscribeCallbackPtr()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::MqttClient::SetResubscribeCallbackPtr (ClientCoreState::ApplicationResubscribeCallbackPtr p_callback_ptr,
std::shared_ptr< ResubscribeCallbackContextDatap_app_handler_data 
)
+
+virtual
+
+
Parameters
+ + + +
p_callback_ptr
p_app_handler_data
+
+
+
Returns
ResponseCode indicating whether the callback was set successfully
+ +
+
+ +

◆ Subscribe()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::MqttClient::Subscribe (util::Vector< std::shared_ptr< mqtt::Subscription > > subscription_list,
std::chrono::milliseconds action_response_timeout 
)
+
+virtual
+
+

Performs a MQTT Subscribe operation in blocking mode. Action timeout here is the time for which the client waits for a response AFTER the request is sent.

+
Parameters
+ + + +
subscription_list- A list of subscriptions to use for the operation
action_response_timeout- Timeout in milliseconds within which response should be obtained after request is sent
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ SubscribeAsync()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::MqttClient::SubscribeAsync (util::Vector< std::shared_ptr< mqtt::Subscription > > subscription_list,
ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler,
uint16_t & packet_id_out 
)
+
+virtual
+
+

Performs a MQTT Subscribe operation in Async mode. Packet ID obtained from this function can be used to match Ack to specific requests if needed. The Subscribe request is queued up and Client automatically activates Subscription if successful SUBACK is received. If not, the assigned Ack handler will be called with the corrosponding ResponseCode

+
Parameters
+ + + + +
subscription_list- A list of subscriptions to use for the operation
p_async_ack_handler- AsyncAck notification handler to be called when response for this request is processed
packet_id_out- Packet ID assigned to outgoing packet
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ Unsubscribe()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::MqttClient::Unsubscribe (util::Vector< std::unique_ptr< Utf8String > > topic_list,
std::chrono::milliseconds action_response_timeout 
)
+
+virtual
+
+

Performs a MQTT Unsubscribe operation in blocking mode. Action timeout here is the time for which the client waits for a response AFTER the request is sent.

+
Parameters
+ + + +
p_unsubscribe_packet- Unsubscribe packet to use for the operation
action_response_timeout- Timeout in milliseconds within which response should be obtained after request is sent
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ UnsubscribeAsync()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::MqttClient::UnsubscribeAsync (util::Vector< std::unique_ptr< Utf8String > > topic_list,
ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler,
uint16_t & packet_id_out 
)
+
+virtual
+
+

Performs a MQTT Unsubscribe operation in Async mode. Packet ID obtained from this function can be used to match Ack to specific requests if needed. The Unsubscribe request is queued up and Client automatically deactivates the subscription if successful UNSUBACK is received. If not, the assigned Ack handler will be called with the corrosponding ResponseCode

+
Parameters
+ + + + +
p_unsubscribe_packet- Unsubscribe packet to use for the operation
p_async_ack_handler- AsyncAck notification handler to be called when response for this request is processed
packet_id_out- Packet ID assigned to outgoing packet
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_mqtt_client.png b/docs/html/classawsiotsdk_1_1_mqtt_client.png new file mode 100644 index 0000000000000000000000000000000000000000..52810e2d77118b2f8163de204bf81839f7ff1936 GIT binary patch literal 808 zcmeAS@N?(olHy`uVBq!ia0vp^2Z1<%gBeIpU-r-gNJ$6ygt-3y{~ySF@#br3|Doj; z2ATyD)6cv(aNqz?Jb2RO6+k)8k|4ie1|S~{%$a6iVPIg|?CIhdQo;Ck?(4qS3Op_C zj;o&io&RHtCxdiRX8G*HN)ywhI1)ZL7XDLe5oi-@QsG_Wso+^_%Biw)eVuoJo3-`% zuC>dH>Zad{-?`-Ny<3x)FxTeu`*B`7^-bfg_R)Vi`3e!!w13u$7FT9Q{NL8O&h~T* z@4?ljduQo-N>6(0d1>lB^&366gJz~rxU<(Lr&;>4kd<@jVwJfsHfwNA+8b+eBfPTv zlZAJ}$L}0{%HET*YQA2K=qM28VcGCWaTQJsB8)0mHChy&5CKm#Zoa4f`+@S%mi(-dpJoBs5(n$wW+UQ2CuD zG$AEER-k3>rKrNvw&$*s>_esI^s4aBet0bL&I!M9JxskZEy1) zWSZ@^w`=DflQs3TXK!6zI^BC^ewEGr8G)hgfATrwY_G4rDU@yWwo2{9vtH%hB8@uV zKNaw%>7HHpd|#?3pH9{K>g+A)n>rUc+`4`K$evT54XYeg{eO}1tUm6I-SRjJ&3?|(wgr_7)6EN1)@pX~gnyptDnm{r-UW|O3`~N literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1_network_connection.html b/docs/html/classawsiotsdk_1_1_network_connection.html new file mode 100644 index 0000000..769a3b0 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_network_connection.html @@ -0,0 +1,540 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::NetworkConnection Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::NetworkConnection Class Referenceabstract
+
+
+ +

Network Connection Class. + More...

+ +

#include <NetworkConnection.hpp>

+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool IsConnected ()=0
 Check if Network layer is still connected. More...
 
virtual bool IsPhysicalLayerConnected ()=0
 Check if Network Physical layer is still connected. More...
 
virtual ResponseCode Connect () final
 Create a Network socket and open the connection. More...
 
virtual ResponseCode Write (const util::String &buf, size_t &size_written_bytes_out) final
 Write bytes to the network socket. More...
 
virtual ResponseCode Read (util::Vector< unsigned char > &buf, size_t buf_read_offset, size_t size_bytes_to_read, size_t &size_read_bytes_out) final
 Read bytes from the network socket. More...
 
virtual ResponseCode Disconnect () final
 Disconnect from network socket. More...
 
+ + + + + + + + + + + + + +

+Protected Member Functions

virtual ResponseCode ConnectInternal ()=0
 Create a Network socket and open the connection. More...
 
virtual ResponseCode WriteInternal (const util::String &buf, size_t &size_written_bytes_out)=0
 Write bytes to the network socket. More...
 
virtual ResponseCode ReadInternal (util::Vector< unsigned char > &buf, size_t buf_read_offset, size_t size_bytes_to_read, size_t &size_read_bytes_out)=0
 Read bytes from the network socket. More...
 
virtual ResponseCode DisconnectInternal ()=0
 Disconnect from network socket. More...
 
+ + + + + + + +

+Protected Attributes

std::mutex read_mutex
 Mutex for synchronizing read operations. More...
 
+std::mutex write_mutex
 Mutex for synchronizing write operations.
 
+

Detailed Description

+

Defines an interface to the Network layer to be used by the MQTT client. Starting point for porting the SDK to the networking layer of a new platform.

+

This is an abstract class and cannot be instantiated.

+

Member Function Documentation

+ +

◆ Connect()

+ +
+
+ + + + + +
+ + + + + + + +
ResponseCode awsiotsdk::NetworkConnection::Connect ()
+
+finalvirtual
+
+

Calls the internal connect function after obtaining read and write locks

+
Returns
ResponseCode - successful connection or Network error
+ +
+
+ +

◆ ConnectInternal()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ResponseCode awsiotsdk::NetworkConnection::ConnectInternal ()
+
+protectedpure virtual
+
+

Internal implementation of the Connect function to be provided by the derived class

+

Creates an open socket connection including Network handshake.

+
Returns
ResponseCode - successful connection or Network error
+ +
+
+ +

◆ Disconnect()

+ +
+
+ + + + + +
+ + + + + + + +
ResponseCode awsiotsdk::NetworkConnection::Disconnect ()
+
+finalvirtual
+
+

Calls the internal disconnect function after obtaining read and write locks This will be called by the SDK for both manual and auto-disconnect. It separates the Disconnect logic from destroy, Network stack is NOT destroyed by this API SDK should still be able to reconnect after Disconnect, but not after Destroy

+
Returns
ResponseCode - successful read or Network error code
+ +
+
+ +

◆ DisconnectInternal()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ResponseCode awsiotsdk::NetworkConnection::DisconnectInternal ()
+
+protectedpure virtual
+
+

Internal implementation of the Disconnect function to be provided by the derived class

+
Returns
ResponseCode - successful read or Network error code
+ +
+
+ +

◆ IsConnected()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool awsiotsdk::NetworkConnection::IsConnected ()
+
+pure virtual
+
+

Called to check if the Network layer is still connected or not.

+
Returns
ResponseCode - Network error code indicating status of network physical layer connection
+ +
+
+ +

◆ IsPhysicalLayerConnected()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool awsiotsdk::NetworkConnection::IsPhysicalLayerConnected ()
+
+pure virtual
+
+

Called to check if the Network Physical layer is still connected or not.

+
Returns
bool - indicating status of network physical layer connection
+ +
+
+ +

◆ Read()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::NetworkConnection::Read (util::Vector< unsigned char > & buf,
size_t buf_read_offset,
size_t size_bytes_to_read,
size_t & size_read_bytes_out 
)
+
+finalvirtual
+
+

Calls the internal read function after obtaining read lock

+
Parameters
+ + + + +
util::String- reference to buffer where read bytes should be copied
size_t- number of bytes to read
size_t- reference to store number of bytes read
+
+
+
Returns
ResponseCode - successful read or Network error code
+ +
+
+ +

◆ ReadInternal()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResponseCode awsiotsdk::NetworkConnection::ReadInternal (util::Vector< unsigned char > & buf,
size_t buf_read_offset,
size_t size_bytes_to_read,
size_t & size_read_bytes_out 
)
+
+protectedpure virtual
+
+

Internal implementation of the Read function to be provided by the derived class

+
Parameters
+ + + + +
util::String- reference to buffer where read bytes should be copied
size_t- number of bytes to read
size_t- reference to store number of bytes read
+
+
+
Returns
ResponseCode - successful read or Network error code
+ +
+
+ +

◆ Write()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::NetworkConnection::Write (const util::String & buf,
size_t & size_written_bytes_out 
)
+
+finalvirtual
+
+

Calls the internal write function after obtaining write lock

+
Parameters
+ + +
util::String- const reference to buffer which should be written to socket
+
+
+
Returns
size_t - number of bytes written or Network error
+
+ResponseCode - successful write or Network error code
+ +
+
+ +

◆ WriteInternal()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual ResponseCode awsiotsdk::NetworkConnection::WriteInternal (const util::String & buf,
size_t & size_written_bytes_out 
)
+
+protectedpure virtual
+
+

Internal implementation of the Write function to be provided by the derived class

+
Parameters
+ + +
util::String- const reference to buffer which should be written to socket
+
+
+
Returns
size_t - number of bytes written
+
+ResponseCode - successful write or Network error code
+ +
+
+

Field Documentation

+ +

◆ read_mutex

+ +
+
+ + + + + +
+ + + + +
std::mutex awsiotsdk::NetworkConnection::read_mutex
+
+protected
+
+

Both the below mutexes must be locked before connect/disconnect

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_reconnect_callback_context_data.html b/docs/html/classawsiotsdk_1_1_reconnect_callback_context_data.html new file mode 100644 index 0000000..718fbbe --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_reconnect_callback_context_data.html @@ -0,0 +1,92 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::ReconnectCallbackContextData Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
awsiotsdk::ReconnectCallbackContextData Class Referenceabstract
+
+
+ +

MQTT Reconnect Callback Context Data. + More...

+ +

#include <ClientCoreState.hpp>

+

Detailed Description

+

This class can be used to provide customer context data to be provided with each reconnect callback. Uses a pure virtual destructor to allow for polymorphism

+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_resubscribe_callback_context_data.html b/docs/html/classawsiotsdk_1_1_resubscribe_callback_context_data.html new file mode 100644 index 0000000..89a95fd --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_resubscribe_callback_context_data.html @@ -0,0 +1,92 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::ResubscribeCallbackContextData Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
awsiotsdk::ResubscribeCallbackContextData Class Referenceabstract
+
+
+ +

MQTT Resubscribe Callback Context Data. + More...

+ +

#include <ClientCoreState.hpp>

+

Detailed Description

+

This class can be used to provide customer context data to be provided with each resubscribe callback. Uses a pure virtual destructor to allow for polymorphism

+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_shadow.html b/docs/html/classawsiotsdk_1_1_shadow.html new file mode 100644 index 0000000..1b2fb68 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_shadow.html @@ -0,0 +1,829 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::Shadow Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

Define a type for Shadow. +

+ +

#include <Shadow.hpp>

+ + + + + +

+Public Types

typedef std::function< ResponseCode(util::String, ShadowRequestType, ShadowResponseType, util::JsonDocument &)> RequestHandlerPtr
 Request Handler type for Shadow requests. Called after Shadow instance processes incoming message. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Shadow (std::shared_ptr< MqttClient > p_mqtt_client, std::chrono::milliseconds mqtt_command_timeout, util::String &thing_name, util::String &client_token_prefix)
 Constructor. More...
 
Shadow (const Shadow &)=delete
 
Shadow (Shadow &&)=delete
 
+Shadowoperator= (const Shadow &) &=delete
 
+Shadowoperator= (Shadow &&) &=delete
 
ResponseCode UpdateDeviceShadow (util::JsonDocument &document)
 Update device shadow. More...
 
util::JsonDocument GetDeviceReported ()
 Get reported state of the shadow on the device. More...
 
util::JsonDocument GetDeviceDesired ()
 Get desired state of the shadow on the device. More...
 
util::JsonDocument GetDeviceDocument ()
 Get state document of the shadow on the device. More...
 
util::JsonDocument GetServerReported ()
 Get reported state of the shadow state received from the server. More...
 
util::JsonDocument GetServerDesired ()
 Get desired state of the shadow state received from the server. More...
 
util::JsonDocument GetServerDocument ()
 Get state document of the shadow state received from the server. More...
 
ResponseCode PerformGetAsync ()
 Perform a Get operation for this shadow. More...
 
ResponseCode PerformUpdateAsync ()
 Perform an Update operation for this shadow. More...
 
ResponseCode PerformDeleteAsync ()
 Perform a Delete operation for this shadow. More...
 
ResponseCode HandleGetResponse (ShadowResponseType response_type, util::JsonDocument &payload)
 Handle response for Get Request. More...
 
ResponseCode HandleUpdateResponse (ShadowResponseType response_type, util::JsonDocument &payload)
 Handle response for Update Request. More...
 
ResponseCode HandleDeleteResponse (ShadowResponseType response_type, util::JsonDocument &payload)
 Handle response for Delete Request. More...
 
+void ResetClientTokenSuffix ()
 Reset the timestamp generated client suffix.
 
uint32_t GetCurrentVersionNumber ()
 Get the current version number of the shadow. More...
 
bool IsInSync ()
 Get whether the server shadow state is in sync. More...
 
ResponseCode AddShadowSubscription (util::Map< ShadowRequestType, RequestHandlerPtr > &request_mapping)
 Add a specific shadow subscription. More...
 
ResponseCode SubscriptionHandler (util::String topic_name, util::String payload, std::shared_ptr< mqtt::SubscriptionHandlerContextData > p_app_handler_data)
 Subscription handler for Shadow actions. More...
 
+ + + + + + + +

+Static Public Member Functions

static std::unique_ptr< ShadowCreate (std::shared_ptr< MqttClient > p_mqtt_client, std::chrono::milliseconds mqtt_command_timeout, util::String &thing_name, util::String &client_token_prefix)
 Factory method to create Shadow instances. More...
 
static util::JsonDocument GetEmptyShadowDocument ()
 Static function that creates and returns an empty Shadow json document. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+bool is_get_subscription_active_
 Status of the get subscription.
 
+bool is_update_subscription_active_
 Status of the update subscription.
 
+bool is_delete_subscription_active_
 Status of the delete subscription.
 
+bool is_delta_subscription_active_
 Status of the delta subscription.
 
+uint32_t cur_shadow_version_
 Current version of the shadow as received from the server.
 
+util::String thing_name_
 Thing name for this shadow instance.
 
+util::String client_token_prefix_
 Client token prefix being used for shadow actions.
 
+util::String client_token_
 Full client token as generated while constructing this instance.
 
+util::String shadow_topic_action_prefix_
 Shadow topic action prefix.
 
+util::String shadow_topic_get_
 Get topic for this shadow.
 
+util::String shadow_topic_delta_
 Delta topic for this shadow.
 
+util::String shadow_topic_update_
 Update topic for this shadow.
 
+util::String shadow_topic_delete_
 Delete topic for this shadow.
 
+util::String response_type_delta_text_
 Delta response postfix.
 
+util::String response_type_rejected_text_
 Rejected reponse postfix.
 
+util::String response_type_accepted_text_
 Accepted response postfix.
 
+std::chrono::milliseconds mqtt_command_timeout_
 Mqtt command timeout.
 
+util::JsonDocument cur_server_state_document_
 Last received shadow state document from the server.
 
+util::JsonDocument cur_device_state_document_
 Current shadow state document on the device.
 
+util::Map< ShadowRequestType, RequestHandlerPtrrequest_mapping_
 Request mappings for shadow actions.
 
+std::shared_ptr< MqttClientp_mqtt_client_
 IoT Client being used by this Shadow instance.
 
+

Member Typedef Documentation

+ +

◆ RequestHandlerPtr

+ +
+
+ + + + +
typedef std::function<ResponseCode(util::String, ShadowRequestType, ShadowResponseType, util::JsonDocument &)> awsiotsdk::Shadow::RequestHandlerPtr
+
+

Takes the following as parameters util::String - Thing Name for which response was received ShadowRequestType - Request Type on which response was received ShadowResponseType - Response Type util::JsonDocument - JsonPayload of the response

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ Shadow()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::Shadow::Shadow (std::shared_ptr< MqttClientp_mqtt_client,
std::chrono::milliseconds mqtt_command_timeout,
util::String & thing_name,
util::String & client_token_prefix 
)
+
+
Parameters
+ + + + + +
p_mqtt_client- MQTT Client instance used for this Shadow, can NOT be changed later
mqtt_command_timeout- Timeout to use for MQTT Commands
thing_name- Thing name for this shadow
client_token_prefix- Client Token prefix to use for shadow operations
+
+
+ +
+
+

Member Function Documentation

+ +

◆ AddShadowSubscription()

+ +
+
+ + + + + + + + +
ResponseCode awsiotsdk::Shadow::AddShadowSubscription (util::Map< ShadowRequestType, RequestHandlerPtr > & request_mapping)
+
+

This function can be used to add a subscription to various shadow actions. Each action can optionally be assigned a handler that can process any response that is received. The internal shadow state will be updated before the response handler is called if it is provided.

+
Parameters
+ + +
request_mappingMapping of request type to response handler
+
+
+
Returns
ResponseCode indicating status of operation
+ +
+
+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::unique_ptr< Shadow > awsiotsdk::Shadow::Create (std::shared_ptr< MqttClientp_mqtt_client,
std::chrono::milliseconds mqtt_command_timeout,
util::String & thing_name,
util::String & client_token_prefix 
)
+
+static
+
+
Parameters
+ + + + + +
p_mqtt_client- MQTT Client instance used for this Shadow, can NOT be changed later
mqtt_command_timeout- Timeout to use for MQTT Commands
thing_name- Thing name for this shadow
client_token_prefix- Client Token prefix to use for shadow operations
+
+
+
Returns
std::unique_ptr to a Shadow instance
+ +
+
+ +

◆ GetCurrentVersionNumber()

+ +
+
+ + + + + + + +
uint32_t awsiotsdk::Shadow::GetCurrentVersionNumber ()
+
+
Returns
uint32_t containing the current shadow version received from the server
+ +
+
+ +

◆ GetDeviceDesired()

+ +
+
+ + + + + + + +
util::JsonDocument awsiotsdk::Shadow::GetDeviceDesired ()
+
+
Returns
JsonDocument containing a copy of the desired state of shadow that exists on the device
+ +
+
+ +

◆ GetDeviceDocument()

+ +
+
+ + + + + + + +
util::JsonDocument awsiotsdk::Shadow::GetDeviceDocument ()
+
+
Returns
JsonDocument containing a copy of the shadow document that exists on the device
+ +
+
+ +

◆ GetDeviceReported()

+ +
+
+ + + + + + + +
util::JsonDocument awsiotsdk::Shadow::GetDeviceReported ()
+
+
Returns
JsonDocument containing a copy of the reported state of shadow that exists on the device
+ +
+
+ +

◆ GetEmptyShadowDocument()

+ +
+
+ + + + + +
+ + + + + + + +
util::JsonDocument awsiotsdk::Shadow::GetEmptyShadowDocument ()
+
+static
+
+
Returns
util::JsonDocument initialized as empty shadow json document
+ +
+
+ +

◆ GetServerDesired()

+ +
+
+ + + + + + + +
util::JsonDocument awsiotsdk::Shadow::GetServerDesired ()
+
+
Returns
JsonDocument containing a copy of the desired state that was last received from the server
+ +
+
+ +

◆ GetServerDocument()

+ +
+
+ + + + + + + +
util::JsonDocument awsiotsdk::Shadow::GetServerDocument ()
+
+
Returns
JsonDocument containing a copy of the shadow document that was last received from the server
+ +
+
+ +

◆ GetServerReported()

+ +
+
+ + + + + + + +
util::JsonDocument awsiotsdk::Shadow::GetServerReported ()
+
+
Returns
JsonDocument containing a copy of the reported state that was last received from the server
+ +
+
+ +

◆ HandleDeleteResponse()

+ +
+
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::Shadow::HandleDeleteResponse (ShadowResponseType response_type,
util::JsonDocument & payload 
)
+
+
Parameters
+ + + +
response_type- Response Type received from the server
payload- Json payload received with the response
+
+
+
Returns
ResponseCode indicating the status of the request
+ +
+
+ +

◆ HandleGetResponse()

+ +
+
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::Shadow::HandleGetResponse (ShadowResponseType response_type,
util::JsonDocument & payload 
)
+
+
Parameters
+ + + +
response_type- Response Type received from the server
payload- Json payload received with the response
+
+
+
Returns
ResponseCode indicating the status of the request
+ +
+
+ +

◆ HandleUpdateResponse()

+ +
+
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::Shadow::HandleUpdateResponse (ShadowResponseType response_type,
util::JsonDocument & payload 
)
+
+
Parameters
+ + + +
response_type- Response Type received from the server
payload- Json payload received with the response
+
+
+
Returns
ResponseCode indicating the status of the request
+ +
+
+ +

◆ IsInSync()

+ +
+
+ + + + + + + +
bool awsiotsdk::Shadow::IsInSync ()
+
+
Returns
boolean indicating sync status
+ +
+
+ +

◆ PerformDeleteAsync()

+ +
+
+ + + + + + + +
ResponseCode awsiotsdk::Shadow::PerformDeleteAsync ()
+
+

If accepted, this will delete the shadow from the server. It also clears the shadow state received from the server and sets it to an empty object. This will NOT affect the shadow state for the device. To do that, use the UpdateDeviceShadow function with an empty document. If the subscription for this request type doesn't exist, it will also subscribe to the Accepted and Rejected topics.

+
Returns
ResponseCode indicating status of the request
+ +
+
+ +

◆ PerformGetAsync()

+ +
+
+ + + + + + + +
ResponseCode awsiotsdk::Shadow::PerformGetAsync ()
+
+

If Accepted, this clears the current server shadow state and updates it with the new state received from the server. If the subscription for this request type doesn't exist, it will also subscribe to the Accepted and Rejected topics.

+
Returns
ResponseCode indicating status of the request
+ +
+
+ +

◆ PerformUpdateAsync()

+ +
+
+ + + + + + + +
ResponseCode awsiotsdk::Shadow::PerformUpdateAsync ()
+
+

This function generates a diff between the current state of the shadow on the device and the last reported state of the shadow on the server. Then it calls update using this diff. If the subscription for this request type doesn't exist, it will also subscribe to the Accepted and Rejected topics. This does NOT automatically subscribe to the delta topic.

+
Returns
ResponseCode indicating status of the request
+ +
+
+ +

◆ SubscriptionHandler()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::Shadow::SubscriptionHandler (util::String topic_name,
util::String payload,
std::shared_ptr< mqtt::SubscriptionHandlerContextDatap_app_handler_data 
)
+
+

This function is the subscription handler used by this shadow instance for internal action topics. This function is for internal use ONLY. It is public because the mqtt client needs to be provided with a reference to this function.

+
Parameters
+ + + + +
topic_name- Topic name for which publish message is received
payload- Payload that was received
p_app_handler_data- Context data
+
+
+
Returns
ResponseCode indicating status of operation
+ +
+
+ +

◆ UpdateDeviceShadow()

+ +
+
+ + + + + + + + +
ResponseCode awsiotsdk::Shadow::UpdateDeviceShadow (util::JsonDocument & document)
+
+

This function can be used to update a device shadow. The document passed here must have the same structure as a device shadow document. Whatever is provided here will be merged into the device shadow json with one of the below options: 1) Key exists in both current state and the provided document : Provided document value is used 2) Key exists only in current state : No changes, kept as is 3) Key exists only in the provided document : New document's key and value is copied to device shadow json

+

To easily generate a source document, please use either the GetEmptyShadowDocument function to get an empty document or get either the current device state or server state document using the corrosponding functions

+
Note
Shadow document structure can be seen here - http://docs.aws.amazon.com/iot/latest/developerguide/thing-shadow-document.html
+
Parameters
+ + +
document- JsonDocument containing the new updates
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1_utf8_string.html b/docs/html/classawsiotsdk_1_1_utf8_string.html new file mode 100644 index 0000000..49b75ad --- /dev/null +++ b/docs/html/classawsiotsdk_1_1_utf8_string.html @@ -0,0 +1,149 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::Utf8String Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ + + + + + + + + + + + + + +

+Public Member Functions

Utf8String (const Utf8String &)=default
 
Utf8String (Utf8String &&)=default
 
+Utf8Stringoperator= (const Utf8String &) &=default
 
+Utf8Stringoperator= (Utf8String &&) &=default
 
+std::size_t Length ()
 
+util::String ToStdString ()
 
+ + + + + +

+Static Public Member Functions

+static std::unique_ptr< Utf8StringCreate (util::String str)
 
+static std::unique_ptr< Utf8StringCreate (const char *str, std::size_t length)
 
+ + + + + +

+Protected Member Functions

Utf8String (util::String str)
 
Utf8String (const char *str, std::size_t length)
 
+ + + + + +

+Static Protected Member Functions

+static bool IsValidInput (util::String str)
 
+static bool IsValidInput (const char *str, std::size_t length)
 
+ + + + + +

+Protected Attributes

+util::String data
 
+std::size_t length
 
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1discovery_1_1_discover_action.html b/docs/html/classawsiotsdk_1_1discovery_1_1_discover_action.html new file mode 100644 index 0000000..24c8901 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1discovery_1_1_discover_action.html @@ -0,0 +1,462 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::discovery::DiscoverAction Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::discovery::DiscoverAction Class Reference
+
+
+ +

Define a class for DiscoverAction. + More...

+ +

#include <Discovery.hpp>

+
+Inheritance diagram for awsiotsdk::discovery::DiscoverAction:
+
+
+ + +awsiotsdk::Action + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

DiscoverAction (const DiscoverAction &)=delete
 
DiscoverAction (DiscoverAction &&)=delete
 
+DiscoverActionoperator= (const DiscoverAction &) &=delete
 
+DiscoverActionoperator= (DiscoverAction &&) &=delete
 
 DiscoverAction (std::shared_ptr< mqtt::ClientState > p_client_state)
 Constructor. More...
 
ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
 Performs the Discovery Action. More...
 
- Public Member Functions inherited from awsiotsdk::Action
ActionType GetActionType ()
 Get Type of this Action. More...
 
util::String GetActionInfo ()
 Get information/description about the current action. More...
 
void SetParentThreadSync (std::shared_ptr< std::atomic_bool > p_thread_continue)
 Sets the parent thread sync variable. More...
 
virtual ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)=0
 Virtual base function for Performing Action. More...
 
Action (const Action &)=delete
 
Action (Action &&)=delete
 
+Actionoperator= (const Action &) &=delete
 
+Actionoperator= (Action &&) &=delete
 
 Action (ActionType action_type, util::String action_info_string)
 Action Constructor. More...
 
+ + + + +

+Static Public Member Functions

static std::unique_ptr< ActionCreate (std::shared_ptr< ActionState > p_action_state)
 Factory Create method. More...
 
+ + + + + + + + + + + + + + + + + +

+Protected Member Functions

ResponseCode ReadResponseFromNetwork (std::shared_ptr< NetworkConnection > p_network_connection, util::String &sent_packet, util::String &read_payload, std::chrono::milliseconds max_response_wait_time)
 Parses the discovery response to get the header and response data. More...
 
ResponseCode MakeDiscoveryRequest (std::shared_ptr< NetworkConnection > p_network_connection, const util::String packet_data)
 Make the discovery request. More...
 
ResponseCode InitializeDiscoveryResponseJson (const util::String received_response, std::shared_ptr< DiscoverRequestData > discover_packet)
 Initialize the discovery response json. More...
 
- Protected Member Functions inherited from awsiotsdk::Action
ResponseCode ReadFromNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, util::Vector< unsigned char > &read_buf, size_t bytes_to_read)
 Generic Network Read function for all actions. More...
 
ResponseCode WriteToNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, const util::String &write_buf)
 Generic Network Write function for all actions. More...
 
+ + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< mqtt::ClientStatep_client_state_
 Shared Client State instance.
 
- Protected Attributes inherited from awsiotsdk::Action
+ActionType action_type_
 Type of the action.
 
+util::String action_info_string_
 Info string.
 
+std::shared_ptr< std::atomic_bool > p_thread_continue_
 Shared atomic variable used for sync when action is run in separate thread.
 
+ + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::Action
typedef std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
 
+

Detailed Description

+

This class defines a Synchronous action for performing an AWS Greengrass Discovery operation

+

Constructor & Destructor Documentation

+ +

◆ DiscoverAction()

+ +
+
+ + + + + + + + +
awsiotsdk::discovery::DiscoverAction::DiscoverAction (std::shared_ptr< mqtt::ClientStatep_client_state)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::unique_ptr< Action > awsiotsdk::discovery::DiscoverAction::Create (std::shared_ptr< ActionStatep_action_state)
+
+static
+
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+
Returns
nullptr on error, unique_ptr pointing to a created DiscoverAction instance if successful
+ +
+
+ +

◆ InitializeDiscoveryResponseJson()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::discovery::DiscoverAction::InitializeDiscoveryResponseJson (const util::String received_response,
std::shared_ptr< DiscoverRequestDatadiscover_packet 
)
+
+protected
+
+

Convert the received discovery response and insert it into the discover packet. Returns a SUCCESS if it able to covert it into a Json successfully. Returns error code otherwise.

+
Parameters
+ + + +
received_response
discover_packet
+
+
+
Returns
ResponseCode
+ +
+
+ +

◆ MakeDiscoveryRequest()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::discovery::DiscoverAction::MakeDiscoveryRequest (std::shared_ptr< NetworkConnectionp_network_connection,
const util::String packet_data 
)
+
+protected
+
+

Writes the discovery request to the network. Returns a SUCCESS when it is able to write to the network correctly. Returns error code otherwise.

+
Parameters
+ + + +
p_network_connection
p_discover_packet
+
+
+
Returns
ResponseCode
+ +
+
+ +

◆ PerformAction()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::discovery::DiscoverAction::PerformAction (std::shared_ptr< NetworkConnectionp_network_connection,
std::shared_ptr< ActionDatap_action_data 
)
+
+virtual
+
+

Performs the Discovery operation to get the connectivity information of GGCs in the group that this device belongs to by making an HTTP GET request to the endpoint. Returns a DISCOVER_ACTION_SUCCESS response when connectivity information is found. Otherwise returns error codes based on whether it's an HTTP error or if connectivity information is not present.

+
Parameters
+ + + +
p_network_connection
p_action_data
+
+
+
Returns
ResponseCode
+ +

Implements awsiotsdk::Action.

+ +
+
+ +

◆ ReadResponseFromNetwork()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::discovery::DiscoverAction::ReadResponseFromNetwork (std::shared_ptr< NetworkConnectionp_network_connection,
util::String & sent_packet,
util::String & read_payload,
std::chrono::milliseconds max_response_wait_time 
)
+
+protected
+
+

Parses the discovery response to obtain the header and response payload. Returns a SUCCESS when it is able to parse it correctly. Otherwise returns error codes if the discovery request fails.

+
Parameters
+ + + + +
sent_packet
read_payload
max_response_wait_time
+
+
+
Returns
ResponseCode
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1discovery_1_1_discover_action.png b/docs/html/classawsiotsdk_1_1discovery_1_1_discover_action.png new file mode 100644 index 0000000000000000000000000000000000000000..8a1094365f9282b9491faa783f6390b771e3919e GIT binary patch literal 738 zcmeAS@N?(olHy`uVBq!ia0vp^cY!#7gBeJ!GHK8QQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#NsxJzX3_Dj46+P3(KEz|(TP zZ_BLT^M8~&Gf8;N-dA>8BJ#8eT`GrA96j6$`!UDO$2>l^vM)>Rw`0;VpZ) z-eT>lUrqo1ym{BIzwCe9mhBfha}4u;y%S~yS7GJd+= z@k#&M9BamCG zSS`(a~rP(;-JBenm3iD>AoVRm{cch4Br8kLr?d&~XkUw^jw%$E6Ewq^ww7r)&Z zZ(MBfwSMbg)6hLe#pm{~VyG@CJu4F~I_b{@yUnkrzp&f#qWp#3)@R#|Cae69b9A2s l3{sVs!RA(i6C=O!@0_>YSLoX7=fKp+;OXk;vd$@?2>?CdXAJ-V literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1discovery_1_1_discover_request_data.html b/docs/html/classawsiotsdk_1_1discovery_1_1_discover_request_data.html new file mode 100644 index 0000000..e0f1d3b --- /dev/null +++ b/docs/html/classawsiotsdk_1_1discovery_1_1_discover_request_data.html @@ -0,0 +1,383 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::discovery::DiscoverRequestData Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::discovery::DiscoverRequestData Class Reference
+
+
+ +

Discover Request Packet Type. + More...

+ +

#include <Discovery.hpp>

+
+Inheritance diagram for awsiotsdk::discovery::DiscoverRequestData:
+
+
+ + +awsiotsdk::ActionData + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

DiscoverRequestData (const DiscoverRequestData &)=delete
 
DiscoverRequestData (DiscoverRequestData &&)=delete
 
+DiscoverRequestDataoperator= (const DiscoverRequestData &) &=delete
 
+DiscoverRequestDataoperator= (DiscoverRequestData &&) &=delete
 
 DiscoverRequestData (std::unique_ptr< Utf8String > p_thing_name, std::chrono::milliseconds max_response_wait_time)
 Constructor. More...
 
util::String ToString ()
 Serialize this packet into a String. More...
 
std::chrono::milliseconds GetMaxResponseWaitTime ()
 return the max time for which it will wait for a discovery reply More...
 
virtual uint16_t GetActionId ()
 returns the action ID (currently unused in Discovery) More...
 
virtual void SetActionId (uint16_t action_id)
 sets the action ID (currently unused in Discovery) More...
 
- Public Member Functions inherited from awsiotsdk::ActionData
ActionData (const ActionData &)=default
 
ActionData (ActionData &&)=default
 
+ActionDataoperator= (const ActionData &) &=default
 
+ActionDataoperator= (ActionData &&) &=default
 
virtual uint16_t GetActionId ()=0
 Get ID of the current run of this Action. More...
 
virtual void SetActionId (uint16_t action_id)=0
 Set the Action ID for this run of the Action. More...
 
+ + + + +

+Static Public Member Functions

static std::shared_ptr< DiscoverRequestDataCreate (std::unique_ptr< Utf8String > p_thing_name, std::chrono::milliseconds max_response_wait_time)
 Create Factory method. More...
 
+ + + + + + + + +

+Data Fields

+DiscoveryResponse discovery_response_
 Response received in Discover request.
 
- Data Fields inherited from awsiotsdk::ActionData
+AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to call when response is received for this action.
 
+ + + + + + + + + + +

+Protected Attributes

+std::unique_ptr< Utf8Stringp_thing_name_
 Utf8 string defining the Thing name.
 
+util::String discovery_request_data_
 Packet data.
 
+std::chrono::milliseconds max_response_wait_time_
 Maximum time the device should wait for response.
 
+ + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::ActionData
typedef std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
 
+

Detailed Description

+

Defines a type for Discover Request Packet message

+

Constructor & Destructor Documentation

+ +

◆ DiscoverRequestData()

+ +
+
+ + + + + + + + + + + + + + + + + + +
awsiotsdk::discovery::DiscoverRequestData::DiscoverRequestData (std::unique_ptr< Utf8Stringp_thing_name,
std::chrono::milliseconds max_response_wait_time 
)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + + +
p_thing_name_- Thing name to use to perform discovery
max_response_wait_time- discovery reply timeout in milliseconds
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::shared_ptr< DiscoverRequestData > awsiotsdk::discovery::DiscoverRequestData::Create (std::unique_ptr< Utf8Stringp_thing_name,
std::chrono::milliseconds max_response_wait_time 
)
+
+static
+
+
Parameters
+ + + +
p_thing_name_- Thing name to use to perform discovery
max_response_wait_time- max time for which it will wait for a discovery reply, in milliseconds
+
+
+
Returns
nullptr on error, shared_ptr pointing to a created DiscoverRequestData instance if successful
+ +
+
+ +

◆ GetActionId()

+ +
+
+ + + + + +
+ + + + + + + +
virtual uint16_t awsiotsdk::discovery::DiscoverRequestData::GetActionId ()
+
+inlinevirtual
+
+
Returns
uint16_t
+ +

Implements awsiotsdk::ActionData.

+ +
+
+ +

◆ GetMaxResponseWaitTime()

+ +
+
+ + + + + +
+ + + + + + + +
std::chrono::milliseconds awsiotsdk::discovery::DiscoverRequestData::GetMaxResponseWaitTime ()
+
+inline
+
+
Returns
wait time in milliseconds
+ +
+
+ +

◆ SetActionId()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void awsiotsdk::discovery::DiscoverRequestData::SetActionId (uint16_t action_id)
+
+inlinevirtual
+
+
Parameters
+ + +
action_id
+
+
+ +

Implements awsiotsdk::ActionData.

+ +
+
+ +

◆ ToString()

+ +
+
+ + + + + + + +
util::String awsiotsdk::discovery::DiscoverRequestData::ToString ()
+
+
Returns
String containing serialized packet
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1discovery_1_1_discover_request_data.png b/docs/html/classawsiotsdk_1_1discovery_1_1_discover_request_data.png new file mode 100644 index 0000000000000000000000000000000000000000..e76b06e2ef0e2d359500889dd85d3aa828dd87b3 GIT binary patch literal 826 zcmeAS@N?(olHy`uVBq!ia0vp^|A9DwgBeIZoD+N)NJ$6ygt-3y4-$Xz=4)yHq2(3^ zngtTm&%8Kr-~doOc+%w+KsnBmAirP+ARi3OnPy*MU|>4x>Eakt!T5IW!%eFdcv_}g zT)z3e{!uieqGOJ&?Y+xollr1Xg-)<5{yVx!r#m@OP_S_I1O7Te!S!7K{vVsK=Ku8Q z9{acZ%-8H!W*3}z{j2)#{}Ki>ze`5v10fk$*oabVtknwpH`3QiTk|_kHaPycVc`&ElSFW=R9@o|Dl}M``1lcymsCH(zDxA^o3vYw|1P+FNypsEcnxj zwf;kQM@8rd_Wd0l;jI5bK4m;$UCPXGyy#s0?w@fC&;OLyT<3l;*Zx)g2j+%&R(pmY zp`SKr!|Ggr)(Os_q2 z?Cx%xKR51gdFfakU6*rMdV<^DkK*s`;+^kIbB_O+W-YXG{o&hbCy&&ZY& ziHmls$=?1n`;Y&UeQ9}SwpaN2)Rx^mvVP0$|C|4P^_jhH@6Qqs(;qYbmockd?mwP< z{Jt;GOUE%Y+(7VD*t%<*4GXH=j=cC|KbUr z8oU3(CmsFI?LYZ|{dxS~mD3vkC!AvbzxcELYTd=3FaBJ=brXO7>z7OZZP)s_zopr0FLak!~g&Q literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_client_state.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_client_state.html new file mode 100644 index 0000000..b8d7c65 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_client_state.html @@ -0,0 +1,518 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::ClientState Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::ClientState Class Reference
+
+
+
+Inheritance diagram for awsiotsdk::mqtt::ClientState:
+
+
+ + +awsiotsdk::ClientCoreState +awsiotsdk::ActionState + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

ClientState (const ClientState &)=delete
 
ClientState (ClientState &&)=delete
 
+ClientStateoperator= (const ClientState &) &=delete
 
+ClientStateoperator= (ClientState &&) &=delete
 
ClientState (std::chrono::milliseconds mqtt_command_timeout)
 
+bool IsSessionPresent ()
 
+void SetSessionPresent (bool value)
 
+bool IsConnected ()
 
+void SetConnected (bool value)
 
+bool IsAutoReconnectEnabled ()
 
+void SetAutoReconnectEnabled (bool value)
 
+bool IsAutoReconnectRequired ()
 
+void SetAutoReconnectRequired (bool value)
 
+bool IsPingreqPending ()
 
+void SetPingreqPending (bool value)
 
+bool isDisconnectCallbackPending ()
 
+void setDisconnectCallbackPending (bool value)
 
+virtual uint16_t GetNextPacketId ()
 
virtual uint16_t GetNextActionId ()
 Overload for Get next Action ID. More...
 
std::chrono::seconds GetKeepAliveTimeout ()
 Get duration of Keep alive interval in seconds. More...
 
+void SetKeepAliveTimeout (std::chrono::seconds keep_alive_timeout)
 
+std::chrono::milliseconds GetMqttCommandTimeout ()
 
+void SetMqttCommandTimeout (std::chrono::milliseconds mqtt_command_timeout)
 
+std::chrono::seconds GetMinReconnectBackoffTimeout ()
 
+void SetMinReconnectBackoffTimeout (std::chrono::seconds min_reconnect_backoff_timeout)
 
+std::chrono::seconds GetMaxReconnectBackoffTimeout ()
 
+void SetMaxReconnectBackoffTimeout (std::chrono::seconds max_reconnect_backoff_timeout)
 
+std::shared_ptr< ActionDataGetAutoReconnectData ()
 
+void SetAutoReconnectData (std::shared_ptr< ActionData > p_connect_data)
 
+std::shared_ptr< SubscriptionGetSubscription (util::String p_topic_name)
 
+std::shared_ptr< SubscriptionSetSubscriptionPacketInfo (util::String p_topic_name, uint16_t packet_id, uint8_t index_in_packet)
 
+ResponseCode SetSubscriptionActive (uint16_t packet_id, uint8_t index_in_sub_packet, mqtt::QoS max_qos)
 
+ResponseCode RemoveSubscription (uint16_t packet_id, uint8_t index_in_sub_packet)
 
+ResponseCode RemoveAllSubscriptionsForPacketId (uint16_t packet_id)
 
+ResponseCode RemoveSubscription (util::String p_topic_name)
 
- Public Member Functions inherited from awsiotsdk::ClientCoreState
virtual uint16_t GetNextActionId ()
 Overload for Get next Action ID. More...
 
size_t GetMaxActionQueueSize ()
 Get current value of maximum action queue size. More...
 
void SetMaxActionQueueSize (size_t max_queue_size)
 Set max size for action queue. More...
 
std::shared_ptr< std::atomic_bool > GetCoreExecutionSyncPoint ()
 Get pointer to sync point used for execution status of the Core instance. More...
 
void SetProcessQueuedActions (bool process_queued_actions)
 Sets whether the Client is allowed to process queue actions. More...
 
bool CanProcessQueuedActions ()
 Get whether the Client can process queued actions. More...
 
void ProcessOutboundActionQueue (std::shared_ptr< std::atomic_bool > thread_task_out_sync)
 Process the outbound action queue. More...
 
ResponseCode PerformAction (ActionType action_type, std::shared_ptr< ActionData > action_data, std::chrono::milliseconds action_reponse_timeout)
 Perform Action in Blocking Mode. More...
 
ResponseCode RegisterAction (ActionType action_type, Action::CreateHandlerPtr p_action_create_handler, std::shared_ptr< ActionState > p_action_state)
 Register Action for execution by Client Core. More...
 
ResponseCode GetActionCreateHandler (ActionType action_type, Action::CreateHandlerPtr *p_action_create_handler)
 Get the Create Factory Method for the specified action type. More...
 
ResponseCode EnqueueOutboundAction (ActionType action_type, std::shared_ptr< ActionData > action_data, uint16_t &action_id_out)
 Enqueue Action for processing in Outbound Queue. More...
 
ResponseCode RegisterPendingAck (uint16_t action_id, ActionData::AsyncAckNotificationHandlerPtr p_async_ack_handler)
 Register Ack Handler for provided action id. More...
 
void DeletePendingAck (uint16_t action_id)
 Delete Ack Handler for specified Action ID. More...
 
void ForwardReceivedAck (uint16_t action_id, ResponseCode rc)
 Call registered Ack handler if it exists for specified Packet id. More...
 
void DeleteExpiredAcks ()
 Delete all expired Acks. More...
 
void ClearRegisteredActions ()
 Clears all registered Actions. More...
 
void ClearOutboundActionQueue ()
 Clears all pending outbound Actions. More...
 
ClientCoreState ()
 Default Constructor.
 
+virtual ~ClientCoreState ()
 Destructor.
 
ClientCoreState (const ClientCoreState &)=delete
 
ClientCoreState (ClientCoreState &&)=delete
 
+ClientCoreStateoperator= (const ClientCoreState &) &=delete
 
+ClientCoreStateoperator= (ClientCoreState &&) &=delete
 
- Public Member Functions inherited from awsiotsdk::ActionState
virtual uint16_t GetNextActionId ()=0
 Get Action ID of the next Action. More...
 
ActionState (const ActionState &)=delete
 
ActionState (ActionState &&)=delete
 
+ActionStateoperator= (const ActionState &) &=delete
 
+ActionStateoperator= (ActionState &&) &=delete
 
+ + + +

+Static Public Member Functions

+static std::shared_ptr< ClientStateCreate (std::chrono::milliseconds mqtt_command_timeout)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

+util::Map< util::String, std::shared_ptr< Subscription > > subscription_map_
 
- Data Fields inherited from awsiotsdk::ClientCoreState
+ApplicationDisconnectCallbackPtr disconnect_handler_ptr_
 Pointer to the Application Disconnect Callback.
 
+std::shared_ptr< DisconnectCallbackContextDatap_disconnect_app_handler_data_
 Data to be passed to the Application Handler.
 
+ApplicationReconnectCallbackPtr reconnect_handler_ptr_
 Pointer to the Application Reconnect Callback.
 
+std::shared_ptr< ReconnectCallbackContextDatap_reconnect_app_handler_data_
 Data to be passed to the Application Handler.
 
+ApplicationResubscribeCallbackPtr resubscribe_handler_ptr_
 Pointer to the Application Resubscribe Callback.
 
+std::shared_ptr< ResubscribeCallbackContextDatap_resubscribe_app_handler_data_
 Data to be passed to the Application Handler.
 
+std::shared_ptr< NetworkConnectionp_network_connection_
 Network connection instance to use for this instance of the Client This is shared between Actions, public to avoid multiple shared pointer operations while passing as argument by ClientCore.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+bool is_session_present_
 
+std::atomic_bool is_connected_
 
+std::atomic_bool is_auto_reconnect_enabled_
 
+std::atomic_bool is_auto_reconnect_required_
 
+std::atomic_bool is_pingreq_pending_
 
+uint16_t last_sent_packet_id_
 
+std::chrono::seconds keep_alive_timeout_
 
+std::chrono::seconds min_reconnect_backoff_timeout_
 
+std::chrono::seconds max_reconnect_backoff_timeout_
 
+std::chrono::milliseconds mqtt_command_timeout_
 
+std::shared_ptr< ActionDatap_connect_data_
 
+std::atomic_bool trigger_disconnect_callback_
 
- Protected Attributes inherited from awsiotsdk::ClientCoreState
+std::atomic< uint16_t > next_action_id_
 Atomic, ID of the next Action that will be enqueued.
 
+std::atomic_int cur_core_threads_
 Atomic, Count of currently running core threads.
 
+std::atomic_int max_hardware_threads_
 Atomic, Count of the maximum allowed hardware threads.
 
+std::atomic_size_t max_queue_size_
 Atomic, Current configured max queue size.
 
+std::chrono::seconds ack_timeout_
 Timeout for pending Acks, older Acks are deleted with a failed response.
 
+std::mutex register_action_lock_
 Mutex for Register Action Request flow.
 
+std::mutex ack_map_lock_
 Mutex for Ack Map operations.
 
+std::mutex sync_action_request_lock_
 Mutex for Sync Action Request flow.
 
+std::mutex sync_action_response_lock_
 Mutex for Sync Action Response flow.
 
+std::condition_variable sync_action_response_wait_
 Condition variable used to wake up calling thread on Sync Action response.
 
+ResponseCode sync_action_response_
 Variable to store received Sync Action response.
 
+std::atomic_bool process_queued_actions_
 Atomic, indicates whether currently queued Actions should be processed or not.
 
+std::shared_ptr< std::atomic_bool > continue_execution_
 Atomic, Used to synchronize running threads, false value causes running threads to stop.
 
+util::Map< ActionType, std::unique_ptr< Action > > action_map_
 Map containing currently initialized Action Instances.
 
+util::Map< uint16_t, std::unique_ptr< PendingAckData > > pending_ack_map_
 Map containing currently pending Acks.
 
+util::Map< ActionType, Action::CreateHandlerPtraction_create_handler_map_
 Map containing currently registered Action Types and corrosponding Factories.
 
+util::Queue< std::pair< ActionType, std::shared_ptr< ActionData > > > outbound_action_queue_
 Queue of outbound actions.
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::ClientCoreState
typedef std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< DisconnectCallbackContextData > p_app_handler_data)> ApplicationDisconnectCallbackPtr
 Define Handler for Disconnect Callbacks. More...
 
typedef std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< ReconnectCallbackContextData > p_app_handler_data, ResponseCode reconnect_result)> ApplicationReconnectCallbackPtr
 Define Handler for Reconnect Callbacks. More...
 
typedef std::function< ResponseCode(util::String mqtt_client_id, std::shared_ptr< ResubscribeCallbackContextData > p_app_handler_data, ResponseCode resubscribe_result)> ApplicationResubscribeCallbackPtr
 Define Handler for Resubscribe Callbacks. More...
 
- Protected Member Functions inherited from awsiotsdk::ClientCoreState
void SyncActionHandler (uint16_t action_id, ResponseCode rc)
 Internal Action Handler for Sync Action responses. More...
 
+

Member Function Documentation

+ +

◆ GetKeepAliveTimeout()

+ +
+
+ + + + + +
+ + + + + + + +
std::chrono::seconds awsiotsdk::mqtt::ClientState::GetKeepAliveTimeout ()
+
+inline
+
+
Returns
std::chrono::seconds Keep alive interval duration
+ +
+
+ +

◆ GetNextActionId()

+ +
+
+ + + + + +
+ + + + + + + +
virtual uint16_t awsiotsdk::mqtt::ClientState::GetNextActionId ()
+
+inlinevirtual
+
+
Returns
uint16_t Action ID
+ +

Reimplemented from awsiotsdk::ClientCoreState.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_client_state.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_client_state.png new file mode 100644 index 0000000000000000000000000000000000000000..c48d4e08ed7cc4643de702749bab92631caaac24 GIT binary patch literal 1048 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$TgBeJMzY}l)QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#Nrrd%8G=R4~4sd$;ek0#8f3 z#shT6>Au&p76Qx?OwNYmhW{^Cfx~V^q3^as^D4mg)t#2;_J~p z`{&lx*8E$iJjv!*{oMz)jz;fSuRU%4_`7C;WrF?V(=ufM2b&-qQ~Vh>5B$~=cUCA zDxUpy%n9c#^K}@0tde8cu(^!A#>Pzjj_ik%+sz+-Yq)rn;XyD1Q-eDr2LsUe3>6{` z3=abF3Viv_P<*a3U2*c0eQitW|2FKWr>7`9EgWo00g z>Gm^O&18Yq!$&G#S+0epU%sY!wDU^x(=`2x+U8YK>lsR4^~c<0zLpfq?e}}dn)}Rs z0oxl^74}^+5ERqYoB7(cco+ZgeHz(^KQ~Kn@!eEl!92@s=lX*)3mzt3O0B*iQ^UH$ zYh!Qvt{tUIUOu|$_4)t7#rDVRoA2%0+dXydOqbi90-1NP~Qx%y=OD zD?`KFt=117Z?t^)uEBrbUe4|8J$h^m^O*z~Y`7d4K4>s79$3u4!qAUjU_bkeATMif zPnVQ<)&(6M?u;5rk1k3dNWP>~z3WMN<91AWpIo)|BD?vI{S8NVMclWaFB{hI zROPRMe({aeMRuKK;4?d!?AT>?zX)~z zb#_%~m-ml2$>q+s%Y(1W-&t_a$Nc1+Ri+CvC;yg;$yt~E;m*<3BJoVX#H*GozI~f< ztj*S-=ul}l^KF{bcKZDK^5WHMJu$(bUHfG88C+d#e%USPI3X_Dprj-R_NxDZDM7a) a{xc|fEOO!!`kxHU!wjCTelF{r5}E*Az}!6m literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_action_async.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_action_async.html new file mode 100644 index 0000000..6ce439c --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_action_async.html @@ -0,0 +1,301 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::ConnectActionAsync Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::ConnectActionAsync Class Reference
+
+
+ +

Define a class for ConnectActionAsync. + More...

+ +

#include <Connect.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::ConnectActionAsync:
+
+
+ + +awsiotsdk::Action + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

ConnectActionAsync (const ConnectActionAsync &)=delete
 
ConnectActionAsync (ConnectActionAsync &&)=delete
 
+ConnectActionAsyncoperator= (const ConnectActionAsync &) &=delete
 
+ConnectActionAsyncoperator= (ConnectActionAsync &&) &=delete
 
 ConnectActionAsync (std::shared_ptr< ClientState > p_client_state)
 Constructor. More...
 
ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
 Perform MQTT Connect Action in Async mode. More...
 
- Public Member Functions inherited from awsiotsdk::Action
ActionType GetActionType ()
 Get Type of this Action. More...
 
util::String GetActionInfo ()
 Get information/description about the current action. More...
 
void SetParentThreadSync (std::shared_ptr< std::atomic_bool > p_thread_continue)
 Sets the parent thread sync variable. More...
 
virtual ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)=0
 Virtual base function for Performing Action. More...
 
Action (const Action &)=delete
 
Action (Action &&)=delete
 
+Actionoperator= (const Action &) &=delete
 
+Actionoperator= (Action &&) &=delete
 
 Action (ActionType action_type, util::String action_info_string)
 Action Constructor. More...
 
+ + + + +

+Static Public Member Functions

static std::unique_ptr< ActionCreate (std::shared_ptr< ActionState > p_action_state)
 Factory Create method. More...
 
+ + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< ClientStatep_client_state_
 Shared Client State instance.
 
- Protected Attributes inherited from awsiotsdk::Action
+ActionType action_type_
 Type of the action.
 
+util::String action_info_string_
 Info string.
 
+std::shared_ptr< std::atomic_bool > p_thread_continue_
 Shared atomic variable used for sync when action is run in separate thread.
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::Action
typedef std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
 
- Protected Member Functions inherited from awsiotsdk::Action
ResponseCode ReadFromNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, util::Vector< unsigned char > &read_buf, size_t bytes_to_read)
 Generic Network Read function for all actions. More...
 
ResponseCode WriteToNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, const util::String &write_buf)
 Generic Network Write function for all actions. More...
 
+

Detailed Description

+

This class defines an Asynchronous action for performing a MQTT Connect operation

+

Constructor & Destructor Documentation

+ +

◆ ConnectActionAsync()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::ConnectActionAsync::ConnectActionAsync (std::shared_ptr< ClientStatep_client_state)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::unique_ptr< Action > awsiotsdk::mqtt::ConnectActionAsync::Create (std::shared_ptr< ActionStatep_action_state)
+
+static
+
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+
Returns
nullptr on error, unique_ptr pointing to a created ConnectActionAsync instance if successful
+ +
+
+ +

◆ PerformAction()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::mqtt::ConnectActionAsync::PerformAction (std::shared_ptr< NetworkConnectionp_network_connection,
std::shared_ptr< ActionDatap_action_data 
)
+
+virtual
+
+

Performs the MQTT Connect Operation in Async mode. This also calls Connect on the Network Connection provided with the Perform Action call. If the Network connect call fails, the action will return with the ResponseCode returned by the Network Connect call. This does not wait for CONNACK to be received. CONNACK is handled separately in the HandleConnack function of NetworkReadAction. If the MQTT connection is already active, will not attempt another Connect and return with appropriate ResponseCode.

+
Parameters
+ + + +
p_network_connection- Network connection instance to use for performing this action
p_action_data- Action data specific to this execution of the Action
+
+
+
Returns
- ResponseCode indicating status of the operation
+ +

Implements awsiotsdk::Action.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_action_async.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_action_async.png new file mode 100644 index 0000000000000000000000000000000000000000..490d0dcb93ba7bff0c49645fcffaf9501e9a0bbb GIT binary patch literal 756 zcmeAS@N?(olHy`uVBq!ia0vp^w}3c+gBeJAyqFyhq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)JhEy{+uJ!OgEBhKf&`XZ#mCy-BB-tGnYw50{CcU_O}m#T#|2;uN!S zUACCu&xrkYTd(g_H@2JnnrF)tuS2f=iFI+jKh>?pOk6*>tln4p=8e1>8U7z178c_r6t{ zS3FO-FU?lY+9I~i&a}a0mUeqqn`vIP+T>j&e~h-?yCr$MRyHhjvfFQoLX8tHuU5xz zujT&Aa=h{t$Jv#+K`W$BUdcQ$FXh!1;Vcc0*^k`BYWLRlhKaA$TRJ0tkuCQ=??V2y zQ**SR7FvI~v8C(0|Jvs-bgd_UnJDXgTmQ?$XyeT6+iC4J;S<)|HOrdpo&NVEpKQ?W zoc1#o+nmeJE~|JtZPDyyd9lg4nzOaUe`n2DZ71;cyQ}M;+559qDm~JVE1$f6E3%Mj z%U;&Mi{Gv*x0CXWa{`5u2q?J9w@e9|6;#iluC_(%q~pT9!1T%B>FVdQ&MBb@0IPmu AL;wH) literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_packet.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_packet.html new file mode 100644 index 0000000..0754ca8 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_packet.html @@ -0,0 +1,669 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::ConnectPacket Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::ConnectPacket Class Reference
+
+
+ +

Connect Packet Type. + More...

+ +

#include <Connect.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::ConnectPacket:
+
+
+ + +awsiotsdk::mqtt::Packet +awsiotsdk::ActionData + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

ConnectPacket (const ConnectPacket &)=delete
 
ConnectPacket (ConnectPacket &&)=delete
 
+ConnectPacketoperator= (const ConnectPacket &) &=delete
 
+ConnectPacketoperator= (ConnectPacket &&) &=delete
 
 ConnectPacket (bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg, bool is_metrics_enabled)
 Constructor. More...
 
 ConnectPacket (bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg)
 Constructor. More...
 
util::String ToString ()
 Serialize this packet into a String. More...
 
std::chrono::seconds GetKeepAliveTimeout ()
 Get duration of Keep alive interval in seconds. More...
 
util::String GetClientID ()
 get the client ID from the connect packet More...
 
- Public Member Functions inherited from awsiotsdk::mqtt::Packet
Packet (const Packet &)=delete
 
Packet (Packet &&)=delete
 
+Packetoperator= (const Packet &) &=delete
 
+Packetoperator= (Packet &&) &=delete
 
uint16_t GetActionId ()
 Get ID of the current run of this Action. More...
 
void SetActionId (uint16_t action_id)
 Set the Action ID for this run of the Action. More...
 
+bool isPacketDataValid ()
 
+uint16_t GetPacketId ()
 
+void SetPacketId (uint16_t packet_id)
 
+size_t Size ()
 
virtual util::String ToString ()=0
 
- Public Member Functions inherited from awsiotsdk::ActionData
ActionData (const ActionData &)=default
 
ActionData (ActionData &&)=default
 
+ActionDataoperator= (const ActionData &) &=default
 
+ActionDataoperator= (ActionData &&) &=default
 
virtual uint16_t GetActionId ()=0
 Get ID of the current run of this Action. More...
 
virtual void SetActionId (uint16_t action_id)=0
 Set the Action ID for this run of the Action. More...
 
+ + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static std::shared_ptr< ConnectPacketCreate (bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg, bool is_metrics_enabled)
 Create Factory method. More...
 
static std::shared_ptr< ConnectPacketCreate (bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg)
 Create Factory method, SDK metrics enabled by default. More...
 
- Static Public Member Functions inherited from awsiotsdk::mqtt::Packet
+static void AppendUInt16ToBuffer (util::String &buf, uint16_t value)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::unique_ptr< Utf8String > &utf8_str)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::shared_ptr< Utf8String > &utf8_str)
 
+static uint16_t ReadUInt16FromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+static std::unique_ptr< Utf8StringReadUtf8StringFromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+bool is_clean_session_
 MQTT clean session. True = this session is to be treated as clean. Previous server state is cleared and no information is retained from any previous connection.
 
+unsigned char connect_flags_
 MQTT Connect flags byte.
 
+std::chrono::seconds keep_alive_timeout_
 MQTT Keepalive timeout in seconds.
 
+mqtt::Version mqtt_version_
 Desired MQTT version used during connection.
 
+std::unique_ptr< Utf8Stringp_protocol_id_
 The protocol ID for this connection.
 
+std::unique_ptr< Utf8Stringp_client_id_
 Pointer to a string defining the MQTT client ID (this needs to be unique per device across your AWS account)
 
+std::unique_ptr< WillOptionsp_will_msg_
 MQTT LWT parameters.
 
+std::unique_ptr< Utf8Stringp_username_
 MQTT Username.
 
- Protected Attributes inherited from awsiotsdk::mqtt::Packet
+PacketFixedHeader fixed_header_
 Fixed header for this packet instance.
 
+size_t packet_size_
 Size of the packet.
 
+size_t serialized_packet_length_
 Serialized length of the entire packet including fixed header.
 
+std::atomic_uint_fast16_t packet_id_
 Message sequence identifier. Handled automatically by the MQTT client.
 
+ + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::ActionData
typedef std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
 
- Data Fields inherited from awsiotsdk::ActionData
+AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to call when response is received for this action.
 
+

Detailed Description

+

Defines a type for MQTT Connect message

+

Constructor & Destructor Documentation

+ +

◆ ConnectPacket() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::mqtt::ConnectPacket::ConnectPacket (bool is_clean_session,
mqtt::Version mqtt_version,
std::chrono::seconds keep_alive_timeout,
std::unique_ptr< Utf8Stringp_client_id,
std::unique_ptr< Utf8Stringp_username,
std::unique_ptr< Utf8Stringp_password,
std::unique_ptr< mqtt::WillOptionsp_will_msg,
bool is_metrics_enabled 
)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + + + + + + + +
is_clean_session- Is this a clean session? Currently we do not support setting this to false
mqtt_version- Which version of the MQTT protocol to use. Currently the only allowed value is 3.1.1
p_client_id- Client ID to use to make the connection
p_username- Username, currently unused in AWS IoT and will be ignored
p_password- Password, currently unused in AWS IoT and will be ignored
p_will_msg- MQTT Last Will and Testament message
is_metrics_enabled- enable SDK metrics in username string
+
+
+ +
+
+ +

◆ ConnectPacket() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::mqtt::ConnectPacket::ConnectPacket (bool is_clean_session,
mqtt::Version mqtt_version,
std::chrono::seconds keep_alive_timeout,
std::unique_ptr< Utf8Stringp_client_id,
std::unique_ptr< Utf8Stringp_username,
std::unique_ptr< Utf8Stringp_password,
std::unique_ptr< mqtt::WillOptionsp_will_msg 
)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared). SDK metrics are enabled by default
+
Parameters
+ + + + + + + +
is_clean_session- Is this a clean session? Currently we do not support setting this to false
mqtt_version- Which version of the MQTT protocol to use. Currently the only allowed value is 3.1.1
p_client_id- Client ID to use to make the connection
p_username- Username, currently unused in AWS IoT and will be ignored
p_password- Password, currently unused in AWS IoT and will be ignored
p_will_msg- MQTT Last Will and Testament message
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::shared_ptr< ConnectPacket > awsiotsdk::mqtt::ConnectPacket::Create (bool is_clean_session,
mqtt::Version mqtt_version,
std::chrono::seconds keep_alive_timeout,
std::unique_ptr< Utf8Stringp_client_id,
std::unique_ptr< Utf8Stringp_username,
std::unique_ptr< Utf8Stringp_password,
std::unique_ptr< mqtt::WillOptionsp_will_msg 
)
+
+static
+
+
Parameters
+ + + + + + + +
is_clean_session- Is this a clean session? Currently we do not support setting this to false
mqtt_version- Which version of the MQTT protocol to use. Currently the only allowed value is 3.1.1
p_client_id- Client ID to use to make the connection
p_username- Username, currently unused in AWS IoT
p_password- Password, currently unused in AWS IoT
p_will_msg- MQTT Last Will and Testament message
+
+
+
Returns
nullptr on error, shared_ptr pointing to a created ConnectPacket instance if successful
+ +
+
+ +

◆ Create() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::shared_ptr< ConnectPacket > awsiotsdk::mqtt::ConnectPacket::Create (bool is_clean_session,
mqtt::Version mqtt_version,
std::chrono::seconds keep_alive_timeout,
std::unique_ptr< Utf8Stringp_client_id,
std::unique_ptr< Utf8Stringp_username,
std::unique_ptr< Utf8Stringp_password,
std::unique_ptr< mqtt::WillOptionsp_will_msg,
bool is_metrics_enabled 
)
+
+static
+
+
Parameters
+ + + + + + + + +
is_clean_session- Is this a clean session? Currently we do not support setting this to false
mqtt_version- Which version of the MQTT protocol to use. Currently the only allowed value is 3.1.1
p_client_id- Client ID to use to make the connection
p_username- Username, currently unused in AWS IoT
p_password- Password, currently unused in AWS IoT
p_will_msg- MQTT Last Will and Testament message
is_metrics_enabled- enable SDK metrics in username string
+
+
+
Returns
nullptr on error, shared_ptr pointing to a created ConnectPacket instance if successful
+ +
+
+ +

◆ GetClientID()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::mqtt::ConnectPacket::GetClientID ()
+
+inline
+
+
Returns
String containing the client ID
+ +
+
+ +

◆ GetKeepAliveTimeout()

+ +
+
+ + + + + +
+ + + + + + + +
std::chrono::seconds awsiotsdk::mqtt::ConnectPacket::GetKeepAliveTimeout ()
+
+inline
+
+
Returns
std::chrono::seconds Keep alive interval duration
+ +
+
+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::mqtt::ConnectPacket::ToString ()
+
+virtual
+
+
Returns
String containing serialized packet
+ +

Implements awsiotsdk::mqtt::Packet.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_packet.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_packet.png new file mode 100644 index 0000000000000000000000000000000000000000..222423e8580ff7ab09cfe4ad4d98d98e49fda293 GIT binary patch literal 1068 zcmeAS@N?(olHy`uVBq!ia0vp^JAk-@gBeIBPrn!eq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)goT(E3f@{yO*ALjE z`LDeH6wt;SzIU?c-R9}PE=Ve!yuK?K6m}AyURa5x82K-)U-R+a{Z0R+KS((;_IO^p zS}gzPNnGP>yGe6i#;u&Pp;YnwQlrSXw;!18-W#&-{v2@7nU~xuW3>C|GiiOv>yW_b zrwUeuL{zWhiQdt>O8RTfr!9KXdG3spp2Xz+pCitxa`Jyr!{jH{y4-$~_J=e~Ub38N zj*9J9mh+a+Sy>tCm$5UfSrK|rzTfp^IBR{;de4126?3#09;_xR_N1`geYCfBPaMNqJtYg_DCkm43~uGUYa!x%^VTQC*UZ+;ge$wtWJhgElfumPl5u z<*j3p{oZE!CUx=e9AMC{z2XN9+I{jVF>klq)ogh$IXmZ^ic+&))*Xk;+h0O + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::DisconnectActionAsync Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::DisconnectActionAsync Class Reference
+
+
+ +

Define a class for DisconnectActionAsync. + More...

+ +

#include <Connect.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::DisconnectActionAsync:
+
+
+ + +awsiotsdk::Action + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

DisconnectActionAsync (const DisconnectActionAsync &)=delete
 
DisconnectActionAsync (DisconnectActionAsync &&)=delete
 
+DisconnectActionAsyncoperator= (const DisconnectActionAsync &) &=delete
 
+DisconnectActionAsyncoperator= (DisconnectActionAsync &&) &=delete
 
 DisconnectActionAsync (std::shared_ptr< ClientState > p_client_state)
 Constructor. More...
 
ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
 Perform MQTT Disconnect Action in Async mode. More...
 
- Public Member Functions inherited from awsiotsdk::Action
ActionType GetActionType ()
 Get Type of this Action. More...
 
util::String GetActionInfo ()
 Get information/description about the current action. More...
 
void SetParentThreadSync (std::shared_ptr< std::atomic_bool > p_thread_continue)
 Sets the parent thread sync variable. More...
 
virtual ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)=0
 Virtual base function for Performing Action. More...
 
Action (const Action &)=delete
 
Action (Action &&)=delete
 
+Actionoperator= (const Action &) &=delete
 
+Actionoperator= (Action &&) &=delete
 
 Action (ActionType action_type, util::String action_info_string)
 Action Constructor. More...
 
+ + + + +

+Static Public Member Functions

static std::unique_ptr< ActionCreate (std::shared_ptr< ActionState > p_action_state)
 Factory Create method. More...
 
+ + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< ClientStatep_client_state_
 Shared Client State instance.
 
- Protected Attributes inherited from awsiotsdk::Action
+ActionType action_type_
 Type of the action.
 
+util::String action_info_string_
 Info string.
 
+std::shared_ptr< std::atomic_bool > p_thread_continue_
 Shared atomic variable used for sync when action is run in separate thread.
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::Action
typedef std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
 
- Protected Member Functions inherited from awsiotsdk::Action
ResponseCode ReadFromNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, util::Vector< unsigned char > &read_buf, size_t bytes_to_read)
 Generic Network Read function for all actions. More...
 
ResponseCode WriteToNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, const util::String &write_buf)
 Generic Network Write function for all actions. More...
 
+

Detailed Description

+

This class defines an Asynchronous action for performing a MQTT Puback operation

+

Constructor & Destructor Documentation

+ +

◆ DisconnectActionAsync()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::DisconnectActionAsync::DisconnectActionAsync (std::shared_ptr< ClientStatep_client_state)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::unique_ptr< Action > awsiotsdk::mqtt::DisconnectActionAsync::Create (std::shared_ptr< ActionStatep_action_state)
+
+static
+
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+
Returns
nullptr on error, unique_ptr pointing to a created DisconnectActionAsync instance if successful
+ +
+
+ +

◆ PerformAction()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::mqtt::DisconnectActionAsync::PerformAction (std::shared_ptr< NetworkConnectionp_network_connection,
std::shared_ptr< ActionDatap_action_data 
)
+
+virtual
+
+

Performs the MQTT Disconnect Operation in Async mode. Also calls disconnect API of the provided network connection. If the client is already in disconnected state, will not attempt disconnect and return with appropriate ResponseCode.

+
Parameters
+ + + +
p_network_connection- Network connection instance to use for performing this action
p_action_data- Action data specific to this execution of the Action
+
+
+
Returns
- ResponseCode indicating status of the operation
+ +

Implements awsiotsdk::Action.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f16dfcd100ab2abc7ea1273d775b8ea8966627 GIT binary patch literal 769 zcmeAS@N?(olHy`uVBq!ia0vp^uYfp!gBeIFNK57eDd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5C84jcfA2T!`Z0w~8>666=m0OW&#In(Sb3=B*?o-U3d6^w7^W>0!#z|(Tu zOZ4h@`;SgCIVbrOZWtUrG0S(d#Uz>fX>0y==ic6C+T!by!pgd;qr)6b)QXw%&iizr zXZ|c#mw(awr(Qj-bF#<&V5M4?7yE&Qw+-yyxBZzc%OB!e;;y?-^+TE!=U<&G$)Uei zGN}p{zulgdk;?3^{oI(_qVvV+1uw!?UzW}13fk>{zpYBwe73;ukiVV>wK%3>ba{FJNjgXVqe;AcavA zpt*EQ+XRmyR#q*~s^A5amYCZ*u627{CTqiS`P$yEr5{y(##la?%D>;_=jq5=@vpu< zqN^7lH;$B_B(rkSyWREDGPfpg%r<{A|4qdKjd{Ocq@AwMP5b2Y)cO1Ev-|J$thHG2 z^lAR>h_{QU<)>d+QF`lBNTX2ZI-5|_H=nPi8?9X3f8E?RIa_(=nl;hyFZ;)M9~3E2 z`g*l)`@Ff69@_aW-Enr6Wwoodhh4n({d_?7ACav(i+0Gg zKUB=htoyb)2OWHf35Z51gzp_tN!%=j@BESGT#}Zj-Gj3zNTp z?081gs_(nb)?9DgdbaFAPr7x%FVdQ&MBb@0P)mlBLDyZ literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html new file mode 100644 index 0000000..5c11668 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html @@ -0,0 +1,285 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::DisconnectPacket Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::DisconnectPacket Class Reference
+
+
+ +

Disconnect Packet Type. + More...

+ +

#include <Connect.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::DisconnectPacket:
+
+
+ + +awsiotsdk::mqtt::Packet +awsiotsdk::ActionData + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

DisconnectPacket (const DisconnectPacket &)=delete
 
DisconnectPacket (DisconnectPacket &&)=delete
 
+DisconnectPacketoperator= (const DisconnectPacket &) &=delete
 
+DisconnectPacketoperator= (DisconnectPacket &&) &=delete
 
DisconnectPacket ()
 Constructor.
 
util::String ToString ()
 Serialize this packet into a String. More...
 
- Public Member Functions inherited from awsiotsdk::mqtt::Packet
Packet (const Packet &)=delete
 
Packet (Packet &&)=delete
 
+Packetoperator= (const Packet &) &=delete
 
+Packetoperator= (Packet &&) &=delete
 
uint16_t GetActionId ()
 Get ID of the current run of this Action. More...
 
void SetActionId (uint16_t action_id)
 Set the Action ID for this run of the Action. More...
 
+bool isPacketDataValid ()
 
+uint16_t GetPacketId ()
 
+void SetPacketId (uint16_t packet_id)
 
+size_t Size ()
 
virtual util::String ToString ()=0
 
- Public Member Functions inherited from awsiotsdk::ActionData
ActionData (const ActionData &)=default
 
ActionData (ActionData &&)=default
 
+ActionDataoperator= (const ActionData &) &=default
 
+ActionDataoperator= (ActionData &&) &=default
 
virtual uint16_t GetActionId ()=0
 Get ID of the current run of this Action. More...
 
virtual void SetActionId (uint16_t action_id)=0
 Set the Action ID for this run of the Action. More...
 
+ + + + + + + + + + + + + + + +

+Static Public Member Functions

static std::shared_ptr< DisconnectPacketCreate ()
 Create Factory method. More...
 
- Static Public Member Functions inherited from awsiotsdk::mqtt::Packet
+static void AppendUInt16ToBuffer (util::String &buf, uint16_t value)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::unique_ptr< Utf8String > &utf8_str)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::shared_ptr< Utf8String > &utf8_str)
 
+static uint16_t ReadUInt16FromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+static std::unique_ptr< Utf8StringReadUtf8StringFromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+ + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::ActionData
typedef std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
 
- Data Fields inherited from awsiotsdk::ActionData
+AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to call when response is received for this action.
 
- Protected Attributes inherited from awsiotsdk::mqtt::Packet
+PacketFixedHeader fixed_header_
 Fixed header for this packet instance.
 
+size_t packet_size_
 Size of the packet.
 
+size_t serialized_packet_length_
 Serialized length of the entire packet including fixed header.
 
+std::atomic_uint_fast16_t packet_id_
 Message sequence identifier. Handled automatically by the MQTT client.
 
+

Detailed Description

+

Defines a type for MQTT Disconnect message

+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + +
std::shared_ptr< DisconnectPacket > awsiotsdk::mqtt::DisconnectPacket::Create ()
+
+static
+
+
Returns
nullptr on error, shared_ptr pointing to a created DisconnectPacket instance if successful
+ +
+
+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::mqtt::DisconnectPacket::ToString ()
+
+virtual
+
+
Returns
String containing serialized packet
+ +

Implements awsiotsdk::mqtt::Packet.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.png new file mode 100644 index 0000000000000000000000000000000000000000..5f4ca633678baa7c5020901d29b928a9508d23f0 GIT binary patch literal 1110 zcmeAS@N?(olHy`uVBq!ia0vp^CxEzvgBeIpy%%x-NJ$6ygt-3y{~ySF@#br3|Doj; z2ATyD)6cv(aNqz?Jb2RO6+k)8k|4ie1|S~{%$a6iVPIf>=;`7ZQo;Ck?(21r6?j_O z9asJN=f8*ZLIQ{S^t{cln`I2o9!>buSomM*m_)jOlIOoVOAgPdNzD_MsQ%UUkg$0= z{n_6uduk%q&u5$PWaGZ=%Eu?RJ*yQ-`L&GaeB%<<=)2-ezj}MM{h4enHbHI8pG{xy zvaMUTefi$~r!B5Ko|^M(Wt;SgWlN(?zhtpzy}Eb*Y46VIQH@t}O$v7>zSYV}{HlF{ zFE8jbrz7tBumC;8;%6)qL) zxpO8;9kDpUc;eho=apA0@>hrP?OPkQOXW*#=~b-{?`=*Azx?DjN&QoO*`zHh?24Y= zMFLPpltWTaArs?)$5o66cxJIa`8um5MQlQAGT)?3hdo)04Z4;b3=xx>85&ecU>pcN zD)E@dN#*2yeVAoS_A_%fFaL9C&*Tu_=)+YLQx@No^qluH+WM2`34<%{j+aiY_3OUm zq^9cp@1(5v3awk;Z)cqj=MS=bdb@hrS!2(6FSIcf4hzM*vhvr&wKohD|;?E!Dcbnig=f~xz`=b-idmA?p5h8 z(cc;*QTh1$O4Ad4rxo75x_;%?zeIj;2&zTpS~E&ksGT&vyDDl`UTLT{`~9%B>r|%1 z{e19VJNoC9WzVN=P^nx~|L=TVVWa1#X)-M;_7_bQRDQMqS-K}3JuXcWn;?-q$ARI) zjyMK`<}}92y=saxSyLX)Xikw5SRciZ;LXRxFztx~LxLv>jDk?b7K3I17ni#IGA=Gh zCV>e*hgBP2ZrdZnbNO0GK-ptgmvdWxRq~5Zy!9(0@9l}@3i3`F_PZY*SKzFz)%4Py zIECk@dbv*Uij3`+(~sAfUfyFn-R{-4Z|k=o+x9O<;qC%G1KyxJFPBT@31mj?(sb@x zY}d_l_1ojGzSVDXOWmuQ<32cMu?pU8i<`|W-4lHK@_P^2`)!7M-k$F;y3#APJWTpR zLZ98|ca2v*+BfAm_H?=NU#iOv)@}_9DxS~v`|V!#OS<1LhLtGn-5WiT(PMh8d-{^j zu-k2+ua_Ga)krt=$h=)OZB=ya)l&zzhpyJ^epR&w28nHfWgz% K&t;ucLK6V!O#8I} literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html new file mode 100644 index 0000000..80aeec4 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html @@ -0,0 +1,303 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::KeepaliveActionRunner Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::KeepaliveActionRunner Class Reference
+
+
+ +

Define a class for KeepaliveActionRunner. + More...

+ +

#include <Connect.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::KeepaliveActionRunner:
+
+
+ + +awsiotsdk::Action + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

KeepaliveActionRunner (const KeepaliveActionRunner &)=delete
 
KeepaliveActionRunner (KeepaliveActionRunner &&)=delete
 
+KeepaliveActionRunneroperator= (const KeepaliveActionRunner &) &=delete
 
+KeepaliveActionRunneroperator= (KeepaliveActionRunner &&) &=delete
 
 KeepaliveActionRunner (std::shared_ptr< ClientState > p_client_state)
 Constructor. More...
 
ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
 Perform MQTT Keep Alive Action. Expects to run in a separate thread using ClientCore. More...
 
- Public Member Functions inherited from awsiotsdk::Action
ActionType GetActionType ()
 Get Type of this Action. More...
 
util::String GetActionInfo ()
 Get information/description about the current action. More...
 
void SetParentThreadSync (std::shared_ptr< std::atomic_bool > p_thread_continue)
 Sets the parent thread sync variable. More...
 
virtual ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)=0
 Virtual base function for Performing Action. More...
 
Action (const Action &)=delete
 
Action (Action &&)=delete
 
+Actionoperator= (const Action &) &=delete
 
+Actionoperator= (Action &&) &=delete
 
 Action (ActionType action_type, util::String action_info_string)
 Action Constructor. More...
 
+ + + + +

+Static Public Member Functions

static std::unique_ptr< ActionCreate (std::shared_ptr< ActionState > p_action_state)
 Factory Create method. More...
 
+ + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< ClientStatep_client_state_
 Shared Client State instance.
 
- Protected Attributes inherited from awsiotsdk::Action
+ActionType action_type_
 Type of the action.
 
+util::String action_info_string_
 Info string.
 
+std::shared_ptr< std::atomic_bool > p_thread_continue_
 Shared atomic variable used for sync when action is run in separate thread.
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::Action
typedef std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
 
- Protected Member Functions inherited from awsiotsdk::Action
ResponseCode ReadFromNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, util::Vector< unsigned char > &read_buf, size_t bytes_to_read)
 Generic Network Read function for all actions. More...
 
ResponseCode WriteToNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, const util::String &write_buf)
 Generic Network Write function for all actions. More...
 
+

Detailed Description

+

This class defines an action for performing a MQTT Keep Alive operation. This is meant to be run in a separate thread using ClientCore and will not do anything if called for one single execution using Perform Action.

+

Constructor & Destructor Documentation

+ +

◆ KeepaliveActionRunner()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::KeepaliveActionRunner::KeepaliveActionRunner (std::shared_ptr< ClientStatep_client_state)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::unique_ptr< Action > awsiotsdk::mqtt::KeepaliveActionRunner::Create (std::shared_ptr< ActionStatep_action_state)
+
+static
+
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+
Returns
nullptr on error, unique_ptr pointing to a created KeepaliveActionRunner instance if successful
+ +
+
+ +

◆ PerformAction()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::mqtt::KeepaliveActionRunner::PerformAction (std::shared_ptr< NetworkConnectionp_network_connection,
std::shared_ptr< ActionDatap_action_data 
)
+
+virtual
+
+

Performs the MQTT Keep Alive operation. Will send out Ping requests at Half the specified Keepalive interval and expect a response to be received before that same period passes again. If a response is not received during that time, assumes connection has been lost and initiates and performs a reconnect. Also resubscribes to any existing subscribed topics. Uses exponential backoff using minimum and maximum values defined in Client state.

+
Parameters
+ + + +
p_network_connection- Network connection instance to use for performing this action
p_action_data- Action data specific to this execution of the Action
+
+
+
Returns
- ResponseCode indicating status of the operation
+

NOTE: All callbacks used by the keepalive should be non-blocking

+

NOTE :The resubscribe response can be NETWORK_DISCONNECTED_ERROR as the network might have disconnected again after the reconnect was successful.

+ +

Implements awsiotsdk::Action.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.png new file mode 100644 index 0000000000000000000000000000000000000000..deb29a4821ad8b6e0b8d79072c12992b289f5f61 GIT binary patch literal 773 zcmeAS@N?(olHy`uVBq!ia0vp^FMv3JgBeJwygLaJkPh$(asB`QKS=J)*V6t&%PkBv z3nZqWd2!&t0ibyBq{}OSa-1bWe!&btJ{XuY&A!6Gz%;?r#WAFU@$KB#MXwcjTEr`t zZGQj%h`J%03e(o-S6(i0T6>+byW4KU7wOyEaZ#6>~{A;n}{vw$1&1lWyUzfEr=KWE3SRMVd z{>A#Y-$i$}zKCa-yZn}SpV{~0iT@5R%>J_})co+xRja+j?8CzEp4WC$QkuV-K~(VL z5(F{TVSDavF#(1@yY?|8u&!nL^>r)9ORWX`=S)4OGxo0HX4ogPfZ>5BBNxLwQW)=p zyfoJ;s7(5@o`}I%dOuXouab-#i!nX3}15E zH`>m8e|ho_uUih^FKgD>&fdCL`ja-lO@N5+OWWL^>)Y+@p3Z-+aaa5Bt1_-FdG~vc ze_@KcF0tnBG|dIaCGHyWscf>XyqR`GJU`cH>+&7BV$%A#6>Hx}lwMdL|GQYaB~R(= z<+Hlur|_JY4_!^N{)czR;*&A702HlNzJiM5Pdj+JmaPFBo1FQk05 z+SQP`cITIqnmkVB_kCMu&%K{|#P!0vq_*$b!pr|{nVPmBxF%GkZNcX~6(=wLyR}PZ z>(q}n?pL#CSq2A)s)ajUU(&yJSEXij>F!CTJ*QevhCK_~<{lb8HD~Hot<9&u?Rs_V zvf;e)tG`93sJy>0_3OKPlU4jh7O4D;k7ApmVjsZhH3=B#Dla|xFH8xFa`?~iV9kET UTe;^YfeDtu)78&qol`;+0B2-w00000 literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html new file mode 100644 index 0000000..010fdb8 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html @@ -0,0 +1,589 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::NetworkReadActionRunner Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::NetworkReadActionRunner Class Reference
+
+
+ +

Define a class for NetworkReadActionRunner. + More...

+ +

#include <NetworkRead.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::NetworkReadActionRunner:
+
+
+ + +awsiotsdk::Action + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 NetworkReadActionRunner (std::shared_ptr< ClientState > p_client_state)
 Constructor. More...
 
ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
 Perform Network Read Action in Async mode. More...
 
- Public Member Functions inherited from awsiotsdk::Action
ActionType GetActionType ()
 Get Type of this Action. More...
 
util::String GetActionInfo ()
 Get information/description about the current action. More...
 
void SetParentThreadSync (std::shared_ptr< std::atomic_bool > p_thread_continue)
 Sets the parent thread sync variable. More...
 
virtual ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)=0
 Virtual base function for Performing Action. More...
 
Action (const Action &)=delete
 
Action (Action &&)=delete
 
+Actionoperator= (const Action &) &=delete
 
+Actionoperator= (Action &&) &=delete
 
 Action (ActionType action_type, util::String action_info_string)
 Action Constructor. More...
 
+ + + + +

+Static Public Member Functions

static std::unique_ptr< ActionCreate (std::shared_ptr< ActionState > p_action_state)
 Factory Create method. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

ResponseCode DecodeRemainingLength (size_t &rem_len)
 Decode Remaining length from MQTT packet. More...
 
ResponseCode ReadPacketFromNetwork (unsigned char &fixed_header_byte, util::Vector< unsigned char > &read_buf)
 Read MQTT Packet from buffer. More...
 
ResponseCode HandleConnack (const util::Vector< unsigned char > &read_buf)
 Handle MQTT Connack packet. More...
 
ResponseCode HandlePublish (const util::Vector< unsigned char > &read_buf, bool is_duplicate, bool is_retained, QoS qos)
 Handle MQTT Publish packet. More...
 
ResponseCode HandlePuback (const util::Vector< unsigned char > &read_buf)
 Handle MQTT Puback packet. More...
 
ResponseCode HandleSuback (const util::Vector< unsigned char > &read_buf)
 Handle MQTT Suback packet. More...
 
ResponseCode HandleUnsuback (const util::Vector< unsigned char > &read_buf)
 Handle MQTT Unsuback packet. More...
 
- Protected Member Functions inherited from awsiotsdk::Action
ResponseCode ReadFromNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, util::Vector< unsigned char > &read_buf, size_t bytes_to_read)
 Generic Network Read function for all actions. More...
 
ResponseCode WriteToNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, const util::String &write_buf)
 Generic Network Write function for all actions. More...
 
+ + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< ClientStatep_client_state_
 Shared Client State instance.
 
+std::shared_ptr< NetworkConnectionp_network_connection_
 Shared Network Connection instance.
 
+std::atomic_bool is_waiting_for_connack_
 Is this waiting for connack?
 
- Protected Attributes inherited from awsiotsdk::Action
+ActionType action_type_
 Type of the action.
 
+util::String action_info_string_
 Info string.
 
+std::shared_ptr< std::atomic_bool > p_thread_continue_
 Shared atomic variable used for sync when action is run in separate thread.
 
+ + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::Action
typedef std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
 
+

Detailed Description

+

This class defines an Asynchronous action for performing a MQTT Read operation Can run both as a one time operation as well as in a separate thread

+

Constructor & Destructor Documentation

+ +

◆ NetworkReadActionRunner()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::NetworkReadActionRunner::NetworkReadActionRunner (std::shared_ptr< ClientStatep_client_state)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::unique_ptr< Action > awsiotsdk::mqtt::NetworkReadActionRunner::Create (std::shared_ptr< ActionStatep_action_state)
+
+static
+
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+
Returns
nullptr on error, unique_ptr pointing to a created NetworkReadActionRunner instance if successful
+ +
+
+ +

◆ DecodeRemainingLength()

+ +
+
+ + + + + +
+ + + + + + + + +
ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::DecodeRemainingLength (size_t & rem_len)
+
+protected
+
+
Parameters
+ + +
rem_lenreference in which to store decoded length
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ HandleConnack()

+ +
+
+ + + + + +
+ + + + + + + + +
ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::HandleConnack (const util::Vector< unsigned char > & read_buf)
+
+protected
+
+
Parameters
+ + +
read_bufReference to string buffer containing the MQTT Connack payload
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ HandlePuback()

+ +
+
+ + + + + +
+ + + + + + + + +
ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::HandlePuback (const util::Vector< unsigned char > & read_buf)
+
+protected
+
+
Parameters
+ + +
read_bufReference to string buffer containing the MQTT Puback payload
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ HandlePublish()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::HandlePublish (const util::Vector< unsigned char > & read_buf,
bool is_duplicate,
bool is_retained,
QoS qos 
)
+
+protected
+
+
Parameters
+ + + + + +
read_bufReference to string buffer containing the MQTT Publish payload
is_duplicateMQTT Is Duplicate message flag
is_retainedMQTT Is retained flag
qosQoS of received Publish message
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ HandleSuback()

+ +
+
+ + + + + +
+ + + + + + + + +
ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::HandleSuback (const util::Vector< unsigned char > & read_buf)
+
+protected
+
+
Parameters
+ + +
read_bufReference to string buffer containing the MQTT Suback payload
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ HandleUnsuback()

+ +
+
+ + + + + +
+ + + + + + + + +
ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::HandleUnsuback (const util::Vector< unsigned char > & read_buf)
+
+protected
+
+
Parameters
+ + +
read_bufReference to string buffer containing the MQTT Unsuback payload
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ PerformAction()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::PerformAction (std::shared_ptr< NetworkConnectionp_network_connection,
std::shared_ptr< ActionDatap_action_data 
)
+
+virtual
+
+

Performs a Network read to see if there is any incoming MQTT packet in the provided Network Connection's Read buffer. Can be run as a one time operation or as a Client Core thread.

+
Parameters
+ + + +
p_network_connection- Network connection instance to use for performing this action
p_action_data- Action data specific to this execution of the Action
+
+
+
Returns
- ResponseCode indicating status of the operation
+ +

Implements awsiotsdk::Action.

+ +
+
+ +

◆ ReadPacketFromNetwork()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::ReadPacketFromNetwork (unsigned char & fixed_header_byte,
util::Vector< unsigned char > & read_buf 
)
+
+protected
+
+
Parameters
+ + + +
fixed_header_byteReference to string in which Fixed header byte should be stored
read_bufReference to string in which the rest of the packet should be stored
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.png new file mode 100644 index 0000000000000000000000000000000000000000..1aad875a2d33c02c54f86b451a6829f99862833e GIT binary patch literal 798 zcmeAS@N?(olHy`uVBq!ia0vp^zkxV_gBeJ^DF3_@NJ$6ygt-3y{~sjs=4)yHq2(3^ zngtTm&%8Kr-~doOc+%w+KsnBmAirP+ARi3OnPy*MU|?G5>Eakt!T5IW>!QaBJgxkn ze4g$3FPxua;1P3a%i}GtCzjPp892RQR{Vc-Tkh=OL}9_gl?md4AD4rP`-%RO!`{vK zH~p}Z()E|y&;K=zG5XuzRNrK~)G1_3dGT+F6ZM-C6T>^ytGBKd{=RVa_eWXZgqG!* z9#Tn~_joz)mrcU!_cP8v@l$1y{NZKsSGR1C4wwAx`}_UP`I1@vXO69l?|oDGDfVXe zlAr%Y4u1Qc?{NC<>`m*}zb&{geeqA-9qs47E4H0WkBfd@>iQiH|6>Ff9Sh8|3%(I+s*EC*%|t|${0Q@Phe-LCxOvm zALylNDJtZ-D`dmuCHAb=p1&@OzsbEY!`51V*~^P}B6diMS*_Cd)-8<2~7E(ebphY<88KD>uqZZ!7QWTfr~O{L}y7$!V_&&fl|}_Wz~g<6}C3 z6Q>-{T2rS}-MeDuyVqLZiW@(#EiK<=d9%AWZ)=56=DauCcxBE-&-QtnnYJvy%=P=5 zSy`^N20l6d+?fRn9-F@AwVdzqmxpnM?<&4um0Fx?&ORpo;^$`?mdd;Bu3K_@ncl`U zdsBYI|*2GQRWq`G@&KB?JR{p-TjKZce253cjM z%{u=ML-wAo2duw~+@pABZCBbsTl@KLomBX)bKm8=B)9y1wC``N`pNAjTkR+P>1mp) xvVKx}*`z(~K-OQ)8=jZu&wHb}^hxl41_haOJz=WuUx6u^!PC{xWt~$(698@WkU0PV literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_packet.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_packet.html new file mode 100644 index 0000000..c0cd701 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_packet.html @@ -0,0 +1,305 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::Packet Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::Packet Class Referenceabstract
+
+
+ +

Define a base class for all MQTT Packet types. +

+ +

#include <Packet.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::Packet:
+
+
+ + +awsiotsdk::ActionData +awsiotsdk::mqtt::ConnectPacket +awsiotsdk::mqtt::DisconnectPacket +awsiotsdk::mqtt::PingreqPacket +awsiotsdk::mqtt::PubackPacket +awsiotsdk::mqtt::PublishPacket +awsiotsdk::mqtt::SubackPacket +awsiotsdk::mqtt::SubscribePacket +awsiotsdk::mqtt::UnsubackPacket +awsiotsdk::mqtt::UnsubscribePacket + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Packet (const Packet &)=delete
 
Packet (Packet &&)=delete
 
+Packetoperator= (const Packet &) &=delete
 
+Packetoperator= (Packet &&) &=delete
 
uint16_t GetActionId ()
 Get ID of the current run of this Action. More...
 
void SetActionId (uint16_t action_id)
 Set the Action ID for this run of the Action. More...
 
+bool isPacketDataValid ()
 
+uint16_t GetPacketId ()
 
+void SetPacketId (uint16_t packet_id)
 
+size_t Size ()
 
virtual util::String ToString ()=0
 
- Public Member Functions inherited from awsiotsdk::ActionData
ActionData (const ActionData &)=default
 
ActionData (ActionData &&)=default
 
+ActionDataoperator= (const ActionData &) &=default
 
+ActionDataoperator= (ActionData &&) &=default
 
virtual uint16_t GetActionId ()=0
 Get ID of the current run of this Action. More...
 
virtual void SetActionId (uint16_t action_id)=0
 Set the Action ID for this run of the Action. More...
 
+ + + + + + + + + + + +

+Static Public Member Functions

+static void AppendUInt16ToBuffer (util::String &buf, uint16_t value)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::unique_ptr< Utf8String > &utf8_str)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::shared_ptr< Utf8String > &utf8_str)
 
+static uint16_t ReadUInt16FromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+static std::unique_ptr< Utf8StringReadUtf8StringFromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+ + + + + + + + + + + + + +

+Protected Attributes

+PacketFixedHeader fixed_header_
 Fixed header for this packet instance.
 
+size_t packet_size_
 Size of the packet.
 
+size_t serialized_packet_length_
 Serialized length of the entire packet including fixed header.
 
+std::atomic_uint_fast16_t packet_id_
 Message sequence identifier. Handled automatically by the MQTT client.
 
+ + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::ActionData
typedef std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
 
- Data Fields inherited from awsiotsdk::ActionData
+AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to call when response is received for this action.
 
+

Member Function Documentation

+ +

◆ GetActionId()

+ +
+
+ + + + + +
+ + + + + + + +
uint16_t awsiotsdk::mqtt::Packet::GetActionId ()
+
+inlinevirtual
+
+
Returns
uint16_t - Action ID
+ +

Implements awsiotsdk::ActionData.

+ +
+
+ +

◆ SetActionId()

+ +
+
+ + + + + +
+ + + + + + + + +
void awsiotsdk::mqtt::Packet::SetActionId (uint16_t action_id)
+
+inlinevirtual
+
+
Parameters
+ + +
action_id- new Action ID
+
+
+ +

Implements awsiotsdk::ActionData.

+ +
+
+ +

◆ ToString()

+ + +
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_packet.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_packet.png new file mode 100644 index 0000000000000000000000000000000000000000..d9285710eb45338eb7335eacad10508283c415d9 GIT binary patch literal 5396 zcmd^DX=qGjediWZ_6ZW(R3Q7IX?aF03NJI!`K+?fyecliS6g>%l!^MC%!bFQ7Rvyhcm zkp_W4vIt9aBnTuy1%V_jH>?3x*0jb?18+M|*f_z(VlnXX^^_nY{eFSrL9LJ-ncc5j zTU&v3M|>Y}4rpUI(#{bC9DjTnNZw|FKnf&;xtY^NiRql_3wh8jYj1yb)0!`S5M>s7 zUCQp+F!;&64u_#u%LJRe$LNQlyD(C%$CNdA`Y3|BMk`reOF~Hlv9WAF!YUq)U>db` zIvn%wF_jh9AH?R$-pKDQ-;WSoPq&p}2(uG~ZW~anC^!SMNT4SPmq^)b1jUga=6e1# zP4}_jrwVR<(4Kj`E{=oTVIHjOj45ZB#(YbuVhdubk-$P1* zt?=7UIp7H(96n!ar2cu{0~CT3%1MjzZACiftSIc=z3xL$8xqpW|Fxzzg#cOk)w_*j ziV;Qk$?rH5WECr~2=Qxr%8m_pcGPDTD0@;u{MQTbLM(p6}7 zJpoCNhwCKmKLZ(9g%7h|qekU6{Wvv;u0wJ+)1eUTfs?F+TFcLLbbt!PN#i6hDgq^M zg{BG&_$so^OX(PE@poI7V9WZ zw8s^#sJ9!-U_oad4UvgbHnewyq$D9DcNI-!10|^WgpVN11K*YS)~~*9%v)Y@&E(X= z70Z8|`BrYN8EL`yQ2T267Yv?B3EM@vAj*(!j zy#1C-C0Wj{fy7l)lw3GoN%ig9ywSANAFV8|rB2^n8XZ_SaCk@QQW~{``?ikYN5R<5 zR-D{rHHI(}eXUp>CCwFm5G5aN95v=U$daZUQWJLsdM)@h_Nwpj6`Rk3Q z!euor1o=jp3U1fs`d%IM!o&QCeyY0un59Y-YkjA%h>EdFncbD#QcD%~=PXYq32i@t zy(1{dXekV3YOBJ|&V-HoO|*!Qmh%GT`(-E8rg8wZQ~r&1?h4w|hOp%a$_s;ZvgmKI zcSg(RWRXDyu7OI!opohRBE{--Okb=hY&h@uDfBu13Y$sK%V^hW*Ek)fiq*#+oTddz z1}e+2OBDqdP1G`(nRFvY*FXsPWXHQ%BK3TIY!w0OfNeUm92eu%rWxbp^W{T1a&Gs0 z5=q{{Prlimw@DoLeVE{!c2xP;o_1%SKDLsZL3YWU&TL7a{<;Pfs(P}ox<86Emuik+ z+HV;RK{RXwz@~XSfJ{^25>4GYz&hmg&!zgKSw$)7rExFr29-XIb^xt=s__?!@gD;3 z0SVaE@%HZ^k9&}-`23;IJZ05Y1+R{LyQ@Frr3dodib%)RsjIp+T1l6*(A29@g#2c# z3#)I@3fXqa1&3!<2_wAF%e)Zd+>e&}NvU-g!f@P7vvKCWfW|r)Vs;Cj_2w+OW;h8v zGaKXvgBdz3B1dEYsjsAj1_cva@1} z75g(sxD!vT(OI_4(a{U(6WUCRkATAz6*~PVyiKXp=w3e*X~h->`n5 z2f2o629i&uxqo-_n(yKc6MhuQSJCgB-0$VaK4K-V8% zDpoBXXT$Y2MWWT*?*yNz+I->0hc2>OdIuK?+m8(+2G$$hqGu52Y#pYhH&Xaz(Znnl zLjL#w~JB0pFnPolZ6-x9xL;E?~T{Z;keP7yEed}b@Ld;fc^zKc)dl0f1 z&5y{lz3|K1052Q^qEnm{;Op6q*YNq;K+;^vpr4!(Plz|hsdR)kZ3el7H17wp*|xtZ zb^S-!OSi9x&X<7bYzI^+_@}V^?~Q_RMA&L@)<{yyYnwCbX3rT;e|TPsX8{U!e4&); zI1(Dt6rRN*s~7sl-6`+@ck}1FcTv&RT=L#QRPSBXQaE`4QR_e19q}f*U@3C4cOVoi zg$TH0;9%YJ>~X2j4WhFnef`Tb{0`<8wC|O} zp1#yxQqU{zjAa}ijw~I7!s0H28aA()zs-rf%$?1`q8Vbk^$)$h})nKVBJ08WWL zA$oa~9UTV7YQlNqYtWuC(hLRCtpRxPaGnb6NuJ8iL+{O5CIL6nrms=`Jk^ulr%@p4 z8UvJ%(HnEaySSXEomjKinLS>KQWXgpwx;1_z6OsE2;`hBkj5;4n4DRE z8=&=y+<%PV|J$^-4gWA}bekWNQOG?sJm!pd16v`_jVb8uHhDa94VvmsP}l3`&k|CS zgo2;E{9oc;JDESUYh1ItW`vfS@AF;;9)C z6=UDud<^@+>=^_XZK9TLE&Ohd;a~dVB}!x$z$_r=DpsBCe~|Rvp3wqXRiy2aLEk7Bgm#QBIRdt& z7wgE1ePdpmKL~Xw7|{ucOPUnZ54Q9k3HvUtKMj|1%IDZ^Z$Y0%SWY;}C#PNx<2{)( zKlDxU^q0*fDlyrU_0qeycQn9lzV%z~Qk}9}rSjDL5zO|51wp~v(hm5N9R;ZRtVgC-0H5k;C);tAs+%4NTF_ZzuYc*= zw(Lx~1=X6saZQ`%k*3t7_0bj%dRt>uY7_OIxVtglsbx9RcUymT?zE+W@8v7)Ufg+; zNDn6Fq-dR14a_CxB*&Q@>Vfi_PJw27LryK+02mH`@^I9{$=25LqF6sFV$z-5z^uJl zaYT9AQB{4JxH_3tG7SpqowIy+##&!Na8R9djG}9srt=0HOQ~kaj#cx9>0(c(%pNEwJn0pT z?*SNZTfuk;z!?3%jPc1|VBDuA*SERP0)^$6DIQE1$=9z^a{{_lO z6HhdBD(WhGLUqE!Hb}M1)VhuX8*{%}Bo^jAWVGkvoBM5MzBVdZ$!JQ+;f`|1AZtz| z>WKAxAL?=*)4;M^(D_6+c+~IT>3dIcncMH~$R8xekeW0!l{S0MKmrbY!3d;pFZ`L20}3yb?t6X{#&0P2euAuv z56}I8cX)&SqTGs|Z-~iM_q+}~D$E3&yk%t`ep&z=@qc$zTVAu5eDK**+L1co`6UPe Lw=*w2ek$RgKNLh4 literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html new file mode 100644 index 0000000..81d7c46 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html @@ -0,0 +1,327 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::PacketFixedHeader Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::PacketFixedHeader Class Reference
+
+
+ +

Define a class for the MQTT Fixed header. +

+ +

#include <Packet.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 PacketFixedHeader ()
 Constructor. More...
 
ResponseCode Initialize (MessageTypes message_type, bool is_duplicate, QoS qos, bool is_retained, size_t rem_len)
 Initialize the fixed header with provided values. Checks for validity. More...
 
bool isHeaderValid ()
 Is this a valid fixed header? More...
 
MessageTypes GetMessageType ()
 Get message type. More...
 
size_t GetRemainingLength ()
 Get remaining length. More...
 
size_t GetRemainingLengthByteCount ()
 Get number of bytes required to store remaining length. More...
 
size_t Length ()
 Get length of the fixed header. More...
 
void AppendToBuffer (util::String &p_buf)
 Append this header to a string. More...
 
+

Constructor & Destructor Documentation

+ +

◆ PacketFixedHeader()

+ +
+
+ + + + + + + +
awsiotsdk::mqtt::PacketFixedHeader::PacketFixedHeader ()
+
+
Returns
Initializes the fixed header with default values, sets is_valid_ to false
+ +
+
+

Member Function Documentation

+ +

◆ AppendToBuffer()

+ +
+
+ + + + + + + + +
void awsiotsdk::mqtt::PacketFixedHeader::AppendToBuffer (util::String & p_buf)
+
+
Parameters
+ + +
p_bufReference to target string
+
+
+ +
+
+ +

◆ GetMessageType()

+ +
+
+ + + + + + + +
MessageTypes awsiotsdk::mqtt::PacketFixedHeader::GetMessageType ()
+
+
Returns
Message type
+ +
+
+ +

◆ GetRemainingLength()

+ +
+
+ + + + + +
+ + + + + + + +
size_t awsiotsdk::mqtt::PacketFixedHeader::GetRemainingLength ()
+
+inline
+
+
Returns
Remaining length
+ +
+
+ +

◆ GetRemainingLengthByteCount()

+ +
+
+ + + + + + + +
size_t awsiotsdk::mqtt::PacketFixedHeader::GetRemainingLengthByteCount ()
+
+
Returns
Number of butes required to store remaining length
+ +
+
+ +

◆ Initialize()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::mqtt::PacketFixedHeader::Initialize (MessageTypes message_type,
bool is_duplicate,
QoS qos,
bool is_retained,
size_t rem_len 
)
+
+
Parameters
+ + + + + + +
message_typeMQTT message type
is_duplicateIs this a duplicate message (For publish messages)
qosQoS to use for this message (For publish messages)
is_retainedMQTT is retained flag (For publish messages)
rem_lenRemaining length
+
+
+
Returns
ResponseCode indicating status of request
+ +
+
+ +

◆ isHeaderValid()

+ +
+
+ + + + + + + +
bool awsiotsdk::mqtt::PacketFixedHeader::isHeaderValid ()
+
+
Returns
boolean indicating validity
+ +
+
+ +

◆ Length()

+ +
+
+ + + + + +
+ + + + + + + +
size_t awsiotsdk::mqtt::PacketFixedHeader::Length ()
+
+inline
+
+
Returns
Length
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html new file mode 100644 index 0000000..977b891 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html @@ -0,0 +1,278 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::PingreqPacket Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::PingreqPacket Class Reference
+
+
+
+Inheritance diagram for awsiotsdk::mqtt::PingreqPacket:
+
+
+ + +awsiotsdk::mqtt::Packet +awsiotsdk::ActionData + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

PingreqPacket (const PingreqPacket &)=delete
 
PingreqPacket (PingreqPacket &&)=delete
 
+PingreqPacketoperator= (const PingreqPacket &) &=delete
 
+PingreqPacketoperator= (PingreqPacket &&) &=delete
 
PingreqPacket ()
 Constructor.
 
util::String ToString ()
 Serialize this packet into a String. More...
 
- Public Member Functions inherited from awsiotsdk::mqtt::Packet
Packet (const Packet &)=delete
 
Packet (Packet &&)=delete
 
+Packetoperator= (const Packet &) &=delete
 
+Packetoperator= (Packet &&) &=delete
 
uint16_t GetActionId ()
 Get ID of the current run of this Action. More...
 
void SetActionId (uint16_t action_id)
 Set the Action ID for this run of the Action. More...
 
+bool isPacketDataValid ()
 
+uint16_t GetPacketId ()
 
+void SetPacketId (uint16_t packet_id)
 
+size_t Size ()
 
virtual util::String ToString ()=0
 
- Public Member Functions inherited from awsiotsdk::ActionData
ActionData (const ActionData &)=default
 
ActionData (ActionData &&)=default
 
+ActionDataoperator= (const ActionData &) &=default
 
+ActionDataoperator= (ActionData &&) &=default
 
virtual uint16_t GetActionId ()=0
 Get ID of the current run of this Action. More...
 
virtual void SetActionId (uint16_t action_id)=0
 Set the Action ID for this run of the Action. More...
 
+ + + + + + + + + + + + + + + +

+Static Public Member Functions

static std::shared_ptr< PingreqPacketCreate ()
 Create Factory method. More...
 
- Static Public Member Functions inherited from awsiotsdk::mqtt::Packet
+static void AppendUInt16ToBuffer (util::String &buf, uint16_t value)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::unique_ptr< Utf8String > &utf8_str)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::shared_ptr< Utf8String > &utf8_str)
 
+static uint16_t ReadUInt16FromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+static std::unique_ptr< Utf8StringReadUtf8StringFromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+ + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::ActionData
typedef std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
 
- Data Fields inherited from awsiotsdk::ActionData
+AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to call when response is received for this action.
 
- Protected Attributes inherited from awsiotsdk::mqtt::Packet
+PacketFixedHeader fixed_header_
 Fixed header for this packet instance.
 
+size_t packet_size_
 Size of the packet.
 
+size_t serialized_packet_length_
 Serialized length of the entire packet including fixed header.
 
+std::atomic_uint_fast16_t packet_id_
 Message sequence identifier. Handled automatically by the MQTT client.
 
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + +
std::shared_ptr< PingreqPacket > awsiotsdk::mqtt::PingreqPacket::Create ()
+
+static
+
+
Returns
nullptr on error, shared_ptr pointing to a created PingreqPacket instance if successful
+ +
+
+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::mqtt::PingreqPacket::ToString ()
+
+virtual
+
+
Returns
String containing serialized packet
+ +

Implements awsiotsdk::mqtt::Packet.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.png new file mode 100644 index 0000000000000000000000000000000000000000..a6c46bcf17df1639eae6125de503615f3e955b05 GIT binary patch literal 1085 zcmeAS@N?(olHy`uVBq!ia0vp^TY$KOgBeIxt~R^|q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)6M>;+keb#5SV>I&G_vPYmapixra)R8h+6)I#+2r!Lvx$X_ksDN9Lq256UlP7KP@Y z`J4KAbJFiUQVx@h?RvjduTFWF?zGg;w8niGOVaFBfscYTc)zYL%emyX@ZOhwwGXas zIbSmGz0+T>U1!&?=iBNsE2yroP0%{P{-MQv*8}gDxGR;;)J=+SseQE0z;3N<&ZXDR zFLwoAse10(-y^y7w%%^lyW&~lDnFa5Uk2W*^1twM(W=FFL)2>4FWo;=uJg$OS3h~~ zbFFHZmY>`|K`u?Lx+)~Fy6VMSt8Z7AyH{VZ6@TUQYlh-U&5!1OljK@VJgWpQsl0Ub zn7oAD|K*(GI39){%5n@Fq_n;4<+!8PYy2&VJ74Ab(!!SEK>GwX27V_g1{;n{h7Sr$ z7!NcP5?C>*_}uD7pGnz*Fgx~7^qai8D*2t~szuS4zbSeiwvhBZ_fzN6{;Bh_YJGRP zq|9Cr$P@wzu&7fx`)}WRl|Cge^lN(j%JV*xg70}>-^us#U8zpdluwJL%tA|j)k51M zU-kF#dG32;Wh=Du^p2SIuk@3Q{90?zyj;A`^>6V@tKCsGJbmY8{JymO<wk^G{Cd$pvJ>pXIKxujJ%)H$b=AH4GRGc?Q?$sX&zkaPO|Ng|? z+u}-t=lRbFOATJ5F6()&;Fo)iw8f-9f{MPAilaV z96h=_Dhd>9O=jhtpKX4)B>U!@#|45DjjO{215;zZyHEVL_DklPjuTTVuYbSv)bRU) zoaujenOs?aYh$M7=D&H_tLGnFB4WFbHz+iASNJ3rt+%9cm%fb-qw{ zQpm=|eHAx$@@KBin!D`fM3)lD=PyEQAD*-j{ieA5?fDm%;x1|)j=B=>aa}R%{b zc`a?9ozW>e{Bj|a;T*ZpEA!+Im*wt#wM@oeLN-Zs&*hg3eRIsd{rS^ff5iH;@2@{D zhvR=8{r~uX^sfJ|9UWT#!=hZC^mAqk3i3Nexg2R;UgD*xd#t{7`nE%^&59DhjLzWc L>gTe~DWM4fy&L`^ literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_action_async.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_action_async.html new file mode 100644 index 0000000..75cf483 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_action_async.html @@ -0,0 +1,301 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::PubackActionAsync Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::PubackActionAsync Class Reference
+
+
+ +

Define a class for PubackActionAsync. + More...

+ +

#include <Publish.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::PubackActionAsync:
+
+
+ + +awsiotsdk::Action + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

PubackActionAsync (const PubackActionAsync &)=delete
 
PubackActionAsync (PubackActionAsync &&)=delete
 
+PubackActionAsyncoperator= (const PubackActionAsync &) &=delete
 
+PubackActionAsyncoperator= (PubackActionAsync &&) &=delete
 
 PubackActionAsync (std::shared_ptr< ClientState > p_client_state)
 Constructor. More...
 
ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
 Perform MQTT Puback Action in Async mode. More...
 
- Public Member Functions inherited from awsiotsdk::Action
ActionType GetActionType ()
 Get Type of this Action. More...
 
util::String GetActionInfo ()
 Get information/description about the current action. More...
 
void SetParentThreadSync (std::shared_ptr< std::atomic_bool > p_thread_continue)
 Sets the parent thread sync variable. More...
 
virtual ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)=0
 Virtual base function for Performing Action. More...
 
Action (const Action &)=delete
 
Action (Action &&)=delete
 
+Actionoperator= (const Action &) &=delete
 
+Actionoperator= (Action &&) &=delete
 
 Action (ActionType action_type, util::String action_info_string)
 Action Constructor. More...
 
+ + + + +

+Static Public Member Functions

static std::unique_ptr< ActionCreate (std::shared_ptr< ActionState > p_action_state)
 Factory Create method. More...
 
+ + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< ClientStatep_client_state_
 Shared Client State instance.
 
- Protected Attributes inherited from awsiotsdk::Action
+ActionType action_type_
 Type of the action.
 
+util::String action_info_string_
 Info string.
 
+std::shared_ptr< std::atomic_bool > p_thread_continue_
 Shared atomic variable used for sync when action is run in separate thread.
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::Action
typedef std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
 
- Protected Member Functions inherited from awsiotsdk::Action
ResponseCode ReadFromNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, util::Vector< unsigned char > &read_buf, size_t bytes_to_read)
 Generic Network Read function for all actions. More...
 
ResponseCode WriteToNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, const util::String &write_buf)
 Generic Network Write function for all actions. More...
 
+

Detailed Description

+

This class defines an Asynchronous action for performing a MQTT Puback operation

+

Constructor & Destructor Documentation

+ +

◆ PubackActionAsync()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::PubackActionAsync::PubackActionAsync (std::shared_ptr< ClientStatep_client_state)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::unique_ptr< Action > awsiotsdk::mqtt::PubackActionAsync::Create (std::shared_ptr< ActionStatep_action_state)
+
+static
+
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+
Returns
nullptr on error, unique_ptr pointing to a created PubackActionAsync instance if successful
+ +
+
+ +

◆ PerformAction()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::mqtt::PubackActionAsync::PerformAction (std::shared_ptr< NetworkConnectionp_network_connection,
std::shared_ptr< ActionDatap_action_data 
)
+
+virtual
+
+

Performs the MQTT Puback Operation in Async mode. This action should be queued up by the HandlePublish function in NetworkRead action automatically whenever a QoS1 packet is received. We do not support QoS2 at this time.

+
Parameters
+ + + +
p_network_connection- Network connection instance to use for performing this action
p_action_data- Action data specific to this execution of the Action
+
+
+
Returns
- ResponseCode indicating status of the operation
+ +

Implements awsiotsdk::Action.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_action_async.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_action_async.png new file mode 100644 index 0000000000000000000000000000000000000000..60d306ca5bca8f362f4083989628cad41249ea67 GIT binary patch literal 755 zcmeAS@N?(olHy`uVBq!ia0vp^SAjTygBeKfe0<;*kdhAY332`Z|38rV;?396{zJb3iNZ2z-wd)T(kU;Ef^=^6Quo%wPzzzeXEfn6bgMKzXBS!1XD+)~{=nUni!d6u*3d zkl@FK2qJUkwA9EnVTL~w^B4@~E?cteZrYJqlV0(eDqfot63EPWpu35Sp+;i`!+~}Z z7!SIFyfUp6Cq7Bx(wg*T;Q}R3`CpBzSbVovKR#(78>=0Zzwe$>`ZbGEj^*cHg|1Ss z4&Lvhb|?P8H^r0lxUTM6-hXUeX?OVA#<%IOcl-{!)_+ZT+uzWT<4Y>}N>4X`m;BsR z`PIhnYoOoTC9|^RSI_VI?lLQT_9~WZm8XqoUP(<``TS0-DEr%{tQhHh^;{!^iN97& z(_8;3uXS#T7Q5m3>dv z-RWHsV)o=tZuuh5+1FRB>7VrD+uMu=yA{PDkI&@o(@u^(&KBan_hqH*vOf)8?-TTQ z`|@5fjAq`f{&u%6Pxcv+{!fippT1hL=2ZOF1?w8WPG8%1R_gEi|LZ+IO}S?)@5yHx zamM^=hVJ!{!%Oe^yH1)P7BF!MKdY$cuM2avmQG2#Y+t~?{$}i=szhM&WbkzLb6Mw< G&;$T3!*Q?x literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_packet.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_packet.html new file mode 100644 index 0000000..f7975e7 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_packet.html @@ -0,0 +1,329 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::PubackPacket Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::PubackPacket Class Reference
+
+
+ +

Define a class for Puback Packet type. + More...

+ +

#include <Publish.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::PubackPacket:
+
+
+ + +awsiotsdk::mqtt::Packet +awsiotsdk::ActionData + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

PubackPacket (const PubackPacket &)=delete
 
PubackPacket (PubackPacket &&)=delete
 
+PubackPacketoperator= (const PubackPacket &) &=delete
 
+PubackPacketoperator= (PubackPacket &&) &=delete
 
 PubackPacket (uint16_t publish_packet_id)
 Constructor. More...
 
util::String ToString ()
 Serialize this packet into a String. More...
 
+uint16_t GetPublishPacketId ()
 
+void SetPublishPacketId (uint16_t publish_packet_id)
 
- Public Member Functions inherited from awsiotsdk::mqtt::Packet
Packet (const Packet &)=delete
 
Packet (Packet &&)=delete
 
+Packetoperator= (const Packet &) &=delete
 
+Packetoperator= (Packet &&) &=delete
 
uint16_t GetActionId ()
 Get ID of the current run of this Action. More...
 
void SetActionId (uint16_t action_id)
 Set the Action ID for this run of the Action. More...
 
+bool isPacketDataValid ()
 
+uint16_t GetPacketId ()
 
+void SetPacketId (uint16_t packet_id)
 
+size_t Size ()
 
virtual util::String ToString ()=0
 
- Public Member Functions inherited from awsiotsdk::ActionData
ActionData (const ActionData &)=default
 
ActionData (ActionData &&)=default
 
+ActionDataoperator= (const ActionData &) &=default
 
+ActionDataoperator= (ActionData &&) &=default
 
virtual uint16_t GetActionId ()=0
 Get ID of the current run of this Action. More...
 
virtual void SetActionId (uint16_t action_id)=0
 Set the Action ID for this run of the Action. More...
 
+ + + + + + + + + + + + + + + +

+Static Public Member Functions

static std::shared_ptr< PubackPacketCreate (uint16_t publish_packet_id)
 Factory Create method. More...
 
- Static Public Member Functions inherited from awsiotsdk::mqtt::Packet
+static void AppendUInt16ToBuffer (util::String &buf, uint16_t value)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::unique_ptr< Utf8String > &utf8_str)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::shared_ptr< Utf8String > &utf8_str)
 
+static uint16_t ReadUInt16FromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+static std::unique_ptr< Utf8StringReadUtf8StringFromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+ + + + + + + + + + + + + + + + +

+Protected Attributes

+std::atomic_uint_fast16_t publish_packet_id_
 
- Protected Attributes inherited from awsiotsdk::mqtt::Packet
+PacketFixedHeader fixed_header_
 Fixed header for this packet instance.
 
+size_t packet_size_
 Size of the packet.
 
+size_t serialized_packet_length_
 Serialized length of the entire packet including fixed header.
 
+std::atomic_uint_fast16_t packet_id_
 Message sequence identifier. Handled automatically by the MQTT client.
 
+ + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::ActionData
typedef std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
 
- Data Fields inherited from awsiotsdk::ActionData
+AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to call when response is received for this action.
 
+

Detailed Description

+

This class defines the Packet type used in MQTT to Acknowledge Publish requests

+

Constructor & Destructor Documentation

+ +

◆ PubackPacket()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::PubackPacket::PubackPacket (uint16_t publish_packet_id)
+
+
Parameters
+ + +
packet_idPacket ID for this Puback
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::shared_ptr< PubackPacket > awsiotsdk::mqtt::PubackPacket::Create (uint16_t publish_packet_id)
+
+static
+
+
Parameters
+ + +
packet_idPacket ID for this Puback
+
+
+
Returns
nullptr on error, shared_ptr pointing to a created PubackPacket instance if successful
+ +
+
+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::mqtt::PubackPacket::ToString ()
+
+virtual
+
+
Returns
String containing serialized packet
+ +

Implements awsiotsdk::mqtt::Packet.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_packet.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_packet.png new file mode 100644 index 0000000000000000000000000000000000000000..31e6045753b3863757dc2911af9c21629c76b8e5 GIT binary patch literal 1061 zcmeAS@N?(olHy`uVBq!ia0vp^n}N84gBeK9F4tNQq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)3i})iFkCU8KPA+|NMkP}}UCpz)_K1v{|I)?3 zwmr^Rx4;^&a5neY%`y&6%zRCAV&Tdzg01 zR`&1R3HJ@czkgaenKfu@&Fi+nU(S{XFW&dvC4a?DA$9iA3#S*T-{ClR@>PFmZtd}y zZyg-vJvUFMrmT~GBUsEGGT-BqOMjNKex>%gOdrF5_v%yk6hD){=B8lzV%favJ(lNN zem?l~`&K~Tmz{wYUw0~&zp@CMCtW(PT5*cQrv}B7EC1}Dt@8FM%paDIJ_%-pbdjwHjIr)L-v z^wZfGsx6HfZk(RUcpwfiwrbnxCh<3O{2hfBSo=rETQRfVxu$yi^Z-yO*YY{X|Us)Z20^E7eZUTsO0O z^|?D6s(S8y@|7?P`sl-Ukxl=p+GOWR>butWI-D|d%U*xW$Y-Chr~K=k``26kpS9CM zeB<#eCyFZ1)fDK@xN1Gg=7neOlaADB+25}$b9_m5o|x82(ELw?Ku_|j*g xGlRWOhMk)e + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::PublishActionAsync Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::PublishActionAsync Class Reference
+
+
+ +

Define a class for PublishActionAsync. + More...

+ +

#include <Publish.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::PublishActionAsync:
+
+
+ + +awsiotsdk::Action + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

PublishActionAsync (const PublishActionAsync &)=delete
 
PublishActionAsync (PublishActionAsync &&)=delete
 
+PublishActionAsyncoperator= (const PublishActionAsync &) &=delete
 
+PublishActionAsyncoperator= (PublishActionAsync &&) &=delete
 
 PublishActionAsync (std::shared_ptr< ClientState > p_client_state)
 Constructor. More...
 
ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
 Perform MQTT Publish Action in Async mode. More...
 
- Public Member Functions inherited from awsiotsdk::Action
ActionType GetActionType ()
 Get Type of this Action. More...
 
util::String GetActionInfo ()
 Get information/description about the current action. More...
 
void SetParentThreadSync (std::shared_ptr< std::atomic_bool > p_thread_continue)
 Sets the parent thread sync variable. More...
 
virtual ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)=0
 Virtual base function for Performing Action. More...
 
Action (const Action &)=delete
 
Action (Action &&)=delete
 
+Actionoperator= (const Action &) &=delete
 
+Actionoperator= (Action &&) &=delete
 
 Action (ActionType action_type, util::String action_info_string)
 Action Constructor. More...
 
+ + + + +

+Static Public Member Functions

static std::unique_ptr< ActionCreate (std::shared_ptr< ActionState > p_action_state)
 Factory Create method. More...
 
+ + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< ClientStatep_client_state_
 Shared Client State instance.
 
- Protected Attributes inherited from awsiotsdk::Action
+ActionType action_type_
 Type of the action.
 
+util::String action_info_string_
 Info string.
 
+std::shared_ptr< std::atomic_bool > p_thread_continue_
 Shared atomic variable used for sync when action is run in separate thread.
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::Action
typedef std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
 
- Protected Member Functions inherited from awsiotsdk::Action
ResponseCode ReadFromNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, util::Vector< unsigned char > &read_buf, size_t bytes_to_read)
 Generic Network Read function for all actions. More...
 
ResponseCode WriteToNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, const util::String &write_buf)
 Generic Network Write function for all actions. More...
 
+

Detailed Description

+

This class defines an Asynchronous action for performing a MQTT Publish operation

+

Constructor & Destructor Documentation

+ +

◆ PublishActionAsync()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::PublishActionAsync::PublishActionAsync (std::shared_ptr< ClientStatep_client_state)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::unique_ptr< Action > awsiotsdk::mqtt::PublishActionAsync::Create (std::shared_ptr< ActionStatep_action_state)
+
+static
+
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+
Returns
nullptr on error, unique_ptr pointing to a created PublishActionAsync instance if successful
+ +
+
+ +

◆ PerformAction()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::mqtt::PublishActionAsync::PerformAction (std::shared_ptr< NetworkConnectionp_network_connection,
std::shared_ptr< ActionDatap_action_data 
)
+
+virtual
+
+

Performs the MQTT Publish Operation in Async mode. For QoS0 operations, the packet is written to the network layer and the operation returns. If the packet has QoS1, and a response handler is provided, the handler will be added to the Pending Acks list.

+
Parameters
+ + + +
p_network_connection- Network connection instance to use for performing this action
p_action_data- Action data specific to this execution of the Action
+
+
+
Returns
- ResponseCode indicating status of the operation
+ +

Implements awsiotsdk::Action.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_publish_action_async.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_publish_action_async.png new file mode 100644 index 0000000000000000000000000000000000000000..f933752ede141a5431335e22f2a32f68a9a11710 GIT binary patch literal 751 zcmeAS@N?(olHy`uVBq!ia0vp^SAaNxgBeJMDXxA3q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)IP zdy4PL za;YjI!`%O?nAg5Ja(&Xrr(e94cFkPyb#>8%GIy^JZ}V#SUd_@eo17c)E0lk#dcAB2 zr{aJ9LW;Ty|bsc>+UZ(w7DD3tlZS++Ft0=knre!&iSKyW@2~UJ$gY2|Dk@`}o@A zsV_g6p1ie&*RwBV;Wyd6rF?It_hieTkiYqX<91u{u}|^LrB=Fmo1fcQO3!DU{`J%& zWoglj&eb|qPO`;cgL!QyE=vtBP52%?|KyTcA19sIc60BWYqM|k)J$`^@N&Ax-C4Hl z)}M0Zd$uz9a=F+1^B3j^ikqLjlJTH;MxEJ?x<1bLjv8O@zMb$b{loHr^d$3xXBT8O zT|4sD{Lr1g=?j%SqRciK)eetY+ugberagS;{g|1vMxw(hISkDKAZq{-mv>gTe~DWM4f6@+Kp literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_publish_packet.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_publish_packet.html new file mode 100644 index 0000000..89a103a --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_publish_packet.html @@ -0,0 +1,667 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::PublishPacket Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::PublishPacket Class Reference
+
+
+ +

Publish Message Packet Type. + More...

+ +

#include <Publish.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::PublishPacket:
+
+
+ + +awsiotsdk::mqtt::Packet +awsiotsdk::ActionData + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

PublishPacket (const PublishPacket &)=delete
 
PublishPacket (PublishPacket &&)=delete
 
+PublishPacketoperator= (const PublishPacket &) &=delete
 
+PublishPacketoperator= (PublishPacket &&) &=delete
 
 PublishPacket (std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, QoS qos, const util::String &payload)
 Constructor, Individual data. More...
 
 PublishPacket (const util::Vector< unsigned char > &buf, bool is_retained, bool is_duplicate, QoS qos)
 Constructor, Deserializes data from buffer. More...
 
bool IsRetained ()
 Get the value of the Is Retained flag. More...
 
bool IsDuplicate ()
 Get the value of the Is Duplicate message flag. More...
 
util::String GetTopicName ()
 Get String containing topic name for this message. More...
 
util::String GetPayload ()
 Get string containing Payload. More...
 
size_t GetPayloadLen ()
 Get length of the payload. More...
 
util::String ToString ()
 Serialize this packet into a String. More...
 
+QoS GetQoS ()
 
- Public Member Functions inherited from awsiotsdk::mqtt::Packet
Packet (const Packet &)=delete
 
Packet (Packet &&)=delete
 
+Packetoperator= (const Packet &) &=delete
 
+Packetoperator= (Packet &&) &=delete
 
uint16_t GetActionId ()
 Get ID of the current run of this Action. More...
 
void SetActionId (uint16_t action_id)
 Set the Action ID for this run of the Action. More...
 
+bool isPacketDataValid ()
 
+uint16_t GetPacketId ()
 
+void SetPacketId (uint16_t packet_id)
 
+size_t Size ()
 
virtual util::String ToString ()=0
 
- Public Member Functions inherited from awsiotsdk::ActionData
ActionData (const ActionData &)=default
 
ActionData (ActionData &&)=default
 
+ActionDataoperator= (const ActionData &) &=default
 
+ActionDataoperator= (ActionData &&) &=default
 
virtual uint16_t GetActionId ()=0
 Get ID of the current run of this Action. More...
 
virtual void SetActionId (uint16_t action_id)=0
 Set the Action ID for this run of the Action. More...
 
+ + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static std::shared_ptr< PublishPacketCreate (std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, QoS qos, const util::String &payload)
 Create Factory method using Individual data. More...
 
static std::shared_ptr< PublishPacketCreate (const util::Vector< unsigned char > &buf, bool is_retained, bool is_duplicate, QoS qos)
 Create Factory method which deserializes data from a buffer. More...
 
- Static Public Member Functions inherited from awsiotsdk::mqtt::Packet
+static void AppendUInt16ToBuffer (util::String &buf, uint16_t value)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::unique_ptr< Utf8String > &utf8_str)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::shared_ptr< Utf8String > &utf8_str)
 
+static uint16_t ReadUInt16FromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+static std::unique_ptr< Utf8StringReadUtf8StringFromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+bool is_retained_
 Retained messages are NOT supported by the AWS IoT Service at the time of this SDK release.
 
+bool is_duplicate_
 Is this message a duplicate QoS > 0 message? Handled automatically by the MQTT client.
 
+QoS qos_
 Message Quality of Service.
 
+std::unique_ptr< Utf8Stringp_topic_name_
 Topic Name this packet was published to.
 
+util::String payload_
 MQTT message payload.
 
- Protected Attributes inherited from awsiotsdk::mqtt::Packet
+PacketFixedHeader fixed_header_
 Fixed header for this packet instance.
 
+size_t packet_size_
 Size of the packet.
 
+size_t serialized_packet_length_
 Serialized length of the entire packet including fixed header.
 
+std::atomic_uint_fast16_t packet_id_
 Message sequence identifier. Handled automatically by the MQTT client.
 
+ + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::ActionData
typedef std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
 
- Data Fields inherited from awsiotsdk::ActionData
+AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to call when response is received for this action.
 
+

Detailed Description

+

Defines a type for MQTT Publish messages. Used for both incoming and out going messages

+

Constructor & Destructor Documentation

+ +

◆ PublishPacket() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::mqtt::PublishPacket::PublishPacket (std::unique_ptr< Utf8Stringp_topic_name,
bool is_retained,
bool is_duplicate,
QoS qos,
const util::String & payload 
)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + + + + + +
p_topic_nameTopic name on which message is to be published
is_retainedIs retained flag
is_duplicateIs duplicate message flag
qosQoS to use for this message, QoS2 is not supported currently
payloadString containing payload to send with message. Can be zero length.
+
+
+ +
+
+ +

◆ PublishPacket() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::mqtt::PublishPacket::PublishPacket (const util::Vector< unsigned char > & buf,
bool is_retained,
bool is_duplicate,
QoS qos 
)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + + + + +
bufBuffer containing packet data
is_retainedIs retained flag
is_duplicateIs duplicate message flag
qosQoS used by this message
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::shared_ptr< PublishPacket > awsiotsdk::mqtt::PublishPacket::Create (const util::Vector< unsigned char > & buf,
bool is_retained,
bool is_duplicate,
QoS qos 
)
+
+static
+
+
Parameters
+ + + + + +
bufBuffer containing packet data
is_retainedIs retained flag
is_duplicateIs duplicate message flag
qosQoS used by this message
+
+
+
Returns
nullptr on error, shared_ptr pointing to a created PublishPacket instance if successful
+ +
+
+ +

◆ Create() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::shared_ptr< PublishPacket > awsiotsdk::mqtt::PublishPacket::Create (std::unique_ptr< Utf8Stringp_topic_name,
bool is_retained,
bool is_duplicate,
QoS qos,
const util::String & payload 
)
+
+static
+
+
Parameters
+ + + + + + +
p_topic_nameTopic name on which message is to be published
is_retainedIs retained flag
is_duplicateIs duplicate message flag
qosQoS to use for this message, QoS2 is not supported currently
payloadString containing payload to send with message. Can be zero length
+
+
+
Returns
nullptr on error, shared_ptr pointing to a created PublishPacket instance if successful
+ +
+
+ +

◆ GetPayload()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::mqtt::PublishPacket::GetPayload ()
+
+inline
+
+
Returns
util::String with payload
+ +
+
+ +

◆ GetPayloadLen()

+ +
+
+ + + + + +
+ + + + + + + +
size_t awsiotsdk::mqtt::PublishPacket::GetPayloadLen ()
+
+inline
+
+
Returns
util::String with payload length
+ +
+
+ +

◆ GetTopicName()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::mqtt::PublishPacket::GetTopicName ()
+
+inline
+
+
Returns
util::String with topic name
+ +
+
+ +

◆ IsDuplicate()

+ +
+
+ + + + + +
+ + + + + + + +
bool awsiotsdk::mqtt::PublishPacket::IsDuplicate ()
+
+inline
+
+
Returns
boolean indicating the value of the Is Duplicate message flag
+ +
+
+ +

◆ IsRetained()

+ +
+
+ + + + + +
+ + + + + + + +
bool awsiotsdk::mqtt::PublishPacket::IsRetained ()
+
+inline
+
+
Returns
boolean indicating the value of the Is Retained flag
+ +
+
+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::mqtt::PublishPacket::ToString ()
+
+virtual
+
+
Returns
String containing serialized packet
+ +

Implements awsiotsdk::mqtt::Packet.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_publish_packet.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_publish_packet.png new file mode 100644 index 0000000000000000000000000000000000000000..1a69e42809f4f9fffa67b9ae98370b4fbf602a51 GIT binary patch literal 1063 zcmeAS@N?(olHy`uVBq!ia0vp^n}E23gBeJcY;~Lnq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)c51D$f0%Z%BpP1{NeT+FdgU*BV*;!m;lQSRj&sNzh3iAl7k!RKG&N;>B zyg3lydL%us0M=@)CvzxvKN6Rap-{4*n8@W0s3TVd;t zA9xW{DgQGiPI0!`B%7DLM>P0eZ<{NeylH#B^6d_}&W~q5daJPCeX{A{rCRe7!a$3z z{_S1(uIJ&g6*ImaliZ>w*xX8?K?NZf={^LbwUMt#nh9}1fSmyCCd6Mt*VOP zL}0p8QUZpzpkV%81^KyYH#UDtn)OcC{ZGpIo*8_5KKxp)QQu_~yJOy(*?w;E%F|u* zrY_s`Y|*8_`d0_omhSj=>st7H#!B;BXTwgHetP$^VEg`G2V@*ne{u}I4o#fLOFEr87d}q#%lKZTm z>KZ1W2+*6L-*!XV`L5*Q-ixwXD?WQ_*FH0m`(0a^JV$8p(`}w#=Be`iuY31@S>qnH uO&uMpnIc_|L^tXvJzA?? + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::SubackPacket Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::SubackPacket Class Reference
+
+
+ +

Define a class for Suback Packet type. + More...

+ +

#include <Subscribe.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::SubackPacket:
+
+
+ + +awsiotsdk::mqtt::Packet +awsiotsdk::ActionData + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

SubackPacket (const SubackPacket &)=delete
 
SubackPacket (SubackPacket &&)=delete
 
+SubackPacketoperator= (const SubackPacket &) &=delete
 
+SubackPacketoperator= (SubackPacket &&) &=delete
 
 SubackPacket (const util::Vector< unsigned char > &buf)
 Constructor. More...
 
util::String ToString ()
 Serialize this packet into a String. More...
 
- Public Member Functions inherited from awsiotsdk::mqtt::Packet
Packet (const Packet &)=delete
 
Packet (Packet &&)=delete
 
+Packetoperator= (const Packet &) &=delete
 
+Packetoperator= (Packet &&) &=delete
 
uint16_t GetActionId ()
 Get ID of the current run of this Action. More...
 
void SetActionId (uint16_t action_id)
 Set the Action ID for this run of the Action. More...
 
+bool isPacketDataValid ()
 
+uint16_t GetPacketId ()
 
+void SetPacketId (uint16_t packet_id)
 
+size_t Size ()
 
virtual util::String ToString ()=0
 
- Public Member Functions inherited from awsiotsdk::ActionData
ActionData (const ActionData &)=default
 
ActionData (ActionData &&)=default
 
+ActionDataoperator= (const ActionData &) &=default
 
+ActionDataoperator= (ActionData &&) &=default
 
virtual uint16_t GetActionId ()=0
 Get ID of the current run of this Action. More...
 
virtual void SetActionId (uint16_t action_id)=0
 Set the Action ID for this run of the Action. More...
 
+ + + + + + + + + + + + + + + +

+Static Public Member Functions

static std::shared_ptr< SubackPacketCreate (const util::Vector< unsigned char > &buf)
 Factory Create method. More...
 
- Static Public Member Functions inherited from awsiotsdk::mqtt::Packet
+static void AppendUInt16ToBuffer (util::String &buf, uint16_t value)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::unique_ptr< Utf8String > &utf8_str)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::shared_ptr< Utf8String > &utf8_str)
 
+static uint16_t ReadUInt16FromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+static std::unique_ptr< Utf8StringReadUtf8StringFromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+ + + + + + + + +

+Data Fields

+util::Vector< uint8_t > suback_list_
 Vector containing subacks included in this packet.
 
- Data Fields inherited from awsiotsdk::ActionData
+AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to call when response is received for this action.
 
+ + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::ActionData
typedef std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
 
- Protected Attributes inherited from awsiotsdk::mqtt::Packet
+PacketFixedHeader fixed_header_
 Fixed header for this packet instance.
 
+size_t packet_size_
 Size of the packet.
 
+size_t serialized_packet_length_
 Serialized length of the entire packet including fixed header.
 
+std::atomic_uint_fast16_t packet_id_
 Message sequence identifier. Handled automatically by the MQTT client.
 
+

Detailed Description

+

This class defines the Packet type used in MQTT to Acknowledge Subscribe requests

+

Constructor & Destructor Documentation

+ +

◆ SubackPacket()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::SubackPacket::SubackPacket (const util::Vector< unsigned char > & buf)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
bufSerialized version of the packet to parse
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::shared_ptr< SubackPacket > awsiotsdk::mqtt::SubackPacket::Create (const util::Vector< unsigned char > & buf)
+
+static
+
+
Parameters
+ + +
bufSerialized version of the packet to parse
+
+
+
Returns
nullptr on error, shared_ptr pointing to a created SubackPacket instance if successful
+ +
+
+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::mqtt::SubackPacket::ToString ()
+
+virtual
+
+
Returns
String containing serialized packet
+ +

Implements awsiotsdk::mqtt::Packet.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_suback_packet.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_suback_packet.png new file mode 100644 index 0000000000000000000000000000000000000000..c0fb65ff0b035d50ce7eb42bd922bccca6cf362e GIT binary patch literal 1070 zcmeAS@N?(olHy`uVBq!ia0vp^n}N84gBeK9F4tNQq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)U^#D)Qv1wojpKVQH=bR=GK|cg!sF zcds{pVt(f8-kMh_jUl@KOAc$;2I>`jDWCj~eXF3y%{0R=W-nOHn+i8pZCbVV{fyI+ zf)D!)t9SOC`PyKcl-Kx5*mK^Cz}zRg`A02#HQ8Q$UNWit+@Hg@I8@m0UMcQ3e?HSd zeolS7^r?ya%(<5DGk@YKd;C=O;&sLPEkYh~1}c_Q|Ca-uKWC=O+oxw#GWFBdJgfK4 zOztVvWo+n;W7sf5ETwMmwdS}9KYRDceCawIJ_%-pbd zjwHjIr)L-v^wZfGsx6HfZk$F_@=(c*K*&Gu_8SJ#$46)qXElI6y|+c{5-jjo43P4B;AGx>?n z^)p99)AJ&1-SU6BOPB?H^kKWmrvKDktzE^xBwo64N^Z}!xUIP}&Io(Tzuvijz2*N| zJ1xXF9=~#;sPbG*f&PrE){|^rc;-IoNPXV7)$r!M<7cdv?={(8a>(q7Y!wOX_FUtSrk6YTS^56R$Q0dwe zK9lSxgHi)1IKQU#86Mlp!eCa#cpxci!q2Z!{8f(6%s&-f&^G$Lmyw}f5m#8@4$cMJ z1)L&$I5d}TnKH+6=@ej)Yc5S$Fa0bpKeJl$~a zj*RB|ty5pzoe=nI^Q>E&Z=`jtELBuGpT2FLN~pA=>P~ALmp%)f8SHg3?A)9nuWv=qrUY%eKHIWI;MyhoIThR37cURp4b0gLp00i_ I>zopr0MfbvfdBvi literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html new file mode 100644 index 0000000..a554704 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html @@ -0,0 +1,301 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::SubscribeActionAsync Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::SubscribeActionAsync Class Reference
+
+
+ +

Define a class for SubscribeActionAsync. + More...

+ +

#include <Subscribe.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::SubscribeActionAsync:
+
+
+ + +awsiotsdk::Action + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

SubscribeActionAsync (const SubscribeActionAsync &)=delete
 
SubscribeActionAsync (SubscribeActionAsync &&)=delete
 
+SubscribeActionAsyncoperator= (const SubscribeActionAsync &) &=delete
 
+SubscribeActionAsyncoperator= (SubscribeActionAsync &&) &=delete
 
 SubscribeActionAsync (std::shared_ptr< ClientState > p_client_state)
 Constructor. More...
 
ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
 Perform MQTT Subscribe Action in Async mode. More...
 
- Public Member Functions inherited from awsiotsdk::Action
ActionType GetActionType ()
 Get Type of this Action. More...
 
util::String GetActionInfo ()
 Get information/description about the current action. More...
 
void SetParentThreadSync (std::shared_ptr< std::atomic_bool > p_thread_continue)
 Sets the parent thread sync variable. More...
 
virtual ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)=0
 Virtual base function for Performing Action. More...
 
Action (const Action &)=delete
 
Action (Action &&)=delete
 
+Actionoperator= (const Action &) &=delete
 
+Actionoperator= (Action &&) &=delete
 
 Action (ActionType action_type, util::String action_info_string)
 Action Constructor. More...
 
+ + + + +

+Static Public Member Functions

static std::unique_ptr< ActionCreate (std::shared_ptr< ActionState > p_action_state)
 Factory Create method. More...
 
+ + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< ClientStatep_client_state_
 Shared Client State instance.
 
- Protected Attributes inherited from awsiotsdk::Action
+ActionType action_type_
 Type of the action.
 
+util::String action_info_string_
 Info string.
 
+std::shared_ptr< std::atomic_bool > p_thread_continue_
 Shared atomic variable used for sync when action is run in separate thread.
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::Action
typedef std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
 
- Protected Member Functions inherited from awsiotsdk::Action
ResponseCode ReadFromNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, util::Vector< unsigned char > &read_buf, size_t bytes_to_read)
 Generic Network Read function for all actions. More...
 
ResponseCode WriteToNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, const util::String &write_buf)
 Generic Network Write function for all actions. More...
 
+

Detailed Description

+

This class defines an Asynchronous action for performing a MQTT Subscribe operation

+

Constructor & Destructor Documentation

+ +

◆ SubscribeActionAsync()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::SubscribeActionAsync::SubscribeActionAsync (std::shared_ptr< ClientStatep_client_state)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::unique_ptr< Action > awsiotsdk::mqtt::SubscribeActionAsync::Create (std::shared_ptr< ActionStatep_action_state)
+
+static
+
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+
Returns
nullptr on error, unique_ptr pointing to a created SubscribeActionAsync instance if successful
+ +
+
+ +

◆ PerformAction()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::mqtt::SubscribeActionAsync::PerformAction (std::shared_ptr< NetworkConnectionp_network_connection,
std::shared_ptr< ActionDatap_action_data 
)
+
+virtual
+
+

Performs the MQTT Subscribe Operation in Async mode. Registers the Subscriptions in the subscribe packet and sets them as inactive. Will NOT wait for SUBACK. Whenever SUBACK is received by the Network Read operation, the Subscriptions will be activated/removed depending on response.

+
Parameters
+ + + +
p_network_connection- Network connection instance to use for performing this action
p_action_data- Action data specific to this execution of the Action
+
+
+
Returns
- ResponseCode indicating status of the operation
+ +

Implements awsiotsdk::Action.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.png new file mode 100644 index 0000000000000000000000000000000000000000..4e757e0a6796d2c7a56d8adae9a51af640843fb2 GIT binary patch literal 777 zcmeAS@N?(olHy`uVBq!ia0vp^Pk=apgBeKLUDCV*q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)mTJhGtBm$efMOa()GD>%o6neZTR@-=(gP1<%z?0hSkT^T};1(P8^p1 zdo5s6N9DKqX)jXM<0kK!zBF6tVt?a>SknvNTC{xXt-d$bs7>c>Dh(>{olyDdt>S9$ zpZTv==YF5Med*J?ir2%lcT7I}wKD6zNo=qGwq0ok(XpkKua3WZRki+*vQkkv>ynNR zb_7w&{RHUrV#WjduNfKcedV3de_TAEj`_*ti}p{$9o$M;8RWS<7(Og$U}4}Vfzj}K zYLM5xR+mZpL?@`cbY%3LB=?1JljPYA>5tEvB-e^=zgea7)j0a&nQ6|>CT~)M^?dO?gJf7#SD0~;LH|2ZFcw?*dr*OH71dU0Ts&0N-{&}s=t!oSPYlENn@(|=rLKRK=l8C+cYSp4t(aN%^w!Ob?wnEQx$%y`s9G4QR%GrhRa?{H09m3o9*xDw>S9R_j9r* zB|E36faH7>+&Ds W_V``4D7gkqv<#lEelF{r5}E)yux^e3 literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html new file mode 100644 index 0000000..05e6a28 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html @@ -0,0 +1,325 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::SubscribePacket Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::SubscribePacket Class Reference
+
+
+ +

Define a class for Subscribe Packet type. + More...

+ +

#include <Subscribe.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::SubscribePacket:
+
+
+ + +awsiotsdk::mqtt::Packet +awsiotsdk::ActionData + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

SubscribePacket (const SubscribePacket &)=delete
 
SubscribePacket (SubscribePacket &&)=delete
 
+SubscribePacketoperator= (const SubscribePacket &) &=delete
 
+SubscribePacketoperator= (SubscribePacket &&) &=delete
 
 SubscribePacket (util::Vector< std::shared_ptr< Subscription > > subscription_list)
 Constructor. More...
 
util::String ToString ()
 Serialize this packet into a String. More...
 
- Public Member Functions inherited from awsiotsdk::mqtt::Packet
Packet (const Packet &)=delete
 
Packet (Packet &&)=delete
 
+Packetoperator= (const Packet &) &=delete
 
+Packetoperator= (Packet &&) &=delete
 
uint16_t GetActionId ()
 Get ID of the current run of this Action. More...
 
void SetActionId (uint16_t action_id)
 Set the Action ID for this run of the Action. More...
 
+bool isPacketDataValid ()
 
+uint16_t GetPacketId ()
 
+void SetPacketId (uint16_t packet_id)
 
+size_t Size ()
 
virtual util::String ToString ()=0
 
- Public Member Functions inherited from awsiotsdk::ActionData
ActionData (const ActionData &)=default
 
ActionData (ActionData &&)=default
 
+ActionDataoperator= (const ActionData &) &=default
 
+ActionDataoperator= (ActionData &&) &=default
 
virtual uint16_t GetActionId ()=0
 Get ID of the current run of this Action. More...
 
virtual void SetActionId (uint16_t action_id)=0
 Set the Action ID for this run of the Action. More...
 
+ + + + + + + + + + + + + + + +

+Static Public Member Functions

static std::shared_ptr< SubscribePacketCreate (util::Vector< std::shared_ptr< Subscription > > subscription_list)
 Factory Create method. More...
 
- Static Public Member Functions inherited from awsiotsdk::mqtt::Packet
+static void AppendUInt16ToBuffer (util::String &buf, uint16_t value)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::unique_ptr< Utf8String > &utf8_str)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::shared_ptr< Utf8String > &utf8_str)
 
+static uint16_t ReadUInt16FromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+static std::unique_ptr< Utf8StringReadUtf8StringFromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+ + + + + + + + +

+Data Fields

+util::Vector< std::shared_ptr< Subscription > > subscription_list_
 Vector containing subscriptions included in this packet.
 
- Data Fields inherited from awsiotsdk::ActionData
+AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to call when response is received for this action.
 
+ + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::ActionData
typedef std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
 
- Protected Attributes inherited from awsiotsdk::mqtt::Packet
+PacketFixedHeader fixed_header_
 Fixed header for this packet instance.
 
+size_t packet_size_
 Size of the packet.
 
+size_t serialized_packet_length_
 Serialized length of the entire packet including fixed header.
 
+std::atomic_uint_fast16_t packet_id_
 Message sequence identifier. Handled automatically by the MQTT client.
 
+

Detailed Description

+

This class defines the Packet type used by MQTT Subscribe requests

+

Constructor & Destructor Documentation

+ +

◆ SubscribePacket()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::SubscribePacket::SubscribePacket (util::Vector< std::shared_ptr< Subscription > > subscription_list)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
subscription_listVector of subscriptions to be included in this Subscribe packet
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::shared_ptr< SubscribePacket > awsiotsdk::mqtt::SubscribePacket::Create (util::Vector< std::shared_ptr< Subscription > > subscription_list)
+
+static
+
+
Parameters
+ + +
subscription_listVector of subscriptions to be included in this Subscribe packet
+
+
+
Returns
nullptr on error, shared_ptr pointing to a created SubscribePacket instance if successful
+ +
+
+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::mqtt::SubscribePacket::ToString ()
+
+virtual
+
+
Returns
String containing serialized packet
+ +

Implements awsiotsdk::mqtt::Packet.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.png new file mode 100644 index 0000000000000000000000000000000000000000..9e5219456a2d5f282f44d02e2f27693e41e4d095 GIT binary patch literal 1114 zcmeAS@N?(olHy`uVBq!ia0vp^hk&?)gBeIR{W-!3q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)lFzsbG9N_if*2EuNNk z$5l1|!)v5GntU@Ry}P~csGPfx@V*{-gLm;y=6t^6q;_(qD2K|+wGIlN`G19-q-w5q zt&A_Tm!9_gD$69Bi|u|7?;KBgrTpD%_NyOkPB)hv{jh3Ny6e)#|E@G@Hx;f3`?m4- zk)_$2OSY8rKT$ihYu3N4KDA3zK4r=7edBWW_U+x}68S7aN~Myznfxa|z32P-rfd`E zk$$Bsua||{@4Aq*+CAd^E8Ujbg&VLP4nEK-ebM=cRsf_i@Zr-}iai4pM%cjdm zV>3?o-<4L7>8ZDw&=Wg*;;P$b$}hd|_g|IFJbG`@GQB0i;-2$f{{Q#hXVO0|mPud2 z6ecX$&eW)~_p8eZ%jYXu8SYZ8+1?e=u`QoXBt>zLA099v2J4 zhcE?(hV4v@40}X57#^&3U|`5+Wn!q%7GO9Kjjlv*O7Xd3?wKm-2y6H`GCzcBFY^l$ zy*qnayGn0WvP$Ku{yB&I1>5}UI2XRTmXsHIbI+nnf%UHrT=jhVJS_UxtINu3e7|m8 zyCqufr14#+71N{-y-SVWH1$)EZ1>|=vwc>TguU{9FX|chqD(%2F)z*ij$f;7X|8NdxaIL_={=4mj~r~DB`feIJv3{&`%%ne{+@H4 zDa*TeC;YimE6%}u8tAOwlAceO=qZP8&vkpH_t$Dw+}q@9QL}Rl-aYi3r2gw}{d4Qt zUX$`Q1w20S{$*sD^k)YsAi-%w-RYdAzb?a%b#e>_+n>2t*epw*A^*_R!1}PfLq`t_ z12F7K3P?~`7c86-G%MOeNy%7Sz{Le9qNH?hmqW(fv>Tg?jLv@1(@akBcPX)q(Anwc za%9E#M{9$BC_4SD*eIy9$h+M@rminw!SqwBHnBsJO40>#>{pmS=VG^}w%L+YPJTEKhpGZo3q??RV + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::Subscription Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::Subscription Class Reference
+
+
+ +

MQTT Subscription Definition. + More...

+ +

#include <Common.hpp>

+ + + + + +

+Public Types

typedef std::function< ResponseCode(util::String topic_name, util::String payload, std::shared_ptr< SubscriptionHandlerContextData > p_app_handler_data)> ApplicationCallbackHandlerPtr
 Define handler for Application Callbacks. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Subscription (const Subscription &)=default
 
Subscription (Subscription &&)=default
 
+Subscriptionoperator= (const Subscription &) &=default
 
+Subscriptionoperator= (Subscription &&) &=default
 
 Subscription (std::unique_ptr< Utf8String > p_topic_name, QoS max_qos, ApplicationCallbackHandlerPtr p_app_handler, std::shared_ptr< SubscriptionHandlerContextData > p_app_handler_data)
 Constructor. More...
 
bool IsActive ()
 Is Subscription Active? More...
 
void SetActive (bool value)
 Set Subscription status. More...
 
uint16_t GetPacketId ()
 Get Packet ID for this subscription's Subscribe request. More...
 
void SetAckIndex (uint16_t packet_id, uint8_t index_in_packet)
 Set expected index of Ack for this Subscription in the SUBACK packet. More...
 
QoS GetMaxQos ()
 Get Max QoS for this subscription. More...
 
void SetMaxQos (mqtt::QoS max_qos)
 Set Max QoS for this subscription. More...
 
size_t GetTopicNameLength ()
 Get Length of topic name for this subscription. More...
 
std::shared_ptr< Utf8StringGetTopicName ()
 Get Topic Name. More...
 
bool IsInSuback (uint16_t packet_id, uint8_t index_in_packet)
 Is this subscription in the Suback with given packet ID and index. More...
 
+ + + + + + + +

+Static Public Member Functions

static std::shared_ptr< SubscriptionCreate (std::unique_ptr< Utf8String > p_topic_name, QoS max_qos, ApplicationCallbackHandlerPtr p_app_handler, std::shared_ptr< SubscriptionHandlerContextData > p_app_handler_data)
 Factory method to create a Subscription instance. More...
 
static bool IsValidTopicName (util::String p_topic_name)
 Is the Topic Name Valid? More...
 
+ + + + + + + + + + +

+Data Fields

+ApplicationCallbackHandlerPtr p_app_handler_
 Pointer to the Application Handler.
 
+std::shared_ptr< SubscriptionHandlerContextDatap_app_handler_data_
 Data to be passed to the Application Handler.
 
+util::String p_topic_regex_
 Topic regex string which is used if the topic is a wildcard topic.
 
+ + + + + + + + + + + + + + + + +

+Protected Attributes

+bool is_active_
 Boolean indicating weather the subscription is active or not.
 
+uint16_t packet_id_
 Packet Id of the Subscribe/Unsubscribe Packet.
 
+uint8_t index_in_packet_
 Index of the subscription in the Subscribe/Unsubscribe Packet.
 
+QoS max_qos_
 Max QoS for messages on this subscription.
 
+std::shared_ptr< Utf8Stringp_topic_name_
 Topic Name for this subscription.
 
+

Detailed Description

+

Defining a type for the MQTT Subscriptions Contains all information required to process a subscription including callback handler

+
Note
Also defines a type for the Application callback handler - Subscription::ApplicationCallbackHandlerPtr
+

Member Typedef Documentation

+ +

◆ ApplicationCallbackHandlerPtr

+ +
+
+ + + + +
typedef std::function<ResponseCode(util::String topic_name, util::String payload, std::shared_ptr<SubscriptionHandlerContextData> p_app_handler_data)> awsiotsdk::mqtt::Subscription::ApplicationCallbackHandlerPtr
+
+

This handler is used to provide notification to the application when a message is received on a subscribed topic

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ Subscription()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::mqtt::Subscription::Subscription (std::unique_ptr< Utf8Stringp_topic_name,
QoS max_qos,
ApplicationCallbackHandlerPtr p_app_handler,
std::shared_ptr< SubscriptionHandlerContextDatap_app_handler_data 
)
+
+
Parameters
+ + + + + +
p_topic_name- Topic name for this subscription
max_qos- Max QoS
p_app_handler- Application Handler instance
p_app_handler_data- Data to be passed to application handler. Can be nullptr
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::shared_ptr< Subscription > awsiotsdk::mqtt::Subscription::Create (std::unique_ptr< Utf8Stringp_topic_name,
QoS max_qos,
ApplicationCallbackHandlerPtr p_app_handler,
std::shared_ptr< SubscriptionHandlerContextDatap_app_handler_data 
)
+
+static
+
+
Parameters
+ + + + + +
p_topic_name- Topic name for this subscription
max_qos- Max QoS
p_app_handler- Application Handler instance
p_app_handler_data- Data to be passed to application handler. Can be nullptr
+
+
+
Returns
shared_ptr Subscription instance
+ +
+
+ +

◆ GetMaxQos()

+ +
+
+ + + + + +
+ + + + + + + +
QoS awsiotsdk::mqtt::Subscription::GetMaxQos ()
+
+inline
+
+
Returns
QoS value
+ +
+
+ +

◆ GetPacketId()

+ +
+
+ + + + + +
+ + + + + + + +
uint16_t awsiotsdk::mqtt::Subscription::GetPacketId ()
+
+inline
+
+
Returns
uint16_t ID of the packet
+ +
+
+ +

◆ GetTopicName()

+ +
+
+ + + + + +
+ + + + + + + +
std::shared_ptr< Utf8String > awsiotsdk::mqtt::Subscription::GetTopicName ()
+
+inline
+
+
Returns
shared_ptr to a Utf8String containing topic name
+ +
+
+ +

◆ GetTopicNameLength()

+ +
+
+ + + + + +
+ + + + + + + +
size_t awsiotsdk::mqtt::Subscription::GetTopicNameLength ()
+
+inline
+
+
Returns
size_t Length
+ +
+
+ +

◆ IsActive()

+ +
+
+ + + + + +
+ + + + + + + +
bool awsiotsdk::mqtt::Subscription::IsActive ()
+
+inline
+
+
Returns
boolean indicating whether the subscription is active
+ +
+
+ +

◆ IsInSuback()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool awsiotsdk::mqtt::Subscription::IsInSuback (uint16_t packet_id,
uint8_t index_in_packet 
)
+
+inline
+
+
Parameters
+ + + +
packet_id- Packet ID of received SUBACK
index_in_packet- Index in SUBACK
+
+
+
Returns
boolean indicating whether this Subscription was the target for the received SUBACK
+ +
+
+ +

◆ IsValidTopicName()

+ +
+
+ + + + + +
+ + + + + + + + +
bool awsiotsdk::mqtt::Subscription::IsValidTopicName (util::String p_topic_name)
+
+static
+
+
Returns
boolean indicating whether the topic is a valid topic
+ +
+
+ +

◆ SetAckIndex()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void awsiotsdk::mqtt::Subscription::SetAckIndex (uint16_t packet_id,
uint8_t index_in_packet 
)
+
+inline
+
+
Parameters
+ + + +
packet_id- Expected packet id
index_in_packet- Expected Index in packet
+
+
+ +
+
+ +

◆ SetActive()

+ +
+
+ + + + + +
+ + + + + + + + +
void awsiotsdk::mqtt::Subscription::SetActive (bool value)
+
+inline
+
+
Parameters
+ + +
value- boolean value indicating target status
+
+
+ +
+
+ +

◆ SetMaxQos()

+ +
+
+ + + + + +
+ + + + + + + + +
void awsiotsdk::mqtt::Subscription::SetMaxQos (mqtt::QoS max_qos)
+
+inline
+
+
Parameters
+ + +
max_qosTarget QoS value
+
+
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_subscription_handler_context_data.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_subscription_handler_context_data.html new file mode 100644 index 0000000..3ea881d --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_subscription_handler_context_data.html @@ -0,0 +1,92 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::SubscriptionHandlerContextData Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
awsiotsdk::mqtt::SubscriptionHandlerContextData Class Referenceabstract
+
+
+ +

MQTT Subscription Handler Context Data. + More...

+ +

#include <Common.hpp>

+

Detailed Description

+

This class can be used to provide customer context data to be provided with each Subscription Handler call. Uses a pure virtual destructor to allow for polymorphism

+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html b/docs/html/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html new file mode 100644 index 0000000..92977a3 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html @@ -0,0 +1,317 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::UnsubackPacket Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::UnsubackPacket Class Reference
+
+
+ +

Define a class for Unsuback Packet type. + More...

+ +

#include <Subscribe.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::UnsubackPacket:
+
+
+ + +awsiotsdk::mqtt::Packet +awsiotsdk::ActionData + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

UnsubackPacket (const UnsubackPacket &)=delete
 
UnsubackPacket (UnsubackPacket &&)=delete
 
+UnsubackPacketoperator= (const UnsubackPacket &) &=delete
 
+UnsubackPacketoperator= (UnsubackPacket &&) &=delete
 
 UnsubackPacket (const util::Vector< unsigned char > &buf)
 Constructor. More...
 
util::String ToString ()
 Serialize this packet into a String. More...
 
- Public Member Functions inherited from awsiotsdk::mqtt::Packet
Packet (const Packet &)=delete
 
Packet (Packet &&)=delete
 
+Packetoperator= (const Packet &) &=delete
 
+Packetoperator= (Packet &&) &=delete
 
uint16_t GetActionId ()
 Get ID of the current run of this Action. More...
 
void SetActionId (uint16_t action_id)
 Set the Action ID for this run of the Action. More...
 
+bool isPacketDataValid ()
 
+uint16_t GetPacketId ()
 
+void SetPacketId (uint16_t packet_id)
 
+size_t Size ()
 
virtual util::String ToString ()=0
 
- Public Member Functions inherited from awsiotsdk::ActionData
ActionData (const ActionData &)=default
 
ActionData (ActionData &&)=default
 
+ActionDataoperator= (const ActionData &) &=default
 
+ActionDataoperator= (ActionData &&) &=default
 
virtual uint16_t GetActionId ()=0
 Get ID of the current run of this Action. More...
 
virtual void SetActionId (uint16_t action_id)=0
 Set the Action ID for this run of the Action. More...
 
+ + + + + + + + + + + + + + + +

+Static Public Member Functions

static std::shared_ptr< UnsubackPacketCreate (const util::Vector< unsigned char > &buf)
 Factory Create method. More...
 
- Static Public Member Functions inherited from awsiotsdk::mqtt::Packet
+static void AppendUInt16ToBuffer (util::String &buf, uint16_t value)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::unique_ptr< Utf8String > &utf8_str)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::shared_ptr< Utf8String > &utf8_str)
 
+static uint16_t ReadUInt16FromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+static std::unique_ptr< Utf8StringReadUtf8StringFromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+ + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::ActionData
typedef std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
 
- Data Fields inherited from awsiotsdk::ActionData
+AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to call when response is received for this action.
 
- Protected Attributes inherited from awsiotsdk::mqtt::Packet
+PacketFixedHeader fixed_header_
 Fixed header for this packet instance.
 
+size_t packet_size_
 Size of the packet.
 
+size_t serialized_packet_length_
 Serialized length of the entire packet including fixed header.
 
+std::atomic_uint_fast16_t packet_id_
 Message sequence identifier. Handled automatically by the MQTT client.
 
+

Detailed Description

+

This class defines the Packet type used in MQTT to Acknowledge Unsubscribe requests

+

Constructor & Destructor Documentation

+ +

◆ UnsubackPacket()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::UnsubackPacket::UnsubackPacket (const util::Vector< unsigned char > & buf)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
bufSerialized version of the packet to parse
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::shared_ptr< UnsubackPacket > awsiotsdk::mqtt::UnsubackPacket::Create (const util::Vector< unsigned char > & buf)
+
+static
+
+
Parameters
+ + +
bufSerialized version of the packet to parse
+
+
+
Returns
nullptr on error, shared_ptr pointing to a created UnsubackPacket instance if successful
+ +
+
+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::mqtt::UnsubackPacket::ToString ()
+
+virtual
+
+
Returns
String containing serialized packet
+ +

Implements awsiotsdk::mqtt::Packet.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.png new file mode 100644 index 0000000000000000000000000000000000000000..b910c2ee85a66af9e372dcc1802065c8c0ecbc05 GIT binary patch literal 1092 zcmeAS@N?(olHy`uVBq!ia0vp^2Y|SPgBeJ+af+A#Dd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5C84jcfA2T!`Z0w~8>666=m0OW&#In(Sb3=GWYJzX3_Dj46+ec1O|i^rwi zan+xH{x#AI4yvh~eV2RPY5r;-X#)xQoEPy==6pWoq;|4YltJa?N(Kc_|G)ALCY7ss zFV|()mF3Le%&Ahj?tIDvt3xTbHb3y1Z&V|cxVC7R!O;xkSAy9THHu54MnKe}^Ayi@0u^Er;Q6}sJXbn0q0b;kVPG-^5lq-j4Q=|5~_aU#rxY)p4(!e(h2^$^G~8|060d*MU63%HUb0 z#o%!%*uP;;aa;t$hfrIFgw(ZsA1ZYGHdq}n{I&K5rkJ=2W%gxe#Qy+JAEv&oRsOuv7boJJouhLmEV!uA$dg#{5M5D^~RyF_bEZ=A1wX%Vy@E3?7O-PU0$WfRK33?Y%+8CCBu1*_wH}{ z7}>CE5?9I{li1MjjC}7z8(u1(G`_39a8r%%hm9?2p#{Vte3M2l@O}*HTXx==)5vxjz4&@ckPBlm1L(YEXHf zRmm{v&lVud7Mw)X9nM+m>oELSCC9K~Qy6=NjhK3b>;uXFw^&XyAJJuD*oQaRu!n5H z(kVevkseA)ueBIlT!3M%q%^OJ`9g2njm?FIzR{;opS+P-{#NIEcSpxXiNpOyAC5Bw z|2B1SyeH+G%8nMG3^#t=ZrFF|-txLBuWJjlgBdd$tQPFPFDtqJ?aI~V&YVm4cdL9| zq1k-8u+c4b$MbFbYL~T4>Zo&*x7}TB*7rHYDu+!?FGTUn_UnDGRibWlI?P?fB>A%a z&ws82jfHzv(j0HC;44sWI2CmE3NVOY{xLkT#o$cet0OTt{TSM`c3Uy4dFAfbQ+%3K z$M)rq@oi7enQJ#~zp!r+-^Yr$Zr}MY! + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::UnsubscribeActionAsync Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::UnsubscribeActionAsync Class Reference
+
+
+ +

Define a class for UnsubscribeActionAsync. + More...

+ +

#include <Subscribe.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::UnsubscribeActionAsync:
+
+
+ + +awsiotsdk::Action + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

UnsubscribeActionAsync (const UnsubscribeActionAsync &)=delete
 
UnsubscribeActionAsync (UnsubscribeActionAsync &&)=delete
 
+UnsubscribeActionAsyncoperator= (const UnsubscribeActionAsync &) &=delete
 
+UnsubscribeActionAsyncoperator= (UnsubscribeActionAsync &&) &=delete
 
 UnsubscribeActionAsync (std::shared_ptr< ClientState > p_client_state)
 Constructor. More...
 
ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
 Perform MQTT Unsubscribe Action in Async mode. More...
 
- Public Member Functions inherited from awsiotsdk::Action
ActionType GetActionType ()
 Get Type of this Action. More...
 
util::String GetActionInfo ()
 Get information/description about the current action. More...
 
void SetParentThreadSync (std::shared_ptr< std::atomic_bool > p_thread_continue)
 Sets the parent thread sync variable. More...
 
virtual ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)=0
 Virtual base function for Performing Action. More...
 
Action (const Action &)=delete
 
Action (Action &&)=delete
 
+Actionoperator= (const Action &) &=delete
 
+Actionoperator= (Action &&) &=delete
 
 Action (ActionType action_type, util::String action_info_string)
 Action Constructor. More...
 
+ + + + +

+Static Public Member Functions

static std::unique_ptr< ActionCreate (std::shared_ptr< ActionState > p_action_state)
 Factory Create method. More...
 
+ + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< ClientStatep_client_state_
 Shared Client State instance.
 
- Protected Attributes inherited from awsiotsdk::Action
+ActionType action_type_
 Type of the action.
 
+util::String action_info_string_
 Info string.
 
+std::shared_ptr< std::atomic_bool > p_thread_continue_
 Shared atomic variable used for sync when action is run in separate thread.
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::Action
typedef std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
 
- Protected Member Functions inherited from awsiotsdk::Action
ResponseCode ReadFromNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, util::Vector< unsigned char > &read_buf, size_t bytes_to_read)
 Generic Network Read function for all actions. More...
 
ResponseCode WriteToNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, const util::String &write_buf)
 Generic Network Write function for all actions. More...
 
+

Detailed Description

+

This class defines an Asynchronous action for performing a MQTT Unsubscribe operation

+

Constructor & Destructor Documentation

+ +

◆ UnsubscribeActionAsync()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::UnsubscribeActionAsync::UnsubscribeActionAsync (std::shared_ptr< ClientStatep_client_state)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::unique_ptr< Action > awsiotsdk::mqtt::UnsubscribeActionAsync::Create (std::shared_ptr< ActionStatep_action_state)
+
+static
+
+
Parameters
+ + +
p_client_state- Shared Client State instance
+
+
+
Returns
nullptr on error, unique_ptr pointing to a created UnsubscribeActionAsync instance if successful
+ +
+
+ +

◆ PerformAction()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResponseCode awsiotsdk::mqtt::UnsubscribeActionAsync::PerformAction (std::shared_ptr< NetworkConnectionp_network_connection,
std::shared_ptr< ActionDatap_action_data 
)
+
+virtual
+
+

Performs the MQTT Unsubscribe Operation in Async mode. Does NOT deactivate or deregister active subscriptions. Does modify subscription information to keep track of which packet ID the unsuback request is using. Will NOT wait for UNSUBACK. Whenever UNSUBACK is received by the Network Read operation, the Subscriptions will be removed.

+
Parameters
+ + + +
p_network_connection- Network connection instance to use for performing this action
p_action_data- Action data specific to this execution of the Action
+
+
+
Returns
- ResponseCode indicating status of the operation
+ +

Implements awsiotsdk::Action.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.png new file mode 100644 index 0000000000000000000000000000000000000000..c4b8cd68a8a81e64c3a76934b25a419a2d27cfc2 GIT binary patch literal 778 zcmV+l1NHogP)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0007& zNkl!WS)UQgUo6YA3?(e8ssm{f ztE%SKBvw_;tv@H0pjQTN{Ht~c6!5RBlJ&3ZO^I(g=#R%o zY^V0bW%Fkd*Z9hR7`Pwzb-ZQoM-d-i$K5?{9PthKgsgS}`dVEmeXX|jtzT5(7YPO=1AZ ztw{_3uaStzP=b);K$^rPnOl>XBy;N<;%0QqZiAC;*81oitUYuQxqs&QPaWRVXZ%Xy zz$R`c-s#tnWTZxX`=u(bR^5lC|1gw~vT$WGSlj4sD}NpFeSTfgo?z$76N)cqE1ou* z8cdC>E;VbSXVi!`;&rd>H7+4tE3TU1;kWfkG0kl0TncI1O3~RUWUt80-X8ervsy^o zT7q^{H3fow=D__K2QK=#*w$+YMN&G&&)8?Rk34vGpY%T_?lP{M3nE=FNc}z|-Y!!Y z`4Mr;`*t6~lQ0W^K^%qZVhYcuUlkGCROzqi8S(LL+1+D@Wo_qKZCnUxTVFTNUiS&H zee?U5+tq4o^R>E$Xqom!>S42mY`rW#gR42L)j^FlC$|M-Yjs~D%yD~&AN?Ma + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::UnsubscribePacket Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::UnsubscribePacket Class Reference
+
+
+ +

Define a class for Unsubscribe Packet type. + More...

+ +

#include <Subscribe.hpp>

+
+Inheritance diagram for awsiotsdk::mqtt::UnsubscribePacket:
+
+
+ + +awsiotsdk::mqtt::Packet +awsiotsdk::ActionData + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

UnsubscribePacket (const UnsubscribePacket &)=delete
 
UnsubscribePacket (UnsubscribePacket &&)=delete
 
+UnsubscribePacketoperator= (const UnsubscribePacket &) &=delete
 
+UnsubscribePacketoperator= (UnsubscribePacket &&) &=delete
 
 UnsubscribePacket (util::Vector< std::unique_ptr< Utf8String > > topic_list)
 Constructor. More...
 
util::String ToString ()
 Serialize this packet into a String. More...
 
- Public Member Functions inherited from awsiotsdk::mqtt::Packet
Packet (const Packet &)=delete
 
Packet (Packet &&)=delete
 
+Packetoperator= (const Packet &) &=delete
 
+Packetoperator= (Packet &&) &=delete
 
uint16_t GetActionId ()
 Get ID of the current run of this Action. More...
 
void SetActionId (uint16_t action_id)
 Set the Action ID for this run of the Action. More...
 
+bool isPacketDataValid ()
 
+uint16_t GetPacketId ()
 
+void SetPacketId (uint16_t packet_id)
 
+size_t Size ()
 
virtual util::String ToString ()=0
 
- Public Member Functions inherited from awsiotsdk::ActionData
ActionData (const ActionData &)=default
 
ActionData (ActionData &&)=default
 
+ActionDataoperator= (const ActionData &) &=default
 
+ActionDataoperator= (ActionData &&) &=default
 
virtual uint16_t GetActionId ()=0
 Get ID of the current run of this Action. More...
 
virtual void SetActionId (uint16_t action_id)=0
 Set the Action ID for this run of the Action. More...
 
+ + + + + + + + + + + + + + + +

+Static Public Member Functions

static std::shared_ptr< UnsubscribePacketCreate (util::Vector< std::unique_ptr< Utf8String > > topic_list)
 Factory Create method. More...
 
- Static Public Member Functions inherited from awsiotsdk::mqtt::Packet
+static void AppendUInt16ToBuffer (util::String &buf, uint16_t value)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::unique_ptr< Utf8String > &utf8_str)
 
+static void AppendUtf8StringToBuffer (util::String &buf, std::shared_ptr< Utf8String > &utf8_str)
 
+static uint16_t ReadUInt16FromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+static std::unique_ptr< Utf8StringReadUtf8StringFromBuffer (const util::Vector< unsigned char > &buf, size_t &extract_index)
 
+ + + + + + + +

+Data Fields

+util::Vector< std::unique_ptr< Utf8String > > topic_list_
 
- Data Fields inherited from awsiotsdk::ActionData
+AsyncAckNotificationHandlerPtr p_async_ack_handler_
 Handler to call when response is received for this action.
 
+ + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from awsiotsdk::ActionData
typedef std::function< void(uint16_t action_id, ResponseCode rc)> AsyncAckNotificationHandlerPtr
 
- Protected Attributes inherited from awsiotsdk::mqtt::Packet
+PacketFixedHeader fixed_header_
 Fixed header for this packet instance.
 
+size_t packet_size_
 Size of the packet.
 
+size_t serialized_packet_length_
 Serialized length of the entire packet including fixed header.
 
+std::atomic_uint_fast16_t packet_id_
 Message sequence identifier. Handled automatically by the MQTT client.
 
+

Detailed Description

+

This class defines the Packet type used by MQTT Unsubscribe requests

+

Constructor & Destructor Documentation

+ +

◆ UnsubscribePacket()

+ +
+
+ + + + + + + + +
awsiotsdk::mqtt::UnsubscribePacket::UnsubscribePacket (util::Vector< std::unique_ptr< Utf8String > > topic_list)
+
+
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
+
Parameters
+ + +
topic_listVector of topic names to be included in this Unsubscribe packet
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + +
std::shared_ptr< UnsubscribePacket > awsiotsdk::mqtt::UnsubscribePacket::Create (util::Vector< std::unique_ptr< Utf8String > > topic_list)
+
+static
+
+
Parameters
+ + +
topic_listVector of topic names to be included in this Unsubscribe packet
+
+
+
Returns
nullptr on error, shared_ptr pointing to a created UnsubscribePacket instance if successful
+ +
+
+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
util::String awsiotsdk::mqtt::UnsubscribePacket::ToString ()
+
+virtual
+
+
Returns
String containing serialized packet
+ +

Implements awsiotsdk::mqtt::Packet.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.png b/docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.png new file mode 100644 index 0000000000000000000000000000000000000000..d74bdd5cbd6c2c557fbf8c8ad4de7fe85c78d290 GIT binary patch literal 1133 zcmeAS@N?(olHy`uVBq!ia0vp^=YhC`gBeJcGx_fXQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#Ns;c)B=-R4~4so7neSfv2V2 zaaGNK;r(nG8#s4+mffxuD>}M`QTQ=`&u?+d=X)kh@GO#K<@fv*`eDM7_`QwlzVot< zfAK$izVYqntK2G;>$cB3|D93&^8BMw$EG}dY?JzXTj;D)d19i@e^&`h_jj%<`?m9U z_w1KXU%q%Rc2#%Ywk>t90@W{V`E;3g@tba`x-aFgXXHJPRw|vnHoyOT-Z8nmI|RR_ zPF_F%@yhR^twlY{mp?dhS?{;%yxN7|TqaHb(p;mRxh1|W(%sT;ofhW8e(TbG~9A9pfT{8H-#75x`$|J$qloG)sl z@-qCO^Q1a3gZtByIiIbV8unjcW)QoSWYd2<%AxzCP2n`As9yC~(hL=09~c_qS@{`$ zgp$DcH=er@>wyuzP6+ZWd zQkdiZs@ZGn+~%2u)W>PRo#*)}ro7^n(cEBI#`IYUb5?+PF8^q$w8`|fG=yiLr}%U9-j1R7ph zZ?(~NO;g=hv*^D(6LTKtI>kHoUlm=YpIp87LUQ0@GrP0F>R+yYoA7(~-m9#;7p}QC z-*r;ftEmT5g)XjjHNVj_{o(PPbB6aPb>uDXug$REce47`hBrTbVtSH`qwm(%K3ad{ z_r|lI&mJ@VXtV5b?mWf&Z5uhy%Uu;%ax&O9?ep5D>+R+gil0rq|7>Q?zO@RQH_w(l z`*p^ZW)-DozjytdQMdPW@j1I}w(xA+ zxpnsPuemE~tt7uIBV)@fI`xa_-}Wuv6@-~XVp(xY%N;XiLm eP?Y + + + + + + +AWS IoT C++ SDK: awsiotsdk::mqtt::WillOptions Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::mqtt::WillOptions Class Reference
+
+
+ +

Last Will and Testament Definition. + More...

+ +

#include <Common.hpp>

+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 WillOptions (bool is_retained, QoS qos, std::unique_ptr< Utf8String > p_topic_name, util::String &message)
 Constructor. More...
 
WillOptions (WillOptions &&)=default
 
+WillOptionsoperator= (WillOptions &&) &=default
 
WillOptions (const WillOptions &source)
 
+WillOptionsoperator= (const WillOptions &source) &
 
size_t Length ()
 Get length of Will Options message. More...
 
void WriteToBuffer (util::String &buf)
 Serialize and write Will Options to provided buffer. More...
 
void SetConnectFlags (unsigned char &p_flag)
 Set Connect flags in the provided buffer based on Will Options instance. More...
 
+ + + + +

+Static Public Member Functions

static std::unique_ptr< WillOptionsCreate (bool is_retained, QoS qos, std::unique_ptr< Utf8String > p_topic_name, util::String &message)
 Factory method to Create a Will Options instance. More...
 
+

Detailed Description

+

Defining a type for the MQTT "Last Will and Testament" (LWT) parameters.

Note
Retained messages are NOT supported by the AWS IoT Service at the time of this SDK release.
+

Constructor & Destructor Documentation

+ +

◆ WillOptions()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awsiotsdk::mqtt::WillOptions::WillOptions (bool is_retained,
QoS qos,
std::unique_ptr< Utf8Stringp_topic_name,
util::String & message 
)
+
+
Parameters
+ + + + + +
is_retained- MQTT Is Retained flag
qos- QoS for the Will Message
p_topic_name- Topic name on which to publish the will message
p_message- Payload of the message to publish
+
+
+ +
+
+

Member Function Documentation

+ +

◆ Create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::unique_ptr< WillOptions > awsiotsdk::mqtt::WillOptions::Create (bool is_retained,
QoS qos,
std::unique_ptr< Utf8Stringp_topic_name,
util::String & message 
)
+
+static
+
+
Parameters
+ + + + + +
is_retained- MQTT Is Retained flag
qos- QoS for the Will Message
p_topic_name- Topic name on which to publish the will message
p_message- Payload of the message to publish
+
+
+
Returns
Returns a unique pointer to a WillOptions Instance
+ +
+
+ +

◆ Length()

+ +
+
+ + + + + + + +
size_t awsiotsdk::mqtt::WillOptions::Length ()
+
+
Returns
size_t Length
+ +
+
+ +

◆ SetConnectFlags()

+ +
+
+ + + + + + + + +
void awsiotsdk::mqtt::WillOptions::SetConnectFlags (unsigned char & p_flag)
+
+
Parameters
+ + +
p_flagTarget buffer
+
+
+ +
+
+ +

◆ WriteToBuffer()

+ +
+
+ + + + + + + + +
void awsiotsdk::mqtt::WillOptions::WriteToBuffer (util::String & buf)
+
+
Parameters
+ + +
buf- Reference to target buffer
+
+
+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1util_1_1_json_parser.html b/docs/html/classawsiotsdk_1_1util_1_1_json_parser.html new file mode 100644 index 0000000..d5777f1 --- /dev/null +++ b/docs/html/classawsiotsdk_1_1util_1_1_json_parser.html @@ -0,0 +1,139 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::util::JsonParser Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::util::JsonParser Class Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

+static ResponseCode InitializeFromJsonFile (JsonDocument &json_document, const util::String &input_file_path)
 
+static ResponseCode InitializeFromJsonString (JsonDocument &json_document, const util::String &input_json_string)
 
+static ResponseCode GetBoolValue (const JsonDocument &json_document, const char *key, bool &value)
 
+static ResponseCode GetIntValue (const JsonDocument &json_document, const char *key, int &value)
 
+static ResponseCode GetUint16Value (const JsonDocument &json_document, const char *key, uint16_t &value)
 
+static ResponseCode GetUint32Value (const JsonDocument &json_document, const char *key, uint32_t &value)
 
+static ResponseCode GetSizeTValue (const JsonDocument &json_document, const char *key, size_t &value)
 
+static ResponseCode GetCStringValue (const JsonDocument &json_document, const char *key, char *value, uint16_t max_string_len)
 
+static ResponseCode GetStringValue (const JsonDocument &json_document, const char *key, util::String &value)
 
+static rapidjson::ParseErrorCode GetParseErrorCode (const JsonDocument &json_document)
 
+static size_t GetParseErrorOffset (const JsonDocument &json_document)
 
+static ResponseCode MergeValues (JsonValue &target, JsonValue &source, JsonValue::AllocatorType &allocator)
 
+static ResponseCode DiffValues (JsonValue &target_doc, JsonValue &old_doc, JsonValue &new_doc, JsonValue::AllocatorType &allocator)
 
+static util::String ToString (JsonDocument &json_document)
 
+static util::String ToString (JsonValue &json_value)
 
+static ResponseCode WriteToFile (JsonDocument &json_document, const util::String &output_file_path)
 
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html b/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html new file mode 100644 index 0000000..e56950d --- /dev/null +++ b/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html @@ -0,0 +1,174 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::util::Logging::ConsoleLogSystem Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::util::Logging::ConsoleLogSystem Class Reference
+
+
+ +

#include <ConsoleLogSystem.hpp>

+
+Inheritance diagram for awsiotsdk::util::Logging::ConsoleLogSystem:
+
+
+ + +awsiotsdk::util::Logging::FormattedLogSystem +awsiotsdk::util::Logging::LogSystemInterface + +
+ + + + + + + +

+Public Types

+using Base = FormattedLogSystem
 
- Public Types inherited from awsiotsdk::util::Logging::FormattedLogSystem
+using Base = LogSystemInterface
 
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

ConsoleLogSystem (LogLevel logLevel)
 
- Public Member Functions inherited from awsiotsdk::util::Logging::FormattedLogSystem
 FormattedLogSystem (LogLevel logLevel)
 
virtual LogLevel GetLogLevel (void) const override
 
void SetLogLevel (LogLevel logLevel)
 
virtual void Log (LogLevel logLevel, const char *tag, const char *function, unsigned int line, const char *formatStr,...) override
 
virtual void LogStream (LogLevel logLevel, const char *tag, const util::OStringStream &messageStream) override
 
virtual LogLevel GetLogLevel (void) const =0
 
virtual void Log (LogLevel logLevel, const char *tag, const char *function, unsigned int line, const char *formatStr,...)=0
 
virtual void LogStream (LogLevel logLevel, const char *tag, const util::OStringStream &messageStream)=0
 
+ + + + + +

+Protected Member Functions

virtual void ProcessFormattedStatement (util::String &&statement) override
 
virtual void ProcessFormattedStatement (util::String &&statement)=0
 
+

Detailed Description

+

Log system interface that logs to std::cout

+

Member Function Documentation

+ +

◆ ProcessFormattedStatement()

+ +
+
+ + + + + +
+ + + + + + + + +
void ConsoleLogSystem::ProcessFormattedStatement (util::String && statement)
+
+overrideprotectedvirtual
+
+

This is the method that most logger implementations will want to override. At this point the message is formatted and is ready to go to the output stream

+ +

Implements awsiotsdk::util::Logging::FormattedLogSystem.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.png b/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.png new file mode 100644 index 0000000000000000000000000000000000000000..52f258d0026759b7020c657658ab27bb34e79866 GIT binary patch literal 1456 zcma*neK^xw902g&?lSDzc4=avLbuhF+LkPoqD@ic(N?2~6}3!D2)!r`4PClQi6nAu z<|Sey^D^5Mmz(P)FD)+%DVn$I?KUrW^Y{JZoZi_sK}@VjWoSqH*61jB^ecz+UZut3(uhnMHeXBIR?PTwQ3J?UWX zbOwVe@iBOR3w)51)o9n90RyTKxHB4`vELgq^*zF(h2zL~nax%U<4JXRdG!c0qS-Tm zU}uG4ZP{ql9-L_yY#R|xacy0mLH&_9o43&lcDOM~$%uhwYFe}wfXd*90{Yxw-S@P)lqMQod&q<~OnRoXX@Ju#}R zBrHI%d+45B1)JgVv^RuQ$BC;GjD{r_-?W*jA)|oCrdAg@gM-d>N)vdr*?mo$&E=AQ z+kcD+1;Y8U80*^Z-j4GdfJO3zR44abR~d**=Xew4eGGOR&KTuV9WPdpKmd~~JqVKm zA}H<|N)RZs^Cl6O%Om61ZgIYxNfJWphIs(S6_euGx-=6AO-FaTdb^3)NtFrPo>-s* z#_6!wR8xp5t6Sm#Q)SI)F={cQ6pB-2+3b`sQE{NmF$E6TdBv$tf$prMQR^Puag|Sm{4WtqD#=V?OpfABx*^_j9Sttdc>tw zuRf@DhEOj`p(p1CK3+!p0(T7Z|G5b8U^|0>g}h3OSM#;-Lmg1YGFY^UE*uum&HEj4 z>PGV}13)AvvMEKuv{3mU-=YQqPO{}v)!WZanVU`5&K@O3JHu>ac3m}zb&fJ-M_ITN z@Ba_Kb^i%p1&)2>p6%>TSqfRbi^6w+HK9hK<#SVOyEne{qY0E(#(OF$ly^2-^h$~4 zBc`9k5F(u1`bHpYhVQ~g+uj6A5L4F4p%*I0?1C1p^&R_{a8z{F#A0ZoM}Xq3Y_tEo z->>USk7uy()W;u@`@$Fp@+5AZYR{a}p}jHrtelStaU6AVHXa_lV0OEjb$>@ZW>?84 zN%j%mNnWWxw}NpOaf1~X5%Sp1==#fbun~v!b~z4>O6;U9u9+&|6O4?V^J#J0iaPVl zFiP={KdEHo$5Tttb>;Yt4@Ys)bn9zA=KG30>ITw=st6S?G-vmZ!E17EWhT8SoQ;J@ zCQ+s7;>bG!i+KVmP#Dob=zJDCm@e+of7M%vt-(ML#~xY+mQq`ATwV?J7XFpj7?0O9 zTAR-s<@Y6+UeXYtD3sg3D;)FF`<}sf%9KHr5B+)l7bDu02@aH5#UphYkw2&_)7|;o b;Or(1Gwst2y#~vwzZGyIxe|*UeD3}W_l~b7 literal 0 HcmV?d00001 diff --git a/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html b/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html new file mode 100644 index 0000000..e52354c --- /dev/null +++ b/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html @@ -0,0 +1,348 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::util::Logging::FormattedLogSystem Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::util::Logging::FormattedLogSystem Class Referenceabstract
+
+
+ +

#include <FormattedLogSystem.hpp>

+
+Inheritance diagram for awsiotsdk::util::Logging::FormattedLogSystem:
+
+
+ + +awsiotsdk::util::Logging::LogSystemInterface +awsiotsdk::util::Logging::ConsoleLogSystem + +
+ + + + +

+Public Types

+using Base = LogSystemInterface
 
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

 FormattedLogSystem (LogLevel logLevel)
 
virtual LogLevel GetLogLevel (void) const override
 
void SetLogLevel (LogLevel logLevel)
 
virtual void Log (LogLevel logLevel, const char *tag, const char *function, unsigned int line, const char *formatStr,...) override
 
virtual void LogStream (LogLevel logLevel, const char *tag, const util::OStringStream &messageStream) override
 
virtual LogLevel GetLogLevel (void) const =0
 
virtual void Log (LogLevel logLevel, const char *tag, const char *function, unsigned int line, const char *formatStr,...)=0
 
virtual void LogStream (LogLevel logLevel, const char *tag, const util::OStringStream &messageStream)=0
 
+ + + +

+Protected Member Functions

virtual void ProcessFormattedStatement (util::String &&statement)=0
 
+

Detailed Description

+

Logger that formats log messages into [LEVEL] timestamp [threadid] message

+

Constructor & Destructor Documentation

+ +

◆ FormattedLogSystem()

+ +
+
+ + + + + + + + +
FormattedLogSystem::FormattedLogSystem (LogLevel logLevel)
+
+

Initializes log system with logLevel

+ +
+
+

Member Function Documentation

+ +

◆ GetLogLevel()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual LogLevel awsiotsdk::util::Logging::FormattedLogSystem::GetLogLevel (void ) const
+
+inlineoverridevirtual
+
+

Gets the currently configured log level.

+ +

Implements awsiotsdk::util::Logging::LogSystemInterface.

+ +
+
+ +

◆ Log()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void FormattedLogSystem::Log (LogLevel logLevel,
const char * tag,
const char * function,
unsigned int line,
const char * formatStr,
 ... 
)
+
+overridevirtual
+
+

Does a printf style output to ProcessFormattedStatement. Don't use this, it's unsafe. See LogStream

+ +

Implements awsiotsdk::util::Logging::LogSystemInterface.

+ +
+
+ +

◆ LogStream()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void FormattedLogSystem::LogStream (LogLevel logLevel,
const char * tag,
const util::OStringStream & messageStream 
)
+
+overridevirtual
+
+

Writes the stream to ProcessFormattedStatement.

+ +

Implements awsiotsdk::util::Logging::LogSystemInterface.

+ +
+
+ +

◆ ProcessFormattedStatement()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void awsiotsdk::util::Logging::FormattedLogSystem::ProcessFormattedStatement (util::String && statement)
+
+protectedpure virtual
+
+

This is the method that most logger implementations will want to override. At this point the message is formatted and is ready to go to the output stream

+ +

Implemented in awsiotsdk::util::Logging::ConsoleLogSystem.

+ +
+
+ +

◆ SetLogLevel()

+ +
+
+ + + + + +
+ + + + + + + + +
void awsiotsdk::util::Logging::FormattedLogSystem::SetLogLevel (LogLevel logLevel)
+
+inline
+
+

Set a new log level. This has the immediate effect of changing the log output to the new level.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.png b/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0cc83652c98c876b0b53ae1c24c74cb2304af0 GIT binary patch literal 1459 zcma)+X*Anu6vqFAsGP)7Tc*JnXSCEziKVu-#8y<)7M!-0M732_MnViliiEaWQ>JRF zXhW%>D2YTXLS(e(R2q$4W3REtQd;{&=ghbHF!#fK?|q+h-!H%Sxwkw$PQxIFAOHZs zTwNT!0YC~YsWT6NB-!LJ{h;JPc)I&K?d|PJ%IW#F*zC4)OJjp*_``S891cfv?~@~Z zF45!(-X1=Hr2iHc(gocBAbZNy5#<{%wNN;hGpTccyc}T8+p=AbJK~J$iX$>ieR?iy zl&Khzf`L6ZzLk$2h*NHeR01J^T6<^#+w`H zok?@t@u2~x{=txEBQqsP%Pl}u4g=*os$OT=<#)+$Yo~SA4Y!u+zh>#|vM(*Rjb7{H zG-WogRjOabS2zU+;h@z`Zfv=+P2xz-aK=-{o7tB&Ph5{PDJB=WG>gxPe$A~;w%uRm zhDQ;cm@|D%ep=z)szc4KW(f}y{T;NUAi~o3M@9l7g80`VjYJmD%vE?iVo)xyUZh&B ze>>w7S_%;N8te6Gyec?X1tO*N*dWtqEX^VT^k#*H7t;bkB|zma`G~2}iCzH5$QP#r z#sMK@_%W!}U)#$^bytL&db;*{l(aStD)v+D2&nh!hZU03jWkZS7uA}Rh45Iw*O?C6e>=5+!r!aJTs11Cu z^!$3fJfpBA78e$8LX3;V^sp4z6Ct`w)c_d$x4@>nY^niVo1q)n!r{bOs3xJA5vI(*iBpC!$M@58iq zp_Sz8&oXv9PLl5zggSY3UQm1IMF?}edr($zQT z%c2u)()-X|YP?@tvMhM*55jZGB71jLu%4Kt`bXJiH1x1is_DkyZX}%Q7qS|RS+fm~ zis5c24S1?B@Rrc$wB)nRZ?#q%)ycG3@i(ZR7{m5xtc$_3Y=7nZ#l1$#%14o!s_Zv6 z;fG{nbifQ3W#s?i_n+Wb5XO^_R~6^{`Br;XZeY?`|9`&`16evcbK@6rT!V*bPmsTPbi88Uqmw1e zruSRAP$+etZ(hJ6*6T-(8@?BYc^D|bMj0dD^Gz;snc;F=x?qYBpCwDFr^9Vg+ew`t z)1TV*n|8~BHC#_Rr?4?znyh3!G-;T<6}09D#h&A9 + + + + + + +AWS IoT C++ SDK: awsiotsdk::util::Logging::LogSystemInterface Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::util::Logging::LogSystemInterface Class Referenceabstract
+
+
+ +

#include <LogSystemInterface.hpp>

+
+Inheritance diagram for awsiotsdk::util::Logging::LogSystemInterface:
+
+
+ + +awsiotsdk::util::Logging::FormattedLogSystem +awsiotsdk::util::Logging::ConsoleLogSystem + +
+ + + + + + + + +

+Public Member Functions

virtual LogLevel GetLogLevel (void) const =0
 
virtual void Log (LogLevel logLevel, const char *tag, const char *function, unsigned int line, const char *formatStr,...)=0
 
virtual void LogStream (LogLevel logLevel, const char *tag, const util::OStringStream &messageStream)=0
 
+

Detailed Description

+

Interface for logging implementations. If you want to write your own logger, you can start here, though you may have more luck going down one more level to FormattedLogSystem. It does a bit more of the work for you and still gives you the ability to override the IO portion.

+

Member Function Documentation

+ +

◆ GetLogLevel()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual LogLevel awsiotsdk::util::Logging::LogSystemInterface::GetLogLevel (void ) const
+
+pure virtual
+
+

Gets the currently configured log level for this logger.

+ +

Implemented in awsiotsdk::util::Logging::FormattedLogSystem.

+ +
+
+ +

◆ Log()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void awsiotsdk::util::Logging::LogSystemInterface::Log (LogLevel logLevel,
const char * tag,
const char * function,
unsigned int line,
const char * formatStr,
 ... 
)
+
+pure virtual
+
+

Does a printf style output to the output stream. Don't use this, it's unsafe. See LogStream

+ +

Implemented in awsiotsdk::util::Logging::FormattedLogSystem.

+ +
+
+ +

◆ LogStream()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void awsiotsdk::util::Logging::LogSystemInterface::LogStream (LogLevel logLevel,
const char * tag,
const util::OStringStream & messageStream 
)
+
+pure virtual
+
+

Writes the stream to the output stream.

+ +

Implemented in awsiotsdk::util::Logging::FormattedLogSystem.

+ +
+
+
+ + + + diff --git a/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.png b/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.png new file mode 100644 index 0000000000000000000000000000000000000000..51a21e7134b5d044a1dc5482654e68907faae51b GIT binary patch literal 1464 zcmeAS@N?(olHy`uVBq!ia0y~yU}OWbJ2;quq>3f*F8(FfeDDeT9L6)!EaYDOvN@|p4@wD z_UyNqc06Nl#LszWeje^mn-^sCDBpgj%-LWs-?~Y>)e>J0#iz{5p2XfhdFhl%S2f#~ z-;YW@aYFvRtMQ>Vm5+V|->|y>*DgZ+&AX@3a+`16>N)TGDxuf?_?HitlisQKZ+NBo zYrdfK*BkS0B|3Y#^~w6mwoGvgycoXu-*KBtwRAu0-BVO~bL}hpG?Hy!i@SPwdgo^@ zzGz_`{WFIZm7H_+sIeXeu=`kAW@B<`DT&`Wy#cTMZ9n5>J_ z#pRt>ubcGVZ^yU08*4e+ZYjN7dCJMd`4;3%5spWfT4zaQ}RDb1sAT=kz-|;Fj>Dg3E;&w=|ck{k^ifX|IX&o{|#wv|#=2udfyXgP1=A9>l`V z9Evr2yE^tn=PN0NB%Kh+d*Z;;%Va6Q9KEDNLy--rQ1GG?&k+Y6rA4h09gPw$F5HF! z%!VBuVjwdF1a*N@M--HzfKnZfE?a<70?i#6KUsJTkNrs7dsO0ab*K_U&2Ax}I5UIp zkqym?7XHV(E3YpuJrwz{I{5HUd4@BkH*WJUt6)w@c~oO9{mtM-tA8Ie!`^o@a*|Ip z|2-4TBY8JD^rDYZ_B@M!GTeLL*U7IDE<66ow=Xg`_n37{>bgJr?plpo8m8wD^IdV5vEw?*3Cx5N!x1sQa8 zAMRSXYhv%M_q@49UzUAZ|CNp5;3~@%>2LE&n+&pT=F|q>@SXGH_pG1qC4S{>SY6uk zHMRBNkr4hX^GkHP!g}L?ae7Z_{qYBHHysLyPT{@kufu=%^Icy<^L}ZGwq*;re~L@Y z`_jgDSZMiP%`ewCnjgKn)<-^%|M=wGHCr#Fo40O!D=^R8HC*KQU!!{>lh=k!4$0m8 zO`e~bVNb+WcjgNzMKhTX`4jTB7&+|V~v>Tp5LH& zOyd5U?Gni~>%CYSAi0%cL94_zLzd?+D-7RPZSk|vuE|e(^pBt6nH6W|%fzRj(r<2P zchs*bl3|cAxxI#WenNrm9|q^P9})2;#%E`#_t_tJdcXTV`|FmwyKCkqhegl+_^%`N z_b#{Im&+5ItsTYep@vin1PD+HLfZ+p2pssIqCJigr<2{zOORBF=<=vz2 + + + + + + +AWS IoT C++ SDK: awsiotsdk::util::Threading::ThreadTask Class Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
awsiotsdk::util::Threading::ThreadTask Class Reference
+
+
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

ThreadTask (DestructorAction destructor_action, std::shared_ptr< std::atomic_bool > sync_point, util::String thread_descriptor)
 
ThreadTask (const ThreadTask &)=delete
 
+ThreadTaskoperator= (const ThreadTask &)=delete
 
ThreadTask (ThreadTask &&)=delete
 
+ThreadTaskoperator= (ThreadTask &&)=delete
 
+template<class Fn , class ... Args>
void Run (Fn &&fn, Args &&... args)
 
+void Stop ()
 
+
+ + + + diff --git a/docs/html/classes.html b/docs/html/classes.html new file mode 100644 index 0000000..348d028 --- /dev/null +++ b/docs/html/classes.html @@ -0,0 +1,132 @@ + + + + + + + +AWS IoT C++ SDK: Data Structure Index + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structure Index
+
+
+
A | C | D | F | G | J | K | L | M | N | P | R | S | T | U | W
+
+
+
A
+
Action (awsiotsdk)
ActionData (awsiotsdk)
ActionState (awsiotsdk)
+
+
C
+
ClientCore (awsiotsdk)
ClientCoreState (awsiotsdk)
ClientState (awsiotsdk::mqtt)
ConfigCommon (awsiotsdk)
ConnectActionAsync (awsiotsdk::mqtt)
ConnectivityInfo (awsiotsdk)
ConnectPacket (awsiotsdk::mqtt)
ConsoleLogSystem (awsiotsdk::util::Logging)
+
+
D
+
DisconnectActionAsync (awsiotsdk::mqtt)
DisconnectCallbackContextData (awsiotsdk)
DisconnectPacket (awsiotsdk::mqtt)
DiscoverAction (awsiotsdk::discovery)
DiscoverRequestData (awsiotsdk::discovery)
DiscoveryResponse (awsiotsdk)
+
+
F
+
FormattedLogSystem (awsiotsdk::util::Logging)
+
+
G
+
GreengrassMqttClient (awsiotsdk)
+
+
J
+
Jobs (awsiotsdk)
JsonParser (awsiotsdk::util)
+
+
K
+
KeepaliveActionRunner (awsiotsdk::mqtt)
+
+
L
+
LogSystemInterface (awsiotsdk::util::Logging)
+
+
M
+
MqttClient (awsiotsdk)
+
+
N
+
NetworkConnection (awsiotsdk)
NetworkReadActionRunner (awsiotsdk::mqtt)
+
+
P
+
Packet (awsiotsdk::mqtt)
PacketFixedHeader (awsiotsdk::mqtt)
ClientCoreState::PendingAckData (awsiotsdk)
PingreqPacket (awsiotsdk::mqtt)
PubackActionAsync (awsiotsdk::mqtt)
PubackPacket (awsiotsdk::mqtt)
PublishActionAsync (awsiotsdk::mqtt)
PublishPacket (awsiotsdk::mqtt)
+
+
R
+
ReconnectCallbackContextData (awsiotsdk)
ResubscribeCallbackContextData (awsiotsdk)
+
+
S
+
Shadow (awsiotsdk)
SubackPacket (awsiotsdk::mqtt)
SubscribeActionAsync (awsiotsdk::mqtt)
SubscribePacket (awsiotsdk::mqtt)
Subscription (awsiotsdk::mqtt)
SubscriptionHandlerContextData (awsiotsdk::mqtt)
+
+
T
+
ThreadTask (awsiotsdk::util::Threading)
+
+
U
+
UnsubackPacket (awsiotsdk::mqtt)
UnsubscribeActionAsync (awsiotsdk::mqtt)
UnsubscribePacket (awsiotsdk::mqtt)
Utf8String (awsiotsdk)
+
+
W
+
WillOptions (awsiotsdk::mqtt)
+
+
+ + + + diff --git a/docs/html/closed.png b/docs/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/docs/html/dir_2d45d85302b42b5377fddd52297f84fa.html b/docs/html/dir_2d45d85302b42b5377fddd52297f84fa.html new file mode 100644 index 0000000..c7d006a --- /dev/null +++ b/docs/html/dir_2d45d85302b42b5377fddd52297f84fa.html @@ -0,0 +1,97 @@ + + + + + + + +AWS IoT C++ SDK: logging Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
logging Directory Reference
+
+
+ + + + + + + + + + +

+Files

file  ConsoleLogSystem.cpp
 
file  FormattedLogSystem.cpp
 
file  Logging.cpp
 
file  LogLevel.cpp
 
+
+ + + + diff --git a/docs/html/dir_49b159e2fb90daf85a1b216fb2e8d8ed.html b/docs/html/dir_49b159e2fb90daf85a1b216fb2e8d8ed.html new file mode 100644 index 0000000..48e0ec1 --- /dev/null +++ b/docs/html/dir_49b159e2fb90daf85a1b216fb2e8d8ed.html @@ -0,0 +1,91 @@ + + + + + + + +AWS IoT C++ SDK: memory Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
memory Directory Reference
+
+
+ + + + +

+Directories

directory  stl
 
+
+ + + + diff --git a/docs/html/dir_503ebd9f384f44c9859dcb1451d026bc.html b/docs/html/dir_503ebd9f384f44c9859dcb1451d026bc.html new file mode 100644 index 0000000..00867bb --- /dev/null +++ b/docs/html/dir_503ebd9f384f44c9859dcb1451d026bc.html @@ -0,0 +1,107 @@ + + + + + + + +AWS IoT C++ SDK: mqtt Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
mqtt Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + +

+Files

file  Client.cpp
 
file  ClientState.cpp
 
file  Common.cpp
 
file  Connect.cpp
 
file  NetworkRead.cpp
 
file  Packet.cpp
 
file  Publish.cpp
 MQTT Publish and Puback Actions and Action data definitions for IoT Client.
 
file  Subscribe.cpp
 MQTT Subscribe and Unsubscribe Actions and Action data definitions for IoT Client.
 
+
+ + + + diff --git a/docs/html/dir_586ad3c2f85d776b984733890d824e3e.html b/docs/html/dir_586ad3c2f85d776b984733890d824e3e.html new file mode 100644 index 0000000..7e640e7 --- /dev/null +++ b/docs/html/dir_586ad3c2f85d776b984733890d824e3e.html @@ -0,0 +1,102 @@ + + + + + + + +AWS IoT C++ SDK: util Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
util Directory Reference
+
+
+ + + + + + +

+Directories

directory  logging
 
directory  threading
 
+ + + + + + + +

+Files

file  Core_EXPORTS.hpp [code]
 
file  JsonParser.hpp [code]
 
file  Utf8String.hpp [code]
 
+
+ + + + diff --git a/docs/html/dir_61c9ccccd0f52ce700d1d68422bef0e1.html b/docs/html/dir_61c9ccccd0f52ce700d1d68422bef0e1.html new file mode 100644 index 0000000..a525ec3 --- /dev/null +++ b/docs/html/dir_61c9ccccd0f52ce700d1d68422bef0e1.html @@ -0,0 +1,91 @@ + + + + + + + +AWS IoT C++ SDK: jobs Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
jobs Directory Reference
+
+
+ + + + +

+Files

file  Jobs.cpp
 
+
+ + + + diff --git a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 0000000..f20bf2c --- /dev/null +++ b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,115 @@ + + + + + + + +AWS IoT C++ SDK: src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
src Directory Reference
+
+
+ + + + + + + + + + + + +

+Directories

directory  discovery
 
directory  jobs
 
directory  mqtt
 
directory  shadow
 
directory  util
 
+ + + + + + + + + + + + + + +

+Files

file  Action.cpp
 Action Base class and related definitions for IoT Client.
 
file  ClientCore.cpp
 
file  ClientCoreState.cpp
 
file  NetworkConnection.cpp
 Network interface base class for IoT Client.
 
file  ResponseCode.cpp
 Response Code class with helper functions.
 
+
+ + + + diff --git a/docs/html/dir_7240ac39f8ffbcbe685b1fc1c119d103.html b/docs/html/dir_7240ac39f8ffbcbe685b1fc1c119d103.html new file mode 100644 index 0000000..ee409aa --- /dev/null +++ b/docs/html/dir_7240ac39f8ffbcbe685b1fc1c119d103.html @@ -0,0 +1,92 @@ + + + + + + + +AWS IoT C++ SDK: shadow Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
shadow Directory Reference
+
+
+ + + + + +

+Files

file  Shadow.hpp [code]
 This file defines a shadow type for AWS IoT Shadow operations.
 
+
+ + + + diff --git a/docs/html/dir_8c5814cf2a6c8c291521c44fe3383313.html b/docs/html/dir_8c5814cf2a6c8c291521c44fe3383313.html new file mode 100644 index 0000000..0b5d1d4 --- /dev/null +++ b/docs/html/dir_8c5814cf2a6c8c291521c44fe3383313.html @@ -0,0 +1,99 @@ + + + + + + + +AWS IoT C++ SDK: stl Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stl Directory Reference
+
+
+ + + + + + + + + + + + +

+Files

file  Map.hpp [code]
 
file  Queue.hpp [code]
 
file  String.hpp [code]
 
file  StringStream.hpp [code]
 
file  Vector.hpp [code]
 
+
+ + + + diff --git a/docs/html/dir_91e62c48b50e2efefbf56be16d49cf08.html b/docs/html/dir_91e62c48b50e2efefbf56be16d49cf08.html new file mode 100644 index 0000000..ca2ac67 --- /dev/null +++ b/docs/html/dir_91e62c48b50e2efefbf56be16d49cf08.html @@ -0,0 +1,112 @@ + + + + + + + +AWS IoT C++ SDK: mqtt Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
mqtt Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  Client.hpp [code]
 Contains the MQTT Client class.
 
file  ClientState.hpp [code]
 
file  Common.hpp [code]
 Common class definitions for the MQTT Client.
 
file  Connect.hpp [code]
 
file  GreengrassMqttClient.hpp [code]
 Contains the MQTT Client class for AWS Greengrass devices.
 
file  NetworkRead.hpp [code]
 
file  Packet.hpp [code]
 
file  Publish.hpp [code]
 MQTT Publish and Puback Actions and Action data definitions for IoT Client.
 
file  Subscribe.hpp [code]
 MQTT Subscribe and Unsubscribe Actions and Action data definitions for IoT Client.
 
+
+ + + + diff --git a/docs/html/dir_a666f0ef9cde9c04b6bede43cb621950.html b/docs/html/dir_a666f0ef9cde9c04b6bede43cb621950.html new file mode 100644 index 0000000..f7cb8a1 --- /dev/null +++ b/docs/html/dir_a666f0ef9cde9c04b6bede43cb621950.html @@ -0,0 +1,101 @@ + + + + + + + +AWS IoT C++ SDK: logging Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
logging Directory Reference
+
+
+ + + + + + + + + + + + + + +

+Files

file  ConsoleLogSystem.hpp [code]
 
file  FormattedLogSystem.hpp [code]
 
file  Logging.hpp [code]
 
file  LogLevel.hpp [code]
 
file  LogMacros.hpp [code]
 
file  LogSystemInterface.hpp [code]
 
+
+ + + + diff --git a/docs/html/dir_abfcfcfc84ac60d48c338b8a657a9e1d.html b/docs/html/dir_abfcfcfc84ac60d48c338b8a657a9e1d.html new file mode 100644 index 0000000..8aac88e --- /dev/null +++ b/docs/html/dir_abfcfcfc84ac60d48c338b8a657a9e1d.html @@ -0,0 +1,91 @@ + + + + + + + +AWS IoT C++ SDK: shadow Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
shadow Directory Reference
+
+
+ + + + +

+Files

file  Shadow.cpp
 
+
+ + + + diff --git a/docs/html/dir_b7878ad5ecbf2506f4125b9d34c97e45.html b/docs/html/dir_b7878ad5ecbf2506f4125b9d34c97e45.html new file mode 100644 index 0000000..7e5bd08 --- /dev/null +++ b/docs/html/dir_b7878ad5ecbf2506f4125b9d34c97e45.html @@ -0,0 +1,100 @@ + + + + + + + +AWS IoT C++ SDK: util Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
util Directory Reference
+
+
+ + + + + + +

+Directories

directory  logging
 
directory  threading
 
+ + + + + +

+Files

file  JsonParser.cpp
 
file  Utf8String.cpp
 
+
+ + + + diff --git a/docs/html/dir_bdd9a5d540de89e9fe90efdfc6973a4f.html b/docs/html/dir_bdd9a5d540de89e9fe90efdfc6973a4f.html new file mode 100644 index 0000000..f85598e --- /dev/null +++ b/docs/html/dir_bdd9a5d540de89e9fe90efdfc6973a4f.html @@ -0,0 +1,93 @@ + + + + + + + +AWS IoT C++ SDK: common Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
common Directory Reference
+
+
+ + + + + + +

+Files

file  ConfigCommon.cpp
 
file  ConfigCommon.hpp [code]
 
+
+ + + + diff --git a/docs/html/dir_c6e0af4955507e99ff8b62707adbbb0e.html b/docs/html/dir_c6e0af4955507e99ff8b62707adbbb0e.html new file mode 100644 index 0000000..43c0640 --- /dev/null +++ b/docs/html/dir_c6e0af4955507e99ff8b62707adbbb0e.html @@ -0,0 +1,91 @@ + + + + + + + +AWS IoT C++ SDK: threading Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
threading Directory Reference
+
+
+ + + + +

+Files

file  ThreadTask.cpp
 
+
+ + + + diff --git a/docs/html/dir_ca82e1633b1ae766364945704c516e3f.html b/docs/html/dir_ca82e1633b1ae766364945704c516e3f.html new file mode 100644 index 0000000..6cff0b0 --- /dev/null +++ b/docs/html/dir_ca82e1633b1ae766364945704c516e3f.html @@ -0,0 +1,94 @@ + + + + + + + +AWS IoT C++ SDK: discovery Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
discovery Directory Reference
+
+
+ + + + + + + +

+Files

file  Discovery.hpp [code]
 
file  DiscoveryResponse.hpp [code]
 Contains constant strings used as keys in the discovery response JSON.
 
+
+ + + + diff --git a/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html b/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 0000000..c6b0e1f --- /dev/null +++ b/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,116 @@ + + + + + + + +AWS IoT C++ SDK: include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
include Directory Reference
+
+
+ + + + + + + + + + + + +

+Directories

directory  discovery
 
directory  jobs
 
directory  mqtt
 
directory  shadow
 
directory  util
 
+ + + + + + + + + + + + + + + +

+Files

file  Action.hpp [code]
 Action Base class and related definitions for IoT Client.
 
file  ClientCore.hpp [code]
 Contains the Client Core class.
 
file  ClientCoreState.hpp [code]
 
file  NetworkConnection.hpp [code]
 Network interface base class for IoT Client.
 
file  ResponseCode.hpp [code]
 Strongly typed enumeration of return values from functions within the SDK.
 
+
+ + + + diff --git a/docs/html/dir_e19064bd735a1cc9a0299ac24cf1c3ba.html b/docs/html/dir_e19064bd735a1cc9a0299ac24cf1c3ba.html new file mode 100644 index 0000000..9676485 --- /dev/null +++ b/docs/html/dir_e19064bd735a1cc9a0299ac24cf1c3ba.html @@ -0,0 +1,91 @@ + + + + + + + +AWS IoT C++ SDK: threading Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
threading Directory Reference
+
+
+ + + + +

+Files

file  ThreadTask.hpp [code]
 
+
+ + + + diff --git a/docs/html/dir_e9f668b2efc3a50f0424d5b34b84ca6b.html b/docs/html/dir_e9f668b2efc3a50f0424d5b34b84ca6b.html new file mode 100644 index 0000000..536420e --- /dev/null +++ b/docs/html/dir_e9f668b2efc3a50f0424d5b34b84ca6b.html @@ -0,0 +1,91 @@ + + + + + + + +AWS IoT C++ SDK: jobs Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
jobs Directory Reference
+
+
+ + + + +

+Files

file  Jobs.hpp [code]
 
+
+ + + + diff --git a/docs/html/dir_eb47272452fa7970fc02c36be38abc9a.html b/docs/html/dir_eb47272452fa7970fc02c36be38abc9a.html new file mode 100644 index 0000000..ed6df76 --- /dev/null +++ b/docs/html/dir_eb47272452fa7970fc02c36be38abc9a.html @@ -0,0 +1,93 @@ + + + + + + + +AWS IoT C++ SDK: discovery Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
discovery Directory Reference
+
+
+ + + + + + +

+Files

file  Discovery.cpp
 
file  DiscoveryResponse.cpp
 
+
+ + + + diff --git a/docs/html/doc.png b/docs/html/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/docs/html/docd.png b/docs/html/docd.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c94fda9bf08ecc02c7190d968452b7a2dbf04b GIT binary patch literal 756 zcmV1wr-rhpn+wxm%q2)IkAYsr{iGq<}_z5JCD4J;FN?6Qh;@TCubdp(_XdD-^ zG_#)IP7_z6hKNdx5^+FGArwLWTWCG!j+oKji?U!hxA#d-ljgkN`+e^@-P+RWG{Bx= z2iQyYTtEf*o~ySWrIVW}HWHi0_hd4~$E6Jx1U`>Owo}EYJ1O>iZvS?!z8}B}QwLMA zC3Keqf1c}K@?C`X>68b(EUzYUYAS&OH^VPteZLPr{S&|nQvp@6W4GH-1U8!u&7l~A zx~RUSNH+>7@q38W6!BzirtjLFCzc|XGx)EF#G%^pWION*k@?vP<2O>|XkCD3ujl%1 z{55JSVkw{~HbX>iEZ2%yJ2eHj5Yh8OTpzs0A2;tZ^x!#5D+y-es{k1&0|Ns9-|+Xt ziGiTsZ8(^nUo#wdTpIDkb-Zp(3|A*FzW}GZ5SQD-r^R`&X@`26E3W|GyrwDIZjtQ& z$g5f8Sv=VgVtDien@J(!^BK+#l;s-LgP--p7C;7;E!ysXcXK6?+9D>_-B(?Wm(U zQbNm-5TyYxIU=rs0+)!ixqzhuxw(AqKc3?KKX32{D~Qibp*r0x&Wux5-9WCMMRi3U zTd6dOCQlj>a;gr;gLwRKulT&(m@^L{&HkSC(qH05HSSf$YEhynGvH zWNez``Z8FJXE+BSg=%ak{OR z+Nylcb{?evLYLuE1_HngYw0g%LC#=$a@?4~Tx>F9295Q>9UJ|_6v-KMw;!YZSgGj@ zR8fRov=hJ#QvsO@xw*{0%zH@OKVEUr + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js new file mode 100644 index 0000000..f579fbf --- /dev/null +++ b/docs/html/dynsections.js @@ -0,0 +1,123 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +AWS IoT C++ SDK: File List + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 12345]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  common
 ConfigCommon.cpp
 ConfigCommon.hpp
  include
  discovery
 Discovery.hpp
 DiscoveryResponse.hppContains constant strings used as keys in the discovery response JSON
  jobs
 Jobs.hpp
  mqtt
 Client.hppContains the MQTT Client class
 ClientState.hpp
 Common.hppCommon class definitions for the MQTT Client
 Connect.hpp
 GreengrassMqttClient.hppContains the MQTT Client class for AWS Greengrass devices
 NetworkRead.hpp
 Packet.hpp
 Publish.hppMQTT Publish and Puback Actions and Action data definitions for IoT Client
 Subscribe.hppMQTT Subscribe and Unsubscribe Actions and Action data definitions for IoT Client
  shadow
 Shadow.hppThis file defines a shadow type for AWS IoT Shadow operations
  util
  logging
 ConsoleLogSystem.hpp
 FormattedLogSystem.hpp
 Logging.hpp
 LogLevel.hpp
 LogMacros.hpp
 LogSystemInterface.hpp
  memory
  stl
 Map.hpp
 Queue.hpp
 String.hpp
 StringStream.hpp
 Vector.hpp
  threading
 ThreadTask.hpp
 Core_EXPORTS.hpp
 JsonParser.hpp
 Utf8String.hpp
 Action.hppAction Base class and related definitions for IoT Client
 ClientCore.hppContains the Client Core class
 ClientCoreState.hpp
 NetworkConnection.hppNetwork interface base class for IoT Client
 ResponseCode.hppStrongly typed enumeration of return values from functions within the SDK
  src
  discovery
 Discovery.cpp
 DiscoveryResponse.cpp
  jobs
 Jobs.cpp
  mqtt
 Client.cpp
 ClientState.cpp
 Common.cpp
 Connect.cpp
 NetworkRead.cpp
 Packet.cpp
 Publish.cppMQTT Publish and Puback Actions and Action data definitions for IoT Client
 Subscribe.cppMQTT Subscribe and Unsubscribe Actions and Action data definitions for IoT Client
  shadow
 Shadow.cpp
  util
  logging
 ConsoleLogSystem.cpp
 FormattedLogSystem.cpp
 Logging.cpp
 LogLevel.cpp
  threading
 ThreadTask.cpp
 JsonParser.cpp
 Utf8String.cpp
 Action.cppAction Base class and related definitions for IoT Client
 ClientCore.cpp
 ClientCoreState.cpp
 NetworkConnection.cppNetwork interface base class for IoT Client
 ResponseCode.cppResponse Code class with helper functions
+
+
+ + + + diff --git a/docs/html/folderclosed.png b/docs/html/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/docs/html/functions.html b/docs/html/functions.html new file mode 100644 index 0000000..615941f --- /dev/null +++ b/docs/html/functions.html @@ -0,0 +1,96 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- a -

+
+ + + + diff --git a/docs/html/functions_c.html b/docs/html/functions_c.html new file mode 100644 index 0000000..e032024 --- /dev/null +++ b/docs/html/functions_c.html @@ -0,0 +1,105 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- c -

+
+ + + + diff --git a/docs/html/functions_d.html b/docs/html/functions_d.html new file mode 100644 index 0000000..2f0e258 --- /dev/null +++ b/docs/html/functions_d.html @@ -0,0 +1,97 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- d -

+
+ + + + diff --git a/docs/html/functions_e.html b/docs/html/functions_e.html new file mode 100644 index 0000000..7bf57a2 --- /dev/null +++ b/docs/html/functions_e.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- e -

+
+ + + + diff --git a/docs/html/functions_f.html b/docs/html/functions_f.html new file mode 100644 index 0000000..30f1209 --- /dev/null +++ b/docs/html/functions_f.html @@ -0,0 +1,85 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- f -

+
+ + + + diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html new file mode 100644 index 0000000..b658069 --- /dev/null +++ b/docs/html/functions_func.html @@ -0,0 +1,85 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- a -

+
+ + + + diff --git a/docs/html/functions_func_c.html b/docs/html/functions_func_c.html new file mode 100644 index 0000000..d1f44f4 --- /dev/null +++ b/docs/html/functions_func_c.html @@ -0,0 +1,95 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- c -

+
+ + + + diff --git a/docs/html/functions_func_d.html b/docs/html/functions_func_d.html new file mode 100644 index 0000000..7aa2297 --- /dev/null +++ b/docs/html/functions_func_d.html @@ -0,0 +1,93 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- d -

+
+ + + + diff --git a/docs/html/functions_func_e.html b/docs/html/functions_func_e.html new file mode 100644 index 0000000..f2e56e0 --- /dev/null +++ b/docs/html/functions_func_e.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- e -

+
+ + + + diff --git a/docs/html/functions_func_f.html b/docs/html/functions_func_f.html new file mode 100644 index 0000000..b0a1155 --- /dev/null +++ b/docs/html/functions_func_f.html @@ -0,0 +1,84 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- f -

+
+ + + + diff --git a/docs/html/functions_func_g.html b/docs/html/functions_func_g.html new file mode 100644 index 0000000..d8e10da --- /dev/null +++ b/docs/html/functions_func_g.html @@ -0,0 +1,117 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- g -

+
+ + + + diff --git a/docs/html/functions_func_h.html b/docs/html/functions_func_h.html new file mode 100644 index 0000000..596d5bb --- /dev/null +++ b/docs/html/functions_func_h.html @@ -0,0 +1,90 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- h -

+
+ + + + diff --git a/docs/html/functions_func_i.html b/docs/html/functions_func_i.html new file mode 100644 index 0000000..6ec87b5 --- /dev/null +++ b/docs/html/functions_func_i.html @@ -0,0 +1,94 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- i -

+
+ + + + diff --git a/docs/html/functions_func_j.html b/docs/html/functions_func_j.html new file mode 100644 index 0000000..c487ae3 --- /dev/null +++ b/docs/html/functions_func_j.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- j -

+
+ + + + diff --git a/docs/html/functions_func_k.html b/docs/html/functions_func_k.html new file mode 100644 index 0000000..b447675 --- /dev/null +++ b/docs/html/functions_func_k.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- k -

+
+ + + + diff --git a/docs/html/functions_func_l.html b/docs/html/functions_func_l.html new file mode 100644 index 0000000..f52a0f5 --- /dev/null +++ b/docs/html/functions_func_l.html @@ -0,0 +1,85 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + + + + + diff --git a/docs/html/functions_func_m.html b/docs/html/functions_func_m.html new file mode 100644 index 0000000..ec78127 --- /dev/null +++ b/docs/html/functions_func_m.html @@ -0,0 +1,84 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- m -

+
+ + + + diff --git a/docs/html/functions_func_n.html b/docs/html/functions_func_n.html new file mode 100644 index 0000000..b0cb28c --- /dev/null +++ b/docs/html/functions_func_n.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- n -

+
+ + + + diff --git a/docs/html/functions_func_p.html b/docs/html/functions_func_p.html new file mode 100644 index 0000000..244c64d --- /dev/null +++ b/docs/html/functions_func_p.html @@ -0,0 +1,97 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + + + + + diff --git a/docs/html/functions_func_r.html b/docs/html/functions_func_r.html new file mode 100644 index 0000000..e7dc8e1 --- /dev/null +++ b/docs/html/functions_func_r.html @@ -0,0 +1,90 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- r -

+
+ + + + diff --git a/docs/html/functions_func_s.html b/docs/html/functions_func_s.html new file mode 100644 index 0000000..53739ea --- /dev/null +++ b/docs/html/functions_func_s.html @@ -0,0 +1,111 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- s -

+
+ + + + diff --git a/docs/html/functions_func_t.html b/docs/html/functions_func_t.html new file mode 100644 index 0000000..3b235e8 --- /dev/null +++ b/docs/html/functions_func_t.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + + + + + diff --git a/docs/html/functions_func_u.html b/docs/html/functions_func_u.html new file mode 100644 index 0000000..cd0eda0 --- /dev/null +++ b/docs/html/functions_func_u.html @@ -0,0 +1,88 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- u -

+
+ + + + diff --git a/docs/html/functions_func_w.html b/docs/html/functions_func_w.html new file mode 100644 index 0000000..d6771d6 --- /dev/null +++ b/docs/html/functions_func_w.html @@ -0,0 +1,88 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- w -

+
+ + + + diff --git a/docs/html/functions_func_~.html b/docs/html/functions_func_~.html new file mode 100644 index 0000000..ab7ef25 --- /dev/null +++ b/docs/html/functions_func_~.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- ~ -

+
+ + + + diff --git a/docs/html/functions_g.html b/docs/html/functions_g.html new file mode 100644 index 0000000..68b4f3f --- /dev/null +++ b/docs/html/functions_g.html @@ -0,0 +1,123 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- g -

+
+ + + + diff --git a/docs/html/functions_h.html b/docs/html/functions_h.html new file mode 100644 index 0000000..e3d1248 --- /dev/null +++ b/docs/html/functions_h.html @@ -0,0 +1,92 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- h -

+
+ + + + diff --git a/docs/html/functions_i.html b/docs/html/functions_i.html new file mode 100644 index 0000000..99041fe --- /dev/null +++ b/docs/html/functions_i.html @@ -0,0 +1,106 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- i -

+
+ + + + diff --git a/docs/html/functions_j.html b/docs/html/functions_j.html new file mode 100644 index 0000000..d0e1c3e --- /dev/null +++ b/docs/html/functions_j.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- j -

+
+ + + + diff --git a/docs/html/functions_k.html b/docs/html/functions_k.html new file mode 100644 index 0000000..6958454 --- /dev/null +++ b/docs/html/functions_k.html @@ -0,0 +1,84 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- k -

+
+ + + + diff --git a/docs/html/functions_l.html b/docs/html/functions_l.html new file mode 100644 index 0000000..9f902c2 --- /dev/null +++ b/docs/html/functions_l.html @@ -0,0 +1,85 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- l -

+
+ + + + diff --git a/docs/html/functions_m.html b/docs/html/functions_m.html new file mode 100644 index 0000000..cb52955 --- /dev/null +++ b/docs/html/functions_m.html @@ -0,0 +1,92 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- m -

+
+ + + + diff --git a/docs/html/functions_n.html b/docs/html/functions_n.html new file mode 100644 index 0000000..7570bba --- /dev/null +++ b/docs/html/functions_n.html @@ -0,0 +1,84 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- n -

+
+ + + + diff --git a/docs/html/functions_o.html b/docs/html/functions_o.html new file mode 100644 index 0000000..ff3f26c --- /dev/null +++ b/docs/html/functions_o.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- o -

+
+ + + + diff --git a/docs/html/functions_p.html b/docs/html/functions_p.html new file mode 100644 index 0000000..9bd51b3 --- /dev/null +++ b/docs/html/functions_p.html @@ -0,0 +1,123 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- p -

+
+ + + + diff --git a/docs/html/functions_q.html b/docs/html/functions_q.html new file mode 100644 index 0000000..ece61a3 --- /dev/null +++ b/docs/html/functions_q.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- q -

+
+ + + + diff --git a/docs/html/functions_r.html b/docs/html/functions_r.html new file mode 100644 index 0000000..9fa92ad --- /dev/null +++ b/docs/html/functions_r.html @@ -0,0 +1,101 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- r -

+
+ + + + diff --git a/docs/html/functions_s.html b/docs/html/functions_s.html new file mode 100644 index 0000000..3437d99 --- /dev/null +++ b/docs/html/functions_s.html @@ -0,0 +1,123 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- s -

+
+ + + + diff --git a/docs/html/functions_t.html b/docs/html/functions_t.html new file mode 100644 index 0000000..001b6ae --- /dev/null +++ b/docs/html/functions_t.html @@ -0,0 +1,86 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + + + + + diff --git a/docs/html/functions_type.html b/docs/html/functions_type.html new file mode 100644 index 0000000..91235ec --- /dev/null +++ b/docs/html/functions_type.html @@ -0,0 +1,87 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Typedefs + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+ + + + diff --git a/docs/html/functions_u.html b/docs/html/functions_u.html new file mode 100644 index 0000000..8d4ef57 --- /dev/null +++ b/docs/html/functions_u.html @@ -0,0 +1,88 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- u -

+
+ + + + diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html new file mode 100644 index 0000000..82d0a7a --- /dev/null +++ b/docs/html/functions_vars.html @@ -0,0 +1,250 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields - Variables + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- q -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- w -

+
+ + + + diff --git a/docs/html/functions_w.html b/docs/html/functions_w.html new file mode 100644 index 0000000..c703051 --- /dev/null +++ b/docs/html/functions_w.html @@ -0,0 +1,89 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- w -

+
+ + + + diff --git a/docs/html/functions_~.html b/docs/html/functions_~.html new file mode 100644 index 0000000..332b388 --- /dev/null +++ b/docs/html/functions_~.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- ~ -

+
+ + + + diff --git a/docs/html/globals.html b/docs/html/globals.html new file mode 100644 index 0000000..e907fa5 --- /dev/null +++ b/docs/html/globals.html @@ -0,0 +1,82 @@ + + + + + + + +AWS IoT C++ SDK: Globals + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+
+ + + + diff --git a/docs/html/globals_defs.html b/docs/html/globals_defs.html new file mode 100644 index 0000000..7d715b2 --- /dev/null +++ b/docs/html/globals_defs.html @@ -0,0 +1,82 @@ + + + + + + + +AWS IoT C++ SDK: Globals + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+ + + + diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html new file mode 100644 index 0000000..a1054ea --- /dev/null +++ b/docs/html/hierarchy.html @@ -0,0 +1,133 @@ + + + + + + + +AWS IoT C++ SDK: Class Hierarchy + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Cawsiotsdk::ActionAction Class
 Cawsiotsdk::discovery::DiscoverActionDefine a class for DiscoverAction
 Cawsiotsdk::mqtt::ConnectActionAsyncDefine a class for ConnectActionAsync
 Cawsiotsdk::mqtt::DisconnectActionAsyncDefine a class for DisconnectActionAsync
 Cawsiotsdk::mqtt::KeepaliveActionRunnerDefine a class for KeepaliveActionRunner
 Cawsiotsdk::mqtt::NetworkReadActionRunnerDefine a class for NetworkReadActionRunner
 Cawsiotsdk::mqtt::PubackActionAsyncDefine a class for PubackActionAsync
 Cawsiotsdk::mqtt::PublishActionAsyncDefine a class for PublishActionAsync
 Cawsiotsdk::mqtt::SubscribeActionAsyncDefine a class for SubscribeActionAsync
 Cawsiotsdk::mqtt::UnsubscribeActionAsyncDefine a class for UnsubscribeActionAsync
 Cawsiotsdk::ActionDataAction Data Class
 Cawsiotsdk::discovery::DiscoverRequestDataDiscover Request Packet Type
 Cawsiotsdk::mqtt::PacketDefine a base class for all MQTT Packet types
 Cawsiotsdk::mqtt::ConnectPacketConnect Packet Type
 Cawsiotsdk::mqtt::DisconnectPacketDisconnect Packet Type
 Cawsiotsdk::mqtt::PingreqPacket
 Cawsiotsdk::mqtt::PubackPacketDefine a class for Puback Packet type
 Cawsiotsdk::mqtt::PublishPacketPublish Message Packet Type
 Cawsiotsdk::mqtt::SubackPacketDefine a class for Suback Packet type
 Cawsiotsdk::mqtt::SubscribePacketDefine a class for Subscribe Packet type
 Cawsiotsdk::mqtt::UnsubackPacketDefine a class for Unsuback Packet type
 Cawsiotsdk::mqtt::UnsubscribePacketDefine a class for Unsubscribe Packet type
 Cawsiotsdk::ActionStateAction State Class
 Cawsiotsdk::ClientCoreStateClient Core State Class
 Cawsiotsdk::mqtt::ClientState
 Cawsiotsdk::ClientCoreClient Core Class
 Cawsiotsdk::ConfigCommon
 Cawsiotsdk::ConnectivityInfo
 Cawsiotsdk::DisconnectCallbackContextDataMQTT Disconnect Callback Context Data
 Cawsiotsdk::DiscoveryResponse
 Cawsiotsdk::Jobs
 Cawsiotsdk::util::JsonParser
 Cawsiotsdk::util::Logging::LogSystemInterface
 Cawsiotsdk::util::Logging::FormattedLogSystem
 Cawsiotsdk::util::Logging::ConsoleLogSystem
 Cawsiotsdk::MqttClientMQTT Client Class
 Cawsiotsdk::GreengrassMqttClientMQTT Client Class
 Cawsiotsdk::NetworkConnectionNetwork Connection Class
 Cawsiotsdk::mqtt::PacketFixedHeaderDefine a class for the MQTT Fixed header
 Cawsiotsdk::ClientCoreState::PendingAckDataPending Ack Data Class
 Cawsiotsdk::ReconnectCallbackContextDataMQTT Reconnect Callback Context Data
 Cawsiotsdk::ResubscribeCallbackContextDataMQTT Resubscribe Callback Context Data
 Cawsiotsdk::ShadowDefine a type for Shadow
 Cawsiotsdk::mqtt::SubscriptionMQTT Subscription Definition
 Cawsiotsdk::mqtt::SubscriptionHandlerContextDataMQTT Subscription Handler Context Data
 Cawsiotsdk::util::Threading::ThreadTask
 Cawsiotsdk::Utf8String
 Cawsiotsdk::mqtt::WillOptionsLast Will and Testament Definition
+
+
+ + + + diff --git a/docs/html/index.html b/docs/html/index.html new file mode 100644 index 0000000..9d10686 --- /dev/null +++ b/docs/html/index.html @@ -0,0 +1,297 @@ + + + + + + + +AWS IoT C++ SDK: New Version Available + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
New Version Available
+
+
+

A new AWS IoT Device SDK is now available. It is a complete rework, built to improve reliability, performance, and security. We invite your feedback!

+

This SDK will no longer receive feature updates, but will receive security updates.

+

+AWS IoT C++ Device SDK

+ +

+

+Overview

+

This document provides information about the AWS IoT device SDK for C++.

+

+

+Features

+

The Device SDK simplifies access to the Pub/Sub functionality of the AWS IoT broker via MQTT and provides APIs to interact with Thing Shadows. The SDK has been tested to work with the AWS IoT platform to ensure best interoperability of a device with the AWS IoT platform.

+

+MQTT Connection

+

The Device SDK provides functionality to create and maintain a MQTT Connection. It expects to be provided with a Network Connection class that connects and authenticates to AWS IoT using either direct TLS or WebSocket over TLS. This connection is used for any further publish operations. It also allows for subscribing to MQTT topics which will call a configurable callback function when these messages are received on these topics.

+

+Thing Shadow

+

This SDK implements the specific protocol for Thing Shadows to retrieve, update and delete Thing Shadows adhering to the protocol that is implemented to ensure correct versioning and support for client tokens. It abstracts the necessary MQTT topic subscriptions by automatically subscribing to and unsubscribing from the reserved topics as needed for each API call. Inbound state change requests are automatically signalled via a configurable callback.

+

+Jobs

+

This SDK also implements the Jobs protocol to interact with the AWS IoT Jobs service. The IoT Job service manages deployment of IoT fleet wide tasks such as device software/firmware deployments and updates, rotation of security certificates, device reboots, and custom device specific management tasks. For additional information please see the Jobs developer guide.

+

+

+Design Goals of this SDK

+

The C++ SDK was specifically designed for devices that are not resource constrained and required advanced features such as Message queueing, multi-threading support and the latest language features

+

Primary aspects are:

    +
  • Designed around the C++11 standard
  • +
  • Platform neutral, as long as the included CMake can find a C++11 compatible compiler and threading library
  • +
  • Network layer abstracted from the SDK. Can use any TLS library and initialization method
  • +
  • Support for multiple platforms and compilers. Tested on Linux, Windows (with VS2015) and Mac OS
  • +
  • Flexibility in picking and choosing functionality, can create Clients which only perform a subset of MQTT operations
  • +
  • Support for Rapidjson allowing use of complex shadow document structures
  • +
+

+

+Collection of Metrics

+

Beginning with Release v1.2.0 of the SDK, AWS collects usage metrics indicating which language and version of the SDK is being used. This allows us to prioritize our resources towards addressing issues faster in SDKs that see the most and is an important data point. However, we do understand that not all customers would want to report this data by default. In that case, the sending of usage metrics can be easily disabled by the user by using the overloaded Connect action which takes in a boolean for enabling or disabling the SDK metrics:

p_iot_client_->Connect(ConfigCommon::mqtt_command_timeout_, ConfigCommon::is_clean_session_,
+
mqtt::Version::MQTT_3_1_1, ConfigCommon::keep_alive_timeout_secs_,
+
std::move(client_id), nullptr, nullptr, nullptr, false); // false for disabling metrics
+

+

+How to get started ?

+

Ensure you understand the AWS IoT platform and create the necessary certificates and policies. For more information on the AWS IoT platform please visit the AWS IoT developer guide.

+

+

+Installation

+

This section explains the individual steps to retrieve the necessary files and be able to build your first application using the AWS IoT C++ SDK. The SDK uses CMake to generate the necessary Makefile. CMake version 3.2 and above is required.

+

Prerequisites:

+
    +
  • Make sure to have latest CMake installed. Minimum required version is 3.2
  • +
  • Compiler should support C++11 features. We have tested this SDK with gcc 5+, clang 3.8 and on Visual Studio 2015.
  • +
  • OpenSSL has version 1.1.0 and libssl-dev has version 1.1.0.
  • +
  • You can find basic information on how to set up the above on some popular platforms in Platform.md
  • +
+

Build Targets:

+
    +
  • The SDK itself builds as a library by default. All the samples/tests link to the library. The library target is aws-iot-sdk-cpp
  • +
  • Unit tests - aws-iot-unit-tests
  • +
  • Integration tests - aws-iot-integration-tests
  • +
  • Sample - pub-sub-sample
  • +
  • Sample - shadow-delta-sample
  • +
+

This following sample targets are generated only if OpenSSL is being used:

    +
  • Sample - discovery-sample.
  • +
  • Sample - robot-arm-sample.
  • +
  • Sample - switch-sample
  • +
+

Steps:

+
    +
  • Clone the SDK from the github repository
  • +
  • Change to the repository folder. Create a folder called build to hold the build files and change to this folder. In-source builds are NOT allowed
  • +
  • Run cmake ../. to build the SDK with the CLI.
  • +
  • The command will download required third party libraries automatically and generate a Makefile
  • +
  • Type make <target name> to build the desired target. It will create a folder called bin that will have the build output
  • +
+

+

+Porting to different platforms

+

The SDK has been written to adhere to C++11 standard without any additional compiler specific features enabled. It should compile on any platform that has a modern C++11 enabled compiler without issue. The platform should be able to provide a C++11 compatible threading implementation (eg. pthread on linux). TLS libraries can be added by simply implementing a derived class of NetworkConnection and providing an instance to the Client. We provide the following reference implementations for the Network layer:

+
    +
  • OpenSSL - MQTT over TLS using OpenSSL v1.1.0. Tested on Windows (VS 2015) and Linux
      +
    • The provided implementation requires OpenSSL to be pre-installed on the device
    • +
    • Use the mqtt port setting from the config file while setting up the network instance
    • +
    +
  • +
  • MbedTLS - MQTT over TLS using MbedTLS. Tested on Linux
      +
    • The provided implementation will download MbedTLS v2.3.0 from the github repo and build and link to the libraries. Please be warned that the default configuration of MbedTLS limits packet sizes to 16K
    • +
    • Use the mqtt port setting from the config file while setting up the network instance
    • +
    +
  • +
  • WebSocket - MQTT over WebSocket. Tested on both Windows (VS 2015) and Linux. Uses OpenSSL 1.1.0 as the underlying TLS layer
      +
    • The provided implementation requires OpenSSL to be pre-installed on the device
    • +
    • Please be aware that while the provided reference implementation allows initialization of credentials from any source, the recommended way to do so is to use the aws cli to generate credential files and read the generated files
    • +
    • Use the https port setting from the config file while setting up the network instance
    • +
    +
  • +
+

+Cross-compiling the SDK for other platforms

+

The included ToolchainFile.cmake file can be used to cross-compile the SDK for other platforms. Procedure for testing cross compiling (if using OpenSSL):

+
    +
  1. build/download toolchain for specific platform
  2. +
  3. modify the ToolchainFile.cmake with location and target of toolchain.
    # specify toolchain directory
    +
    SET(TOOLCHAIN_DIR /home/toolchain/dir/here/bin)
    +
    +
    # specify cross compilation target
    +
    SET(TARGET_CROSS target-here)`
    +
  4. +
  5. Cross-compile OpenSSL using the same toolchain
  6. +
  7. modify network/CMakeLists.txt.in and change OpenSSL library location to cross-compiled OpenSSL
  8. +
+

5.

cd build
+
cmake ../. -DCMAKE_TOOLCHAIN_FILE=../ToolchainFile.cmake
+
make
+
    +
  1. Scp the application binary, certs and config for the application into the platform you're testing
  2. +
  3. Run ./<application>
  4. +
+

For MbedTLS, you don't need to cross-compile MbedTLS as it gets compiled when you run make with the same compiler as pointed to by the toolchain file.

+

Also included is a simple example 'toolchain' which is used for setting the default compiler as clang++ instead of g++ as an example to show how the toolchain file can be modified.

+

+

+Quick Links

+
    +
  • SDK Documentation - API documentation for the SDK
  • +
  • Platform Guide - This file lists the steps needed to set up the pre-requisites on some popular platforms
  • +
  • Developers Guide - Provides a guide on how the SDK can be included in custom code
  • +
  • Greengrass Discovery Support Guide - Provides information on support for AWS Greengrass Discovery Service
  • +
  • Network Layer Implementation Guide - Detailed description about the Network Layer and how to implement a custom wrapper class
  • +
  • Sample Guide - Details about the included samples
  • +
  • Test Information - Details about the included unit and integration tests
  • +
  • MQTT 3.1.1 Spec - Link to the MQTT v3.1.1 spec that this SDK implements
  • +
+

+

+Sample APIs

+

+Sync

+

Creating a basic MQTT Client requires a NetworkConnection instance and MQTT Command timeout in milliseconds for any internal blocking operations.

+
std::shared_ptr<NetworkConnection> p_network_connection = <Create Instance>;
+
std::shared_ptr<MqttClient> p_client = MqttClient::Create(p_network_connection, std::chrono::milliseconds(30000));
+

Connecting to the AWS IoT MQTT platform

+
rc = p_client->Connect(std::chrono::milliseconds(30000), false, mqtt::Version::MQTT_3_1_1, std::chrono::seconds(60), Utf8String::Create("<client_id>"), nullptr, nullptr, nullptr);
+

Subscribe to a topic

+
util::String p_topic_name_str = <topic>;
+
std::unique_ptr<Utf8String> p_topic_name = Utf8String::Create(p_topic_name_str);
+
mqtt::Subscription::ApplicationCallbackHandlerPtr p_sub_handler = std::bind(&<handler>, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
+
std::shared_ptr<mqtt::Subscription> p_subscription = mqtt::Subscription::Create(std::move(p_topic_name), mqtt::QoS::QOS0, p_sub_handler, nullptr);
+
util::Vector<std::shared_ptr<mqtt::Subscription>> topic_vector;
+
topic_vector.push_back(p_subscription);
+
rc = p_client->Subscribe(topic_vector, std::chrono::milliseconds(30000));
+

Publish to a topic

util::String p_topic_name_str = <topic>;
+
std::unique_ptr<Utf8String> p_topic_name = Utf8String::Create(p_topic_name_str);
+
rc = p_client->Publish(std::move(p_topic_name), false, false, mqtt::QoS::QOS1, payload, std::chrono::milliseconds(30000));
+

Unsubscribe from a topic

+
util::String p_topic_name_str = <topic>;
+
std::unique_ptr<Utf8String> p_topic_name = Utf8String::Create(p_topic_name_str);
+
util::Vector<std::unique_ptr<Utf8String>> topic_vector;
+
topic_vector.push_back(std::move(p_topic_name));
+
rc = p_client->Subscribe(topic_vector, std::chrono::milliseconds(30000));
+

+Async

+

Connect is a sync only API in this version of the SDK. Subscribe to a topic

+
uint16_t packet_id_out;
+
util::String p_topic_name_str = <topic>;
+
std::unique_ptr<Utf8String> p_topic_name = Utf8String::Create(p_topic_name_str);
+
mqtt::Subscription::ApplicationCallbackHandlerPtr p_sub_handler = std::bind(&<handler>, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
+
std::shared_ptr<mqtt::Subscription> p_subscription = mqtt::Subscription::Create(std::move(p_topic_name), mqtt::QoS::QOS0, p_sub_handler, nullptr);
+
util::Vector<std::shared_ptr<mqtt::Subscription>> topic_vector;
+
topic_vector.push_back(p_subscription);
+
rc = p_client->SubscribeAsync(topic_vector, nullptr, packet_id_out);
+

Publish to a topic

uint16_t packet_id_out;
+
util::String p_topic_name_str = <topic>;
+
std::unique_ptr<Utf8String> p_topic_name = Utf8String::Create(p_topic_name_str);
+
rc = p_client->PublishAsync(std::move(p_topic_name), false, false, mqtt::QoS::QOS1, payload, packet_id_out);
+

Unsubscribe from a topic

+
uint16_t packet_id_out;
+
util::String p_topic_name_str = <topic>;
+
std::unique_ptr<Utf8String> p_topic_name = Utf8String::Create(p_topic_name_str);
+
util::Vector<std::unique_ptr<Utf8String>> topic_vector;
+
topic_vector.push_back(std::move(p_topic_name));
+
rc = p_client->Subscribe(topic_vector, packet_id_out);
+

+Logging

+

To enable logging, create an instance of the ConsoleLogSystem in the main() of your application as shown below:

+
std::shared_ptr<awsiotsdk::util::Logging::ConsoleLogSystem> p_log_system =
+
std::make_shared<awsiotsdk::util::Logging::ConsoleLogSystem>(awsiotsdk::util::Logging::LogLevel::Info);
+
awsiotsdk::util::Logging::InitializeAWSLogging(p_log_system);
+

Create a log tag for your application to distinguish it from the SDK logs:

#define LOG_TAG_APPLICATION "[Application]"
+

You can now add logging to any part of your application using AWS_LOG_ERROR or AWS_LOG_INFO as shown below:

+
AWS_LOG_ERROR(LOG_TAG_APPLICATION, "Failed to perform action. %s",
+
ResponseHelper::ToString(rc).c_str());
+

+

+License

+

This SDK is distributed under the Apache License, Version 2.0, see LICENSE and NOTICE.txt for more information.

+

+

+Support

+

If you have any technical questions about AWS IoT C++ SDK, use the AWS IoT forum. For any other questions on AWS IoT, contact AWS Support.

+

A list of known issues is maintained in KnownIssues.md.

+

Note: customers have reported deadlocks while using the AWS IoT Device SDK for C++. If you are affected, a fix is available in the locking-fixes branch. This issue is also resolved in the new AWS IoT Device SDK for C++, which is currently in Developer Preview.

+
+
+ + + + diff --git a/docs/html/jquery.js b/docs/html/jquery.js new file mode 100644 index 0000000..1dffb65 --- /dev/null +++ b/docs/html/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/html/md__c_o_d_e__o_f__c_o_n_d_u_c_t.html b/docs/html/md__c_o_d_e__o_f__c_o_n_d_u_c_t.html new file mode 100644 index 0000000..66bd83a --- /dev/null +++ b/docs/html/md__c_o_d_e__o_f__c_o_n_d_u_c_t.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Code of Conduct + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Code of Conduct
+
+
+

This project has adopted the Amazon Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opens.nosp@m.ourc.nosp@m.e-cod.nosp@m.eofc.nosp@m.onduc.nosp@m.t@am.nosp@m.azon..nosp@m.com with any additional questions or comments.

+
+
+ + + + diff --git a/docs/html/md__c_o_n_t_r_i_b_u_t_i_n_g.html b/docs/html/md__c_o_n_t_r_i_b_u_t_i_n_g.html new file mode 100644 index 0000000..45e9b2e --- /dev/null +++ b/docs/html/md__c_o_n_t_r_i_b_u_t_i_n_g.html @@ -0,0 +1,125 @@ + + + + + + + +AWS IoT C++ SDK: Contributing Guidelines + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Contributing Guidelines
+
+
+

Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional documentation, we greatly value feedback and contributions from our community.

+

Please read through this document before submitting any issues or pull requests to ensure we have all the necessary information to effectively respond to your bug report or contribution.

+

+Reporting Bugs/Feature Requests

+

We welcome you to use the GitHub issue tracker to report bugs or suggest features.

+

When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:

+
    +
  • A reproducible test case or series of steps
  • +
  • The version of our code being used
  • +
  • Any modifications you've made relevant to the bug
  • +
  • Anything unusual about your environment or deployment
  • +
+

+Contributing via Pull Requests

+

Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:

+
    +
  1. You are working against the latest source on the master branch.
  2. +
  3. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
  4. +
  5. You open an issue to discuss any significant work - we would hate for your time to be wasted.
  6. +
+

To send us a pull request, please:

+
    +
  1. Fork the repository.
  2. +
  3. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change.
  4. +
  5. Ensure local tests pass.
  6. +
  7. Commit to your fork using clear commit messages.
  8. +
  9. Send us a pull request, answering any default questions in the pull request interface.
  10. +
  11. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.
  12. +
+

GitHub provides additional document on forking a repository and creating a pull request.

+

+Finding contributions to work on

+

Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels ((enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start.

+

+Code of Conduct

+

This project has adopted the Amazon Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opens.nosp@m.ourc.nosp@m.e-cod.nosp@m.eofc.nosp@m.onduc.nosp@m.t@am.nosp@m.azon..nosp@m.com with any additional questions or comments.

+

+Security issue notifications

+

If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our vulnerability reporting page. Please do not create a public github issue.

+

+Licensing

+

See the LICENSE file for our project's licensing. We will ask you to confirm the licensing of your contribution.

+

We may ask you to sign a Contributor License Agreement (CLA) for larger changes.

+
+
+ + + + diff --git a/docs/html/md__changelog.html b/docs/html/md__changelog.html new file mode 100644 index 0000000..54b368e --- /dev/null +++ b/docs/html/md__changelog.html @@ -0,0 +1,226 @@ + + + + + + + +AWS IoT C++ SDK: Change Log + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Change Log
+
+
+

+<a href="https://github.com/aws/aws-iot-device-sdk-cpp/releases/tag/v1.4.0" >1.4.0</a> (May 10, 2018)

+

Features:

    +
  • #95 - Jobs support with custom auth
  • +
  • ALPN support
  • +
+

Bugfixes/Improvements:

    +
  • Fixed Issues:
      +
    • #60 - Ignore sigpipe to prevent program termination
    • +
    • #93 - Set auto-reconnect to false when resubscribe fails
    • +
    • #86 - Make shadow handler call response handler for error cases
    • +
    • #87 - Failing WSS handshake for session token
    • +
    • Updated shadow documentation on shadow client token limitation
    • +
    • Fix wildcard regex for special topics with $ symbols
    • +
    +
  • +
  • Included pull requests:
      +
    • #63 - Update LogMacros.hpp
    • +
    • #67 - Fixed invalid read inside mqtt/Client
    • +
    • #70 - Add some minor improvements
    • +
    • #73 - Allow Position Independent Code for static library
    • +
    • #75, #76 and #77 - Pull requests to fix warnings on windows
    • +
    • #83 - Adding standard files
    • +
    • #88 - URL encode session token when building the canonical error string
    • +
    • #92 - Add the currently missing error checks when creating an MbedTLSconnection with ALPN support enabled
    • +
    +
  • +
+

+<a href="https://github.com/aws/aws-iot-device-sdk-cpp/releases/tag/v1.3.0" >1.3.0</a> (Nov 22, 2017)

+

Features:

    +
  • #21 - add reconnect and resubscribe callback
  • +
+

Bugfixes/Improvements:

    +
  • Fixed Issues:
      +
    • #5 - openssl wrapper gets stuck if client is started before network is ready
    • +
    • #44 - SDK fails to build with OpenSSL 1.1.0
    • +
    • #46 - MAX_RW_BUF_LEN not large enough for WebSocketConnection::WssHandshake
    • +
    • #47 - Fix memory leak in OpenSSL when connect fails
    • +
    • #52 - Fix for shadow crash when server document does not have all keys required
    • +
    • #54 - Fix for comparison always being false due to limited range of data type
    • +
    • Removed redundant comments
    • +
    • Set correct packet ID for resubscribe packets in keepalive
    • +
    • updated default keepalive to 600 seconds
    • +
    • updated SDK metrics string
    • +
    +
  • +
  • Included pull requests:
      +
    • #6 - Add res_init() call to update resolv.conf in glibc
    • +
    • #19 - use version independent TLS method as TLSv1_2_method is deprecated
    • +
    • #27 - update include
    • +
    • #39 - Implement static Shadow method GetEmptyShadowDocument
    • +
    • #40 - Do not add std::chrono::milliseconds to std::chrono::time_point
    • +
    • #43 - Fill in context data for disconnect callback
    • +
    • #45 - Allow SDK to work with OpenSSL 1.1.0
    • +
    • #53 - Remove extra semicolons as they appear as warnings in clang -wpedantic
    • +
    +
  • +
+

+<a href="https://github.com/aws/aws-iot-device-sdk-cpp/releases/tag/v1.2.0" >1.2.0</a> (September 26th, 2017)

+

Features:

    +
  • Added a cross-compile toolchain template and instructions on how to cross compile the SDK
  • +
+

Bugfixes/Improvements:

    +
  • Fixed Issues:
      +
    • #16 - alloc-dealloc-mismatch
    • +
    • Fixed OpenSSL memory leak and ensured the socket is closed correctly
    • +
    • Fixed disconnect log loop in keepalive
    • +
    +
  • +
  • Included pull requests:
      +
    • #15 - Add sanitizers
    • +
    • #37 - Fix compilation error with unused variables
    • +
    +
  • +
  • Improvements:
      +
    • Added line numbers and function names to all logs
    • +
    • Added unit tests for ConfigCommon and ResponseCode
    • +
    • Added SDK version string into username field
    • +
    +
  • +
+

+<a href="https://github.com/aws/aws-iot-device-sdk-cpp/releases/tag/v1.1.1" >1.1.1</a> (July 13th, 2017)

+

Features:

    +
  • N/A
  • +
+

Bugfixes/Improvements:

    +
  • Fixed issues:
      +
    • #10 - Fix just-in-time-registration of device certs when using OpenSSL
    • +
    • #12 - Stop receiving duplicate messages when using QoS 1
    • +
    • #17 - Disconnect callback should be called even when auto-reconnect is disabled
    • +
    • #18 - Clear subscriptions on disconnect
    • +
    • #20 - Resubscribe to previously subscribed topic should not cause crash
    • +
    • #23 - Fix memory leaks
    • +
    +
  • +
  • Included pull requests:
      +
    • #24 - Fix cyclic refences
    • +
    • #26 - Fix subscription API documentaion
    • +
    +
  • +
+

+<a href="https://github.com/aws/aws-iot-device-sdk-cpp/releases/tag/v1.1.0" >1.1.0</a> (May 8th, 2017)

+

Features:

    +
  • Support for Greengrass discovery
      +
    • GreengrassClient that inherits from Client
    • +
    • Greengrass Response parser
    • +
    • Updates to support shadow operations with Greengrass Cores
    • +
    • additional samples for discovery
    • +
    +
  • +
  • Updated unit tests and integration tests
  • +
  • Added support for wildcard subscriptions
  • +
+

Bugfixes/Improvements:

    +
  • Fixed issues #4 and #7
  • +
  • Updated makefiles with #3 and #8
  • +
  • Added install target
  • +
  • Fixed bug where single character subscriptions causes client to crash
  • +
  • Split up ports being used for WebSockets, MQTT and Greengrass discovery into separate fields in the config file
  • +
  • Cleanup of formatting
  • +
  • Helper class to convert response codes to strings to enable easier debugging
  • +
  • OpenSSL wrapper updates
  • +
  • Updated Platform.md
  • +
+

+<a href="https://github.com/aws/aws-iot-device-sdk-cpp/releases/tag/v1.0.0" >1.0.0</a> (October 27, 2016)

+

Features:

    +
  • Initial release
  • +
  • MQTT Publish and Subscribe
  • +
  • Basic Async Shadow support
  • +
  • TLS mutual auth on linux with OpenSSL
  • +
  • TLS mutual auth on linux with MbedTLS
  • +
  • MQTT over Websockets with OpenSSL as TLS layer
  • +
  • Unit Tests
  • +
  • Integration Tests
  • +
  • Tested platforms - Linux, Windows (VS 2015) and Mac OS
  • +
+

Bugfixes/Improvements:

    +
  • N/A
  • +
+
+
+ + + + diff --git a/docs/html/md__dev_guide.html b/docs/html/md__dev_guide.html new file mode 100644 index 0000000..f461663 --- /dev/null +++ b/docs/html/md__dev_guide.html @@ -0,0 +1,246 @@ + + + + + + + +AWS IoT C++ SDK: Development Guide + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Development Guide
+
+
+
+

+

+Overview

+

This document provides information about how the Device SDK can be used in custom code

+

+

+How to get started ?

+

As mentioned in the Readme, ensure you understand the AWS IoT platform and create the necessary certificates and policies. For more information on the AWS IoT platform please visit the AWS IoT developer guide.

+

+

+Basic Usage Guidelines

+

The simplest way to use the SDK is to use it as is with the provided MQTT Client. This can be accomplished by following the below steps:

    +
  • Build the SDK as a library, the provided samples show how this can be done using CMake
  • +
  • Include the SDK code as is in the client application. The SDK can be built along with the client code
  • +
+

To get basic MQTT support, only the mqtt/Client.hpp file needs to be included in the client application. This contains a fully featured MQTT Client. The client expects to be provided with a Network Connection instance. Further details on this are below Depending on the client application, other files such as Utf8String.hpp, JsonParser.hpp and ResponseCode.hpp might also need to be included.

+

For Shadow support, the shadow/Shadow.hpp file needs to be included in the client application.

+

+

+How to create a Network Connection

+

The SDK itself does NOT contain any Network Connection classes. It provides a base class from which concrete implementations can be derived. The SDK expects that the client will be created and provided with one of these instances. The only Network functions that the SDK will call directly are below:

    +
  • Connect
  • +
  • Disconnect
  • +
  • Read
  • +
  • Write
  • +
  • IsConnected
  • +
  • IsPhysicalLayerConnected
  • +
+

The SDK will never create or destroy a Network Instance or perform any other operation aside from the ones mentioned above. The Network Connection base class provides a common interface for the above APIs. The SDK itself is designed to be thread safe but since there is no guarantee that the Network Instance provided is also thread safe, this class also provides thread safety for Network Operations.

+

An additional feature of the SDK is the ability for all actions to do partial Network Read and Writes. The Code for this is located in src/Action.cpp.

+

As mentioned in the README.md file, The SDK itself provides the below reference implementations for Network Connection:

    +
  • MQTT over TLS using OpenSSL 1.1.0
  • +
  • MQTT over TLS using MbedTLS
  • +
  • MQTT over WebSocket using OpenSSL 1.1.0 as the underlying TLS layer
  • +
+

Details on how a custom network connection class can be created are available in the Network Connection README.md

+

+

+How to use the MQTT Client

+

The provided Basic MQTT client supports the full range of MQTT operations. An instance for this client can be created by using either the provided factory method or directly using the constructor. The factory method creates and returns a unique_ptr to an instance of the MQTT Client. There is no restrictions on how many clients an application can create as long as each client is provided with its own Network Connection instance.

+

The client creates three threads when it is instantiated:

    +
  • Outbound Processing Queue Runner - Created to process queued outbound MQTT actions such as publish/subscribe etc.
  • +
  • Network Read Runner - Created to read incoming data from the Network connection and parse it. Also invokes ack and subscribe callbacks.
  • +
  • Keep Alive Runner - Runs the MQTT Keep Alive logic. Responsible for sending out Ping requests and for reconnecting when required.
  • +
+

Once the MQTT Client is instantiated, the Network Connection instance cannot be changed. The client will operate with the same Network Instance until it goes out of scope. The Network Connection instance should not be freed after being passed to the Client. The only values in this version which can be changed after the Client is instantiated are related to AutoReconnect. For further information, refer to the API documentation. Most API related settings are configured dynamically when the API is called. For example, each Sync API call requires an operation timeout to be provided. Similarly, each Sync API call both takes in a Notification handler as well as provides an Action ID as an out parameter to inform the Client application to differentiate between Acks.

+

To use the MQTT Client, follow the below steps:

    +
  • Include the mqtt/Client.hpp header file in the application code
  • +
  • Create an instance of MQTT Client
  • +
  • Call the Connect API to start
  • +
  • Perform MQTT operations
  • +
+

To update the MQTT Client's Auto-reconnect configuration:

    +
  • Update the default reconnect backoff timer values using the relevant APIs
  • +
  • The auto-reconnect flow can be completely disabled using SetAutoReconnectEnabled API
  • +
  • The minimum and maximum backoff timer values can be set using SetMinReconnectBackoffTimeout and SetMaxReconnectBackoffTimeout APIs
  • +
  • The default Min value is 1 second and Max value is 128 seconds
  • +
  • You can set callbacks for disconnect, reconnect and resubscribe. Please note that these callbacks have to be non-blocking.
  • +
+

+

+How to use Shadows

+

The provided Shadow implementation can be used to perform Shadow operations over MQTT. It requires an active MQTT connection instance to be provided when the Shadow instance is created. It is possible to create multiple shadow instances. The shadow instance that is created does not automatically subscribe to any of the shadow action topics by default. It is required to subscribe to the topics manually by using the AddShadowSubscription API.

+

If an action is performed before the required subscriptions have been made, they will be created before performing the action. All subscriptions created are persistent for the lifetime of the Shadow instance. There's is not option in the shadow itself to unsubscribe from specific shadow action topics. The destructor of the shadow instance will unsubscribe to all currently subscribed topics when the instance goes out of scope.

+

To use the Shadow APIs, follow the below steps:

    +
  • Create a MQTT Client by using the steps in the above section on How to use MQTT Client
  • +
  • Create an instance of the Shadow Class using the MQTT client created in the previous step
  • +
  • At this point, the shadow is ready for performing shadow actions:
      +
    • Call the PerformGet API to get the current state of the shadow from the server. This will update the server shadow state document for this instance
    • +
    • To Update the device shadow state, call UpdateDeviceShadow API. This updates the device side shadow document
        +
      • The JSON document used for this API call MUST have the same structure as the shadow JSON
      • +
      • The suggested way is to either use the GetShadowDocument APIs to get the current shadow document or use the Get Empty Shadow document API to get an empty document. This document should be updated with new values and passed to the API
      • +
      • The update API will merge the provided JSON to the current state of the device shadow
      • +
      +
    • +
    • Shadow state on the server can be updated by calling the PerformUpdate API. This generates a diff between the current device and server state shadow documents and calls the shadow update API using this diff
    • +
    • The shadow json can be deleted by calling the PerformDelete API
    • +
    +
  • +
+

For further information about the various APIs please read the Shadow API documentation.

+

+

+Shadow Limitations

+
    +
  • MQTT Client: Currently, there is only one MQTT Client implementation provided. It is not possible to use Client Core directly with the current version of Shadow.
  • +
  • Number of Shadows per MQTT Connection: Each shadow instance can create up to a maximum of 7 subscriptions. This number will only go higher as more features are added.Since the current maximum number of allowed subscriptions per MQTT connection is 50, currently, no more than 7 shadows should be added per connection. However, i
  • +
  • Automatic Sync: In the current version of the SDK, there is no Action that automatically syncs device shadow state with the server. A manual update operation is required to perform a sync with the server.
  • +
  • Json Parsing limitations: Please read the Json Parsing section below.
  • +
+

+

+Json Parsing Support

+

The SDK uses RapidJson to provide Json parsing support. It provides a very thin layer on top of RapidJson to provide scope for future enhancements but the entire library is available for use and can be included in client applications as necessary. A tutorial for using RapidJson is available here.

+

Please note that while RapidJson supports nested Json parsing and the SDK itself also supports it, operations such as merge and diff are very expensive. The server supports a nested Json depth of up to 5. But the SDK uses recursion to perform nested Json operations which might cause issues on devices with limited resources. The recommended approach is to keep the Json depth as low as possible. Code for the merge and diff operations can be seen in here.

+

+

+Logging

+

The ConsoleLogSystem class is used to provide logging capabilities. To enable logging in your application, using the PubSub sample as an example:

+

+

+Advanced Usage Guidelines

+

The SDK can also be used to create custom clients for different use cases. The SDK is structured around a Core Client and Actions that are executed by this client. The provided MQTT Client referenced above, is simply one implementation that uses all the supported Actions. Custom Clients can be created using only some of the Actions which perform only a subset of MQTT functionality. The following actions are provided in the current implementation of the SDK:

    +
  • ConnectActionAsync - Provides support for MQTT Connect operation. Also calls Network layer Connect. This action is also used for Reconnect operations.
  • +
  • DisconnectActionAsync - Provides support for MQTT Disconnect operation. Also calls Network layer Disconnect.
  • +
  • KeepaliveActionRunner - Provides support for the MQTT Keepalive workflow. Responsible for sending out ping requests and performing Reconnect if required. This action can be run in a thread or as a one time operation with the thread sync boolean variable set to false.
  • +
  • NetworkReadActionRunner - Provides Network read functionality for the SDK. All Read operations are performed in this Action including waiting on Acks for sync operations. Similar to Keepalive, this action can also be run in a thread or as a one time operation with the thread sync boolean variable set to false.
  • +
  • PublishActionAsync - Provides support for MQTT Publish operations.
  • +
  • PubackActionAsync - Provides support for the MQTT Puback operation. Called by the SDK to reply with PUBACK to any received QOS1 messages.
  • +
  • SubscribeActionAsync - Provides support for MQTT Subscribe operations. Maximum number of supported subscribe topics per message is 8. Only one handler can be provided for each subscription.
  • +
  • UnsubscribeActionAsync - Provides support for MQTT Unsubscribe operations. Maximum number of supported unsubscribe topics per message is 8.
  • +
+

The Action instances are created at run time by Client Core whenever the Action is registered. The ClientCore class does not do this automatically. Different combinations of registered actions allow for different clients depending on use case. For example, a custom Publish only Client can be created by only registering the Connect, Disconnect, KeepAlive, Network Read, Publish and Puback Actions.

+

Please note that the provided Shadow implementation uses the full MQTT Client instead of using ClientCore directly. If Shadow features are required, there is no way to avoid using the reference client in this version of the SDK.

+

+

+How to use Client Core

+

ClientCore forms the basis of all Clients created using the SDK. It is responsible for executing Actions either one at a time or by creating threads for each action. To create a custom Client follow the steps listed below:

    +
  • Create an instance of ClientCoreState
  • +
  • Create the ClientCore instance, the constructor expects a shared pointer to the above State instance as argument
      +
    • The constructor for the ClientCore instance will create a thread for processing Outbound Actions. This thread takes any Async actions that have been queued up and processes them one by one
    • +
    • All actions use a default value of sleep time if they are required to call sleep as a part of their execution. This is defined as a constant here. It may be necessary to tweak this value depending on the use case
    • +
    • The Action processing rate is currently a constant defined here
    • +
    • The Maximum size of the queue can be modified in the ClientState instance using the SetMaxActionQueueSize API defined here. The Default value is a constant defined here
    • +
    +
  • +
  • Register actions to the ClientCore instance using the RegisterAction API defined here
      +
    • This creates an instance of the Action that will be used for all subsequent calls to PerformAction with this ActionType. Only ONE instance of this Action will be created if it is not required to run in a separate thread
    • +
    • Custom Actions can be created by creating a derived class of the Action class
    • +
    • Each Custom Action is required to define a Create Factory method that can be used by ClientCore to create an instance of the action
    • +
    • Each Custom Action requires an Action Type to be added to the ActionType class
    • +
    • ClientCore will pass the ClientCoreState Instance provided to it when it was instantiated. Additional Action specific values can be added to the state by creating a derived class of ClientCoreState
    • +
    +
  • +
  • After registration, any Actions that need to be run as their own threads can be started by calling the CreateActionRunner API
      +
    • This will create a ThreadTask instance that is used to run the Action
    • +
    • It then proceeds to create a new instance of the Action Type which was requested and assign it to the above ThreadTask
    • +
    • All threads created in the above manner are cleared out when either the PerformAction function returns or the ClientCore instance goes out of scope
    • +
    +
  • +
  • To Perform a registered Action, the PerformAction and PerformActionAsync APIs can be used depending on desired behavior
      +
    • Only one Sync/Blocking action can be performed at a time in the current version of the SDK
    • +
    +
  • +
  • When the ClientCore instance goes out of scope, the destructor automatically stops all running threads and frees any memory associated with those threads
  • +
+
+
+ + + + diff --git a/docs/html/md__greengrass_discovery.html b/docs/html/md__greengrass_discovery.html new file mode 100644 index 0000000..138c45c --- /dev/null +++ b/docs/html/md__greengrass_discovery.html @@ -0,0 +1,317 @@ + + + + + + + +AWS IoT C++ SDK: AWS Greengrass Discovery Support + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
AWS Greengrass Discovery Support
+
+
+

+Overview

+

AWS Greengrass is software that lets you run local compute, messaging & data caching for connected devices in a secure way. For further information, please see AWS Greengrass documentation here.

+

+What is the AWS Greengrass Discovery service?

+

The AWS Greengrass Discovery service is a new service that allows AWS IoT Devices to "Discover" which Greengrass Groups they are a part of. It also provides information about which Greengrass Cores (GGCs) exist in those groups and what is the "connectivity information" for each of the "Discovered" GGCs. More information about the discovery service can be found in the server side documentation located here.

+

+Does any existing code for AWS IoT need to change to work with Greengrass?

+

Any existing code that already works with AWS IoT will not need to change to work with Greengrass. Once the endpoint is changed to a properly configured Greengrass Core, the device should continue to operate normally. However, for Greengrass Discovery support, additional code will be required. Once a Greengrass group has been set up, the existing IoT Thing needs to be included in the group. It also needs to be updated with a version of the AWS IoT device SDK that support Greengrass Discovery. The only code changes that are required, are to call the new Discovery API that gets information about the Group this device is in. This API calls the discovery service and retrieves Connection Information for GGCs.

+

+Discovery Request

+

The Discovery request itself is a HTTPS GET request to the same endpoint you currently use to connect to the AWS IoT cloud.

+

The request is of the following form:

GET /greengrass/discover/thing/<thing name>
+

+Discovery Response format and description

+

The discovery service sends out a response in the form of a json payload. The contents of the payload are determined by the groups this device is in. The json payload has the following basic structure:

+
{
+
"GGGroups": [
+
{
+
"GGGroupId": "<Your GG Group ID>",
+
"Cores": [
+
{
+
"thingArn": "<Thing ARN for the GGC>",
+
"Connectivity": [
+
{
+
"Id": "<id>",
+
"HostAddress": "<endpoint>",
+
"PortNumber": <port>,
+
"Metadata": "<Some Description>"
+
}
+
]
+
}
+
],
+
"CAs": [
+
"-----BEGIN CERTIFICATE-----\\\\nsLongStringHere\\\\n-----END CERTIFICATE-----\\\\n"
+
]
+
}
+
]
+
}
+

The response consists of:

    +
  • the groups that this device belongs to (GGGroups)
      +
    • the ID of the group (GGGroupId)
    • +
    • the GGCs present in each of the groups (Cores)
        +
      • the Amazon Resource Number (ARN) of each core (thingArn)
      • +
      • connectivity information for the endpoints available for each core (Connectivity)
          +
        • Id - the id of the connectivity info
        • +
        • HostAddress - the host address of the GGC
        • +
        • PortNumber - the port number to which it can connect to
        • +
        • Metadata - this is a generic string for customer use
        • +
        +
      • +
      +
    • +
    • The list of CA certs belonging to each group (CAs)
    • +
    +
  • +
+

Additional samples are provided in the Appendix section.

+

+Does the SDK provide APIs for parsing this response?

+

Yes it does. In addition, we also provide an API for extracting the raw Json response.

+

+How is this implemented in the C++ Device SDK?

+

The C++ Device SDK is based around the concept of Actions. A new Discover Action has been added to support the new Discovery service and can be called like any other action. The client has to be an instance of GreengrassMqttClient. The parameters passed to it are the timeout value for the action, the thing name of the device for which you want to perform discovery and the json document which receives the discovery response json. To perform discovery, the network instance being used has to be setup using the Greengrass discovery port setting from the config file.

+
rc = p_iot_client_->Discover(std::chrono::milliseconds(ConfigCommon::discover_action_timeout_), std::move(p_thing_name), discovery_response);
+

The discovery_response variable will be of Type DiscoveryResponse. This is a new class that provides the basic functionality needed to retrieve both the raw json file as well as a parsed response. The ResponseCodes indicate the status of the request.

+

+Discovery Response class

+

The DiscoveryResponse class is used as the return type for Discovery Action response data. It contains the raw json that was received from the Discovery service as a JsonDocument instance. It also provides APIs to either retrieve the raw json document directly, or to retrieve a flattened version of the response that allows easier ordering of the data. The definition for this class is located here. The main APIs for this class are:

util::JsonDocument DiscoveryResponse::GetResponseDocument();
+
util::JsonDocument DiscoveryResponse::SetResponseDocument(util::JsonDocument response_document);
+
ResponseCode GetParsedResponse(util::Vector<ConnectivityInfo> &connectivity_info_list, util::Map<util::String, util::Vector<util::String>> &root_ca_map);
+
ResponseCode WriteToPath(util::String output_file_absolute_path);
+

+GetParsedResponse API

+

The GetParsedResponse API returns a Vector containing a flattened list of Group->GGC->endpoint data in form of ConnectivityInfo instances. The vector makes it easy to use custom sorting algorithms and generate a priority order of GGCs to connect to. The API also returns a Group level root CA mapping. After sorting the response, the group name field can be used to retrieve the corresponding Root CA and make a successful connection.

+

+ConnectivityInfo class

+

The ConnectivityInfo class represents an individual flattened row in the parsed output. The definition for this class is located here. It contains the below parameters:

util::String group_name_;
+
util::String ggc_name_;
+
util::String id_
+
util::String host_address_;
+
util::String metadata_;
+
uint16_t port_;
+

+How should the endpoints be prioritized?

+

Depending on how the groups have been designed, there are several options for prioritizing which GGC to connect to from each device. The simplest option is to sort alphabetically based on the various string fields in the ConnectivityInfo class. A better approach may be to use the ID field or metadata field for sorting. The main purpose of the metadata field is for storing any relevant metadata that is required for a successful connection to this host address. However, the field can also store additional information such as a priority level. This opens the door for complicated sorts based on the contents of the various fields.

+

+How to use the Connectivity Information?

+

One of the main features of the C++ SDK is that the network layer is completely isolated from the MQTT SDK itself. Because of that, the initialization and setting of endpoint configuration for the Network instance, is something that we expect customers to take care of in their application code. You can read more about this in the SDK Readme located here. Because of this, the next step is simply to reconfigure the Network layer instance with the new endpoint, port and root CA. In the reference network layer for OpenSSL that we provide with the SDK, we have now added two new APIs that allow you to do this.

void SetRootCAPath(util::String root_ca_location);
+
void SetEndpointAndPort(util::String endpoint, uint16_t endpoint_port);
+

This is of course, specific to the provided reference implementation of the OpenSSL wrapper. For your custom implementations, you're free to update this information as you see fit. The only important point to remember here, the SDK will NOT be able to take care of this.

+

Once a connection has been established, the client can proceed as if it were trying to connect to AWS IoT cloud. GGCs, at the device SDK level, are indistinguishable from AWS IoT and the existing code should continue to operate as it did with the cloud.

+

+What to do if the Discovery fails?

+

If Discovery fails, the Discover Action does provide you with several detailed response codes that can allow you to take appropriate action.

+

+Response codes

+

The following are the response codes returned by the discovery action:

    +
  • DISCOVER_ACTION_NO_INFORMATION_PRESENT (401) - returned when there is no connectivity information present for the given thing name
  • +
  • DISCOVER_ACTION_SUCCESS (400) - returned when discovery action is a success
  • +
  • DISCOVER_ACTION_REQUEST_FAILED_ERROR (-1100) - the discovery request failed for an unknown reason
  • +
  • DISCOVER_ACTION_REQUEST_TIMED_OUT_ERROR (-1101) - the discovery request timed out and did not reach the gateway
  • +
  • DISCOVER_ACTION_UNAUTHORIZED (-1102) - this device does not have authorization to query the server
  • +
  • DISCOVER_ACTION_SERVER_ERROR (-1103) - request failed due to service issues
  • +
  • DISCOVER_ACTION_REQUEST_OVERLOAD (-1104) - the Discovery service is overloaded, please try again in some time
  • +
+

+What to do if the Connect request to all discovered GGC endpoints fails?

+

The one caveat with the design of the Discovery service is that the data is eventually consistent. There is a small time delay between the connectivity information for the GGC being updated in the service, and new certs being generated for the GGC. This can unfortunately cause a small period where the discovery request returns valid data but the GGC is still updating certs. In cases like this, discovery can be performed again and the whole process can be repeated until the device successfully connects to a GGC.

+

However, there is only a finite amount of time before the service is fully consistent. Depending on the design of the network, it may be required to have a fallback option where the device continues to function with AWS IoT cloud and attempts discovery at fixed time intervals to check if any new information is available. This is however that is very specific to the design and goals of your network.

+

+Samples

+

We provide a discovery sample that demonstrates how the Discovery process can be implemented. Further details can be found here.

+

+Appendices

+

+What to do if the Discovery request does not return any data?

+

You need to verify whether your GGC has any connectivity information set up for it or not. You can do this by going to the Greengrass console and checking the Connectivity Info tab when looking at GGC description. For additional information about how to set up the Group properly, please check the service side documentation.

+

+Discovery Response constants

+

The discovery response class provides the below constants that represent the keys in the discovery json response.

GROUP_ARRAY_KEY = "GGGroups";
+
GROUP_ID_KEY = "GGGroupId";
+
GGC_ARRAY_KEY = "Cores";
+
GGC_THING_ARN_KEY = "thingArn";
+
ROOT_CA_KEY = "CAs";
+
CONNECTIVITY_INFO_ARRAY_KEY = "Connectivity";
+
ID_KEY = "Id"
+
HOST_ADDRESS_KEY = "HostAddress";
+
PORT_KEY = "PortNumber";
+
METADATA_KEY = "Metadata";
+
DEFAULT_DISCOVERY_RESPONSE_FILE_NAME = "discovery_response.json";
+

+Sample Responses

+

+One group, One core with one endpoint, One Root CA

+
{
+
"GGGroups": [
+
{
+
"GGGroupId": "<Your GG Group ID>",
+
"Cores": [
+
{
+
"thingArn": "<Thing ARN for the GGC>",
+
"Connectivity": [
+
{
+
"Id": "<some id>",
+
"HostAddress": "<some endpoint>",
+
"PortNumber": <some port>,
+
"Metadata": "<Some Description>"
+
}
+
]
+
}
+
],
+
"CAs": [
+
"-----BEGIN CERTIFICATE-----\\\\nsLongStringHere\\\\n-----END CERTIFICATE-----\\\\n"
+
]
+
}
+
]
+
}
+

+Multiple groups, multiple cores each having multiple endpoints, multiple Root CAs per group

+
{
+
"GGGroups": [
+
{
+
"GGGroupId": "<GG Group 1 ID>",
+
"Cores": [
+
{
+
"thingArn": "<Thing ARN for the GGC 1>",
+
"Connectivity": [
+
{
+
"Id": "<id 1>",
+
"HostAddress": "<endpoint 1>",
+
"PortNumber": <some port>,
+
"Metadata": "<Some Description>"
+
},
+
{
+
"Id": "<id 2>",
+
"HostAddress": "<endpoint 2>",
+
"PortNumber": <some port>,
+
"Metadata": "<Some Description>"
+
}
+
]
+
},
+
{
+
"thingArn": "<Thing ARN for the GGC 1>",
+
"Connectivity": [
+
{
+
"Id": "<id 3>",
+
"HostAddress": "<endpoint 3>",
+
"PortNumber": <some port>,
+
"Metadata": "<Some Description>"
+
},
+
{
+
"Id": "<id 4>",
+
"HostAddress": "<endpoint 4>",
+
"PortNumber": <some port>,
+
"Metadata": "<Some Description>"
+
}
+
]
+
}
+
],
+
"CAs": [
+
"-----BEGIN CERTIFICATE-----\\\\nsLongStringHere\\\\n-----END CERTIFICATE-----\\\\n",
+
"-----BEGIN CERTIFICATE-----\\\\nsLongStringHere\\\\n-----END CERTIFICATE-----\\\\n",
+
"-----BEGIN CERTIFICATE-----\\\\nsLongStringHere\\\\n-----END CERTIFICATE-----\\\\n"
+
]
+
},
+
{
+
"GGGroupId": "<GG Group 2 ID>",
+
"Cores": [
+
{
+
"thingArn": "<Thing ARN for the GGC 3>",
+
"Connectivity": [
+
{
+
"Id": "<id 5>",
+
"HostAddress": "<endpoint 5>",
+
"PortNumber": <some port>,
+
"Metadata": "<Some Description>"
+
},
+
{
+
"Id": "<id 6>",
+
"HostAddress": "<endpoint 6>",
+
"PortNumber": <some port>,
+
"Metadata": "<Some Description>"
+
}
+
]
+
}
+
],
+
"CAs": [
+
"-----BEGIN CERTIFICATE-----\\\\nsLongStringHere\\\\n-----END CERTIFICATE-----\\\\n",
+
"-----BEGIN CERTIFICATE-----\\\\nsLongStringHere\\\\n-----END CERTIFICATE-----\\\\n",
+
"-----BEGIN CERTIFICATE-----\\\\nsLongStringHere\\\\n-----END CERTIFICATE-----\\\\n"
+
]
+
}
+
]
+
}
+
+
+ + + + diff --git a/docs/html/md__known_issues.html b/docs/html/md__known_issues.html new file mode 100644 index 0000000..c9beb0d --- /dev/null +++ b/docs/html/md__known_issues.html @@ -0,0 +1,115 @@ + + + + + + + +AWS IoT C++ SDK: Known Issues/Limitations + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Known Issues/Limitations
+
+
+

+<a href="https://github.com/aws/aws-iot-device-sdk-cpp/releases/tag/v1.4.0" >1.4.0</a> (May 10, 2018)

+

+Common

+
    +
  • Client Core - Reduce shared pointer usage, figure out ways to use fewer copy operations
  • +
  • MQTT - if subcriptions are disallowed by the policy, enabling auto resubcribe can lead to a connect-disconnect loop, issue #94
  • +
  • Network Read - Add recovery options for out of sync buffers
  • +
  • Network Layer, Common - Currently, vector resize is called before the vector is passed for reading in data. Determine if a more flexible solution is possible with fewer allocations
  • +
  • Network Layer, OpenSSL - error handling for library API call
  • +
  • Network Layer, OpenSSL - setting for disconnect timeouts
  • +
  • Network Layer, WebSocket - Refactor WSLay and merge it with the WebSocket wrapper, improve testing
  • +
  • Network Layer, WebSocket - TLS Read and Write are highly inefficient in current implementation, improvements required
  • +
  • Network Layer, Common - Add support for IPv6, remove deprecated system API calls
  • +
  • Shadow - Refactor delta requests into separate function
  • +
  • Shadow - Add action for automatically performing Shadow updates
  • +
  • Samples, Shadow - Add Console Echo Sample
  • +
  • Threading - lock-order-inversion (potential deadlock), issue #14
  • +
  • CLI, Configuration - Add support for command line cert paths
  • +
  • CMake, path warnings - Cleaner way to download repositories from github and build them
  • +
  • CMake, build settings - Provide options for setting up certain values that are hardcoded using macros at the moment
  • +
  • Testing - More edge case testing required for Reconnect logic
  • +
  • Testing - Improvements needed on Integration testing for network reference layers specifically for different compilers and platforms
  • +
  • UTF-8 string - improve validation checks
  • +
+

+Windows

+
    +
  • Build issues with VS 2013
  • +
  • Project structure in Solution Explorer needs to be updated
  • +
  • CMake warnings on solution generation
  • +
  • Working directory needs to be updated every time CMake solution is rebuilt to ${OutDir} for configuration to be picked up as expected
  • +
+
+
+ + + + diff --git a/docs/html/md__platform.html b/docs/html/md__platform.html new file mode 100644 index 0000000..e3cb150 --- /dev/null +++ b/docs/html/md__platform.html @@ -0,0 +1,199 @@ + + + + + + + +AWS IoT C++ SDK: Overview + + + + + + + + + +
+
+ + + + + + +
+
AWS IoT C++ SDK +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Overview
+
+
+

This file contains instructions for installing dependencies on different platforms. If you have all the prerequisites specified in the README file, you could simply skip following instructions.

+

+Common Issues

+
    +
  • Known Issues
      +
    • If you run into error like "Unknown extension ".c" for file /XXX/CheckIncludeFiles.c try_compile() works only for enabled languages. Currently these are: CXX</tt>, you need to change <tt>project(aws-iot-sdk-cpp CXX)</tt> to <tt>project(aws-iot-sdk-cpp C CXX)</tt> and add <tt>ENABLE_LANGUAGE(C)</tt> below it. + + +@subsection autotoc_md56 Raspberry Pi + + * Make sure to have CMake installed <a href="https://cmake.org/install/" >CMake Installation</a> + * There is a reference for installing gcc-6 and g++-6 on raspberry pi. It also works for gcc-5/g++5 by replacing version number to 5. <a href="https://solarianprogrammer.com/2016/06/24/raspberry-pi-raspbian-install-gcc-compile-cpp-14-and-cpp-17-programs/" >GCC-6 Installation</a> + * You could create symlinks to choose which version of gcc/g++ to use <a href="https://linux.die.net/man/8/update-alternatives" >update-alternatives</a>. Assuming both gcc-5 and gcc-6 installed, the following commands will maintain symbolic links of both versions. In this case, gcc-5/g++-5 has higher priority (20) than gcc-6/g++-6 (10), which means the alternatives will point to gcc-5/g++-5 in automatic mode. You could change the priority based on your needs. + <tt>sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20</tt> + <tt>sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 10</tt> + <tt>sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 20</tt> + <tt>sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 10</tt> + + <tt>sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30</tt> + <tt>sudo update-alternatives --set cc /usr/bin/gcc</tt> + + <tt>sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30</tt> + <tt>sudo update-alternatives --set c++ /usr/bin/g++</tt> + + <tt>sudo update-alternatives --config gcc</tt> + <tt>sudo update-alternatives --config g++</tt> + * Install Openssl 1.1.0. Linux From Scratch has good guides on installing versions of OpenSSL from source. + * Build libssl-dev 1.1.0 or above. + +@subsection autotoc_md57 Mac OS + * Install Homebrew if it's not installed <tt>\$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"</tt> + * Install CMake + * You can build from source <a href="https://cmake.org/install/" >CMake Installation</a> or + * Install directly using <tt>brew install cmake</tt> + * If you use the .dmg installer, the following instructions are used to add the CMake path into $PATH after installation: + * <tt>sudo vim /etc/paths</tt> + * Add the following line to the paths already present <tt>/Applications/CMake.app/Contents/bin</tt> + * save and quit + * In a new terminal window, run <tt>echo \$PATH</tt>. The path for CMake should be displayed, along with the other paths. + * With Mac OS, the default version of OpenSSL is not 1.1.0 and cannot be used with the SDK. Instead, version 1.1.0 needs to be installed. + To install OpenSSL 1.1.0: + * Update brew <tt>brew update \&\& brew upgrade</tt> + * Run <tt>brew info openssl</tt> to list the versions of openssl available + Example output: + `openssl: stable 1.0.2l (bottled) [keg-only] + SSL/TLS cryptography library + https://openssl.org/ + /usr/local/Cellar/openssl/1.0.2k (1,696 files, 12MB) + Poured from bottle on 2017-02-03 at 14:20:40 + /usr/local/Cellar/openssl/1.0.2l (1,709 files, 12.1MB) + Poured from bottle on 2017-05-31 at 15:32:30` + Use the latest stable 1.0.2 version available, which is 1.0.2l here <br> + * Run <tt>brew switch openssl\@\<latest stable 1.1 version\></tt>. If the version is already installed, the path for this version of OpenSSL will be displayed. + Example output: + <tt>Cleaning /usr/local/Cellar/openssl/1.0.2l + Opt link created for /usr/local/Cellar/openssl\@1.1/1.1.1m</tt> + Use the path (<tt>/usr/local/Cellar/openssl\@1.1/1.1.1m</tt> in the example above) in your <BASE_SDK_DIRECTORY>/network/CMakeLists.txt + * If not installed, run <tt>brew install openssl --force</tt> after the switch operation. The path will be displayed at the end of the installation. + + After that follow the below steps. + + * Open <BASE_SDK_DIRECTORY>/network/CMakelists.txt.in + * Comment out the below line in default OpenSSL section by adding # in front of it + + <tt>\#find_package(OpenSSL REQUIRED)</tt> + + * Add following two lines below the line commented out in default OpenSSL section. Replace "YOUR_OPENSSL_PATH" with the path obtained from the <tt>brew switch</tt> or <tt>brew install</tt> command + + <tt>set(OPENSSL_LIBRARIES "YOUR_OPENSSL_PATH/lib/libssl.a;YOUR_OPENSSL_PATH/lib/libcrypto.a")</tt> + <tt>set(OPENSSL_INCLUDE_DIR "YOUR_OPENSSL_PATH/include")</tt> <br> + +@subsection autotoc_md58 Windows + + * Both the Websocket and OpenSSL builds work on windows. The latest version of OpenSSL 1.1.0 needs to be installed for them to work properly. + * Download and install the latest version of OpenSSL 1.1.0 from <a href="https://slproweb.com/products/Win32OpenSSL.html" >this link</a> + * Download and install CMake for Windows from <a href="https://cmake.org/download/" >this link</a> + * Download and install git from <a href="https://git-scm.com/downloads" >this link</a>. Please be sure to install git bash as well. + * Open the Git Bash terminal and navigate to the folder where you want the SDK to be downloaded. + * Clone the repository in this folder. Once finished, change directory to the downloaded repo. + * Create a <tt>build</tt> folder. Change directory to the build folder. + * Run the following command: + + <tt>\<absolute path to cmake install directory\>/bin/cmake -G "Visual Studio 14 2015 Win64" ../.</tt> + + * The above command will generate a Visual studio solution file called <tt>aws-iot-sdk-cpp</tt>. Open this file in VS2015. + * The list of available targets will show up in the solution explorer. + * Before running available targets, be sure to change the working directory of the project to Output directory. + * There are known issues with the Windows Build currently. Please check the <a href="https://github.com/aws/aws-iot-device-sdk-cpp/blob/master/KnownIssues.md" >Known Issues</a> file for more information. + +@subsection autotoc_md59 Ubuntu 14.04 + * Install CMake <a href="https://cmake.org/install/" >CMake Installation
    • +
    +
  • +
  • To update to OpenSSL 1.1.0
      +
    • sudo apt-get install make (if not already installed)
    • +
    • wget https://www.openssl.org/source/openssl-1.1.0.tar.gz
    • +
    • tar -xzvf openssl-1.1.0g.tar.gz
    • +
    • cd openssl-1.1.0g
    • +
    • sudo ./config
    • +
    • sudo make install
    • +
    • sudo ln -sf /usr/local/ssl/bin/openssl <which openssl>
    • +
    • openssl version -v (should show correct version of OpenSSL)
    • +
    +
  • +
  • To install libssl-dev +
  • +
+
+
+ + + + diff --git a/docs/html/menu.js b/docs/html/menu.js new file mode 100644 index 0000000..b0b2693 --- /dev/null +++ b/docs/html/menu.js @@ -0,0 +1,136 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+='
    '; + for (var i in data.children) { + var url; + var link; + link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + var searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
 '+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/docs/html/menudata.js b/docs/html/menudata.js new file mode 100644 index 0000000..7a71f84 --- /dev/null +++ b/docs/html/menudata.js @@ -0,0 +1,105 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Namespaces",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}, +{text:"Namespace Members",url:"namespacemembers.html",children:[ +{text:"All",url:"namespacemembers.html"}, +{text:"Functions",url:"namespacemembers_func.html"}]}]}, +{text:"Data Structures",url:"annotated.html",children:[ +{text:"Data Structures",url:"annotated.html"}, +{text:"Data Structure Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Data Fields",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"h",url:"functions_h.html#index_h"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"j",url:"functions_j.html#index_j"}, +{text:"k",url:"functions_k.html#index_k"}, +{text:"l",url:"functions_l.html#index_l"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"q",url:"functions_q.html#index_q"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"w",url:"functions_w.html#index_w"}, +{text:"~",url:"functions_~.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"c",url:"functions_func_c.html#index_c"}, +{text:"d",url:"functions_func_d.html#index_d"}, +{text:"e",url:"functions_func_e.html#index_e"}, +{text:"f",url:"functions_func_f.html#index_f"}, +{text:"g",url:"functions_func_g.html#index_g"}, +{text:"h",url:"functions_func_h.html#index_h"}, +{text:"i",url:"functions_func_i.html#index_i"}, +{text:"j",url:"functions_func_j.html#index_j"}, +{text:"k",url:"functions_func_k.html#index_k"}, +{text:"l",url:"functions_func_l.html#index_l"}, +{text:"m",url:"functions_func_m.html#index_m"}, +{text:"n",url:"functions_func_n.html#index_n"}, +{text:"p",url:"functions_func_p.html#index_p"}, +{text:"r",url:"functions_func_r.html#index_r"}, +{text:"s",url:"functions_func_s.html#index_s"}, +{text:"t",url:"functions_func_t.html#index_t"}, +{text:"u",url:"functions_func_u.html#index_u"}, +{text:"w",url:"functions_func_w.html#index_w"}, +{text:"~",url:"functions_func_~.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"c",url:"functions_vars.html#index_c"}, +{text:"d",url:"functions_vars.html#index_d"}, +{text:"f",url:"functions_vars.html#index_f"}, +{text:"g",url:"functions_vars.html#index_g"}, +{text:"h",url:"functions_vars.html#index_h"}, +{text:"i",url:"functions_vars.html#index_i"}, +{text:"k",url:"functions_vars.html#index_k"}, +{text:"m",url:"functions_vars.html#index_m"}, +{text:"n",url:"functions_vars.html#index_n"}, +{text:"o",url:"functions_vars.html#index_o"}, +{text:"p",url:"functions_vars.html#index_p"}, +{text:"q",url:"functions_vars.html#index_q"}, +{text:"r",url:"functions_vars.html#index_r"}, +{text:"s",url:"functions_vars.html#index_s"}, +{text:"t",url:"functions_vars.html#index_t"}, +{text:"w",url:"functions_vars.html#index_w"}]}, +{text:"Typedefs",url:"functions_type.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"Globals",url:"globals.html",children:[ +{text:"All",url:"globals.html"}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/docs/html/namespaceawsiotsdk_1_1_response_helper.html b/docs/html/namespaceawsiotsdk_1_1_response_helper.html new file mode 100644 index 0000000..5bac377 --- /dev/null +++ b/docs/html/namespaceawsiotsdk_1_1_response_helper.html @@ -0,0 +1,440 @@ + + + + + + + +AWS IoT C++ SDK: awsiotsdk::ResponseHelper Namespace Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    AWS IoT C++ SDK +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    awsiotsdk::ResponseHelper Namespace Reference
    +
    +
    + +

    Response Helper for converting ResponseCode into Strings. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    +const util::String DISCOVER_ACTION_NO_INFORMATION_PRESENT_STRING ("No information found for device")
     
    +const util::String DISCOVER_ACTION_SUCCESS_STRING ("Discover action successful")
     
    +const util::String SHADOW_RECEIVED_DELTA_STRING ("Received the shadow delta")
     
    +const util::String SHADOW_REQUEST_ACCEPTED_STRING ("Shadow request accepted")
     
    +const util::String NETWORK_PHYSICAL_LAYER_CONNECTED_STRING ("Physical network layer connected")
     
    +const util::String NETWORK_MANUALLY_DISCONNECTED_STRING ("Network manually disconnected")
     
    +const util::String NETWORK_ATTEMPTING_RECONNECT_STRING ("Attempting to reconnect to the network")
     
    +const util::String NETWORK_RECONNECTED_STRING ("Network reconnected")
     
    +const util::String MQTT_NOTHING_TO_READ_STRING ("No MQTT packets received")
     
    +const util::String MQTT_CONNACK_CONNECTION_ACCEPTED_STRING ("Successfully connected to MQTT server")
     
    +const util::String SUCCESS_STRING ("Success")
     
    +const util::String FAILURE_STRING ("Failure")
     
    +const util::String NULL_VALUE_ERROR_STRING ("One or more parameters were null")
     
    +const util::String FILE_OPEN_ERROR_STRING ("Error occurred while trying to open the file")
     
    +const util::String FILE_NAME_INVALID_STRING ("File name provided is invalid or of zero length")
     
    +const util::String MUTEX_INIT_ERROR_STRING ("Error occurred while initializing the mutex")
     
    +const util::String MUTEX_LOCK_ERROR_STRING ("Error occurred while locking the mutex")
     
    +const util::String MUTEX_UNLOCK_ERROR_STRING ("Error occurred while unlocking the mutex")
     
    +const util::String MUTEX_DESTROY_ERROR_STRING ("Error occurred while destroying the mutex")
     
    +const util::String THREAD_EXITING_STRING ("Thread is exiting")
     
    +const util::String NETWORK_TCP_CONNECT_ERROR_STRING ("TCP Error occurred while opening a socket")
     
    +const util::String NETWORK_TCP_SETUP_ERROR_STRING ("Error occurred while setting up the TCP socket")
     
    +const util::String NETWORK_TCP_UNKNOWN_HOST_STRING ("Unable to find host specified")
     
    +const util::String NETWORK_TCP_NO_ENDPOINT_SPECIFIED_STRING ("No endpoint specified")
     
    +const util::String NETWORK_SSL_INIT_ERROR_STRING ("Error occurred while initializing SSL")
     
    +const util::String NETWORK_SSL_ROOT_CRT_PARSE_ERROR_STRING ("Error occurred while parsing the root CRT")
     
    +const util::String NETWORK_SSL_DEVICE_CRT_PARSE_ERROR_STRING ("Error occurred while parsing the device CRT")
     
    +const util::String NETWORK_SSL_KEY_PARSE_ERROR_STRING ("Error occurred while parsing the private key")
     
    +const util::String NETWORK_SSL_TLS_HANDSHAKE_ERROR_STRING ("Error occurred while performing the TLS handshake")
     
    +const util::String NETWORK_SSL_CONNECT_ERROR_STRING ("Error occurred during the connect attempt")
     
    +const util::String NETWORK_SSL_CONNECT_TIMEOUT_ERROR_STRING ("The connect attempt timed out")
     
    +const util::String NETWORK_SSL_CONNECTION_CLOSED_ERROR_STRING ("The SSL connection was closed")
     
    +const util::String NETWORK_SSL_WRITE_ERROR_STRING ("Error occurred during the SSL write operation")
     
    +const util::String NETWORK_SSL_WRITE_TIMEOUT_ERROR_STRING ("The SSL write operation timed out")
     
    +const util::String NETWORK_SSL_READ_ERROR_STRING ("Error occurred during the SSL read operation")
     
    +const util::String NETWORK_SSL_READ_TIMEOUT_ERROR_STRING ("The SSL read operation timed out")
     
    +const util::String NETWORK_SSL_NOTHING_TO_READ_STRING ("No SSL packets received")
     
    +const util::String NETWORK_SSL_UNKNOWN_ERROR_STRING ("Unknown error occurred during an SSL operation")
     
    +const util::String NETWORK_SSL_SERVER_VERIFICATION_ERROR_STRING ("Unable to verify server name")
     
    +const util::String NETWORK_DISCONNECTED_ERROR_STRING ("Network is disconnected")
     
    +const util::String NETWORK_RECONNECT_TIMED_OUT_ERROR_STRING ("Reconnect operation time out")
     
    +const util::String NETWORK_ALREADY_CONNECTED_ERROR_STRING ("Network is already connected")
     
    +const util::String NETWORK_PHYSICAL_LAYER_DISCONNECTED_STRING ("Physical network layer is disconnected")
     
    +const util::String NETWORK_NOTHING_TO_WRITE_ERROR_STRING ("No packets to write to the network")
     
    +const util::String ACTION_NOT_REGISTERED_ERROR_STRING ("The action attempted is not registered with the client")
     
    +const util::String ACTION_QUEUE_FULL_STRING ("The client action queue is full")
     
    +const util::String ACTION_CREATE_FAILED_STRING ("The client was unable to create the action")
     
    +const util::String MQTT_CONNECTION_ERROR_STRING ("Unable to establish the MQTT connection")
     
    +const util::String MQTT_CONNECT_TIMEOUT_ERROR_STRING ("The MQTT connect operation timed out")
     
    +const util::String MQTT_REQUEST_TIMEOUT_ERROR_STRING ("The MQTT request timed out")
     
    +const util::String MQTT_UNEXPECTED_CLIENT_STATE_ERROR_STRING ("The MQTT client is in an unexpected state")
     
    +const util::String MQTT_CLIENT_NOT_IDLE_ERROR_STRING ("The MQTT client is not idle")
     
    +const util::String MQTT_RX_MESSAGE_PACKET_TYPE_INVALID_ERROR_STRING ("The MQTT message is of an invalid type")
     
    +const util::String MQTT_MAX_SUBSCRIPTIONS_REACHED_ERROR_STRING ("Reached maximum MQTT subscriptions")
     
    +const util::String MQTT_DECODE_REMAINING_LENGTH_ERROR_STRING ("Error occurred while decoding the remaining length of the MQTT message")
     
    +const util::String MQTT_CONNACK_UNKNOWN_ERROR_STRING ("MQTT connect request failed with server returning an unknown error")
     
    +const util::String MQTT_CONNACK_UNACCEPTABLE_PROTOCOL_VERSION_ERROR_STRING ("MQTT connect request failed with server returning an unacceptable protocol error")
     
    +const util::String MQTT_CONNACK_IDENTIFIER_REJECTED_ERROR_STRING ("MQTT connect request failed with server returning an identifier rejected error")
     
    +const util::String MQTT_CONNACK_SERVER_UNAVAILABLE_ERROR_STRING ("MQTT connect request failed with server returning an unavailable error")
     
    +const util::String MQTT_CONNACK_BAD_USERDATA_ERROR_STRING ("MQTT connect request failed with server returning a bad userdata error")
     
    +const util::String MQTT_CONNACK_NOT_AUTHORIZED_ERROR_STRING ("MQTT connect request failed with server returning a not authorized error")
     
    +const util::String MQTT_NO_SUBSCRIPTION_FOUND_STRING ("No MQTT subscriptions were found for the requested topic")
     
    +const util::String MQTT_SUBSCRIPTION_NOT_ACTIVE_STRING ("The MQTT subscription specified is not active")
     
    +const util::String MQTT_UNEXPECTED_PACKET_FORMAT_ERROR_STRING ("Unable to serialize the MQTT packet as the format is unexpected")
     
    +const util::String MQTT_TOO_MANY_SUBSCRIPTIONS_IN_REQUEST_STRING ("Too many subscriptions were provided in the MQTT subscribe/unsubscribe request")
     
    +const util::String MQTT_INVALID_DATA_ERROR_STRING ("Invalid/Insufficient data was provided in the MQTT request")
     
    +const util::String MQTT_SUBSCRIBE_PARTIALLY_FAILED_STRING ("Failed to subscribe to atleast one of the topics in the subscribe request")
     
    +const util::String MQTT_SUBSCRIBE_FAILED_STRING ("Failed to subscribe to any of the topics in the subscribe request")
     
    +const util::String JSON_PARSE_KEY_NOT_FOUND_ERROR_STRING ("Unable to find the requested key in the JSON")
     
    +const util::String JSON_PARSE_KEY_UNEXPECTED_TYPE_ERROR_STRING ("The value for the JSON key was of an unexpected type")
     
    +const util::String JSON_PARSING_ERROR_STRING ("Error occurred while parsing the JSON")
     
    +const util::String JSON_MERGE_FAILED_STRING ("Failed to merge the JSON")
     
    +const util::String JSON_DIFF_FAILED_STRING ("Failed to diff the JSON")
     
    +const util::String SHADOW_WAIT_FOR_PUBLISH_STRING ("Waiting for previously published shadow updates")
     
    +const util::String SHADOW_JSON_BUFFER_TRUNCATED_STRING ("Shadow JSON is truncated as size specified is less than the size of the JSON")
     
    +const util::String SHADOW_JSON_ERROR_STRING ("Encoding error occurred while printing the shadow JSON")
     
    +const util::String SHADOW_JSON_EMPTY_ERROR_STRING ("The shadow JSON is empty")
     
    +const util::String SHADOW_REQUEST_MAP_EMPTY_STRING ("The shadow request map is empty ")
     
    +const util::String SHADOW_MQTT_DISCONNECTED_ERROR_STRING ("The shadow's MQTT connection is inactive")
     
    +const util::String SHADOW_UNEXPECTED_RESPONSE_TYPE_STRING ("The shadow response received is of an unexpected type")
     
    +const util::String SHADOW_UNEXPECTED_RESPONSE_TOPIC_STRING ("The shadow response was received on an unexpected topic")
     
    +const util::String SHADOW_REQUEST_REJECTED_STRING ("The shadow request was rejected by the server")
     
    +const util::String SHADOW_MQTT_CLIENT_NOT_SET_ERROR_STRING ("There is no client set for this shadow")
     
    +const util::String SHADOW_NOTHING_TO_UPDATE_STRING ("There are no shadow updates to be performed")
     
    +const util::String SHADOW_UNEXPECTED_RESPONSE_PAYLOAD_STRING ("The shadow response is in an unexpected format")
     
    +const util::String SHADOW_RECEIVED_OLD_VERSION_UPDATE_STRING ("The received shadow version is older than the current one on the device")
     
    +const util::String WEBSOCKET_SIGN_URL_NO_MEM_STRING ("Internal buffer overflowed while signing WebSocket URL")
     
    +const util::String WEBSOCKET_GEN_CLIENT_KEY_ERROR_STRING ("Error occurred while generating WebSocket handshake client key")
     
    +const util::String WEBSOCKET_HANDSHAKE_ERROR_STRING ("Unable to complete WebSocket handshake")
     
    +const util::String WEBSOCKET_HANDSHAKE_WRITE_STRING ("Unable to transmit WebSocket handshake request")
     
    +const util::String WEBSOCKET_HANDSHAKE_READ_STRING ("Unable to receive WebSocket handshake request")
     
    +const util::String WEBSOCKET_HANDSHAKE_VERIFY_ERROR_STRING ("Unable to verify handshake response from the server")
     
    +const util::String WEBSOCKET_WSLAY_CONTEXT_INIT_ERROR_STRING ("Erro occurred while initializing the WebSocket WSLay context")
     
    +const util::String WEBSOCKET_FRAME_RECEIVE_ERROR_STRING ("Error occurred while receiving WebSocket frame")
     
    +const util::String WEBSOCKET_FRAME_TRANSMIT_ERROR_STRING ("Error occurred while transmitting WebSocket frame")
     
    +const util::String WEBSOCKET_PROTOCOL_VIOLATION_STRING ("Protocol violation was detected in the received WebSocket frames")
     
    +const util::String WEBSOCKET_MAX_LIFETIME_REACHED_STRING ("Max lifetime of the WebSocket connection was reached")
     
    +const util::String WEBSOCKET_DISCONNECT_ERROR_STRING ("Error occurred while disconnecting the WebSocket")
     
    +const util::String WEBSOCKET_GET_UTC_TIME_FAILED_STRING ("WebSocket wrapper is unable to get the UTC ")
     
    +const util::String DISCOVER_ACTION_REQUEST_FAILED_ERROR_STRING ("Unable to perform the discover action")
     
    +const util::String DISCOVER_ACTION_REQUEST_TIMED_OUT_ERROR_STRING ("The discover action request timed out")
     
    +const util::String DISCOVER_ACTION_UNAUTHORIZED_STRING ("The device was unauthorized to perform the discovery action")
     
    +const util::String DISCOVER_ACTION_SERVER_ERROR_STRING ("Server returned unknown error while performing the discovery action")
     
    +const util::String DISCOVER_ACTION_REQUEST_OVERLOAD_STRING ("The discovery action is overloading the server, try again after some time")
     
    +const util::String DISCOVER_RESPONSE_UNEXPECTED_JSON_STRUCTURE_ERROR_STRING ("The discover response JSON is incomplete ")
     
    +const util::String JOBS_INVALID_TOPIC_ERROR_STRING ("Invalid jobs topic")
     
    util::String ToString (ResponseCode rc)
     
    +

    Function Documentation

    + +

    ◆ ToString()

    + +
    +
    + + + + + + + + +
    util::String awsiotsdk::ResponseHelper::ToString (ResponseCode rc)
    +
    +

    Takes in a Response Code and returns the appropriate error/success string

    Parameters
    + + +
    rcResponse Code to be converted
    +
    +
    +
    Returns
    char* Response String
    + +
    +
    +
    + + + + diff --git a/docs/html/namespacemembers.html b/docs/html/namespacemembers.html new file mode 100644 index 0000000..0168b99 --- /dev/null +++ b/docs/html/namespacemembers.html @@ -0,0 +1,81 @@ + + + + + + + +AWS IoT C++ SDK: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    AWS IoT C++ SDK +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    +
    + + + + diff --git a/docs/html/namespacemembers_func.html b/docs/html/namespacemembers_func.html new file mode 100644 index 0000000..032e0cd --- /dev/null +++ b/docs/html/namespacemembers_func.html @@ -0,0 +1,81 @@ + + + + + + + +AWS IoT C++ SDK: Namespace Members + + + + + + + + + +
    +
    + + + + + + +
    +
    AWS IoT C++ SDK +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    + + + + diff --git a/docs/html/namespaces.html b/docs/html/namespaces.html new file mode 100644 index 0000000..9e5c3bc --- /dev/null +++ b/docs/html/namespaces.html @@ -0,0 +1,83 @@ + + + + + + + +AWS IoT C++ SDK: Namespace List + + + + + + + + + +
    +
    + + + + + + +
    +
    AWS IoT C++ SDK +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Namespace List
    +
    +
    +
    Here is a list of all documented namespaces with brief descriptions:
    +
    +
    + + + + diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/docs/html/nav_fd.png b/docs/html/nav_fd.png new file mode 100644 index 0000000000000000000000000000000000000000..032fbdd4c54f54fa9a2e6423b94ef4b2ebdfaceb GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQU#tajv*C{Z|C~*H7f|XvG1G8 zt7aS*L7xwMeS}!z6R#{C5tIw-s~AJ==F^i}x3XyJseHR@yF& zerFf(Zf;Dd{+(0lDIROL@Sj-Ju2JQ8&-n%4%q?>|^bShc&lR?}7HeMo@BDl5N(aHY Uj$gdr1MOz;boFyt=akR{0D!zeaR2}S literal 0 HcmV?d00001 diff --git a/docs/html/nav_g.png b/docs/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL6W-eg#Jd_@e6*DPn)w;=|1H}Zvm9l6xXXB%>yL=NQU;mg M>FVdQ&MBb@0Bdt1Qvd(} literal 0 HcmV?d00001 diff --git a/docs/html/open.png b/docs/html/open.png new file mode 100644 index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + +AWS IoT C++ SDK: Related Pages + + + + + + + + + +
    +
    + + + + + + +
    +
    AWS IoT C++ SDK +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    +
    + + + + diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js new file mode 100644 index 0000000..6e8f0b7 --- /dev/null +++ b/docs/html/search/all_0.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['ack_5fmap_5flock_5f_0',['ack_map_lock_',['../classawsiotsdk_1_1_client_core_state.html#a6a47bc03fbcf23e49eb6f972304b8981',1,'awsiotsdk::ClientCoreState']]], + ['ack_5ftimeout_5f_1',['ack_timeout_',['../classawsiotsdk_1_1_client_core_state.html#a6480cab2d993b1e0d731bf5693a4dcfd',1,'awsiotsdk::ClientCoreState']]], + ['action_2',['Action',['../classawsiotsdk_1_1_action.html#a020866ad68d3da1025f19dea2f965ed3',1,'awsiotsdk::Action::Action()'],['../classawsiotsdk_1_1_action.html',1,'awsiotsdk::Action']]], + ['action_2ecpp_3',['Action.cpp',['../_action_8cpp.html',1,'']]], + ['action_2ehpp_4',['Action.hpp',['../_action_8hpp.html',1,'']]], + ['action_5fcreate_5ffailed_5',['ACTION_CREATE_FAILED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a225251cbbc3443e5f366733983bab694',1,'awsiotsdk']]], + ['action_5fcreate_5fhandler_5fmap_5f_6',['action_create_handler_map_',['../classawsiotsdk_1_1_client_core_state.html#a87dae99534aae8db7a065f15ef3b65fd',1,'awsiotsdk::ClientCoreState']]], + ['action_5finfo_5fstring_5f_7',['action_info_string_',['../classawsiotsdk_1_1_action.html#a250d2b8ab61a0716e87c80d49f9727c2',1,'awsiotsdk::Action']]], + ['action_5fmap_5f_8',['action_map_',['../classawsiotsdk_1_1_client_core_state.html#a916b66ec29311ddfc01b8c5503f8940f',1,'awsiotsdk::ClientCoreState']]], + ['action_5fnot_5fregistered_5ferror_9',['ACTION_NOT_REGISTERED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ad67ae60790b740a09c300ae517594a87',1,'awsiotsdk']]], + ['action_5fqueue_5ffull_10',['ACTION_QUEUE_FULL',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aef6b39f017fccd7ad5f19a780f6b46ac',1,'awsiotsdk']]], + ['action_5ftype_5f_11',['action_type_',['../classawsiotsdk_1_1_action.html#a6b41fd33485a294b7a13cceb924f2c9f',1,'awsiotsdk::Action']]], + ['actiondata_12',['ActionData',['../classawsiotsdk_1_1_action_data.html',1,'awsiotsdk']]], + ['actionstate_13',['ActionState',['../classawsiotsdk_1_1_action_state.html',1,'awsiotsdk']]], + ['actiontype_14',['ActionType',['../_action_8hpp.html#acaa59a76f3c629d2756ca9bb92edbd62',1,'awsiotsdk']]], + ['addshadowsubscription_15',['AddShadowSubscription',['../classawsiotsdk_1_1_shadow.html#a62ce754ea72c07c543ed5a13498b403b',1,'awsiotsdk::Shadow']]], + ['appendtobuffer_16',['AppendToBuffer',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#a04c7b2d1fbcc8c81a21ceccadc522ad7',1,'awsiotsdk::mqtt::PacketFixedHeader']]], + ['applicationcallbackhandlerptr_17',['ApplicationCallbackHandlerPtr',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a2653d7bc0ed3e77d5931b5c7bcb5d326',1,'awsiotsdk::mqtt::Subscription']]], + ['applicationdisconnectcallbackptr_18',['ApplicationDisconnectCallbackPtr',['../classawsiotsdk_1_1_client_core_state.html#aa0052c52ed5a46b49ffffc77c3662c73',1,'awsiotsdk::ClientCoreState']]], + ['applicationreconnectcallbackptr_19',['ApplicationReconnectCallbackPtr',['../classawsiotsdk_1_1_client_core_state.html#a5f2235d6481c17c37a3d4f1ab9f7ab0c',1,'awsiotsdk::ClientCoreState']]], + ['applicationresubscribecallbackptr_20',['ApplicationResubscribeCallbackPtr',['../classawsiotsdk_1_1_client_core_state.html#ab3edc7d38f38722d729d471b2b621ea4',1,'awsiotsdk::ClientCoreState']]], + ['asyncacknotificationhandlerptr_21',['AsyncAckNotificationHandlerPtr',['../classawsiotsdk_1_1_action_data.html#a5d1d7452e081205b414e4df985d82f60',1,'awsiotsdk::ActionData']]], + ['aws_20greengrass_20discovery_20support_22',['AWS Greengrass Discovery Support',['../md__greengrass_discovery.html',1,'']]], + ['responsehelper_23',['ResponseHelper',['../namespaceawsiotsdk_1_1_response_helper.html',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js new file mode 100644 index 0000000..b204228 --- /dev/null +++ b/docs/html/search/all_1.js @@ -0,0 +1,50 @@ +var searchData= +[ + ['canprocessqueuedactions_0',['CanProcessQueuedActions',['../classawsiotsdk_1_1_client_core_state.html#ac6138e05829b09fee28628e0d0b70cc3',1,'awsiotsdk::ClientCoreState']]], + ['change_20log_1',['Change Log',['../md__changelog.html',1,'']]], + ['clearoutboundactionqueue_2',['ClearOutboundActionQueue',['../classawsiotsdk_1_1_client_core_state.html#aee9925041664d43a8b487106fcdda9b9',1,'awsiotsdk::ClientCoreState']]], + ['clearregisteredactions_3',['ClearRegisteredActions',['../classawsiotsdk_1_1_client_core_state.html#ac78efbc143b86c7c4a35d08b55eff231',1,'awsiotsdk::ClientCoreState']]], + ['client_2ecpp_4',['Client.cpp',['../_client_8cpp.html',1,'']]], + ['client_2ehpp_5',['Client.hpp',['../_client_8hpp.html',1,'']]], + ['client_5ftoken_5f_6',['client_token_',['../classawsiotsdk_1_1_shadow.html#ac433c074d4998807b2016528bc10283d',1,'awsiotsdk::Shadow']]], + ['client_5ftoken_5fprefix_5f_7',['client_token_prefix_',['../classawsiotsdk_1_1_shadow.html#a8737f838ab5cfe1b9e5a822075250854',1,'awsiotsdk::Shadow']]], + ['clientcore_8',['ClientCore',['../classawsiotsdk_1_1_client_core.html',1,'awsiotsdk::ClientCore'],['../classawsiotsdk_1_1_client_core.html#ada3ef41d45548feb1b8c6bf9f3c8266e',1,'awsiotsdk::ClientCore::ClientCore()']]], + ['clientcore_2ecpp_9',['ClientCore.cpp',['../_client_core_8cpp.html',1,'']]], + ['clientcore_2ehpp_10',['ClientCore.hpp',['../_client_core_8hpp.html',1,'']]], + ['clientcorestate_11',['ClientCoreState',['../classawsiotsdk_1_1_client_core_state.html',1,'awsiotsdk::ClientCoreState'],['../classawsiotsdk_1_1_client_core_state.html#a116b0f8b93040759f71c57a7fc878d0c',1,'awsiotsdk::ClientCoreState::ClientCoreState()']]], + ['clientcorestate_2ecpp_12',['ClientCoreState.cpp',['../_client_core_state_8cpp.html',1,'']]], + ['clientcorestate_2ehpp_13',['ClientCoreState.hpp',['../_client_core_state_8hpp.html',1,'']]], + ['clientstate_14',['ClientState',['../classawsiotsdk_1_1mqtt_1_1_client_state.html',1,'awsiotsdk::mqtt']]], + ['clientstate_2ecpp_15',['ClientState.cpp',['../_client_state_8cpp.html',1,'']]], + ['clientstate_2ehpp_16',['ClientState.hpp',['../_client_state_8hpp.html',1,'']]], + ['code_20of_20conduct_17',['Code of Conduct',['../md__c_o_d_e__o_f__c_o_n_d_u_c_t.html',1,'']]], + ['common_2ecpp_18',['Common.cpp',['../_common_8cpp.html',1,'']]], + ['common_2ehpp_19',['Common.hpp',['../_common_8hpp.html',1,'']]], + ['configcommon_20',['ConfigCommon',['../classawsiotsdk_1_1_config_common.html',1,'awsiotsdk']]], + ['configcommon_2ecpp_21',['ConfigCommon.cpp',['../_config_common_8cpp.html',1,'']]], + ['connack_22',['CONNACK',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a7213a51abf940e6102c31b108091427d',1,'awsiotsdk::mqtt']]], + ['connackreturncode_23',['ConnackReturnCode',['../_connect_8hpp.html#a7e9209872ce924f26e53c18681772a15',1,'awsiotsdk::mqtt']]], + ['connect_24',['Connect',['../classawsiotsdk_1_1_mqtt_client.html#abe3f172997b3bad3113015281faf48f6',1,'awsiotsdk::MqttClient::Connect(std::chrono::milliseconds action_response_timeout, bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg)'],['../classawsiotsdk_1_1_mqtt_client.html#af6a661ef6b047560e6b12056d43b032f',1,'awsiotsdk::MqttClient::Connect(std::chrono::milliseconds action_response_timeout, bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg, bool is_metrics_enabled)'],['../classawsiotsdk_1_1_network_connection.html#a794de5e7971077de1a80fa676ac8a0eb',1,'awsiotsdk::NetworkConnection::Connect()']]], + ['connect_25',['CONNECT',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334ab57e2519e26151feacdbe52076bc39ec',1,'awsiotsdk::mqtt']]], + ['connect_2ecpp_26',['Connect.cpp',['../_connect_8cpp.html',1,'']]], + ['connect_2ehpp_27',['Connect.hpp',['../_connect_8hpp.html',1,'']]], + ['connect_5fflags_5f_28',['connect_flags_',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a0cff34d17d63818dc37bae4dd01c0488',1,'awsiotsdk::mqtt::ConnectPacket']]], + ['connectactionasync_29',['ConnectActionAsync',['../classawsiotsdk_1_1mqtt_1_1_connect_action_async.html',1,'awsiotsdk::mqtt::ConnectActionAsync'],['../classawsiotsdk_1_1mqtt_1_1_connect_action_async.html#a0fcb723e59ac29013c469b720ae10daf',1,'awsiotsdk::mqtt::ConnectActionAsync::ConnectActionAsync()']]], + ['connectinternal_30',['ConnectInternal',['../classawsiotsdk_1_1_network_connection.html#a16dfb6897aad49921763cf17756e2fcf',1,'awsiotsdk::NetworkConnection']]], + ['connectivity_5finfo_5farray_5fkey_31',['CONNECTIVITY_INFO_ARRAY_KEY',['../classawsiotsdk_1_1_discovery_response.html#a21991846357297b228237f03f72550b8',1,'awsiotsdk::DiscoveryResponse']]], + ['connectivityinfo_32',['ConnectivityInfo',['../classawsiotsdk_1_1_connectivity_info.html',1,'awsiotsdk::ConnectivityInfo'],['../classawsiotsdk_1_1_connectivity_info.html#ad17fbb8cffb8eed8cf3cbd7dfd386450',1,'awsiotsdk::ConnectivityInfo::ConnectivityInfo()']]], + ['connectpacket_33',['ConnectPacket',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html',1,'awsiotsdk::mqtt::ConnectPacket'],['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a2a62c8fcf5d326b5eadeb0aa2c346d2a',1,'awsiotsdk::mqtt::ConnectPacket::ConnectPacket(bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg, bool is_metrics_enabled)'],['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a1ffca2961338aac483f27be61e538882',1,'awsiotsdk::mqtt::ConnectPacket::ConnectPacket(bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg)']]], + ['consolelogsystem_34',['ConsoleLogSystem',['../classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html',1,'awsiotsdk::util::Logging']]], + ['consolelogsystem_2ecpp_35',['ConsoleLogSystem.cpp',['../_console_log_system_8cpp.html',1,'']]], + ['consolelogsystem_2ehpp_36',['ConsoleLogSystem.hpp',['../_console_log_system_8hpp.html',1,'']]], + ['continue_5fexecution_5f_37',['continue_execution_',['../classawsiotsdk_1_1_client_core_state.html#a7665fb4616efbcbaa6f13a02a20b57d1',1,'awsiotsdk::ClientCoreState']]], + ['contributing_20guidelines_38',['Contributing Guidelines',['../md__c_o_n_t_r_i_b_u_t_i_n_g.html',1,'']]], + ['create_39',['Create',['../classawsiotsdk_1_1_mqtt_client.html#aea20340feeebe9d6782b10942de40b9d',1,'awsiotsdk::MqttClient::Create()'],['../classawsiotsdk_1_1mqtt_1_1_will_options.html#a1542fd84e9527f4b3e3c5a7c682f5da3',1,'awsiotsdk::mqtt::WillOptions::Create()'],['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a4257c96e7874f722275bfd67d9bfd08d',1,'awsiotsdk::mqtt::Subscription::Create()'],['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a76797604768ce129655efa21ebd3f1fc',1,'awsiotsdk::mqtt::ConnectPacket::Create(bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg, bool is_metrics_enabled)'],['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a322f6c91a6452c195e6826e3a32a4401',1,'awsiotsdk::mqtt::ConnectPacket::Create(bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg)'],['../classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html#a1e10369a086a93abb52855788fc2c8e7',1,'awsiotsdk::mqtt::DisconnectPacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html#a72e4416e640d81f53dd01733e845d7c2',1,'awsiotsdk::mqtt::PingreqPacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_connect_action_async.html#ad374d4118a2d9b47a66cf21af0b454d4',1,'awsiotsdk::mqtt::ConnectActionAsync::Create()'],['../classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html#a420dec30ff4d07e509ccf4ffddd4fa69',1,'awsiotsdk::mqtt::DisconnectActionAsync::Create()'],['../classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html#a1ccd7b9252009ba0632f0779bad9328b',1,'awsiotsdk::mqtt::KeepaliveActionRunner::Create()'],['../classawsiotsdk_1_1_greengrass_mqtt_client.html#adef7d9d43349a3649e21047ff2ce9f2b',1,'awsiotsdk::GreengrassMqttClient::Create(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)'],['../classawsiotsdk_1_1_greengrass_mqtt_client.html#a186993f9f68002c3a98b552b0a36132f',1,'awsiotsdk::GreengrassMqttClient::Create(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)'],['../classawsiotsdk_1_1_greengrass_mqtt_client.html#a3e3f792ffc7c5761e2780563bdd9f38f',1,'awsiotsdk::GreengrassMqttClient::Create(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)'],['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a51a38316b522f4d6b2299b4ea24ef581',1,'awsiotsdk::mqtt::NetworkReadActionRunner::Create()'],['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#accfb2c7d1ca6a52a4bd34f199e54ba24',1,'awsiotsdk::mqtt::PublishPacket::Create(std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, QoS qos, const util::String &payload)'],['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#ace5dfbb5418dc14da40b06e052837f9c',1,'awsiotsdk::mqtt::PublishPacket::Create(const util::Vector< unsigned char > &buf, bool is_retained, bool is_duplicate, QoS qos)'],['../classawsiotsdk_1_1mqtt_1_1_puback_packet.html#ac1a8a7f3d98fd54c453a135a7d6bac18',1,'awsiotsdk::mqtt::PubackPacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_publish_action_async.html#a29e17035ad68e2177dc8751f534064ac',1,'awsiotsdk::mqtt::PublishActionAsync::Create()'],['../classawsiotsdk_1_1mqtt_1_1_puback_action_async.html#a9f03b315b4880f36bfd6dc565942ac79',1,'awsiotsdk::mqtt::PubackActionAsync::Create()'],['../classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html#aaa08ed82b647bd64a019b7eb01c08a1c',1,'awsiotsdk::mqtt::SubscribePacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_suback_packet.html#ada4cfceead07131ee67eb1c1e3140606',1,'awsiotsdk::mqtt::SubackPacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html#a5adb492be0873d20c7dcfabe2937e748',1,'awsiotsdk::mqtt::UnsubscribePacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html#af7a7273cca6cc658df41eba6c6df97cf',1,'awsiotsdk::mqtt::UnsubackPacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html#a76bcac8f8cd40a81b1233fdcc106c137',1,'awsiotsdk::mqtt::SubscribeActionAsync::Create()'],['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html#a95252959e0905fac96c0b5ecab9b3d3e',1,'awsiotsdk::mqtt::UnsubscribeActionAsync::Create()'],['../classawsiotsdk_1_1_shadow.html#ab1c018b94701182a441c6668933e3ed1',1,'awsiotsdk::Shadow::Create()'],['../classawsiotsdk_1_1discovery_1_1_discover_action.html#ab8689d195c174735a172ba5d9cfaaf98',1,'awsiotsdk::discovery::DiscoverAction::Create()'],['../classawsiotsdk_1_1_client_core.html#a31feb448b75fe97b8837624209d4f3dd',1,'awsiotsdk::ClientCore::Create()'],['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#a5942fc007da0667eabd9f0f268a6b660',1,'awsiotsdk::discovery::DiscoverRequestData::Create()'],['../classawsiotsdk_1_1_mqtt_client.html#a84ce11ccf8fdde7fcfb65952393ba7e4',1,'awsiotsdk::MqttClient::Create()'],['../classawsiotsdk_1_1_jobs.html#a932eb58bb162bb3c78b7d9a746b15d53',1,'awsiotsdk::Jobs::Create()'],['../classawsiotsdk_1_1_mqtt_client.html#a92d93df73e596a64f709c5cde7fcb665',1,'awsiotsdk::MqttClient::Create()']]], + ['createactionrunner_40',['CreateActionRunner',['../classawsiotsdk_1_1_client_core.html#a7f6353e2afef666705ce560d25046ae8',1,'awsiotsdk::ClientCore']]], + ['createhandlerptr_41',['CreateHandlerPtr',['../classawsiotsdk_1_1_action.html#a1e055ca80b0b7cb742aeeec2aa2982c4',1,'awsiotsdk::Action']]], + ['createjobssubscription_42',['CreateJobsSubscription',['../classawsiotsdk_1_1_jobs.html#a296bdfcd2236a88678f68f7e68e0efa0',1,'awsiotsdk::Jobs']]], + ['cur_5fcore_5fthreads_5f_43',['cur_core_threads_',['../classawsiotsdk_1_1_client_core_state.html#a64e57e555355f5b401fc2bb425c18b73',1,'awsiotsdk::ClientCoreState']]], + ['cur_5fdevice_5fstate_5fdocument_5f_44',['cur_device_state_document_',['../classawsiotsdk_1_1_shadow.html#af9c1e8dc9bed4d0f198b61cbd50a34e8',1,'awsiotsdk::Shadow']]], + ['cur_5fserver_5fstate_5fdocument_5f_45',['cur_server_state_document_',['../classawsiotsdk_1_1_shadow.html#aed56b690d213719dea423936b8416b61',1,'awsiotsdk::Shadow']]], + ['cur_5fshadow_5fversion_5f_46',['cur_shadow_version_',['../classawsiotsdk_1_1_shadow.html#a682a01b475fb895aec337b6505209c8c',1,'awsiotsdk::Shadow']]] +]; diff --git a/docs/html/search/all_10.js b/docs/html/search/all_10.js new file mode 100644 index 0000000..c29c5c9 --- /dev/null +++ b/docs/html/search/all_10.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['read_0',['Read',['../classawsiotsdk_1_1_network_connection.html#a651e897c09d1240b432fd9308f929511',1,'awsiotsdk::NetworkConnection']]], + ['read_5fmutex_1',['read_mutex',['../classawsiotsdk_1_1_network_connection.html#a0807ac5cd179cb72682240750ad69cb7',1,'awsiotsdk::NetworkConnection']]], + ['readfromnetworkbuffer_2',['ReadFromNetworkBuffer',['../classawsiotsdk_1_1_action.html#a79d8a91104d018b79ba88c1c9c592276',1,'awsiotsdk::Action']]], + ['readinternal_3',['ReadInternal',['../classawsiotsdk_1_1_network_connection.html#adc1f0ab60dd9878f3d8e8b834c7af896',1,'awsiotsdk::NetworkConnection']]], + ['readpacketfromnetwork_4',['ReadPacketFromNetwork',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#ac33218e3fe1621151cbd9f4edb4be7d9',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['readresponsefromnetwork_5',['ReadResponseFromNetwork',['../classawsiotsdk_1_1discovery_1_1_discover_action.html#afa5fa04ea04dbb4a9d8802c88761cd0b',1,'awsiotsdk::discovery::DiscoverAction']]], + ['reconnect_5fhandler_5fptr_5f_6',['reconnect_handler_ptr_',['../classawsiotsdk_1_1_client_core_state.html#a9af66daf256c72595f5d525a6937d1b5',1,'awsiotsdk::ClientCoreState']]], + ['reconnectcallbackcontextdata_7',['ReconnectCallbackContextData',['../classawsiotsdk_1_1_reconnect_callback_context_data.html',1,'awsiotsdk']]], + ['register_5faction_5flock_5f_8',['register_action_lock_',['../classawsiotsdk_1_1_client_core_state.html#a6ae7c3725ba8537fe3302c9f693303b1',1,'awsiotsdk::ClientCoreState']]], + ['registeraction_9',['RegisterAction',['../classawsiotsdk_1_1_client_core.html#adc3bd4741d3c45e97bf83d3be2988aff',1,'awsiotsdk::ClientCore::RegisterAction()'],['../classawsiotsdk_1_1_client_core_state.html#a97432a6ae52c345cc6ee1e3ddcf7664e',1,'awsiotsdk::ClientCoreState::RegisterAction(ActionType action_type, Action::CreateHandlerPtr p_action_create_handler, std::shared_ptr< ActionState > p_action_state)']]], + ['registerpendingack_10',['RegisterPendingAck',['../classawsiotsdk_1_1_client_core_state.html#a9d8333ae8644332821a01bf4dd02c089',1,'awsiotsdk::ClientCoreState']]], + ['request_5fmapping_5f_11',['request_mapping_',['../classawsiotsdk_1_1_shadow.html#a63165b44ae816a87b9e3f92fdb6976df',1,'awsiotsdk::Shadow']]], + ['requesthandlerptr_12',['RequestHandlerPtr',['../classawsiotsdk_1_1_shadow.html#a45e6734c2fe1f0197b1eb446e03a6a17',1,'awsiotsdk::Shadow']]], + ['reserved_13',['RESERVED',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a83c7f2aa8c3ac10ed8beb75cad162827',1,'awsiotsdk::mqtt']]], + ['resetclienttokensuffix_14',['ResetClientTokenSuffix',['../classawsiotsdk_1_1_shadow.html#a15c2714648b6e4737302cf4d77868930',1,'awsiotsdk::Shadow']]], + ['response_5fdocument_5f_15',['response_document_',['../classawsiotsdk_1_1_discovery_response.html#a5854c97e7800f668477a655b241adefa',1,'awsiotsdk::DiscoveryResponse']]], + ['response_5ftype_5faccepted_5ftext_5f_16',['response_type_accepted_text_',['../classawsiotsdk_1_1_shadow.html#acc3c23a438266879b7c4c81d52f2a965',1,'awsiotsdk::Shadow']]], + ['response_5ftype_5fdelta_5ftext_5f_17',['response_type_delta_text_',['../classawsiotsdk_1_1_shadow.html#a8301d1e0145c7b616047f88357a1dc2e',1,'awsiotsdk::Shadow']]], + ['response_5ftype_5frejected_5ftext_5f_18',['response_type_rejected_text_',['../classawsiotsdk_1_1_shadow.html#a96d85ea7d7e3b21b17413dfffa9adfc4',1,'awsiotsdk::Shadow']]], + ['responsecode_19',['ResponseCode',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051',1,'awsiotsdk']]], + ['responsecode_2ecpp_20',['ResponseCode.cpp',['../_response_code_8cpp.html',1,'']]], + ['responsecode_2ehpp_21',['ResponseCode.hpp',['../_response_code_8hpp.html',1,'']]], + ['resubscribe_5fhandler_5fptr_5f_22',['resubscribe_handler_ptr_',['../classawsiotsdk_1_1_client_core_state.html#a0d56ba8e71ac4d888f57f8ecca55de60',1,'awsiotsdk::ClientCoreState']]], + ['resubscribecallbackcontextdata_23',['ResubscribeCallbackContextData',['../classawsiotsdk_1_1_resubscribe_callback_context_data.html',1,'awsiotsdk']]], + ['root_5fca_5fkey_24',['ROOT_CA_KEY',['../classawsiotsdk_1_1_discovery_response.html#aac4a26c41f522bdd0fe788d394700d90',1,'awsiotsdk::DiscoveryResponse']]] +]; diff --git a/docs/html/search/all_11.js b/docs/html/search/all_11.js new file mode 100644 index 0000000..851648d --- /dev/null +++ b/docs/html/search/all_11.js @@ -0,0 +1,72 @@ +var searchData= +[ + ['sendjobsdescribe_0',['SendJobsDescribe',['../classawsiotsdk_1_1_jobs.html#a9c6be668aa4479a5e2baf2cb748087ed',1,'awsiotsdk::Jobs']]], + ['sendjobsquery_1',['SendJobsQuery',['../classawsiotsdk_1_1_jobs.html#ad5f5f53374f3bd0bf1ed0d5e2f602707',1,'awsiotsdk::Jobs']]], + ['sendjobsstartnext_2',['SendJobsStartNext',['../classawsiotsdk_1_1_jobs.html#a07078c9f64bc55c43c71d3a7e5974b08',1,'awsiotsdk::Jobs']]], + ['sendjobsupdate_3',['SendJobsUpdate',['../classawsiotsdk_1_1_jobs.html#ae5f075414b4c67807ac4ffa33578d91a',1,'awsiotsdk::Jobs']]], + ['serialized_5fpacket_5flength_5f_4',['serialized_packet_length_',['../classawsiotsdk_1_1mqtt_1_1_packet.html#a0c22d5ab57787eb7194538f5e4d0650a',1,'awsiotsdk::mqtt::Packet']]], + ['setackindex_5',['SetAckIndex',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a2c773d95ef14803f56dd8543401d308b',1,'awsiotsdk::mqtt::Subscription']]], + ['setactionid_6',['SetActionId',['../classawsiotsdk_1_1mqtt_1_1_packet.html#a05d6fd383a02c1dad0f2f7180b8c94f8',1,'awsiotsdk::mqtt::Packet::SetActionId()'],['../classawsiotsdk_1_1_action_data.html#ab17bf9edafe120477f7aa781b76d8e76',1,'awsiotsdk::ActionData::SetActionId()'],['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#aa357cb351cc47e7ae7f09798cd639159',1,'awsiotsdk::discovery::DiscoverRequestData::SetActionId()']]], + ['setactive_7',['SetActive',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a88e0decb31d94a2fba0aec5144f5368c',1,'awsiotsdk::mqtt::Subscription']]], + ['setautoreconnectenabled_8',['SetAutoReconnectEnabled',['../classawsiotsdk_1_1_mqtt_client.html#ac044cfcd6384189000e892b47ac794f8',1,'awsiotsdk::MqttClient']]], + ['setconnectflags_9',['SetConnectFlags',['../classawsiotsdk_1_1mqtt_1_1_will_options.html#a4a925ebacee2cb30002a8f92c0dd17c6',1,'awsiotsdk::mqtt::WillOptions']]], + ['setdisconnectcallbackptr_10',['SetDisconnectCallbackPtr',['../classawsiotsdk_1_1_mqtt_client.html#a1784e886c9ca4f9eaa42d2a0be7d26b4',1,'awsiotsdk::MqttClient']]], + ['setloglevel_11',['SetLogLevel',['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html#a6cfbf9853ed9e4805273d402c754f219',1,'awsiotsdk::util::Logging::FormattedLogSystem']]], + ['setmaxactionqueuesize_12',['SetMaxActionQueueSize',['../classawsiotsdk_1_1_client_core_state.html#a9f89c92363682f93be53d12efe28882a',1,'awsiotsdk::ClientCoreState']]], + ['setmaxqos_13',['SetMaxQos',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#ab539ee75c4e16f2ac23773de7ee8a530',1,'awsiotsdk::mqtt::Subscription']]], + ['setmaxreconnectbackofftimeout_14',['SetMaxReconnectBackoffTimeout',['../classawsiotsdk_1_1_mqtt_client.html#a243cd5ec872b2d40cecc045a35b9742d',1,'awsiotsdk::MqttClient']]], + ['setminreconnectbackofftimeout_15',['SetMinReconnectBackoffTimeout',['../classawsiotsdk_1_1_mqtt_client.html#af8825e22dafe157ee1491f273db9af89',1,'awsiotsdk::MqttClient']]], + ['setparentthreadsync_16',['SetParentThreadSync',['../classawsiotsdk_1_1_action.html#a00d2052001858ccc95b97c1a16136946',1,'awsiotsdk::Action']]], + ['setprocessqueuedactions_17',['SetProcessQueuedActions',['../classawsiotsdk_1_1_client_core_state.html#aeadcf9d6c1e027a800d063351fbf92d4',1,'awsiotsdk::ClientCoreState::SetProcessQueuedActions()'],['../classawsiotsdk_1_1_client_core.html#aef3de407a8290f172a23beae86e96fdc',1,'awsiotsdk::ClientCore::SetProcessQueuedActions()']]], + ['setreconnectcallbackptr_18',['SetReconnectCallbackPtr',['../classawsiotsdk_1_1_mqtt_client.html#acbc7995b18dea34b4286ce058628c7e8',1,'awsiotsdk::MqttClient']]], + ['setresponsedocument_19',['SetResponseDocument',['../classawsiotsdk_1_1_discovery_response.html#a2fe515dc853623dd9d1001b2098fd1c9',1,'awsiotsdk::DiscoveryResponse']]], + ['setresubscribecallbackptr_20',['SetResubscribeCallbackPtr',['../classawsiotsdk_1_1_mqtt_client.html#a24f1ae044301ea709c570b07f9aa032c',1,'awsiotsdk::MqttClient']]], + ['shadow_21',['Shadow',['../classawsiotsdk_1_1_shadow.html',1,'awsiotsdk::Shadow'],['../classawsiotsdk_1_1_shadow.html#ac61365b06231fd3056c471ca04300f39',1,'awsiotsdk::Shadow::Shadow()']]], + ['shadow_2ecpp_22',['Shadow.cpp',['../_shadow_8cpp.html',1,'']]], + ['shadow_2ehpp_23',['Shadow.hpp',['../_shadow_8hpp.html',1,'']]], + ['shadow_5fjson_5fbuffer_5ftruncated_24',['SHADOW_JSON_BUFFER_TRUNCATED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae941f35b3d82af913a2466391d62df3e',1,'awsiotsdk']]], + ['shadow_5fjson_5fempty_5ferror_25',['SHADOW_JSON_EMPTY_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a2efe4fdf463d0e4c87811db7d86c4c2a',1,'awsiotsdk']]], + ['shadow_5fjson_5ferror_26',['SHADOW_JSON_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051af9ff8e5e5f8a9fc6bd9b5c9fb161a6d2',1,'awsiotsdk']]], + ['shadow_5fmqtt_5fclient_5fnot_5fset_5ferror_27',['SHADOW_MQTT_CLIENT_NOT_SET_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ad41849a1814372b0ec8941c38268f441',1,'awsiotsdk']]], + ['shadow_5fmqtt_5fdisconnected_5ferror_28',['SHADOW_MQTT_DISCONNECTED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a9b0cf2d35c904250be07e908ee7b5ec4',1,'awsiotsdk']]], + ['shadow_5fnothing_5fto_5fupdate_29',['SHADOW_NOTHING_TO_UPDATE',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a64267290a88bd8ff2c6061512cc2682e',1,'awsiotsdk']]], + ['shadow_5freceived_5fdelta_30',['SHADOW_RECEIVED_DELTA',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a13e4bb360a456d19bdaed0a1778cc5b9',1,'awsiotsdk']]], + ['shadow_5freceived_5fold_5fversion_5fupdate_31',['SHADOW_RECEIVED_OLD_VERSION_UPDATE',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aac6d764341d72e9cec574545bef3d265',1,'awsiotsdk']]], + ['shadow_5frequest_5faccepted_32',['SHADOW_REQUEST_ACCEPTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ad7e89037b08d269c4f7d752a110a6166',1,'awsiotsdk']]], + ['shadow_5frequest_5fmap_5fempty_33',['SHADOW_REQUEST_MAP_EMPTY',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a1b207877ebbcc3dea04441bd696cf164',1,'awsiotsdk']]], + ['shadow_5frequest_5frejected_34',['SHADOW_REQUEST_REJECTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a434f2e946a9ce002d97df3ad14cb5f45',1,'awsiotsdk']]], + ['shadow_5ftopic_5faction_5fprefix_5f_35',['shadow_topic_action_prefix_',['../classawsiotsdk_1_1_shadow.html#a77c097112465cba9b64655d0d172fc99',1,'awsiotsdk::Shadow']]], + ['shadow_5ftopic_5fdelete_5f_36',['shadow_topic_delete_',['../classawsiotsdk_1_1_shadow.html#a26172fd454a626f704626b6367c9528a',1,'awsiotsdk::Shadow']]], + ['shadow_5ftopic_5fdelta_5f_37',['shadow_topic_delta_',['../classawsiotsdk_1_1_shadow.html#a643c30bd72c1fbf3cad846244b9d3eb8',1,'awsiotsdk::Shadow']]], + ['shadow_5ftopic_5fget_5f_38',['shadow_topic_get_',['../classawsiotsdk_1_1_shadow.html#a1301b0e964c3392baf83ad1a222ea2aa',1,'awsiotsdk::Shadow']]], + ['shadow_5ftopic_5fupdate_5f_39',['shadow_topic_update_',['../classawsiotsdk_1_1_shadow.html#a9093091fe241afe1f9075d34d49f8288',1,'awsiotsdk::Shadow']]], + ['shadow_5funexpected_5fresponse_5fpayload_40',['SHADOW_UNEXPECTED_RESPONSE_PAYLOAD',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051af0b8c9d176e210e6478b00ca7964b178',1,'awsiotsdk']]], + ['shadow_5funexpected_5fresponse_5ftopic_41',['SHADOW_UNEXPECTED_RESPONSE_TOPIC',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a02564577052ca833e7d69e25cb271207',1,'awsiotsdk']]], + ['shadow_5funexpected_5fresponse_5ftype_42',['SHADOW_UNEXPECTED_RESPONSE_TYPE',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a8eb64e3dd752368d220e71b8da424a12',1,'awsiotsdk']]], + ['shadow_5fwait_5ffor_5fpublish_43',['SHADOW_WAIT_FOR_PUBLISH',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae10437b97b29422affd74c1809817812',1,'awsiotsdk']]], + ['shadowrequesttype_44',['ShadowRequestType',['../_shadow_8hpp.html#a81938aeb5ef03ccfbf6a49faf3b09a24',1,'awsiotsdk']]], + ['shadowresponsetype_45',['ShadowResponseType',['../_shadow_8hpp.html#a0e03f5adfd568e168b555e8cd5e2f00d',1,'awsiotsdk']]], + ['shutdownawslogging_46',['ShutdownAWSLogging',['../_logging_8hpp.html#aec975326412017579929c165e37cb419',1,'awsiotsdk::util::Logging']]], + ['string_2ehpp_47',['String.hpp',['../_string_8hpp.html',1,'']]], + ['stringstream_2ehpp_48',['StringStream.hpp',['../_string_stream_8hpp.html',1,'']]], + ['suback_49',['SUBACK',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334af9e73deb3ec309f3553de1f5fe0820c1',1,'awsiotsdk::mqtt']]], + ['suback_5flist_5f_50',['suback_list_',['../classawsiotsdk_1_1mqtt_1_1_suback_packet.html#aa4d05e0f912ad096981e42b5794dbb3a',1,'awsiotsdk::mqtt::SubackPacket']]], + ['subackpacket_51',['SubackPacket',['../classawsiotsdk_1_1mqtt_1_1_suback_packet.html',1,'awsiotsdk::mqtt::SubackPacket'],['../classawsiotsdk_1_1mqtt_1_1_suback_packet.html#a61b844be8d0e34285a78319c31adfffb',1,'awsiotsdk::mqtt::SubackPacket::SubackPacket()']]], + ['subscribe_52',['Subscribe',['../classawsiotsdk_1_1_mqtt_client.html#a3e0f12db09d30b971e917bcc98fd54f3',1,'awsiotsdk::MqttClient']]], + ['subscribe_53',['SUBSCRIBE',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a45b73ef479821e71be9f69a190f2bb86',1,'awsiotsdk::mqtt']]], + ['subscribe_2ecpp_54',['Subscribe.cpp',['../_subscribe_8cpp.html',1,'']]], + ['subscribe_2ehpp_55',['Subscribe.hpp',['../_subscribe_8hpp.html',1,'']]], + ['subscribeactionasync_56',['SubscribeActionAsync',['../classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html',1,'awsiotsdk::mqtt::SubscribeActionAsync'],['../classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html#aa5b2847dbf74ace208f1af3f93d037ef',1,'awsiotsdk::mqtt::SubscribeActionAsync::SubscribeActionAsync()']]], + ['subscribeasync_57',['SubscribeAsync',['../classawsiotsdk_1_1_mqtt_client.html#aeba4882234059894d342d2d050c86029',1,'awsiotsdk::MqttClient']]], + ['subscribepacket_58',['SubscribePacket',['../classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html',1,'awsiotsdk::mqtt::SubscribePacket'],['../classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html#a11178facbe2bc6a842ddacffe815540f',1,'awsiotsdk::mqtt::SubscribePacket::SubscribePacket()']]], + ['subscription_59',['Subscription',['../classawsiotsdk_1_1mqtt_1_1_subscription.html',1,'awsiotsdk::mqtt::Subscription'],['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a7e633ea787535f1ee69cceb34932918c',1,'awsiotsdk::mqtt::Subscription::Subscription()']]], + ['subscription_5flist_5f_60',['subscription_list_',['../classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html#aa9b53fe2f3e84b74ef8a3c4e9599ff74',1,'awsiotsdk::mqtt::SubscribePacket']]], + ['subscriptionhandler_61',['SubscriptionHandler',['../classawsiotsdk_1_1_shadow.html#a341cdd863d75591af30f77cd7a105513',1,'awsiotsdk::Shadow']]], + ['subscriptionhandlercontextdata_62',['SubscriptionHandlerContextData',['../classawsiotsdk_1_1mqtt_1_1_subscription_handler_context_data.html',1,'awsiotsdk::mqtt']]], + ['success_63',['SUCCESS',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ad0749aaba8b833466dfcbb0428e4f89c',1,'awsiotsdk']]], + ['sync_5faction_5frequest_5flock_5f_64',['sync_action_request_lock_',['../classawsiotsdk_1_1_client_core_state.html#a107d93fda0cb96301a5b79aa0ee815c2',1,'awsiotsdk::ClientCoreState']]], + ['sync_5faction_5fresponse_5f_65',['sync_action_response_',['../classawsiotsdk_1_1_client_core_state.html#aa218702f62bc9846912d3448333399d5',1,'awsiotsdk::ClientCoreState']]], + ['sync_5faction_5fresponse_5flock_5f_66',['sync_action_response_lock_',['../classawsiotsdk_1_1_client_core_state.html#a1d38208c9731611cd4ea70c339839dbe',1,'awsiotsdk::ClientCoreState']]], + ['sync_5faction_5fresponse_5fwait_5f_67',['sync_action_response_wait_',['../classawsiotsdk_1_1_client_core_state.html#a1c6dc3833401cb24f441edb7a7f3c0d8',1,'awsiotsdk::ClientCoreState']]], + ['syncactionhandler_68',['SyncActionHandler',['../classawsiotsdk_1_1_client_core_state.html#ab04e5840801310033621d2f1a3efc9bf',1,'awsiotsdk::ClientCoreState']]] +]; diff --git a/docs/html/search/all_12.js b/docs/html/search/all_12.js new file mode 100644 index 0000000..4671796 --- /dev/null +++ b/docs/html/search/all_12.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['thing_5fname_5f_0',['thing_name_',['../classawsiotsdk_1_1_shadow.html#a902a36e7a0641e4f009d6fe44b903e60',1,'awsiotsdk::Shadow']]], + ['thread_5fexiting_1',['THREAD_EXITING',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a2f3ab31ba99976792d317fa8422fc512',1,'awsiotsdk']]], + ['thread_5fmap_5f_2',['thread_map_',['../classawsiotsdk_1_1_client_core.html#a2eb494e70549db741e544be2bab5c96c',1,'awsiotsdk::ClientCore']]], + ['threadtask_3',['ThreadTask',['../classawsiotsdk_1_1util_1_1_threading_1_1_thread_task.html',1,'awsiotsdk::util::Threading']]], + ['threadtask_2ecpp_4',['ThreadTask.cpp',['../_thread_task_8cpp.html',1,'']]], + ['time_5fof_5frequest_5f_5',['time_of_request_',['../classawsiotsdk_1_1_client_core_state_1_1_pending_ack_data.html#aa445d4ee376f6a7eff198e4a40b246ad',1,'awsiotsdk::ClientCoreState::PendingAckData']]], + ['tostring_6',['ToString',['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#ac6cfafcbf552988f424f014d4702dc77',1,'awsiotsdk::discovery::DiscoverRequestData::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a58cddfcc5cbebdd3cce20e751a4970d4',1,'awsiotsdk::mqtt::ConnectPacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html#a8dd21bf8d035457696226132fbf196cb',1,'awsiotsdk::mqtt::DisconnectPacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html#a3f9105cfef83a3254fde283f61ea8b9c',1,'awsiotsdk::mqtt::PingreqPacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a4a22eff11c7ad1d13d2e99ba4d144b1e',1,'awsiotsdk::mqtt::PublishPacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_puback_packet.html#a828066fcd422db7bba8dfbec38e9ab6c',1,'awsiotsdk::mqtt::PubackPacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html#a578ea5007c7074d01a9318d9b30696be',1,'awsiotsdk::mqtt::SubscribePacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_suback_packet.html#aca86e4c291cc647c25956b7f8422b952',1,'awsiotsdk::mqtt::SubackPacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html#a7f19b40d8e423a72dece037b2a479e7c',1,'awsiotsdk::mqtt::UnsubscribePacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html#a344a55f2e90873c74a19b0473be3e2ed',1,'awsiotsdk::mqtt::UnsubackPacket::ToString()'],['../namespaceawsiotsdk_1_1_response_helper.html#a5397c423784f7787416903909e75640e',1,'awsiotsdk::ResponseHelper::ToString()']]] +]; diff --git a/docs/html/search/all_13.js b/docs/html/search/all_13.js new file mode 100644 index 0000000..bd13b97 --- /dev/null +++ b/docs/html/search/all_13.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['unsuback_0',['UNSUBACK',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334ac2d272379232110bc1215aaed4dad386',1,'awsiotsdk::mqtt']]], + ['unsubackpacket_1',['UnsubackPacket',['../classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html',1,'awsiotsdk::mqtt::UnsubackPacket'],['../classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html#a6e55a91e39e7efcb0de19d6159169635',1,'awsiotsdk::mqtt::UnsubackPacket::UnsubackPacket()']]], + ['unsubscribe_2',['Unsubscribe',['../classawsiotsdk_1_1_mqtt_client.html#a4f815b2e7142a2c806b53a0874c2ba06',1,'awsiotsdk::MqttClient']]], + ['unsubscribe_3',['UNSUBSCRIBE',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a62b18b8274e34fd701d0b684a32c633f',1,'awsiotsdk::mqtt']]], + ['unsubscribeactionasync_4',['UnsubscribeActionAsync',['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html',1,'awsiotsdk::mqtt::UnsubscribeActionAsync'],['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html#af136242f2e0e171f47729c0e700314f1',1,'awsiotsdk::mqtt::UnsubscribeActionAsync::UnsubscribeActionAsync()']]], + ['unsubscribeasync_5',['UnsubscribeAsync',['../classawsiotsdk_1_1_mqtt_client.html#a3206513894cd10d8cbb7733848174e76',1,'awsiotsdk::MqttClient']]], + ['unsubscribepacket_6',['UnsubscribePacket',['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html',1,'awsiotsdk::mqtt::UnsubscribePacket'],['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html#a435b9d19997af557c0bc7f537d6fbda4',1,'awsiotsdk::mqtt::UnsubscribePacket::UnsubscribePacket()']]], + ['updatedeviceshadow_7',['UpdateDeviceShadow',['../classawsiotsdk_1_1_shadow.html#a6031b52d2dfe8b43b79820860b4a701c',1,'awsiotsdk::Shadow']]], + ['utf8string_8',['Utf8String',['../classawsiotsdk_1_1_utf8_string.html',1,'awsiotsdk']]], + ['utf8string_2ecpp_9',['Utf8String.cpp',['../_utf8_string_8cpp.html',1,'']]], + ['utf8string_2ehpp_10',['Utf8String.hpp',['../_utf8_string_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/all_14.js b/docs/html/search/all_14.js new file mode 100644 index 0000000..40a5969 --- /dev/null +++ b/docs/html/search/all_14.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['vector_2ehpp_0',['Vector.hpp',['../_vector_8hpp.html',1,'']]], + ['version_1',['Version',['../_common_8hpp.html#ac317afc13d331a2ff967daf9e7618bfa',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/all_15.js b/docs/html/search/all_15.js new file mode 100644 index 0000000..0b55176 --- /dev/null +++ b/docs/html/search/all_15.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['websocket_5fdisconnect_5ferror_0',['WEBSOCKET_DISCONNECT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a64c098de2eda47f06a45422cda10c651',1,'awsiotsdk']]], + ['websocket_5fframe_5freceive_5ferror_1',['WEBSOCKET_FRAME_RECEIVE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae1b46f6d71f307266ead52c6ac5e18e1',1,'awsiotsdk']]], + ['websocket_5fframe_5ftransmit_5ferror_2',['WEBSOCKET_FRAME_TRANSMIT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a48173ab82545ca357018ca0520caa46f',1,'awsiotsdk']]], + ['websocket_5fgen_5fclient_5fkey_5ferror_3',['WEBSOCKET_GEN_CLIENT_KEY_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a753dd7363768f3988686ef10af7e7801',1,'awsiotsdk']]], + ['websocket_5fget_5futc_5ftime_5ffailed_4',['WEBSOCKET_GET_UTC_TIME_FAILED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a1729bd0903c8c0837101ec5320489256',1,'awsiotsdk']]], + ['websocket_5fhandshake_5ferror_5',['WEBSOCKET_HANDSHAKE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae34d895cae6f8adca512dab163c3a02f',1,'awsiotsdk']]], + ['websocket_5fhandshake_5fread_6',['WEBSOCKET_HANDSHAKE_READ',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051abd125d5a32c87fc230b63b72e915c557',1,'awsiotsdk']]], + ['websocket_5fhandshake_5fverify_5ferror_7',['WEBSOCKET_HANDSHAKE_VERIFY_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a7c83206105abb61ca17f93b77f20ebc4',1,'awsiotsdk']]], + ['websocket_5fhandshake_5fwrite_8',['WEBSOCKET_HANDSHAKE_WRITE',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a34b7a7fb3826d0020ecc0b315d1a3ab9',1,'awsiotsdk']]], + ['websocket_5fmax_5flifetime_5freached_9',['WEBSOCKET_MAX_LIFETIME_REACHED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae36e61a9bbec2c4f3da66a26267d488a',1,'awsiotsdk']]], + ['websocket_5fprotocol_5fviolation_10',['WEBSOCKET_PROTOCOL_VIOLATION',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ab91184f0990bf932d881a6446640fc8d',1,'awsiotsdk']]], + ['websocket_5fsign_5furl_5fno_5fmem_11',['WEBSOCKET_SIGN_URL_NO_MEM',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a356346f1481c1ea2cf1c8c3c0c94e6dd',1,'awsiotsdk']]], + ['websocket_5fwslay_5fcontext_5finit_5ferror_12',['WEBSOCKET_WSLAY_CONTEXT_INIT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aefde6372dd5a61890f2c0088275af731',1,'awsiotsdk']]], + ['willoptions_13',['WillOptions',['../classawsiotsdk_1_1mqtt_1_1_will_options.html',1,'awsiotsdk::mqtt::WillOptions'],['../classawsiotsdk_1_1mqtt_1_1_will_options.html#ad6c167fedfd2ff0c9ec8e30128fbf7a0',1,'awsiotsdk::mqtt::WillOptions::WillOptions()']]], + ['write_14',['Write',['../classawsiotsdk_1_1_network_connection.html#adbfc2ced904d51efa42b46a38b92e4ec',1,'awsiotsdk::NetworkConnection']]], + ['write_5fmutex_15',['write_mutex',['../classawsiotsdk_1_1_network_connection.html#a351f302333519b90b862d798486e0af9',1,'awsiotsdk::NetworkConnection']]], + ['writeinternal_16',['WriteInternal',['../classawsiotsdk_1_1_network_connection.html#abc09fbf4e86c0261f9185da614d2f8b0',1,'awsiotsdk::NetworkConnection']]], + ['writetobuffer_17',['WriteToBuffer',['../classawsiotsdk_1_1mqtt_1_1_will_options.html#a5ae572d5d9f05d609e27b776baa20244',1,'awsiotsdk::mqtt::WillOptions']]], + ['writetonetworkbuffer_18',['WriteToNetworkBuffer',['../classawsiotsdk_1_1_action.html#aef5ff915c2ce04b0f43931784b681f74',1,'awsiotsdk::Action']]], + ['writetopath_19',['WriteToPath',['../classawsiotsdk_1_1_discovery_response.html#ab6a90120d38d038c892692eb703a1248',1,'awsiotsdk::DiscoveryResponse']]] +]; diff --git a/docs/html/search/all_16.js b/docs/html/search/all_16.js new file mode 100644 index 0000000..00bf36a --- /dev/null +++ b/docs/html/search/all_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7eclientcorestate_0',['~ClientCoreState',['../classawsiotsdk_1_1_client_core_state.html#ad9b82ca151aa764cd3cc5bfa4ff6f3dd',1,'awsiotsdk::ClientCoreState']]] +]; diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js new file mode 100644 index 0000000..7199ea2 --- /dev/null +++ b/docs/html/search/all_2.js @@ -0,0 +1,35 @@ +var searchData= +[ + ['decoderemaininglength_0',['DecodeRemainingLength',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#acd27a82337fd3b5e063cbf75e5d8cdad',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['default_5fcore_5fthread_5fsleep_5fduration_5fms_1',['DEFAULT_CORE_THREAD_SLEEP_DURATION_MS',['../_client_core_state_8hpp.html#a76f2c20218b2cd066a5fff882bd09c9a',1,'ClientCoreState.hpp']]], + ['default_5fdiscovery_5fresponse_5ffile_5fname_2',['DEFAULT_DISCOVERY_RESPONSE_FILE_NAME',['../classawsiotsdk_1_1_discovery_response.html#a4aea1d811df00a3f9bbcefa02027c6d7',1,'awsiotsdk::DiscoveryResponse']]], + ['default_5fmax_5fqueue_5fsize_3',['DEFAULT_MAX_QUEUE_SIZE',['../_client_core_state_8hpp.html#ac1abf38b1e3b065c81148adef606c962',1,'ClientCoreState.hpp']]], + ['deleteexpiredacks_4',['DeleteExpiredAcks',['../classawsiotsdk_1_1_client_core_state.html#af97d7a6b48cb4e24ab02e8ceff3fa639',1,'awsiotsdk::ClientCoreState']]], + ['deletependingack_5',['DeletePendingAck',['../classawsiotsdk_1_1_client_core_state.html#a6621175906d2ce32f124c0dc6990d3ba',1,'awsiotsdk::ClientCoreState']]], + ['development_20guide_6',['Development Guide',['../md__dev_guide.html',1,'']]], + ['disconnect_7',['DISCONNECT',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334add7cd0eb57db08d4f98abc48e5593462',1,'awsiotsdk::mqtt']]], + ['disconnect_8',['Disconnect',['../classawsiotsdk_1_1_network_connection.html#a494c0109bbfd82c6fdcb166f26a2fd51',1,'awsiotsdk::NetworkConnection::Disconnect()'],['../classawsiotsdk_1_1_mqtt_client.html#a81bc1cfb38a5eeb84df273f5228010e6',1,'awsiotsdk::MqttClient::Disconnect()']]], + ['disconnect_5fhandler_5fptr_5f_9',['disconnect_handler_ptr_',['../classawsiotsdk_1_1_client_core_state.html#aaa10e5259593df1f64b84986e5d693fc',1,'awsiotsdk::ClientCoreState']]], + ['disconnectactionasync_10',['DisconnectActionAsync',['../classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html',1,'awsiotsdk::mqtt::DisconnectActionAsync'],['../classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html#a044864f771a4f9a28def532c1387a964',1,'awsiotsdk::mqtt::DisconnectActionAsync::DisconnectActionAsync()']]], + ['disconnectcallbackcontextdata_11',['DisconnectCallbackContextData',['../classawsiotsdk_1_1_disconnect_callback_context_data.html',1,'awsiotsdk']]], + ['disconnectinternal_12',['DisconnectInternal',['../classawsiotsdk_1_1_network_connection.html#ad3327debc2266d6499c1f7b5e6f2dfff',1,'awsiotsdk::NetworkConnection']]], + ['disconnectpacket_13',['DisconnectPacket',['../classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html',1,'awsiotsdk::mqtt::DisconnectPacket'],['../classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html#aa3d45d31d71bb0475459bff7883f018d',1,'awsiotsdk::mqtt::DisconnectPacket::DisconnectPacket()']]], + ['discover_14',['Discover',['../classawsiotsdk_1_1_greengrass_mqtt_client.html#a019ab163e56b2e51683cdbc70d4f818c',1,'awsiotsdk::GreengrassMqttClient']]], + ['discover_5faction_5fno_5finformation_5fpresent_15',['DISCOVER_ACTION_NO_INFORMATION_PRESENT',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a0702b7d935c87570570b447ee19c7505',1,'awsiotsdk']]], + ['discover_5faction_5frequest_5ffailed_5ferror_16',['DISCOVER_ACTION_REQUEST_FAILED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a9eded4f8f80e6e3ee03d4997859a95de',1,'awsiotsdk']]], + ['discover_5faction_5frequest_5foverload_17',['DISCOVER_ACTION_REQUEST_OVERLOAD',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a1d73418d145089030c2ca9803110205d',1,'awsiotsdk']]], + ['discover_5faction_5frequest_5ftimed_5fout_5ferror_18',['DISCOVER_ACTION_REQUEST_TIMED_OUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a6507103b22a590c88a4d493de0f31629',1,'awsiotsdk']]], + ['discover_5faction_5fserver_5ferror_19',['DISCOVER_ACTION_SERVER_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051abc03b0e2cf431f601bc0f4de54cb7e09',1,'awsiotsdk']]], + ['discover_5faction_5fsuccess_20',['DISCOVER_ACTION_SUCCESS',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aabf738cd60807073203afcf3519facea',1,'awsiotsdk']]], + ['discover_5faction_5funauthorized_21',['DISCOVER_ACTION_UNAUTHORIZED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aaac73635b7c4989a337e668b202c18b3',1,'awsiotsdk']]], + ['discover_5fresponse_5funexpected_5fjson_5fstructure_5ferror_22',['DISCOVER_RESPONSE_UNEXPECTED_JSON_STRUCTURE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a1730532b91d55604702a99827162f2c0',1,'awsiotsdk']]], + ['discoveraction_23',['DiscoverAction',['../classawsiotsdk_1_1discovery_1_1_discover_action.html',1,'awsiotsdk::discovery::DiscoverAction'],['../classawsiotsdk_1_1discovery_1_1_discover_action.html#ae1c5baeabeacc172e7d387468f27b0bd',1,'awsiotsdk::discovery::DiscoverAction::DiscoverAction()']]], + ['discoverrequestdata_24',['DiscoverRequestData',['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html',1,'awsiotsdk::discovery::DiscoverRequestData'],['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#a3178fc7634caae43953b67b3e69003f5',1,'awsiotsdk::discovery::DiscoverRequestData::DiscoverRequestData()']]], + ['discovery_2ecpp_25',['Discovery.cpp',['../_discovery_8cpp.html',1,'']]], + ['discovery_2ehpp_26',['Discovery.hpp',['../_discovery_8hpp.html',1,'']]], + ['discovery_5frequest_5fdata_5f_27',['discovery_request_data_',['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#ac720c1ff20add6bc62c314385544d88a',1,'awsiotsdk::discovery::DiscoverRequestData']]], + ['discovery_5fresponse_5f_28',['discovery_response_',['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#a2e75af0d0a9207d869981b0b0efa6052',1,'awsiotsdk::discovery::DiscoverRequestData']]], + ['discoveryresponse_29',['DiscoveryResponse',['../classawsiotsdk_1_1_discovery_response.html',1,'awsiotsdk::DiscoveryResponse'],['../classawsiotsdk_1_1_discovery_response.html#a710f51a1cc7d0958be1044ac4d48f3a4',1,'awsiotsdk::DiscoveryResponse::DiscoveryResponse()']]], + ['discoveryresponse_2ecpp_30',['DiscoveryResponse.cpp',['../_discovery_response_8cpp.html',1,'']]], + ['discoveryresponse_2ehpp_31',['DiscoveryResponse.hpp',['../_discovery_response_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js new file mode 100644 index 0000000..6791293 --- /dev/null +++ b/docs/html/search/all_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['enqueueoutboundaction_0',['EnqueueOutboundAction',['../classawsiotsdk_1_1_client_core_state.html#a4abb2e13eb14ce8b699f1a10c59e11a9',1,'awsiotsdk::ClientCoreState']]] +]; diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js new file mode 100644 index 0000000..d5fd4b6 --- /dev/null +++ b/docs/html/search/all_4.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['failure_0',['FAILURE',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a36fc6065a3e970bc3e6b2e59da52bf2a',1,'awsiotsdk']]], + ['file_5fname_5finvalid_1',['FILE_NAME_INVALID',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a5fc7e55af65f67c982bbcc88fe1a1fe9',1,'awsiotsdk']]], + ['file_5fopen_5ferror_2',['FILE_OPEN_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a08715903eca17abcd7ecdb74bc10aa4b',1,'awsiotsdk']]], + ['find_5finvalid_3',['find_invalid',['../_utf8_string_8cpp.html#a84016f300c05647745c6a1b695928b1e',1,'awsiotsdk::utf8']]], + ['fixed_5fheader_5f_4',['fixed_header_',['../classawsiotsdk_1_1mqtt_1_1_packet.html#ad2f8c03adbfa67777395a5b6be494d3f',1,'awsiotsdk::mqtt::Packet']]], + ['formattedlogsystem_5',['FormattedLogSystem',['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html',1,'awsiotsdk::util::Logging::FormattedLogSystem'],['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html#a5ad87d3bcfe2b3f5b9ccf5bba91d4b6c',1,'awsiotsdk::util::Logging::FormattedLogSystem::FormattedLogSystem()']]], + ['formattedlogsystem_2ecpp_6',['FormattedLogSystem.cpp',['../_formatted_log_system_8cpp.html',1,'']]], + ['formattedlogsystem_2ehpp_7',['FormattedLogSystem.hpp',['../_formatted_log_system_8hpp.html',1,'']]], + ['forwardreceivedack_8',['ForwardReceivedAck',['../classawsiotsdk_1_1_client_core_state.html#a96c145303573c305b12865925e099ddd',1,'awsiotsdk::ClientCoreState']]] +]; diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js new file mode 100644 index 0000000..a8e05e9 --- /dev/null +++ b/docs/html/search/all_5.js @@ -0,0 +1,47 @@ +var searchData= +[ + ['get_5fsequence_5f1_0',['get_sequence_1',['../_utf8_string_8cpp.html#afb4c298bf6c392591c06ca2d68d0c56a',1,'awsiotsdk::utf8::internal']]], + ['getactioncreatehandler_1',['GetActionCreateHandler',['../classawsiotsdk_1_1_client_core_state.html#a5c92f8d890c477075aba359238ab2335',1,'awsiotsdk::ClientCoreState']]], + ['getactionid_2',['GetActionId',['../classawsiotsdk_1_1_action_data.html#abe37b5817be7992435cb400e4924fbae',1,'awsiotsdk::ActionData::GetActionId()'],['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#ac6245e2baca9303c4ba769de06f6c4c1',1,'awsiotsdk::discovery::DiscoverRequestData::GetActionId()'],['../classawsiotsdk_1_1mqtt_1_1_packet.html#a440fd11b52815d468225073d91d464d1',1,'awsiotsdk::mqtt::Packet::GetActionId()']]], + ['getactioninfo_3',['GetActionInfo',['../classawsiotsdk_1_1_action.html#aefd247484e07d9f45eb863ae298d8412',1,'awsiotsdk::Action']]], + ['getactiontype_4',['GetActionType',['../classawsiotsdk_1_1_action.html#a5d20213df835252c3a17efa4af61f36f',1,'awsiotsdk::Action']]], + ['getclientid_5',['GetClientID',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a03669d12c5ed74603e9adfd8d75a7d0a',1,'awsiotsdk::mqtt::ConnectPacket']]], + ['getcoreexecutionsyncpoint_6',['GetCoreExecutionSyncPoint',['../classawsiotsdk_1_1_client_core_state.html#aed6a6ea153c305973550e0adac325c4a',1,'awsiotsdk::ClientCoreState']]], + ['getcurrentversionnumber_7',['GetCurrentVersionNumber',['../classawsiotsdk_1_1_shadow.html#ad631ad0e0dda4b4ebc9f2e5c27e90c28',1,'awsiotsdk::Shadow']]], + ['getdevicedesired_8',['GetDeviceDesired',['../classawsiotsdk_1_1_shadow.html#a31ea7834133f0140ee99656544c96157',1,'awsiotsdk::Shadow']]], + ['getdevicedocument_9',['GetDeviceDocument',['../classawsiotsdk_1_1_shadow.html#a3d372ac6a46fa15c78c66664a1257fb4',1,'awsiotsdk::Shadow']]], + ['getdevicereported_10',['GetDeviceReported',['../classawsiotsdk_1_1_shadow.html#a12ddb6f141b17ea1e61c64e7d91b8b69',1,'awsiotsdk::Shadow']]], + ['getemptyshadowdocument_11',['GetEmptyShadowDocument',['../classawsiotsdk_1_1_shadow.html#a7eadb2ffbdae182d60c52130e669253f',1,'awsiotsdk::Shadow']]], + ['getjobtopic_12',['GetJobTopic',['../classawsiotsdk_1_1_jobs.html#ab8d1e082c67d1fab8b467e9d866b8202',1,'awsiotsdk::Jobs']]], + ['getkeepalivetimeout_13',['GetKeepAliveTimeout',['../classawsiotsdk_1_1mqtt_1_1_client_state.html#a8aa4f6083b631d802a4ecc00a5b2f9d3',1,'awsiotsdk::mqtt::ClientState::GetKeepAliveTimeout()'],['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a406f75a4f832de83a3bec52dc1b32c91',1,'awsiotsdk::mqtt::ConnectPacket::GetKeepAliveTimeout()']]], + ['getloglevel_14',['GetLogLevel',['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html#a432898fe14ad5eb3072a6b44fb4bf4ac',1,'awsiotsdk::util::Logging::FormattedLogSystem::GetLogLevel()'],['../classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html#af0011a58664a7e719862170d89c261a2',1,'awsiotsdk::util::Logging::LogSystemInterface::GetLogLevel()']]], + ['getlogsystem_15',['GetLogSystem',['../_logging_8hpp.html#a2c8849bef9f364aef2dffd3f75fa8ea1',1,'awsiotsdk::util::Logging']]], + ['getmaxactionqueuesize_16',['GetMaxActionQueueSize',['../classawsiotsdk_1_1_client_core_state.html#aa8269b76cb177076605c0dd059721718',1,'awsiotsdk::ClientCoreState']]], + ['getmaxqos_17',['GetMaxQos',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#aedf3de9db0ab597ec4dcdc0468523037',1,'awsiotsdk::mqtt::Subscription']]], + ['getmaxreconnectbackofftimeout_18',['GetMaxReconnectBackoffTimeout',['../classawsiotsdk_1_1_mqtt_client.html#a081e091d11fddfbf3dd0fe9e60340c89',1,'awsiotsdk::MqttClient']]], + ['getmaxresponsewaittime_19',['GetMaxResponseWaitTime',['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#afd079cd0dd74153ac09ee0a57e5a664b',1,'awsiotsdk::discovery::DiscoverRequestData']]], + ['getmessagetype_20',['GetMessageType',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#ac35dd9999eb00fdac51238ea60a1fc6d',1,'awsiotsdk::mqtt::PacketFixedHeader']]], + ['getminreconnectbackofftimeout_21',['GetMinReconnectBackoffTimeout',['../classawsiotsdk_1_1_mqtt_client.html#afc8eba415c7fd28b0f81bdedda046af0',1,'awsiotsdk::MqttClient']]], + ['getnextactionid_22',['GetNextActionId',['../classawsiotsdk_1_1_action_state.html#ae964648669a758781ca90a0470896f54',1,'awsiotsdk::ActionState::GetNextActionId()'],['../classawsiotsdk_1_1_client_core_state.html#a9d2376aa090de4b19b6febe3e84d46bd',1,'awsiotsdk::ClientCoreState::GetNextActionId()'],['../classawsiotsdk_1_1mqtt_1_1_client_state.html#aa35abad389e9e107854c3a597fcb4a60',1,'awsiotsdk::mqtt::ClientState::GetNextActionId()']]], + ['getpacketid_23',['GetPacketId',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#aac72bef5441856bd242b8388fac7712f',1,'awsiotsdk::mqtt::Subscription']]], + ['getparsedresponse_24',['GetParsedResponse',['../classawsiotsdk_1_1_discovery_response.html#a25bd16b706db9c3c03c515ff31afb680',1,'awsiotsdk::DiscoveryResponse']]], + ['getpayload_25',['GetPayload',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a8b60b590b35d58fca92d7640771f19c3',1,'awsiotsdk::mqtt::PublishPacket']]], + ['getpayloadlen_26',['GetPayloadLen',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#aa9a96202eed0faf251a3afc03514adda',1,'awsiotsdk::mqtt::PublishPacket']]], + ['getremaininglength_27',['GetRemainingLength',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#ab1ece2829657b0df77df00f8bac043c8',1,'awsiotsdk::mqtt::PacketFixedHeader']]], + ['getremaininglengthbytecount_28',['GetRemainingLengthByteCount',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#ab62ba94eb716fc018de39b4526c7deba',1,'awsiotsdk::mqtt::PacketFixedHeader']]], + ['getresponsedocument_29',['GetResponseDocument',['../classawsiotsdk_1_1_discovery_response.html#aac5d278156fcb66a8bcc2f0cfbfb0be6',1,'awsiotsdk::DiscoveryResponse']]], + ['getserverdesired_30',['GetServerDesired',['../classawsiotsdk_1_1_shadow.html#a094bdc1d53ab3197edde03676f291a85',1,'awsiotsdk::Shadow']]], + ['getserverdocument_31',['GetServerDocument',['../classawsiotsdk_1_1_shadow.html#a8701a0073bb279b248999b8e381816f5',1,'awsiotsdk::Shadow']]], + ['getserverreported_32',['GetServerReported',['../classawsiotsdk_1_1_shadow.html#a78846dfa72e12aeb154ea44191203300',1,'awsiotsdk::Shadow']]], + ['gettopicname_33',['GetTopicName',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a28b189bf50f31ff2dc6bfedd3c163567',1,'awsiotsdk::mqtt::Subscription::GetTopicName()'],['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a15bbd5df7d11829aa10f8d66c954f106',1,'awsiotsdk::mqtt::PublishPacket::GetTopicName()']]], + ['gettopicnamelength_34',['GetTopicNameLength',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a2a8b0a6078a346756de5eebf2a932747',1,'awsiotsdk::mqtt::Subscription']]], + ['ggc_5farray_5fkey_35',['GGC_ARRAY_KEY',['../classawsiotsdk_1_1_discovery_response.html#aea09f0520eb9b23e96384e6cf25821af',1,'awsiotsdk::DiscoveryResponse']]], + ['ggc_5fname_5f_36',['ggc_name_',['../classawsiotsdk_1_1_connectivity_info.html#a36abb7a6e0c78b8982023980dd5cc33e',1,'awsiotsdk::ConnectivityInfo']]], + ['ggc_5fthing_5farn_5fkey_37',['GGC_THING_ARN_KEY',['../classawsiotsdk_1_1_discovery_response.html#a2380267fc95b578f79e110c3659571bd',1,'awsiotsdk::DiscoveryResponse']]], + ['gracefulshutdownallthreadtasks_38',['GracefulShutdownAllThreadTasks',['../classawsiotsdk_1_1_client_core.html#a90daf4cd75d0532fa908c153c29ee865',1,'awsiotsdk::ClientCore']]], + ['greengrassmqttclient_39',['GreengrassMqttClient',['../classawsiotsdk_1_1_greengrass_mqtt_client.html',1,'awsiotsdk::GreengrassMqttClient'],['../classawsiotsdk_1_1_greengrass_mqtt_client.html#acd5406a11c7437713f0316906df49a68',1,'awsiotsdk::GreengrassMqttClient::GreengrassMqttClient(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)'],['../classawsiotsdk_1_1_greengrass_mqtt_client.html#a047c6e7e7c310517323e2cc53ddfd0ac',1,'awsiotsdk::GreengrassMqttClient::GreengrassMqttClient(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)'],['../classawsiotsdk_1_1_greengrass_mqtt_client.html#a1c92870bcbca91692a3bb5e05d040263',1,'awsiotsdk::GreengrassMqttClient::GreengrassMqttClient(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)']]], + ['greengrassmqttclient_2ehpp_40',['GreengrassMqttClient.hpp',['../_greengrass_mqtt_client_8hpp.html',1,'']]], + ['group_5farray_5fkey_41',['GROUP_ARRAY_KEY',['../classawsiotsdk_1_1_discovery_response.html#a57192e1c89de11f34b61f80cf33518a6',1,'awsiotsdk::DiscoveryResponse']]], + ['group_5fid_5fkey_42',['GROUP_ID_KEY',['../classawsiotsdk_1_1_discovery_response.html#a1a24b3be68e85d989e18699b625624a5',1,'awsiotsdk::DiscoveryResponse']]], + ['group_5fname_5f_43',['group_name_',['../classawsiotsdk_1_1_connectivity_info.html#a71f76a3e1783874e012faf5fc4c65257',1,'awsiotsdk::ConnectivityInfo']]] +]; diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js new file mode 100644 index 0000000..5e53808 --- /dev/null +++ b/docs/html/search/all_6.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['handleconnack_0',['HandleConnack',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#adb468fd2095f70898f78805bd23005d1',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['handledeleteresponse_1',['HandleDeleteResponse',['../classawsiotsdk_1_1_shadow.html#a08b854c29ec5c5397f5329a46d363f5d',1,'awsiotsdk::Shadow']]], + ['handlegetresponse_2',['HandleGetResponse',['../classawsiotsdk_1_1_shadow.html#a5eaccc9626cb22015c16947db795328a',1,'awsiotsdk::Shadow']]], + ['handlepuback_3',['HandlePuback',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a89d8d19563d3b96d5509c9bfbf4cb1d8',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['handlepublish_4',['HandlePublish',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#abe7a6ed7a6d7a979070848f9a957b07e',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['handlesuback_5',['HandleSuback',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a46a3d7746cba7cc4c61f57782c78bfb6',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['handleunsuback_6',['HandleUnsuback',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a559ab710cd899e2f9ce8d92594e82a48',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['handleupdateresponse_7',['HandleUpdateResponse',['../classawsiotsdk_1_1_shadow.html#a7e4cb7d5a7076c20c7fa765e4e8284aa',1,'awsiotsdk::Shadow']]], + ['host_5faddress_5f_8',['host_address_',['../classawsiotsdk_1_1_connectivity_info.html#ad630ce1721408b32ace41539efbeff8f',1,'awsiotsdk::ConnectivityInfo']]], + ['host_5faddress_5fkey_9',['HOST_ADDRESS_KEY',['../classawsiotsdk_1_1_discovery_response.html#ad356a950d30cc4ee16f37fa3766525bd',1,'awsiotsdk::DiscoveryResponse']]] +]; diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js new file mode 100644 index 0000000..79e83ee --- /dev/null +++ b/docs/html/search/all_7.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['id_5f_0',['id_',['../classawsiotsdk_1_1_connectivity_info.html#ada9f6b81e71ca972e0aeea7c99859ced',1,'awsiotsdk::ConnectivityInfo']]], + ['id_5fkey_1',['ID_KEY',['../classawsiotsdk_1_1_discovery_response.html#a4b8a83c764cd101fa8c4d352dbf45bfc',1,'awsiotsdk::DiscoveryResponse']]], + ['increase_5fsafely_2',['increase_safely',['../_utf8_string_8cpp.html#a179b9d95bf6b0910dd0943fcd76ab7f1',1,'awsiotsdk::utf8::internal']]], + ['index_5fin_5fpacket_5f_3',['index_in_packet_',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#ad5829750972cb8bb14bdfece2802a4d9',1,'awsiotsdk::mqtt::Subscription']]], + ['initialize_4',['Initialize',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#af7a3eb25488b9c18e45b1140550e4a5f',1,'awsiotsdk::mqtt::PacketFixedHeader']]], + ['initializeawslogging_5',['InitializeAWSLogging',['../_logging_8hpp.html#a48060aa697cb050330157ad1ae215820',1,'awsiotsdk::util::Logging']]], + ['initializediscoveryresponsejson_6',['InitializeDiscoveryResponseJson',['../classawsiotsdk_1_1discovery_1_1_discover_action.html#aed38acae9ed65f8a4d435fb1310e61c3',1,'awsiotsdk::discovery::DiscoverAction']]], + ['invalid_7',['INVALID',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334accc0377a8afbf50e7094f5c23a8af223',1,'awsiotsdk::mqtt']]], + ['is_5factive_5f_8',['is_active_',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#ae1d042cd9ff9c173dee32efab6239d68',1,'awsiotsdk::mqtt::Subscription']]], + ['is_5fclean_5fsession_5f_9',['is_clean_session_',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a5003c8c208a33da1b93af2cab61b666b',1,'awsiotsdk::mqtt::ConnectPacket']]], + ['is_5fdelete_5fsubscription_5factive_5f_10',['is_delete_subscription_active_',['../classawsiotsdk_1_1_shadow.html#aaf926069f50b3c82daa1b9360aa2c650',1,'awsiotsdk::Shadow']]], + ['is_5fdelta_5fsubscription_5factive_5f_11',['is_delta_subscription_active_',['../classawsiotsdk_1_1_shadow.html#a93aadc20e13d736755cf5390f7f39a8f',1,'awsiotsdk::Shadow']]], + ['is_5fduplicate_5f_12',['is_duplicate_',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a72bd43a605a455da60b52d13d28a0625',1,'awsiotsdk::mqtt::PublishPacket']]], + ['is_5fget_5fsubscription_5factive_5f_13',['is_get_subscription_active_',['../classawsiotsdk_1_1_shadow.html#ad2e7c7e704d130f681b3aca4a56280b1',1,'awsiotsdk::Shadow']]], + ['is_5fretained_5f_14',['is_retained_',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#afd25f7119401698c90965d3abb0e85bf',1,'awsiotsdk::mqtt::PublishPacket']]], + ['is_5fupdate_5fsubscription_5factive_5f_15',['is_update_subscription_active_',['../classawsiotsdk_1_1_shadow.html#afceacb87fd8051c99d030b6eeadcd790',1,'awsiotsdk::Shadow']]], + ['is_5fwaiting_5ffor_5fconnack_5f_16',['is_waiting_for_connack_',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a6d2224b57c4f3b342f8e018ea7df583a',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['isactive_17',['IsActive',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a98d33cb9b8be6f92d99aa0e1ee71a580',1,'awsiotsdk::mqtt::Subscription']]], + ['isautoreconnectenabled_18',['IsAutoReconnectEnabled',['../classawsiotsdk_1_1_mqtt_client.html#a90e668f6d3620a9373820a72c33a18af',1,'awsiotsdk::MqttClient']]], + ['isconnected_19',['IsConnected',['../classawsiotsdk_1_1_mqtt_client.html#a576a5360b3923e10a1418185c0eaf337',1,'awsiotsdk::MqttClient::IsConnected()'],['../classawsiotsdk_1_1_network_connection.html#a2a3a7515d2cdbdb811743204d9d60c7a',1,'awsiotsdk::NetworkConnection::IsConnected()']]], + ['isduplicate_20',['IsDuplicate',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a8e82302893e4adbab89802b44ce98f17',1,'awsiotsdk::mqtt::PublishPacket']]], + ['isheadervalid_21',['isHeaderValid',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#a88f11c64aa53dd18f6ff2b9f377b62bc',1,'awsiotsdk::mqtt::PacketFixedHeader']]], + ['isinsuback_22',['IsInSuback',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a4ae0f16c1422040e40a02c954842e9d8',1,'awsiotsdk::mqtt::Subscription']]], + ['isinsync_23',['IsInSync',['../classawsiotsdk_1_1_shadow.html#a2b4d497cbfb2d1e20b96fc5015309079',1,'awsiotsdk::Shadow']]], + ['isphysicallayerconnected_24',['IsPhysicalLayerConnected',['../classawsiotsdk_1_1_network_connection.html#a0b81ce15a8f7a602f752e88b9860a924',1,'awsiotsdk::NetworkConnection']]], + ['isretained_25',['IsRetained',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a34eb954b2cc4e58eb3ea67f316c8f6ae',1,'awsiotsdk::mqtt::PublishPacket']]], + ['isvalidtopicname_26',['IsValidTopicName',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#aeb69b279e6e59d9297ce0ec0b47a177e',1,'awsiotsdk::mqtt::Subscription']]] +]; diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js new file mode 100644 index 0000000..39937aa --- /dev/null +++ b/docs/html/search/all_8.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['jobs_0',['Jobs',['../classawsiotsdk_1_1_jobs.html',1,'awsiotsdk::Jobs'],['../classawsiotsdk_1_1_jobs.html#a572afdd4be5b43e82a3775dd698f3b70',1,'awsiotsdk::Jobs::Jobs()']]], + ['jobs_2ecpp_1',['Jobs.cpp',['../_jobs_8cpp.html',1,'']]], + ['jobs_2ehpp_2',['Jobs.hpp',['../_jobs_8hpp.html',1,'']]], + ['jobs_5finvalid_5ftopic_5ferror_3',['JOBS_INVALID_TOPIC_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aee8939901b7599d78eed549f825238e2',1,'awsiotsdk']]], + ['json_5fdiff_5ffailed_4',['JSON_DIFF_FAILED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051af40c050f2a31d5694771f780f74fcac9',1,'awsiotsdk']]], + ['json_5fmerge_5ffailed_5',['JSON_MERGE_FAILED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ab6e9e616ade8d910bed49c77952d30dc',1,'awsiotsdk']]], + ['json_5fparse_5fkey_5fnot_5ffound_5ferror_6',['JSON_PARSE_KEY_NOT_FOUND_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac7d4ed3ca1549a1a5ae0f6c857d263ce',1,'awsiotsdk']]], + ['json_5fparse_5fkey_5funexpected_5ftype_5ferror_7',['JSON_PARSE_KEY_UNEXPECTED_TYPE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ab313da7ad13e5a91e7af920472320b10',1,'awsiotsdk']]], + ['json_5fparsing_5ferror_8',['JSON_PARSING_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a7f3e9891193ea6c97c3c9337551eac1e',1,'awsiotsdk']]], + ['jsonparser_9',['JsonParser',['../classawsiotsdk_1_1util_1_1_json_parser.html',1,'awsiotsdk::util']]], + ['jsonparser_2ecpp_10',['JsonParser.cpp',['../_json_parser_8cpp.html',1,'']]], + ['jsonparser_2ehpp_11',['JsonParser.hpp',['../_json_parser_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js new file mode 100644 index 0000000..4ca7024 --- /dev/null +++ b/docs/html/search/all_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['keep_5falive_5ftimeout_5f_0',['keep_alive_timeout_',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a515cdd16f51faf8f8f875d7bf48ab435',1,'awsiotsdk::mqtt::ConnectPacket']]], + ['keepaliveactionrunner_1',['KeepaliveActionRunner',['../classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html',1,'awsiotsdk::mqtt::KeepaliveActionRunner'],['../classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html#a1b3835e9eb1579ca7fc8c0d124c2ec09',1,'awsiotsdk::mqtt::KeepaliveActionRunner::KeepaliveActionRunner()']]], + ['known_20issues_2flimitations_2',['Known Issues/Limitations',['../md__known_issues.html',1,'']]] +]; diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js new file mode 100644 index 0000000..cae799b --- /dev/null +++ b/docs/html/search/all_a.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['length_0',['Length',['../classawsiotsdk_1_1mqtt_1_1_will_options.html#ad6b4038ae16ff31d17c060a3265c7ddc',1,'awsiotsdk::mqtt::WillOptions::Length()'],['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#a761f695e701d0017566b1bef3abbaf29',1,'awsiotsdk::mqtt::PacketFixedHeader::Length()']]], + ['log_1',['Log',['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html#a4ad1670c7e57f20880461b1c37790040',1,'awsiotsdk::util::Logging::FormattedLogSystem::Log()'],['../classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html#af47938ba21d755ecf437e634c3e0a520',1,'awsiotsdk::util::Logging::LogSystemInterface::Log()']]], + ['logging_2ecpp_2',['Logging.cpp',['../_logging_8cpp.html',1,'']]], + ['logging_2ehpp_3',['Logging.hpp',['../_logging_8hpp.html',1,'']]], + ['loglevel_4',['LogLevel',['../_log_level_8hpp.html#a0be68698b1753fcec80bfdad1164a746',1,'awsiotsdk::util::Logging']]], + ['loglevel_2ecpp_5',['LogLevel.cpp',['../_log_level_8cpp.html',1,'']]], + ['loglevel_2ehpp_6',['LogLevel.hpp',['../_log_level_8hpp.html',1,'']]], + ['logmacros_2ehpp_7',['LogMacros.hpp',['../_log_macros_8hpp.html',1,'']]], + ['logstream_8',['LogStream',['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html#aa92719ce4b9b22f95e66774ad82a67ea',1,'awsiotsdk::util::Logging::FormattedLogSystem::LogStream()'],['../classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html#a2704bdce2f3f5124465e2d42b137239a',1,'awsiotsdk::util::Logging::LogSystemInterface::LogStream()']]], + ['logsysteminterface_9',['LogSystemInterface',['../classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html',1,'awsiotsdk::util::Logging']]], + ['logsysteminterface_2ehpp_10',['LogSystemInterface.hpp',['../_log_system_interface_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js new file mode 100644 index 0000000..ceef920 --- /dev/null +++ b/docs/html/search/all_b.js @@ -0,0 +1,43 @@ +var searchData= +[ + ['makediscoveryrequest_0',['MakeDiscoveryRequest',['../classawsiotsdk_1_1discovery_1_1_discover_action.html#a250b5d0dabad8a4201e6c99599a509fc',1,'awsiotsdk::discovery::DiscoverAction']]], + ['map_2ehpp_1',['Map.hpp',['../_map_8hpp.html',1,'']]], + ['max_5fhardware_5fthreads_5f_2',['max_hardware_threads_',['../classawsiotsdk_1_1_client_core_state.html#a7f19f84802987d569656c094966ed7b2',1,'awsiotsdk::ClientCoreState']]], + ['max_5fqos_5f_3',['max_qos_',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#aecec4a7c5c634bb72335a8d0cebc396b',1,'awsiotsdk::mqtt::Subscription']]], + ['max_5fqueue_5fsize_5f_4',['max_queue_size_',['../classawsiotsdk_1_1_client_core_state.html#a19a0e2d7a463a409c2cd5074539caa27',1,'awsiotsdk::ClientCoreState']]], + ['max_5fresponse_5fwait_5ftime_5f_5',['max_response_wait_time_',['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#a2e788e7bbb5eca2d33ef852123436f50',1,'awsiotsdk::discovery::DiscoverRequestData']]], + ['messagetypes_6',['MessageTypes',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334',1,'awsiotsdk::mqtt']]], + ['metadata_5f_7',['metadata_',['../classawsiotsdk_1_1_connectivity_info.html#a7aad13daf2921189dbd762f328c9f5f5',1,'awsiotsdk::ConnectivityInfo']]], + ['metadata_5fkey_8',['METADATA_KEY',['../classawsiotsdk_1_1_discovery_response.html#a5c6a750cbe98b64646c67f04a43d1ff3',1,'awsiotsdk::DiscoveryResponse']]], + ['mqtt_5f3_5f1_5f1_9',['MQTT_3_1_1',['../_common_8hpp.html#ac317afc13d331a2ff967daf9e7618bfaa653dca2e74a21ad301cf8b7bdfd9938d',1,'awsiotsdk::mqtt']]], + ['mqtt_5fclient_5fnot_5fidle_5ferror_10',['MQTT_CLIENT_NOT_IDLE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051afdb43d28bf66f01d8c746a8f776469d9',1,'awsiotsdk']]], + ['mqtt_5fcommand_5ftimeout_5f_11',['mqtt_command_timeout_',['../classawsiotsdk_1_1_shadow.html#a7ba21ddfc99e8d434c001360f4f17c78',1,'awsiotsdk::Shadow']]], + ['mqtt_5fconnack_5fbad_5fuserdata_5ferror_12',['MQTT_CONNACK_BAD_USERDATA_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aabdef26c031fa34ec9ef1dc547b5c500',1,'awsiotsdk']]], + ['mqtt_5fconnack_5fconnection_5faccepted_13',['MQTT_CONNACK_CONNECTION_ACCEPTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a8561677c41d06cb7d444797e79956987',1,'awsiotsdk']]], + ['mqtt_5fconnack_5fidentifier_5frejected_5ferror_14',['MQTT_CONNACK_IDENTIFIER_REJECTED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aebac4c609cad3dc1859a8b389e221018',1,'awsiotsdk']]], + ['mqtt_5fconnack_5fnot_5fauthorized_5ferror_15',['MQTT_CONNACK_NOT_AUTHORIZED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a0086792946f65e98dd3dcaacb41bc3a5',1,'awsiotsdk']]], + ['mqtt_5fconnack_5fserver_5funavailable_5ferror_16',['MQTT_CONNACK_SERVER_UNAVAILABLE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a64bccd17ef660d50cc3a5a133cb5034c',1,'awsiotsdk']]], + ['mqtt_5fconnack_5funacceptable_5fprotocol_5fversion_5ferror_17',['MQTT_CONNACK_UNACCEPTABLE_PROTOCOL_VERSION_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051abbf84701226412d6e58e703a068cff9a',1,'awsiotsdk']]], + ['mqtt_5fconnack_5funknown_5ferror_18',['MQTT_CONNACK_UNKNOWN_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a951d3e1d676c9758ee6d40b8cea9e0b2',1,'awsiotsdk']]], + ['mqtt_5fconnect_5ftimeout_5ferror_19',['MQTT_CONNECT_TIMEOUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051acb7d9f13b307922b73af194772b9b9dc',1,'awsiotsdk']]], + ['mqtt_5fconnection_5ferror_20',['MQTT_CONNECTION_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a8dfbb5f43ecb50bc6d74f38a91c8892c',1,'awsiotsdk']]], + ['mqtt_5fdecode_5fremaining_5flength_5ferror_21',['MQTT_DECODE_REMAINING_LENGTH_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051af077b47d2b50f034fa6ed70111162195',1,'awsiotsdk']]], + ['mqtt_5finvalid_5fdata_5ferror_22',['MQTT_INVALID_DATA_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac0e59dd09eeda29713972df9a9f51685',1,'awsiotsdk']]], + ['mqtt_5fmax_5fsubscriptions_5freached_5ferror_23',['MQTT_MAX_SUBSCRIPTIONS_REACHED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a2e261f3a66501599666402c62b64bdcc',1,'awsiotsdk']]], + ['mqtt_5fno_5fsubscription_5ffound_24',['MQTT_NO_SUBSCRIPTION_FOUND',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a15e70e8989c9cc956782db5297eace74',1,'awsiotsdk']]], + ['mqtt_5fnothing_5fto_5fread_25',['MQTT_NOTHING_TO_READ',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a6e7aba747de66305c5112daef785a0aa',1,'awsiotsdk']]], + ['mqtt_5frequest_5ftimeout_5ferror_26',['MQTT_REQUEST_TIMEOUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aacdf2e25c8ed8e408b0405a4a54f98da',1,'awsiotsdk']]], + ['mqtt_5frx_5fmessage_5fpacket_5ftype_5finvalid_5ferror_27',['MQTT_RX_MESSAGE_PACKET_TYPE_INVALID_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051acf20f47678faac81b098cd55558e087f',1,'awsiotsdk']]], + ['mqtt_5fsubscribe_5ffailed_28',['MQTT_SUBSCRIBE_FAILED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a95563729ac7dd3486aef617bb54ac656',1,'awsiotsdk']]], + ['mqtt_5fsubscribe_5fpartially_5ffailed_29',['MQTT_SUBSCRIBE_PARTIALLY_FAILED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a067f7b87d570c4de14aa7527b1577aab',1,'awsiotsdk']]], + ['mqtt_5fsubscription_5fnot_5factive_30',['MQTT_SUBSCRIPTION_NOT_ACTIVE',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac2ec46d08290abf8d2b645a03d03c0ea',1,'awsiotsdk']]], + ['mqtt_5ftoo_5fmany_5fsubscriptions_5fin_5frequest_31',['MQTT_TOO_MANY_SUBSCRIPTIONS_IN_REQUEST',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a8c6b87cf00f39b751b9a386ac5c1d7f1',1,'awsiotsdk']]], + ['mqtt_5funexpected_5fclient_5fstate_5ferror_32',['MQTT_UNEXPECTED_CLIENT_STATE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a130d066938d4e7775d6ef52d469f9740',1,'awsiotsdk']]], + ['mqtt_5funexpected_5fpacket_5fformat_5ferror_33',['MQTT_UNEXPECTED_PACKET_FORMAT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac7570d6591f9ec71a452c83f3c5c59d9',1,'awsiotsdk']]], + ['mqtt_5fversion_5f_34',['mqtt_version_',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#aff54755bcbc2c488a4546966f8563392',1,'awsiotsdk::mqtt::ConnectPacket']]], + ['mqttclient_35',['MqttClient',['../classawsiotsdk_1_1_mqtt_client.html',1,'awsiotsdk::MqttClient'],['../classawsiotsdk_1_1_mqtt_client.html#aeabe73fd19352ee6fd619dbda7d330db',1,'awsiotsdk::MqttClient::MqttClient(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)'],['../classawsiotsdk_1_1_mqtt_client.html#ad73821af103564642e1fec1c0db0b35d',1,'awsiotsdk::MqttClient::MqttClient(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)'],['../classawsiotsdk_1_1_mqtt_client.html#a6dc8b474015bffe6811da291c044f9bd',1,'awsiotsdk::MqttClient::MqttClient(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)']]], + ['mutex_5fdestroy_5ferror_36',['MUTEX_DESTROY_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ab1f515a74fb97bc5496ea8f0947cb2f5',1,'awsiotsdk']]], + ['mutex_5finit_5ferror_37',['MUTEX_INIT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae53fd053b76138e69a6b84f21c03df0d',1,'awsiotsdk']]], + ['mutex_5flock_5ferror_38',['MUTEX_LOCK_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ad692e26777aeb24f0a8abfe834e28f30',1,'awsiotsdk']]], + ['mutex_5funlock_5ferror_39',['MUTEX_UNLOCK_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a28a9299d113a78c6d0167768435c1609',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js new file mode 100644 index 0000000..13482eb --- /dev/null +++ b/docs/html/search/all_c.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['network_5falready_5fconnected_5ferror_0',['NETWORK_ALREADY_CONNECTED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a780627e82c6ff4f4e7f3aa1c98808343',1,'awsiotsdk']]], + ['network_5fattempting_5freconnect_1',['NETWORK_ATTEMPTING_RECONNECT',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac16482a584b8ca1aad7b78d091b66f66',1,'awsiotsdk']]], + ['network_5fdisconnected_5ferror_2',['NETWORK_DISCONNECTED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a0b14056e83bfb1a09b8f41ea026fe2ac',1,'awsiotsdk']]], + ['network_5fmanually_5fdisconnected_3',['NETWORK_MANUALLY_DISCONNECTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae671b14e97ca9c30d9979e8476bc774d',1,'awsiotsdk']]], + ['network_5fnothing_5fto_5fwrite_5ferror_4',['NETWORK_NOTHING_TO_WRITE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a497b2e045cd6b3c666280ab146c7c3c8',1,'awsiotsdk']]], + ['network_5fphysical_5flayer_5fconnected_5',['NETWORK_PHYSICAL_LAYER_CONNECTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a34f8a2123a41265c5a9fcd6775096802',1,'awsiotsdk']]], + ['network_5fphysical_5flayer_5fdisconnected_6',['NETWORK_PHYSICAL_LAYER_DISCONNECTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a1b6ef08f900a259694cd354631268cbc',1,'awsiotsdk']]], + ['network_5freconnect_5ftimed_5fout_5ferror_7',['NETWORK_RECONNECT_TIMED_OUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a7ad7c33424cd3c80acb4fb1e3490dd9f',1,'awsiotsdk']]], + ['network_5freconnected_8',['NETWORK_RECONNECTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a678dbb6f5c1cf8d301ce5345ce587c02',1,'awsiotsdk']]], + ['network_5fssl_5fconnect_5ferror_9',['NETWORK_SSL_CONNECT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac702e28184ad4ec6c6261f768544968c',1,'awsiotsdk']]], + ['network_5fssl_5fconnect_5ftimeout_5ferror_10',['NETWORK_SSL_CONNECT_TIMEOUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ab27e4995779f23007de532ca79bab061',1,'awsiotsdk']]], + ['network_5fssl_5fconnection_5fclosed_5ferror_11',['NETWORK_SSL_CONNECTION_CLOSED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aa74c62aa188779f3dc6ab6df44921f0e',1,'awsiotsdk']]], + ['network_5fssl_5fdevice_5fcrt_5fparse_5ferror_12',['NETWORK_SSL_DEVICE_CRT_PARSE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a0f192c6e1d9d7ed13fb1145e91d1cd97',1,'awsiotsdk']]], + ['network_5fssl_5finit_5ferror_13',['NETWORK_SSL_INIT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aa654cce13676bd6cded3155f6fb5d954',1,'awsiotsdk']]], + ['network_5fssl_5fkey_5fparse_5ferror_14',['NETWORK_SSL_KEY_PARSE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a42c034ad8f8b9d65bec9252548650be0',1,'awsiotsdk']]], + ['network_5fssl_5fnothing_5fto_5fread_15',['NETWORK_SSL_NOTHING_TO_READ',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aa0b4adfbd7243366861e99377a8e94bc',1,'awsiotsdk']]], + ['network_5fssl_5fread_5ferror_16',['NETWORK_SSL_READ_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a34f2f18734b7e54833810cc37fccdbf5',1,'awsiotsdk']]], + ['network_5fssl_5fread_5ftimeout_5ferror_17',['NETWORK_SSL_READ_TIMEOUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a9f3d0f50d3a21929f76f81f15a2842cd',1,'awsiotsdk']]], + ['network_5fssl_5froot_5fcrt_5fparse_5ferror_18',['NETWORK_SSL_ROOT_CRT_PARSE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae840b1f9ed4db8028378500c77851598',1,'awsiotsdk']]], + ['network_5fssl_5fserver_5fverification_5ferror_19',['NETWORK_SSL_SERVER_VERIFICATION_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac26b3aaded4e899c321b552965a15e58',1,'awsiotsdk']]], + ['network_5fssl_5ftls_5fhandshake_5ferror_20',['NETWORK_SSL_TLS_HANDSHAKE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae3a76d65fad9129409fb4ebbfe2506fe',1,'awsiotsdk']]], + ['network_5fssl_5funknown_5ferror_21',['NETWORK_SSL_UNKNOWN_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051add19638ee1eb572c8e7887c0849286fb',1,'awsiotsdk']]], + ['network_5fssl_5fwrite_5ferror_22',['NETWORK_SSL_WRITE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051add1fbe30a969d90640c0cda8a3414311',1,'awsiotsdk']]], + ['network_5fssl_5fwrite_5ftimeout_5ferror_23',['NETWORK_SSL_WRITE_TIMEOUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aeac6fbe75a87244947789561d66bcf00',1,'awsiotsdk']]], + ['network_5ftcp_5fconnect_5ferror_24',['NETWORK_TCP_CONNECT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a665ea14dc987bb79824a252779646a45',1,'awsiotsdk']]], + ['network_5ftcp_5fno_5fendpoint_5fspecified_25',['NETWORK_TCP_NO_ENDPOINT_SPECIFIED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a39791d44118cbf57af96e7def553d464',1,'awsiotsdk']]], + ['network_5ftcp_5fsetup_5ferror_26',['NETWORK_TCP_SETUP_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ad3b3b8b2035dd067b26a41cff4a8be2e',1,'awsiotsdk']]], + ['network_5ftcp_5funknown_5fhost_27',['NETWORK_TCP_UNKNOWN_HOST',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ab8b58c0f13691c1d381dc38d25730ba5',1,'awsiotsdk']]], + ['networkconnection_28',['NetworkConnection',['../classawsiotsdk_1_1_network_connection.html',1,'awsiotsdk']]], + ['networkconnection_2ecpp_29',['NetworkConnection.cpp',['../_network_connection_8cpp.html',1,'']]], + ['networkconnection_2ehpp_30',['NetworkConnection.hpp',['../_network_connection_8hpp.html',1,'']]], + ['networkread_2ecpp_31',['NetworkRead.cpp',['../_network_read_8cpp.html',1,'']]], + ['networkread_2ehpp_32',['NetworkRead.hpp',['../_network_read_8hpp.html',1,'']]], + ['networkreadactionrunner_33',['NetworkReadActionRunner',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html',1,'awsiotsdk::mqtt::NetworkReadActionRunner'],['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a7aacf550aa71d391d2f089ad99114354',1,'awsiotsdk::mqtt::NetworkReadActionRunner::NetworkReadActionRunner()']]], + ['new_20version_20available_34',['New Version Available',['../index.html',1,'']]], + ['next_5faction_5fid_5f_35',['next_action_id_',['../classawsiotsdk_1_1_client_core_state.html#a1d2ea6123972ec3aa70e908802fbba28',1,'awsiotsdk::ClientCoreState']]], + ['null_5fvalue_5ferror_36',['NULL_VALUE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051af60b8bb4e00fa23bc2a70fd84d100e4c',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js new file mode 100644 index 0000000..6168c0f --- /dev/null +++ b/docs/html/search/all_d.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['operator_3c_3c_0',['operator<<',['../_response_code_8hpp.html#a8e2ddf8ca2e479da706dad84b858b3c3',1,'awsiotsdk']]], + ['outbound_5faction_5fqueue_5f_1',['outbound_action_queue_',['../classawsiotsdk_1_1_client_core_state.html#a6985cc30339a03c7ab4b727263b662d4',1,'awsiotsdk::ClientCoreState']]], + ['overview_2',['Overview',['../md__platform.html',1,'']]] +]; diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js new file mode 100644 index 0000000..4379c34 --- /dev/null +++ b/docs/html/search/all_e.js @@ -0,0 +1,59 @@ +var searchData= +[ + ['p_5fapp_5fhandler_5f_0',['p_app_handler_',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a2afaeb4a1c33f9277f5cfa7b04622d95',1,'awsiotsdk::mqtt::Subscription']]], + ['p_5fapp_5fhandler_5fdata_5f_1',['p_app_handler_data_',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#aa4d0fe6a74ef25ee37137370e91154f2',1,'awsiotsdk::mqtt::Subscription']]], + ['p_5fasync_5fack_5fhandler_5f_2',['p_async_ack_handler_',['../classawsiotsdk_1_1_action_data.html#a4a958b0a4998b1fea69b660c4063bdee',1,'awsiotsdk::ActionData::p_async_ack_handler_()'],['../classawsiotsdk_1_1_client_core_state_1_1_pending_ack_data.html#a903ec6237deb67ef39fa81621499742d',1,'awsiotsdk::ClientCoreState::PendingAckData::p_async_ack_handler_()']]], + ['p_5fclient_5fcore_5f_3',['p_client_core_',['../classawsiotsdk_1_1_mqtt_client.html#aa20bd83fa11328aa8bea69719e04c1e9',1,'awsiotsdk::MqttClient']]], + ['p_5fclient_5fcore_5fstate_5f_4',['p_client_core_state_',['../classawsiotsdk_1_1_client_core.html#a1d893fc6af9968f2473342a30b06e99b',1,'awsiotsdk::ClientCore']]], + ['p_5fclient_5fid_5f_5',['p_client_id_',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#afdc2362103eca81a861eac1b3c7827f2',1,'awsiotsdk::mqtt::ConnectPacket']]], + ['p_5fclient_5fstate_5f_6',['p_client_state_',['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html#a44c7e2f8932ed41bc624335e3392f775',1,'awsiotsdk::mqtt::UnsubscribeActionAsync::p_client_state_()'],['../classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html#a2884101106ed99c3e8d5d7a3a964b214',1,'awsiotsdk::mqtt::SubscribeActionAsync::p_client_state_()'],['../classawsiotsdk_1_1mqtt_1_1_puback_action_async.html#a74766d4725ad298d6d7dbd42d61ef519',1,'awsiotsdk::mqtt::PubackActionAsync::p_client_state_()'],['../classawsiotsdk_1_1mqtt_1_1_publish_action_async.html#ab8b7cef5cce1d6e2d84c60c9e7ca213a',1,'awsiotsdk::mqtt::PublishActionAsync::p_client_state_()'],['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#ad7c9001230081a4b50009a1276ae9811',1,'awsiotsdk::mqtt::NetworkReadActionRunner::p_client_state_()'],['../classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html#a7207dba42cc6f2b819872da894b19b8e',1,'awsiotsdk::mqtt::KeepaliveActionRunner::p_client_state_()'],['../classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html#a7682b1ddece5a5fc6692ac33578f9661',1,'awsiotsdk::mqtt::DisconnectActionAsync::p_client_state_()'],['../classawsiotsdk_1_1mqtt_1_1_connect_action_async.html#a4cae96063d5b53d1c7c02f0d66a79dfa',1,'awsiotsdk::mqtt::ConnectActionAsync::p_client_state_()'],['../classawsiotsdk_1_1discovery_1_1_discover_action.html#ae2596321c4f9a2c46697b66797c84495',1,'awsiotsdk::discovery::DiscoverAction::p_client_state_()'],['../classawsiotsdk_1_1_mqtt_client.html#af8bda990c836d168eab57a80b7a9c6f4',1,'awsiotsdk::MqttClient::p_client_state_()']]], + ['p_5fdisconnect_5fapp_5fhandler_5fdata_5f_7',['p_disconnect_app_handler_data_',['../classawsiotsdk_1_1_client_core_state.html#a51d6ef2991547d7449b2871755c0a395',1,'awsiotsdk::ClientCoreState']]], + ['p_5fmqtt_5fclient_5f_8',['p_mqtt_client_',['../classawsiotsdk_1_1_shadow.html#a6371291e29f931a7c0a3b78c25728e42',1,'awsiotsdk::Shadow']]], + ['p_5fnetwork_5fconnection_5f_9',['p_network_connection_',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#afd3f1767144797b9e726584776143bc3',1,'awsiotsdk::mqtt::NetworkReadActionRunner::p_network_connection_()'],['../classawsiotsdk_1_1_client_core_state.html#a07b023f360d286ba528f133c8251a2e0',1,'awsiotsdk::ClientCoreState::p_network_connection_()']]], + ['p_5fprotocol_5fid_5f_10',['p_protocol_id_',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a80608d409e54cac60c117d118cad750d',1,'awsiotsdk::mqtt::ConnectPacket']]], + ['p_5freconnect_5fapp_5fhandler_5fdata_5f_11',['p_reconnect_app_handler_data_',['../classawsiotsdk_1_1_client_core_state.html#aaea35db625a7c9fe6974a4e93c1b3cc8',1,'awsiotsdk::ClientCoreState']]], + ['p_5fresubscribe_5fapp_5fhandler_5fdata_5f_12',['p_resubscribe_app_handler_data_',['../classawsiotsdk_1_1_client_core_state.html#a99bf9af5b5c09c6d37f8dd2cb6c24ff5',1,'awsiotsdk::ClientCoreState']]], + ['p_5fthing_5fname_5f_13',['p_thing_name_',['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#a69b5ea9a49bdd2a3fca0a9caf0e1b6ea',1,'awsiotsdk::discovery::DiscoverRequestData']]], + ['p_5fthread_5fcontinue_5f_14',['p_thread_continue_',['../classawsiotsdk_1_1_action.html#ae027e228b05eb984ea726743b4baa41b',1,'awsiotsdk::Action']]], + ['p_5ftopic_5fname_5f_15',['p_topic_name_',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a1613045f5d3d3197bccb129e28023bd9',1,'awsiotsdk::mqtt::Subscription::p_topic_name_()'],['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#ac92c4e25adae7c3f67ebcdefbfb08ba2',1,'awsiotsdk::mqtt::PublishPacket::p_topic_name_()']]], + ['p_5ftopic_5fregex_5f_16',['p_topic_regex_',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#aed24d4454cdee57a98ac68deefc8daa2',1,'awsiotsdk::mqtt::Subscription']]], + ['p_5fusername_5f_17',['p_username_',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#af14f70c2c641c8149bcea18f2d1c5154',1,'awsiotsdk::mqtt::ConnectPacket']]], + ['p_5fwill_5fmsg_5f_18',['p_will_msg_',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#aa8c13105dc372a2ff6b8d289efbde517',1,'awsiotsdk::mqtt::ConnectPacket']]], + ['packet_19',['Packet',['../classawsiotsdk_1_1mqtt_1_1_packet.html',1,'awsiotsdk::mqtt']]], + ['packet_2ecpp_20',['Packet.cpp',['../_packet_8cpp.html',1,'']]], + ['packet_2ehpp_21',['Packet.hpp',['../_packet_8hpp.html',1,'']]], + ['packet_5fid_5f_22',['packet_id_',['../classawsiotsdk_1_1mqtt_1_1_packet.html#a585768fcc2a0e25d6fed749d224b7165',1,'awsiotsdk::mqtt::Packet::packet_id_()'],['../classawsiotsdk_1_1mqtt_1_1_subscription.html#aed789c1838b9c8a01ff3762ab4c8c6bf',1,'awsiotsdk::mqtt::Subscription::packet_id_()']]], + ['packet_5fsize_5f_23',['packet_size_',['../classawsiotsdk_1_1mqtt_1_1_packet.html#ac3c23cf35c1707bc06c937a6d63755f3',1,'awsiotsdk::mqtt::Packet']]], + ['packetfixedheader_24',['PacketFixedHeader',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html',1,'awsiotsdk::mqtt::PacketFixedHeader'],['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#ade07a05124f3c173b6ffce44cc6e94ee',1,'awsiotsdk::mqtt::PacketFixedHeader::PacketFixedHeader()']]], + ['payload_5f_25',['payload_',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a81bd7c6f2320e7e9f43925a01fa47f43',1,'awsiotsdk::mqtt::PublishPacket']]], + ['pending_5fack_5fmap_5f_26',['pending_ack_map_',['../classawsiotsdk_1_1_client_core_state.html#a70f1f469fc245727b8e539e07cdda906',1,'awsiotsdk::ClientCoreState']]], + ['pendingackdata_27',['PendingAckData',['../classawsiotsdk_1_1_client_core_state_1_1_pending_ack_data.html',1,'awsiotsdk::ClientCoreState']]], + ['performaction_28',['PerformAction',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a59d3261f768f1bc68d70b0d956f57c52',1,'awsiotsdk::mqtt::NetworkReadActionRunner::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html#a1638862eb8f5e4b47ce25411c5085de9',1,'awsiotsdk::mqtt::UnsubscribeActionAsync::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html#a0b551f90c505c93bb482149d9fdf1056',1,'awsiotsdk::mqtt::SubscribeActionAsync::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_puback_action_async.html#a4f5ef882d44f686b25dc5049511872da',1,'awsiotsdk::mqtt::PubackActionAsync::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_publish_action_async.html#ab3e08d7218e7df481df01603387f3ee6',1,'awsiotsdk::mqtt::PublishActionAsync::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html#ad2185bce7c50899494e32c805782ce84',1,'awsiotsdk::mqtt::KeepaliveActionRunner::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html#a50de29602379b0496c66f8c1c51cd663',1,'awsiotsdk::mqtt::DisconnectActionAsync::PerformAction()'],['../classawsiotsdk_1_1_action.html#a51341775a39d29bcc2e297f7e266365d',1,'awsiotsdk::Action::PerformAction()'],['../classawsiotsdk_1_1_client_core.html#a6c7a91c4e3e722431ac432a2414a36f9',1,'awsiotsdk::ClientCore::PerformAction()'],['../classawsiotsdk_1_1_client_core_state.html#a076a0ba4b1134e7cbe4c08defd247ed7',1,'awsiotsdk::ClientCoreState::PerformAction()'],['../classawsiotsdk_1_1discovery_1_1_discover_action.html#a9df3a0a3d5e25a5efa71acf5e0c63cdc',1,'awsiotsdk::discovery::DiscoverAction::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_connect_action_async.html#a7b058cfdf5e24202120e4e670b6eb4db',1,'awsiotsdk::mqtt::ConnectActionAsync::PerformAction()']]], + ['performactionasync_29',['PerformActionAsync',['../classawsiotsdk_1_1_client_core.html#a5443b4e70fb0a1271e752414934b793a',1,'awsiotsdk::ClientCore']]], + ['performdeleteasync_30',['PerformDeleteAsync',['../classawsiotsdk_1_1_shadow.html#accdcd03aea245117f11063fe93b4956f',1,'awsiotsdk::Shadow']]], + ['performgetasync_31',['PerformGetAsync',['../classawsiotsdk_1_1_shadow.html#a0834a3548c0cc6cf52c6472740d28ae9',1,'awsiotsdk::Shadow']]], + ['performupdateasync_32',['PerformUpdateAsync',['../classawsiotsdk_1_1_shadow.html#a18eca2c78c1c0585b5ea9616db7c5f6f',1,'awsiotsdk::Shadow']]], + ['pingreq_33',['PINGREQ',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334aa1c6c32cdba1885967e1b27a431898a8',1,'awsiotsdk::mqtt']]], + ['pingreqpacket_34',['PingreqPacket',['../classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html',1,'awsiotsdk::mqtt::PingreqPacket'],['../classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html#aca3bb8d89db1b5189713348058f81495',1,'awsiotsdk::mqtt::PingreqPacket::PingreqPacket()']]], + ['pingresp_35',['PINGRESP',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a1f7e2bf52e0b5b238d2eb91b2302262a',1,'awsiotsdk::mqtt']]], + ['poplogger_36',['PopLogger',['../_logging_8hpp.html#a3666d266982413776338b6792e892036',1,'awsiotsdk::util::Logging']]], + ['port_5f_37',['port_',['../classawsiotsdk_1_1_connectivity_info.html#a66e4956007bde46ea84818dae5e8db25',1,'awsiotsdk::ConnectivityInfo']]], + ['port_5fkey_38',['PORT_KEY',['../classawsiotsdk_1_1_discovery_response.html#af8e566b561c73d533800ed173f5c7744',1,'awsiotsdk::DiscoveryResponse']]], + ['process_5fqueued_5factions_5f_39',['process_queued_actions_',['../classawsiotsdk_1_1_client_core_state.html#aaf0d1e9f0ee44a971fe46022162f25e0',1,'awsiotsdk::ClientCoreState']]], + ['processformattedstatement_40',['ProcessFormattedStatement',['../classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html#a7d548c21ca39be297382b6d44148bfba',1,'awsiotsdk::util::Logging::ConsoleLogSystem::ProcessFormattedStatement()'],['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html#ae7df4b53025c3dcbb7d56239565143d9',1,'awsiotsdk::util::Logging::FormattedLogSystem::ProcessFormattedStatement()']]], + ['processoutboundactionqueue_41',['ProcessOutboundActionQueue',['../classawsiotsdk_1_1_client_core_state.html#a0fa9918be3d3a0311f70b07bc371e466',1,'awsiotsdk::ClientCoreState']]], + ['puback_42',['PUBACK',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334af4de6e93dd6f9364096afaab8fe3b688',1,'awsiotsdk::mqtt']]], + ['pubackactionasync_43',['PubackActionAsync',['../classawsiotsdk_1_1mqtt_1_1_puback_action_async.html',1,'awsiotsdk::mqtt::PubackActionAsync'],['../classawsiotsdk_1_1mqtt_1_1_puback_action_async.html#a576cddeb4963064e13de0d6f73240edb',1,'awsiotsdk::mqtt::PubackActionAsync::PubackActionAsync()']]], + ['pubackpacket_44',['PubackPacket',['../classawsiotsdk_1_1mqtt_1_1_puback_packet.html',1,'awsiotsdk::mqtt::PubackPacket'],['../classawsiotsdk_1_1mqtt_1_1_puback_packet.html#ae7139a2a07319522cb553bb916406bcc',1,'awsiotsdk::mqtt::PubackPacket::PubackPacket()']]], + ['pubcomp_45',['PUBCOMP',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334ac305afe26e81a925ad9612da283c4224',1,'awsiotsdk::mqtt']]], + ['publish_46',['PUBLISH',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a155fe93b6325d234ef591bc6a7915a32',1,'awsiotsdk::mqtt']]], + ['publish_47',['Publish',['../classawsiotsdk_1_1_mqtt_client.html#a1eb1f0d9bf6cf548d14115108017d0f3',1,'awsiotsdk::MqttClient']]], + ['publish_2ecpp_48',['Publish.cpp',['../_publish_8cpp.html',1,'']]], + ['publish_2ehpp_49',['Publish.hpp',['../_publish_8hpp.html',1,'']]], + ['publishactionasync_50',['PublishActionAsync',['../classawsiotsdk_1_1mqtt_1_1_publish_action_async.html',1,'awsiotsdk::mqtt::PublishActionAsync'],['../classawsiotsdk_1_1mqtt_1_1_publish_action_async.html#a79eae4ffe64c27e5eb1a4083438914fa',1,'awsiotsdk::mqtt::PublishActionAsync::PublishActionAsync()']]], + ['publishasync_51',['PublishAsync',['../classawsiotsdk_1_1_mqtt_client.html#afc7f9d05141c28ac5e35db12d98d22e2',1,'awsiotsdk::MqttClient']]], + ['publishpacket_52',['PublishPacket',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html',1,'awsiotsdk::mqtt::PublishPacket'],['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#abad5b2fbf24bab3578cbdf6a94f204e1',1,'awsiotsdk::mqtt::PublishPacket::PublishPacket(std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, QoS qos, const util::String &payload)'],['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#ae9be49b793b03622c1517ee9253ec78f',1,'awsiotsdk::mqtt::PublishPacket::PublishPacket(const util::Vector< unsigned char > &buf, bool is_retained, bool is_duplicate, QoS qos)']]], + ['pubrec_53',['PUBREC',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a60215ca6d0d81dae28964aafd566c59e',1,'awsiotsdk::mqtt']]], + ['pubrel_54',['PUBREL',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a43fa366dfa245b930ff7b05c8c3cf9b4',1,'awsiotsdk::mqtt']]], + ['pushlogger_55',['PushLogger',['../_logging_8hpp.html#ad9b4285987a8165e225bfb2ebea9fa95',1,'awsiotsdk::util::Logging']]] +]; diff --git a/docs/html/search/all_f.js b/docs/html/search/all_f.js new file mode 100644 index 0000000..dd5a21b --- /dev/null +++ b/docs/html/search/all_f.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['qos_0',['QoS',['../_common_8hpp.html#aba5332e61c1ae6757d0a59522139ec9f',1,'awsiotsdk::mqtt']]], + ['qos0_1',['QOS0',['../_common_8hpp.html#aba5332e61c1ae6757d0a59522139ec9fa065532b760e1ff433556caf8cff11819',1,'awsiotsdk::mqtt']]], + ['qos1_2',['QOS1',['../_common_8hpp.html#aba5332e61c1ae6757d0a59522139ec9fa42c6763919390c440401d176611e39fa',1,'awsiotsdk::mqtt']]], + ['qos_5f_3',['qos_',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a7502254f58be5fef2c07c870abb67c91',1,'awsiotsdk::mqtt::PublishPacket']]], + ['queue_2ehpp_4',['Queue.hpp',['../_queue_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/classes_0.js b/docs/html/search/classes_0.js new file mode 100644 index 0000000..da437e7 --- /dev/null +++ b/docs/html/search/classes_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['action_0',['Action',['../classawsiotsdk_1_1_action.html',1,'awsiotsdk']]], + ['actiondata_1',['ActionData',['../classawsiotsdk_1_1_action_data.html',1,'awsiotsdk']]], + ['actionstate_2',['ActionState',['../classawsiotsdk_1_1_action_state.html',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/classes_1.js b/docs/html/search/classes_1.js new file mode 100644 index 0000000..c6b560f --- /dev/null +++ b/docs/html/search/classes_1.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['clientcore_0',['ClientCore',['../classawsiotsdk_1_1_client_core.html',1,'awsiotsdk']]], + ['clientcorestate_1',['ClientCoreState',['../classawsiotsdk_1_1_client_core_state.html',1,'awsiotsdk']]], + ['clientstate_2',['ClientState',['../classawsiotsdk_1_1mqtt_1_1_client_state.html',1,'awsiotsdk::mqtt']]], + ['configcommon_3',['ConfigCommon',['../classawsiotsdk_1_1_config_common.html',1,'awsiotsdk']]], + ['connectactionasync_4',['ConnectActionAsync',['../classawsiotsdk_1_1mqtt_1_1_connect_action_async.html',1,'awsiotsdk::mqtt']]], + ['connectivityinfo_5',['ConnectivityInfo',['../classawsiotsdk_1_1_connectivity_info.html',1,'awsiotsdk']]], + ['connectpacket_6',['ConnectPacket',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html',1,'awsiotsdk::mqtt']]], + ['consolelogsystem_7',['ConsoleLogSystem',['../classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html',1,'awsiotsdk::util::Logging']]] +]; diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js new file mode 100644 index 0000000..7ca801e --- /dev/null +++ b/docs/html/search/classes_2.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['disconnectactionasync_0',['DisconnectActionAsync',['../classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html',1,'awsiotsdk::mqtt']]], + ['disconnectcallbackcontextdata_1',['DisconnectCallbackContextData',['../classawsiotsdk_1_1_disconnect_callback_context_data.html',1,'awsiotsdk']]], + ['disconnectpacket_2',['DisconnectPacket',['../classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html',1,'awsiotsdk::mqtt']]], + ['discoveraction_3',['DiscoverAction',['../classawsiotsdk_1_1discovery_1_1_discover_action.html',1,'awsiotsdk::discovery']]], + ['discoverrequestdata_4',['DiscoverRequestData',['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html',1,'awsiotsdk::discovery']]], + ['discoveryresponse_5',['DiscoveryResponse',['../classawsiotsdk_1_1_discovery_response.html',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/classes_3.js b/docs/html/search/classes_3.js new file mode 100644 index 0000000..3939fa3 --- /dev/null +++ b/docs/html/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['formattedlogsystem_0',['FormattedLogSystem',['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html',1,'awsiotsdk::util::Logging']]] +]; diff --git a/docs/html/search/classes_4.js b/docs/html/search/classes_4.js new file mode 100644 index 0000000..55e4561 --- /dev/null +++ b/docs/html/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['greengrassmqttclient_0',['GreengrassMqttClient',['../classawsiotsdk_1_1_greengrass_mqtt_client.html',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/classes_5.js b/docs/html/search/classes_5.js new file mode 100644 index 0000000..6710e1a --- /dev/null +++ b/docs/html/search/classes_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['jobs_0',['Jobs',['../classawsiotsdk_1_1_jobs.html',1,'awsiotsdk']]], + ['jsonparser_1',['JsonParser',['../classawsiotsdk_1_1util_1_1_json_parser.html',1,'awsiotsdk::util']]] +]; diff --git a/docs/html/search/classes_6.js b/docs/html/search/classes_6.js new file mode 100644 index 0000000..25607f3 --- /dev/null +++ b/docs/html/search/classes_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['keepaliveactionrunner_0',['KeepaliveActionRunner',['../classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/classes_7.js b/docs/html/search/classes_7.js new file mode 100644 index 0000000..307da12 --- /dev/null +++ b/docs/html/search/classes_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['logsysteminterface_0',['LogSystemInterface',['../classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html',1,'awsiotsdk::util::Logging']]] +]; diff --git a/docs/html/search/classes_8.js b/docs/html/search/classes_8.js new file mode 100644 index 0000000..1f49da6 --- /dev/null +++ b/docs/html/search/classes_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['mqttclient_0',['MqttClient',['../classawsiotsdk_1_1_mqtt_client.html',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/classes_9.js b/docs/html/search/classes_9.js new file mode 100644 index 0000000..c7bd4ef --- /dev/null +++ b/docs/html/search/classes_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['networkconnection_0',['NetworkConnection',['../classawsiotsdk_1_1_network_connection.html',1,'awsiotsdk']]], + ['networkreadactionrunner_1',['NetworkReadActionRunner',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/classes_a.js b/docs/html/search/classes_a.js new file mode 100644 index 0000000..5618c8b --- /dev/null +++ b/docs/html/search/classes_a.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['packet_0',['Packet',['../classawsiotsdk_1_1mqtt_1_1_packet.html',1,'awsiotsdk::mqtt']]], + ['packetfixedheader_1',['PacketFixedHeader',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html',1,'awsiotsdk::mqtt']]], + ['pendingackdata_2',['PendingAckData',['../classawsiotsdk_1_1_client_core_state_1_1_pending_ack_data.html',1,'awsiotsdk::ClientCoreState']]], + ['pingreqpacket_3',['PingreqPacket',['../classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html',1,'awsiotsdk::mqtt']]], + ['pubackactionasync_4',['PubackActionAsync',['../classawsiotsdk_1_1mqtt_1_1_puback_action_async.html',1,'awsiotsdk::mqtt']]], + ['pubackpacket_5',['PubackPacket',['../classawsiotsdk_1_1mqtt_1_1_puback_packet.html',1,'awsiotsdk::mqtt']]], + ['publishactionasync_6',['PublishActionAsync',['../classawsiotsdk_1_1mqtt_1_1_publish_action_async.html',1,'awsiotsdk::mqtt']]], + ['publishpacket_7',['PublishPacket',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/classes_b.js b/docs/html/search/classes_b.js new file mode 100644 index 0000000..00ce439 --- /dev/null +++ b/docs/html/search/classes_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['reconnectcallbackcontextdata_0',['ReconnectCallbackContextData',['../classawsiotsdk_1_1_reconnect_callback_context_data.html',1,'awsiotsdk']]], + ['resubscribecallbackcontextdata_1',['ResubscribeCallbackContextData',['../classawsiotsdk_1_1_resubscribe_callback_context_data.html',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/classes_c.js b/docs/html/search/classes_c.js new file mode 100644 index 0000000..bd00fc4 --- /dev/null +++ b/docs/html/search/classes_c.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['shadow_0',['Shadow',['../classawsiotsdk_1_1_shadow.html',1,'awsiotsdk']]], + ['subackpacket_1',['SubackPacket',['../classawsiotsdk_1_1mqtt_1_1_suback_packet.html',1,'awsiotsdk::mqtt']]], + ['subscribeactionasync_2',['SubscribeActionAsync',['../classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html',1,'awsiotsdk::mqtt']]], + ['subscribepacket_3',['SubscribePacket',['../classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html',1,'awsiotsdk::mqtt']]], + ['subscription_4',['Subscription',['../classawsiotsdk_1_1mqtt_1_1_subscription.html',1,'awsiotsdk::mqtt']]], + ['subscriptionhandlercontextdata_5',['SubscriptionHandlerContextData',['../classawsiotsdk_1_1mqtt_1_1_subscription_handler_context_data.html',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/classes_d.js b/docs/html/search/classes_d.js new file mode 100644 index 0000000..40e6dc2 --- /dev/null +++ b/docs/html/search/classes_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['threadtask_0',['ThreadTask',['../classawsiotsdk_1_1util_1_1_threading_1_1_thread_task.html',1,'awsiotsdk::util::Threading']]] +]; diff --git a/docs/html/search/classes_e.js b/docs/html/search/classes_e.js new file mode 100644 index 0000000..457dfd1 --- /dev/null +++ b/docs/html/search/classes_e.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['unsubackpacket_0',['UnsubackPacket',['../classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html',1,'awsiotsdk::mqtt']]], + ['unsubscribeactionasync_1',['UnsubscribeActionAsync',['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html',1,'awsiotsdk::mqtt']]], + ['unsubscribepacket_2',['UnsubscribePacket',['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html',1,'awsiotsdk::mqtt']]], + ['utf8string_3',['Utf8String',['../classawsiotsdk_1_1_utf8_string.html',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/classes_f.js b/docs/html/search/classes_f.js new file mode 100644 index 0000000..c5b2a60 --- /dev/null +++ b/docs/html/search/classes_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['willoptions_0',['WillOptions',['../classawsiotsdk_1_1mqtt_1_1_will_options.html',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/close.svg b/docs/html/search/close.svg new file mode 100644 index 0000000..a933eea --- /dev/null +++ b/docs/html/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/docs/html/search/defines_0.js b/docs/html/search/defines_0.js new file mode 100644 index 0000000..8f35590 --- /dev/null +++ b/docs/html/search/defines_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['default_5fcore_5fthread_5fsleep_5fduration_5fms_0',['DEFAULT_CORE_THREAD_SLEEP_DURATION_MS',['../_client_core_state_8hpp.html#a76f2c20218b2cd066a5fff882bd09c9a',1,'ClientCoreState.hpp']]], + ['default_5fmax_5fqueue_5fsize_1',['DEFAULT_MAX_QUEUE_SIZE',['../_client_core_state_8hpp.html#ac1abf38b1e3b065c81148adef606c962',1,'ClientCoreState.hpp']]] +]; diff --git a/docs/html/search/enums_0.js b/docs/html/search/enums_0.js new file mode 100644 index 0000000..4e21b64 --- /dev/null +++ b/docs/html/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['actiontype_0',['ActionType',['../_action_8hpp.html#acaa59a76f3c629d2756ca9bb92edbd62',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/enums_1.js b/docs/html/search/enums_1.js new file mode 100644 index 0000000..573e7af --- /dev/null +++ b/docs/html/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['connackreturncode_0',['ConnackReturnCode',['../_connect_8hpp.html#a7e9209872ce924f26e53c18681772a15',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/enums_2.js b/docs/html/search/enums_2.js new file mode 100644 index 0000000..7bcea9a --- /dev/null +++ b/docs/html/search/enums_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['loglevel_0',['LogLevel',['../_log_level_8hpp.html#a0be68698b1753fcec80bfdad1164a746',1,'awsiotsdk::util::Logging']]] +]; diff --git a/docs/html/search/enums_3.js b/docs/html/search/enums_3.js new file mode 100644 index 0000000..edcce6e --- /dev/null +++ b/docs/html/search/enums_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['messagetypes_0',['MessageTypes',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/enums_4.js b/docs/html/search/enums_4.js new file mode 100644 index 0000000..a22bbac --- /dev/null +++ b/docs/html/search/enums_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['qos_0',['QoS',['../_common_8hpp.html#aba5332e61c1ae6757d0a59522139ec9f',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/enums_5.js b/docs/html/search/enums_5.js new file mode 100644 index 0000000..a23673a --- /dev/null +++ b/docs/html/search/enums_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['responsecode_0',['ResponseCode',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/enums_6.js b/docs/html/search/enums_6.js new file mode 100644 index 0000000..5d7a697 --- /dev/null +++ b/docs/html/search/enums_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['shadowrequesttype_0',['ShadowRequestType',['../_shadow_8hpp.html#a81938aeb5ef03ccfbf6a49faf3b09a24',1,'awsiotsdk']]], + ['shadowresponsetype_1',['ShadowResponseType',['../_shadow_8hpp.html#a0e03f5adfd568e168b555e8cd5e2f00d',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/enums_7.js b/docs/html/search/enums_7.js new file mode 100644 index 0000000..4bf184d --- /dev/null +++ b/docs/html/search/enums_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['version_0',['Version',['../_common_8hpp.html#ac317afc13d331a2ff967daf9e7618bfa',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/enumvalues_0.js b/docs/html/search/enumvalues_0.js new file mode 100644 index 0000000..f9ca09d --- /dev/null +++ b/docs/html/search/enumvalues_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['action_5fcreate_5ffailed_0',['ACTION_CREATE_FAILED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a225251cbbc3443e5f366733983bab694',1,'awsiotsdk']]], + ['action_5fnot_5fregistered_5ferror_1',['ACTION_NOT_REGISTERED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ad67ae60790b740a09c300ae517594a87',1,'awsiotsdk']]], + ['action_5fqueue_5ffull_2',['ACTION_QUEUE_FULL',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aef6b39f017fccd7ad5f19a780f6b46ac',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/enumvalues_1.js b/docs/html/search/enumvalues_1.js new file mode 100644 index 0000000..5dfabc8 --- /dev/null +++ b/docs/html/search/enumvalues_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['connack_0',['CONNACK',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a7213a51abf940e6102c31b108091427d',1,'awsiotsdk::mqtt']]], + ['connect_1',['CONNECT',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334ab57e2519e26151feacdbe52076bc39ec',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/enumvalues_2.js b/docs/html/search/enumvalues_2.js new file mode 100644 index 0000000..c1c8461 --- /dev/null +++ b/docs/html/search/enumvalues_2.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['disconnect_0',['DISCONNECT',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334add7cd0eb57db08d4f98abc48e5593462',1,'awsiotsdk::mqtt']]], + ['discover_5faction_5fno_5finformation_5fpresent_1',['DISCOVER_ACTION_NO_INFORMATION_PRESENT',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a0702b7d935c87570570b447ee19c7505',1,'awsiotsdk']]], + ['discover_5faction_5frequest_5ffailed_5ferror_2',['DISCOVER_ACTION_REQUEST_FAILED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a9eded4f8f80e6e3ee03d4997859a95de',1,'awsiotsdk']]], + ['discover_5faction_5frequest_5foverload_3',['DISCOVER_ACTION_REQUEST_OVERLOAD',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a1d73418d145089030c2ca9803110205d',1,'awsiotsdk']]], + ['discover_5faction_5frequest_5ftimed_5fout_5ferror_4',['DISCOVER_ACTION_REQUEST_TIMED_OUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a6507103b22a590c88a4d493de0f31629',1,'awsiotsdk']]], + ['discover_5faction_5fserver_5ferror_5',['DISCOVER_ACTION_SERVER_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051abc03b0e2cf431f601bc0f4de54cb7e09',1,'awsiotsdk']]], + ['discover_5faction_5fsuccess_6',['DISCOVER_ACTION_SUCCESS',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aabf738cd60807073203afcf3519facea',1,'awsiotsdk']]], + ['discover_5faction_5funauthorized_7',['DISCOVER_ACTION_UNAUTHORIZED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aaac73635b7c4989a337e668b202c18b3',1,'awsiotsdk']]], + ['discover_5fresponse_5funexpected_5fjson_5fstructure_5ferror_8',['DISCOVER_RESPONSE_UNEXPECTED_JSON_STRUCTURE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a1730532b91d55604702a99827162f2c0',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/enumvalues_3.js b/docs/html/search/enumvalues_3.js new file mode 100644 index 0000000..f563f66 --- /dev/null +++ b/docs/html/search/enumvalues_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['failure_0',['FAILURE',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a36fc6065a3e970bc3e6b2e59da52bf2a',1,'awsiotsdk']]], + ['file_5fname_5finvalid_1',['FILE_NAME_INVALID',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a5fc7e55af65f67c982bbcc88fe1a1fe9',1,'awsiotsdk']]], + ['file_5fopen_5ferror_2',['FILE_OPEN_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a08715903eca17abcd7ecdb74bc10aa4b',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/enumvalues_4.js b/docs/html/search/enumvalues_4.js new file mode 100644 index 0000000..ae741b0 --- /dev/null +++ b/docs/html/search/enumvalues_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['invalid_0',['INVALID',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334accc0377a8afbf50e7094f5c23a8af223',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/enumvalues_5.js b/docs/html/search/enumvalues_5.js new file mode 100644 index 0000000..aa41caf --- /dev/null +++ b/docs/html/search/enumvalues_5.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['jobs_5finvalid_5ftopic_5ferror_0',['JOBS_INVALID_TOPIC_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aee8939901b7599d78eed549f825238e2',1,'awsiotsdk']]], + ['json_5fdiff_5ffailed_1',['JSON_DIFF_FAILED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051af40c050f2a31d5694771f780f74fcac9',1,'awsiotsdk']]], + ['json_5fmerge_5ffailed_2',['JSON_MERGE_FAILED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ab6e9e616ade8d910bed49c77952d30dc',1,'awsiotsdk']]], + ['json_5fparse_5fkey_5fnot_5ffound_5ferror_3',['JSON_PARSE_KEY_NOT_FOUND_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac7d4ed3ca1549a1a5ae0f6c857d263ce',1,'awsiotsdk']]], + ['json_5fparse_5fkey_5funexpected_5ftype_5ferror_4',['JSON_PARSE_KEY_UNEXPECTED_TYPE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ab313da7ad13e5a91e7af920472320b10',1,'awsiotsdk']]], + ['json_5fparsing_5ferror_5',['JSON_PARSING_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a7f3e9891193ea6c97c3c9337551eac1e',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/enumvalues_6.js b/docs/html/search/enumvalues_6.js new file mode 100644 index 0000000..09da933 --- /dev/null +++ b/docs/html/search/enumvalues_6.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['mqtt_5f3_5f1_5f1_0',['MQTT_3_1_1',['../_common_8hpp.html#ac317afc13d331a2ff967daf9e7618bfaa653dca2e74a21ad301cf8b7bdfd9938d',1,'awsiotsdk::mqtt']]], + ['mqtt_5fclient_5fnot_5fidle_5ferror_1',['MQTT_CLIENT_NOT_IDLE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051afdb43d28bf66f01d8c746a8f776469d9',1,'awsiotsdk']]], + ['mqtt_5fconnack_5fbad_5fuserdata_5ferror_2',['MQTT_CONNACK_BAD_USERDATA_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aabdef26c031fa34ec9ef1dc547b5c500',1,'awsiotsdk']]], + ['mqtt_5fconnack_5fconnection_5faccepted_3',['MQTT_CONNACK_CONNECTION_ACCEPTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a8561677c41d06cb7d444797e79956987',1,'awsiotsdk']]], + ['mqtt_5fconnack_5fidentifier_5frejected_5ferror_4',['MQTT_CONNACK_IDENTIFIER_REJECTED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aebac4c609cad3dc1859a8b389e221018',1,'awsiotsdk']]], + ['mqtt_5fconnack_5fnot_5fauthorized_5ferror_5',['MQTT_CONNACK_NOT_AUTHORIZED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a0086792946f65e98dd3dcaacb41bc3a5',1,'awsiotsdk']]], + ['mqtt_5fconnack_5fserver_5funavailable_5ferror_6',['MQTT_CONNACK_SERVER_UNAVAILABLE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a64bccd17ef660d50cc3a5a133cb5034c',1,'awsiotsdk']]], + ['mqtt_5fconnack_5funacceptable_5fprotocol_5fversion_5ferror_7',['MQTT_CONNACK_UNACCEPTABLE_PROTOCOL_VERSION_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051abbf84701226412d6e58e703a068cff9a',1,'awsiotsdk']]], + ['mqtt_5fconnack_5funknown_5ferror_8',['MQTT_CONNACK_UNKNOWN_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a951d3e1d676c9758ee6d40b8cea9e0b2',1,'awsiotsdk']]], + ['mqtt_5fconnect_5ftimeout_5ferror_9',['MQTT_CONNECT_TIMEOUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051acb7d9f13b307922b73af194772b9b9dc',1,'awsiotsdk']]], + ['mqtt_5fconnection_5ferror_10',['MQTT_CONNECTION_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a8dfbb5f43ecb50bc6d74f38a91c8892c',1,'awsiotsdk']]], + ['mqtt_5fdecode_5fremaining_5flength_5ferror_11',['MQTT_DECODE_REMAINING_LENGTH_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051af077b47d2b50f034fa6ed70111162195',1,'awsiotsdk']]], + ['mqtt_5finvalid_5fdata_5ferror_12',['MQTT_INVALID_DATA_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac0e59dd09eeda29713972df9a9f51685',1,'awsiotsdk']]], + ['mqtt_5fmax_5fsubscriptions_5freached_5ferror_13',['MQTT_MAX_SUBSCRIPTIONS_REACHED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a2e261f3a66501599666402c62b64bdcc',1,'awsiotsdk']]], + ['mqtt_5fno_5fsubscription_5ffound_14',['MQTT_NO_SUBSCRIPTION_FOUND',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a15e70e8989c9cc956782db5297eace74',1,'awsiotsdk']]], + ['mqtt_5fnothing_5fto_5fread_15',['MQTT_NOTHING_TO_READ',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a6e7aba747de66305c5112daef785a0aa',1,'awsiotsdk']]], + ['mqtt_5frequest_5ftimeout_5ferror_16',['MQTT_REQUEST_TIMEOUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aacdf2e25c8ed8e408b0405a4a54f98da',1,'awsiotsdk']]], + ['mqtt_5frx_5fmessage_5fpacket_5ftype_5finvalid_5ferror_17',['MQTT_RX_MESSAGE_PACKET_TYPE_INVALID_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051acf20f47678faac81b098cd55558e087f',1,'awsiotsdk']]], + ['mqtt_5fsubscribe_5ffailed_18',['MQTT_SUBSCRIBE_FAILED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a95563729ac7dd3486aef617bb54ac656',1,'awsiotsdk']]], + ['mqtt_5fsubscribe_5fpartially_5ffailed_19',['MQTT_SUBSCRIBE_PARTIALLY_FAILED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a067f7b87d570c4de14aa7527b1577aab',1,'awsiotsdk']]], + ['mqtt_5fsubscription_5fnot_5factive_20',['MQTT_SUBSCRIPTION_NOT_ACTIVE',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac2ec46d08290abf8d2b645a03d03c0ea',1,'awsiotsdk']]], + ['mqtt_5ftoo_5fmany_5fsubscriptions_5fin_5frequest_21',['MQTT_TOO_MANY_SUBSCRIPTIONS_IN_REQUEST',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a8c6b87cf00f39b751b9a386ac5c1d7f1',1,'awsiotsdk']]], + ['mqtt_5funexpected_5fclient_5fstate_5ferror_22',['MQTT_UNEXPECTED_CLIENT_STATE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a130d066938d4e7775d6ef52d469f9740',1,'awsiotsdk']]], + ['mqtt_5funexpected_5fpacket_5fformat_5ferror_23',['MQTT_UNEXPECTED_PACKET_FORMAT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac7570d6591f9ec71a452c83f3c5c59d9',1,'awsiotsdk']]], + ['mutex_5fdestroy_5ferror_24',['MUTEX_DESTROY_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ab1f515a74fb97bc5496ea8f0947cb2f5',1,'awsiotsdk']]], + ['mutex_5finit_5ferror_25',['MUTEX_INIT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae53fd053b76138e69a6b84f21c03df0d',1,'awsiotsdk']]], + ['mutex_5flock_5ferror_26',['MUTEX_LOCK_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ad692e26777aeb24f0a8abfe834e28f30',1,'awsiotsdk']]], + ['mutex_5funlock_5ferror_27',['MUTEX_UNLOCK_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a28a9299d113a78c6d0167768435c1609',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/enumvalues_7.js b/docs/html/search/enumvalues_7.js new file mode 100644 index 0000000..843c93b --- /dev/null +++ b/docs/html/search/enumvalues_7.js @@ -0,0 +1,32 @@ +var searchData= +[ + ['network_5falready_5fconnected_5ferror_0',['NETWORK_ALREADY_CONNECTED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a780627e82c6ff4f4e7f3aa1c98808343',1,'awsiotsdk']]], + ['network_5fattempting_5freconnect_1',['NETWORK_ATTEMPTING_RECONNECT',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac16482a584b8ca1aad7b78d091b66f66',1,'awsiotsdk']]], + ['network_5fdisconnected_5ferror_2',['NETWORK_DISCONNECTED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a0b14056e83bfb1a09b8f41ea026fe2ac',1,'awsiotsdk']]], + ['network_5fmanually_5fdisconnected_3',['NETWORK_MANUALLY_DISCONNECTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae671b14e97ca9c30d9979e8476bc774d',1,'awsiotsdk']]], + ['network_5fnothing_5fto_5fwrite_5ferror_4',['NETWORK_NOTHING_TO_WRITE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a497b2e045cd6b3c666280ab146c7c3c8',1,'awsiotsdk']]], + ['network_5fphysical_5flayer_5fconnected_5',['NETWORK_PHYSICAL_LAYER_CONNECTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a34f8a2123a41265c5a9fcd6775096802',1,'awsiotsdk']]], + ['network_5fphysical_5flayer_5fdisconnected_6',['NETWORK_PHYSICAL_LAYER_DISCONNECTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a1b6ef08f900a259694cd354631268cbc',1,'awsiotsdk']]], + ['network_5freconnect_5ftimed_5fout_5ferror_7',['NETWORK_RECONNECT_TIMED_OUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a7ad7c33424cd3c80acb4fb1e3490dd9f',1,'awsiotsdk']]], + ['network_5freconnected_8',['NETWORK_RECONNECTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a678dbb6f5c1cf8d301ce5345ce587c02',1,'awsiotsdk']]], + ['network_5fssl_5fconnect_5ferror_9',['NETWORK_SSL_CONNECT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac702e28184ad4ec6c6261f768544968c',1,'awsiotsdk']]], + ['network_5fssl_5fconnect_5ftimeout_5ferror_10',['NETWORK_SSL_CONNECT_TIMEOUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ab27e4995779f23007de532ca79bab061',1,'awsiotsdk']]], + ['network_5fssl_5fconnection_5fclosed_5ferror_11',['NETWORK_SSL_CONNECTION_CLOSED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aa74c62aa188779f3dc6ab6df44921f0e',1,'awsiotsdk']]], + ['network_5fssl_5fdevice_5fcrt_5fparse_5ferror_12',['NETWORK_SSL_DEVICE_CRT_PARSE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a0f192c6e1d9d7ed13fb1145e91d1cd97',1,'awsiotsdk']]], + ['network_5fssl_5finit_5ferror_13',['NETWORK_SSL_INIT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aa654cce13676bd6cded3155f6fb5d954',1,'awsiotsdk']]], + ['network_5fssl_5fkey_5fparse_5ferror_14',['NETWORK_SSL_KEY_PARSE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a42c034ad8f8b9d65bec9252548650be0',1,'awsiotsdk']]], + ['network_5fssl_5fnothing_5fto_5fread_15',['NETWORK_SSL_NOTHING_TO_READ',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aa0b4adfbd7243366861e99377a8e94bc',1,'awsiotsdk']]], + ['network_5fssl_5fread_5ferror_16',['NETWORK_SSL_READ_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a34f2f18734b7e54833810cc37fccdbf5',1,'awsiotsdk']]], + ['network_5fssl_5fread_5ftimeout_5ferror_17',['NETWORK_SSL_READ_TIMEOUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a9f3d0f50d3a21929f76f81f15a2842cd',1,'awsiotsdk']]], + ['network_5fssl_5froot_5fcrt_5fparse_5ferror_18',['NETWORK_SSL_ROOT_CRT_PARSE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae840b1f9ed4db8028378500c77851598',1,'awsiotsdk']]], + ['network_5fssl_5fserver_5fverification_5ferror_19',['NETWORK_SSL_SERVER_VERIFICATION_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ac26b3aaded4e899c321b552965a15e58',1,'awsiotsdk']]], + ['network_5fssl_5ftls_5fhandshake_5ferror_20',['NETWORK_SSL_TLS_HANDSHAKE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae3a76d65fad9129409fb4ebbfe2506fe',1,'awsiotsdk']]], + ['network_5fssl_5funknown_5ferror_21',['NETWORK_SSL_UNKNOWN_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051add19638ee1eb572c8e7887c0849286fb',1,'awsiotsdk']]], + ['network_5fssl_5fwrite_5ferror_22',['NETWORK_SSL_WRITE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051add1fbe30a969d90640c0cda8a3414311',1,'awsiotsdk']]], + ['network_5fssl_5fwrite_5ftimeout_5ferror_23',['NETWORK_SSL_WRITE_TIMEOUT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aeac6fbe75a87244947789561d66bcf00',1,'awsiotsdk']]], + ['network_5ftcp_5fconnect_5ferror_24',['NETWORK_TCP_CONNECT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a665ea14dc987bb79824a252779646a45',1,'awsiotsdk']]], + ['network_5ftcp_5fno_5fendpoint_5fspecified_25',['NETWORK_TCP_NO_ENDPOINT_SPECIFIED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a39791d44118cbf57af96e7def553d464',1,'awsiotsdk']]], + ['network_5ftcp_5fsetup_5ferror_26',['NETWORK_TCP_SETUP_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ad3b3b8b2035dd067b26a41cff4a8be2e',1,'awsiotsdk']]], + ['network_5ftcp_5funknown_5fhost_27',['NETWORK_TCP_UNKNOWN_HOST',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ab8b58c0f13691c1d381dc38d25730ba5',1,'awsiotsdk']]], + ['null_5fvalue_5ferror_28',['NULL_VALUE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051af60b8bb4e00fa23bc2a70fd84d100e4c',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/enumvalues_8.js b/docs/html/search/enumvalues_8.js new file mode 100644 index 0000000..f24214e --- /dev/null +++ b/docs/html/search/enumvalues_8.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['pingreq_0',['PINGREQ',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334aa1c6c32cdba1885967e1b27a431898a8',1,'awsiotsdk::mqtt']]], + ['pingresp_1',['PINGRESP',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a1f7e2bf52e0b5b238d2eb91b2302262a',1,'awsiotsdk::mqtt']]], + ['puback_2',['PUBACK',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334af4de6e93dd6f9364096afaab8fe3b688',1,'awsiotsdk::mqtt']]], + ['pubcomp_3',['PUBCOMP',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334ac305afe26e81a925ad9612da283c4224',1,'awsiotsdk::mqtt']]], + ['publish_4',['PUBLISH',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a155fe93b6325d234ef591bc6a7915a32',1,'awsiotsdk::mqtt']]], + ['pubrec_5',['PUBREC',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a60215ca6d0d81dae28964aafd566c59e',1,'awsiotsdk::mqtt']]], + ['pubrel_6',['PUBREL',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a43fa366dfa245b930ff7b05c8c3cf9b4',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/enumvalues_9.js b/docs/html/search/enumvalues_9.js new file mode 100644 index 0000000..d8afe95 --- /dev/null +++ b/docs/html/search/enumvalues_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['qos0_0',['QOS0',['../_common_8hpp.html#aba5332e61c1ae6757d0a59522139ec9fa065532b760e1ff433556caf8cff11819',1,'awsiotsdk::mqtt']]], + ['qos1_1',['QOS1',['../_common_8hpp.html#aba5332e61c1ae6757d0a59522139ec9fa42c6763919390c440401d176611e39fa',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/enumvalues_a.js b/docs/html/search/enumvalues_a.js new file mode 100644 index 0000000..50b531b --- /dev/null +++ b/docs/html/search/enumvalues_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['reserved_0',['RESERVED',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a83c7f2aa8c3ac10ed8beb75cad162827',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/enumvalues_b.js b/docs/html/search/enumvalues_b.js new file mode 100644 index 0000000..40c5a06 --- /dev/null +++ b/docs/html/search/enumvalues_b.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['shadow_5fjson_5fbuffer_5ftruncated_0',['SHADOW_JSON_BUFFER_TRUNCATED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae941f35b3d82af913a2466391d62df3e',1,'awsiotsdk']]], + ['shadow_5fjson_5fempty_5ferror_1',['SHADOW_JSON_EMPTY_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a2efe4fdf463d0e4c87811db7d86c4c2a',1,'awsiotsdk']]], + ['shadow_5fjson_5ferror_2',['SHADOW_JSON_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051af9ff8e5e5f8a9fc6bd9b5c9fb161a6d2',1,'awsiotsdk']]], + ['shadow_5fmqtt_5fclient_5fnot_5fset_5ferror_3',['SHADOW_MQTT_CLIENT_NOT_SET_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ad41849a1814372b0ec8941c38268f441',1,'awsiotsdk']]], + ['shadow_5fmqtt_5fdisconnected_5ferror_4',['SHADOW_MQTT_DISCONNECTED_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a9b0cf2d35c904250be07e908ee7b5ec4',1,'awsiotsdk']]], + ['shadow_5fnothing_5fto_5fupdate_5',['SHADOW_NOTHING_TO_UPDATE',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a64267290a88bd8ff2c6061512cc2682e',1,'awsiotsdk']]], + ['shadow_5freceived_5fdelta_6',['SHADOW_RECEIVED_DELTA',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a13e4bb360a456d19bdaed0a1778cc5b9',1,'awsiotsdk']]], + ['shadow_5freceived_5fold_5fversion_5fupdate_7',['SHADOW_RECEIVED_OLD_VERSION_UPDATE',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aac6d764341d72e9cec574545bef3d265',1,'awsiotsdk']]], + ['shadow_5frequest_5faccepted_8',['SHADOW_REQUEST_ACCEPTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ad7e89037b08d269c4f7d752a110a6166',1,'awsiotsdk']]], + ['shadow_5frequest_5fmap_5fempty_9',['SHADOW_REQUEST_MAP_EMPTY',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a1b207877ebbcc3dea04441bd696cf164',1,'awsiotsdk']]], + ['shadow_5frequest_5frejected_10',['SHADOW_REQUEST_REJECTED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a434f2e946a9ce002d97df3ad14cb5f45',1,'awsiotsdk']]], + ['shadow_5funexpected_5fresponse_5fpayload_11',['SHADOW_UNEXPECTED_RESPONSE_PAYLOAD',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051af0b8c9d176e210e6478b00ca7964b178',1,'awsiotsdk']]], + ['shadow_5funexpected_5fresponse_5ftopic_12',['SHADOW_UNEXPECTED_RESPONSE_TOPIC',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a02564577052ca833e7d69e25cb271207',1,'awsiotsdk']]], + ['shadow_5funexpected_5fresponse_5ftype_13',['SHADOW_UNEXPECTED_RESPONSE_TYPE',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a8eb64e3dd752368d220e71b8da424a12',1,'awsiotsdk']]], + ['shadow_5fwait_5ffor_5fpublish_14',['SHADOW_WAIT_FOR_PUBLISH',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae10437b97b29422affd74c1809817812',1,'awsiotsdk']]], + ['suback_15',['SUBACK',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334af9e73deb3ec309f3553de1f5fe0820c1',1,'awsiotsdk::mqtt']]], + ['subscribe_16',['SUBSCRIBE',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a45b73ef479821e71be9f69a190f2bb86',1,'awsiotsdk::mqtt']]], + ['success_17',['SUCCESS',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ad0749aaba8b833466dfcbb0428e4f89c',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/enumvalues_c.js b/docs/html/search/enumvalues_c.js new file mode 100644 index 0000000..ae4336e --- /dev/null +++ b/docs/html/search/enumvalues_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['thread_5fexiting_0',['THREAD_EXITING',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a2f3ab31ba99976792d317fa8422fc512',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/enumvalues_d.js b/docs/html/search/enumvalues_d.js new file mode 100644 index 0000000..0b07a74 --- /dev/null +++ b/docs/html/search/enumvalues_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['unsuback_0',['UNSUBACK',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334ac2d272379232110bc1215aaed4dad386',1,'awsiotsdk::mqtt']]], + ['unsubscribe_1',['UNSUBSCRIBE',['../_common_8hpp.html#aefd8899ab2fd63a0b3ef8fe22ee46334a62b18b8274e34fd701d0b684a32c633f',1,'awsiotsdk::mqtt']]] +]; diff --git a/docs/html/search/enumvalues_e.js b/docs/html/search/enumvalues_e.js new file mode 100644 index 0000000..d9e084b --- /dev/null +++ b/docs/html/search/enumvalues_e.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['websocket_5fdisconnect_5ferror_0',['WEBSOCKET_DISCONNECT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a64c098de2eda47f06a45422cda10c651',1,'awsiotsdk']]], + ['websocket_5fframe_5freceive_5ferror_1',['WEBSOCKET_FRAME_RECEIVE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae1b46f6d71f307266ead52c6ac5e18e1',1,'awsiotsdk']]], + ['websocket_5fframe_5ftransmit_5ferror_2',['WEBSOCKET_FRAME_TRANSMIT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a48173ab82545ca357018ca0520caa46f',1,'awsiotsdk']]], + ['websocket_5fgen_5fclient_5fkey_5ferror_3',['WEBSOCKET_GEN_CLIENT_KEY_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a753dd7363768f3988686ef10af7e7801',1,'awsiotsdk']]], + ['websocket_5fget_5futc_5ftime_5ffailed_4',['WEBSOCKET_GET_UTC_TIME_FAILED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a1729bd0903c8c0837101ec5320489256',1,'awsiotsdk']]], + ['websocket_5fhandshake_5ferror_5',['WEBSOCKET_HANDSHAKE_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae34d895cae6f8adca512dab163c3a02f',1,'awsiotsdk']]], + ['websocket_5fhandshake_5fread_6',['WEBSOCKET_HANDSHAKE_READ',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051abd125d5a32c87fc230b63b72e915c557',1,'awsiotsdk']]], + ['websocket_5fhandshake_5fverify_5ferror_7',['WEBSOCKET_HANDSHAKE_VERIFY_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a7c83206105abb61ca17f93b77f20ebc4',1,'awsiotsdk']]], + ['websocket_5fhandshake_5fwrite_8',['WEBSOCKET_HANDSHAKE_WRITE',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a34b7a7fb3826d0020ecc0b315d1a3ab9',1,'awsiotsdk']]], + ['websocket_5fmax_5flifetime_5freached_9',['WEBSOCKET_MAX_LIFETIME_REACHED',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ae36e61a9bbec2c4f3da66a26267d488a',1,'awsiotsdk']]], + ['websocket_5fprotocol_5fviolation_10',['WEBSOCKET_PROTOCOL_VIOLATION',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051ab91184f0990bf932d881a6446640fc8d',1,'awsiotsdk']]], + ['websocket_5fsign_5furl_5fno_5fmem_11',['WEBSOCKET_SIGN_URL_NO_MEM',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051a356346f1481c1ea2cf1c8c3c0c94e6dd',1,'awsiotsdk']]], + ['websocket_5fwslay_5fcontext_5finit_5ferror_12',['WEBSOCKET_WSLAY_CONTEXT_INIT_ERROR',['../_response_code_8hpp.html#a7f71522063a0d5f1df87d7e7f6a55051aefde6372dd5a61890f2c0088275af731',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/files_0.js b/docs/html/search/files_0.js new file mode 100644 index 0000000..5c4cbfb --- /dev/null +++ b/docs/html/search/files_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['action_2ecpp_0',['Action.cpp',['../_action_8cpp.html',1,'']]], + ['action_2ehpp_1',['Action.hpp',['../_action_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_1.js b/docs/html/search/files_1.js new file mode 100644 index 0000000..e68a7f9 --- /dev/null +++ b/docs/html/search/files_1.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['client_2ecpp_0',['Client.cpp',['../_client_8cpp.html',1,'']]], + ['client_2ehpp_1',['Client.hpp',['../_client_8hpp.html',1,'']]], + ['clientcore_2ecpp_2',['ClientCore.cpp',['../_client_core_8cpp.html',1,'']]], + ['clientcore_2ehpp_3',['ClientCore.hpp',['../_client_core_8hpp.html',1,'']]], + ['clientcorestate_2ecpp_4',['ClientCoreState.cpp',['../_client_core_state_8cpp.html',1,'']]], + ['clientcorestate_2ehpp_5',['ClientCoreState.hpp',['../_client_core_state_8hpp.html',1,'']]], + ['clientstate_2ecpp_6',['ClientState.cpp',['../_client_state_8cpp.html',1,'']]], + ['clientstate_2ehpp_7',['ClientState.hpp',['../_client_state_8hpp.html',1,'']]], + ['common_2ecpp_8',['Common.cpp',['../_common_8cpp.html',1,'']]], + ['common_2ehpp_9',['Common.hpp',['../_common_8hpp.html',1,'']]], + ['configcommon_2ecpp_10',['ConfigCommon.cpp',['../_config_common_8cpp.html',1,'']]], + ['connect_2ecpp_11',['Connect.cpp',['../_connect_8cpp.html',1,'']]], + ['connect_2ehpp_12',['Connect.hpp',['../_connect_8hpp.html',1,'']]], + ['consolelogsystem_2ecpp_13',['ConsoleLogSystem.cpp',['../_console_log_system_8cpp.html',1,'']]], + ['consolelogsystem_2ehpp_14',['ConsoleLogSystem.hpp',['../_console_log_system_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_2.js b/docs/html/search/files_2.js new file mode 100644 index 0000000..5a6227c --- /dev/null +++ b/docs/html/search/files_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['discovery_2ecpp_0',['Discovery.cpp',['../_discovery_8cpp.html',1,'']]], + ['discovery_2ehpp_1',['Discovery.hpp',['../_discovery_8hpp.html',1,'']]], + ['discoveryresponse_2ecpp_2',['DiscoveryResponse.cpp',['../_discovery_response_8cpp.html',1,'']]], + ['discoveryresponse_2ehpp_3',['DiscoveryResponse.hpp',['../_discovery_response_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_3.js b/docs/html/search/files_3.js new file mode 100644 index 0000000..519ae92 --- /dev/null +++ b/docs/html/search/files_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['formattedlogsystem_2ecpp_0',['FormattedLogSystem.cpp',['../_formatted_log_system_8cpp.html',1,'']]], + ['formattedlogsystem_2ehpp_1',['FormattedLogSystem.hpp',['../_formatted_log_system_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_4.js b/docs/html/search/files_4.js new file mode 100644 index 0000000..cfe2342 --- /dev/null +++ b/docs/html/search/files_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['greengrassmqttclient_2ehpp_0',['GreengrassMqttClient.hpp',['../_greengrass_mqtt_client_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_5.js b/docs/html/search/files_5.js new file mode 100644 index 0000000..be253df --- /dev/null +++ b/docs/html/search/files_5.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['jobs_2ecpp_0',['Jobs.cpp',['../_jobs_8cpp.html',1,'']]], + ['jobs_2ehpp_1',['Jobs.hpp',['../_jobs_8hpp.html',1,'']]], + ['jsonparser_2ecpp_2',['JsonParser.cpp',['../_json_parser_8cpp.html',1,'']]], + ['jsonparser_2ehpp_3',['JsonParser.hpp',['../_json_parser_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_6.js b/docs/html/search/files_6.js new file mode 100644 index 0000000..11ded48 --- /dev/null +++ b/docs/html/search/files_6.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['logging_2ecpp_0',['Logging.cpp',['../_logging_8cpp.html',1,'']]], + ['logging_2ehpp_1',['Logging.hpp',['../_logging_8hpp.html',1,'']]], + ['loglevel_2ecpp_2',['LogLevel.cpp',['../_log_level_8cpp.html',1,'']]], + ['loglevel_2ehpp_3',['LogLevel.hpp',['../_log_level_8hpp.html',1,'']]], + ['logmacros_2ehpp_4',['LogMacros.hpp',['../_log_macros_8hpp.html',1,'']]], + ['logsysteminterface_2ehpp_5',['LogSystemInterface.hpp',['../_log_system_interface_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_7.js b/docs/html/search/files_7.js new file mode 100644 index 0000000..68ec14d --- /dev/null +++ b/docs/html/search/files_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['map_2ehpp_0',['Map.hpp',['../_map_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_8.js b/docs/html/search/files_8.js new file mode 100644 index 0000000..43bd998 --- /dev/null +++ b/docs/html/search/files_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['networkconnection_2ecpp_0',['NetworkConnection.cpp',['../_network_connection_8cpp.html',1,'']]], + ['networkconnection_2ehpp_1',['NetworkConnection.hpp',['../_network_connection_8hpp.html',1,'']]], + ['networkread_2ecpp_2',['NetworkRead.cpp',['../_network_read_8cpp.html',1,'']]], + ['networkread_2ehpp_3',['NetworkRead.hpp',['../_network_read_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_9.js b/docs/html/search/files_9.js new file mode 100644 index 0000000..9b9e58a --- /dev/null +++ b/docs/html/search/files_9.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['packet_2ecpp_0',['Packet.cpp',['../_packet_8cpp.html',1,'']]], + ['packet_2ehpp_1',['Packet.hpp',['../_packet_8hpp.html',1,'']]], + ['publish_2ecpp_2',['Publish.cpp',['../_publish_8cpp.html',1,'']]], + ['publish_2ehpp_3',['Publish.hpp',['../_publish_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_a.js b/docs/html/search/files_a.js new file mode 100644 index 0000000..3247f34 --- /dev/null +++ b/docs/html/search/files_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['queue_2ehpp_0',['Queue.hpp',['../_queue_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_b.js b/docs/html/search/files_b.js new file mode 100644 index 0000000..92e2c52 --- /dev/null +++ b/docs/html/search/files_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['responsecode_2ecpp_0',['ResponseCode.cpp',['../_response_code_8cpp.html',1,'']]], + ['responsecode_2ehpp_1',['ResponseCode.hpp',['../_response_code_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_c.js b/docs/html/search/files_c.js new file mode 100644 index 0000000..20f303e --- /dev/null +++ b/docs/html/search/files_c.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['shadow_2ecpp_0',['Shadow.cpp',['../_shadow_8cpp.html',1,'']]], + ['shadow_2ehpp_1',['Shadow.hpp',['../_shadow_8hpp.html',1,'']]], + ['string_2ehpp_2',['String.hpp',['../_string_8hpp.html',1,'']]], + ['stringstream_2ehpp_3',['StringStream.hpp',['../_string_stream_8hpp.html',1,'']]], + ['subscribe_2ecpp_4',['Subscribe.cpp',['../_subscribe_8cpp.html',1,'']]], + ['subscribe_2ehpp_5',['Subscribe.hpp',['../_subscribe_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_d.js b/docs/html/search/files_d.js new file mode 100644 index 0000000..5778916 --- /dev/null +++ b/docs/html/search/files_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['threadtask_2ecpp_0',['ThreadTask.cpp',['../_thread_task_8cpp.html',1,'']]] +]; diff --git a/docs/html/search/files_e.js b/docs/html/search/files_e.js new file mode 100644 index 0000000..2650237 --- /dev/null +++ b/docs/html/search/files_e.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['utf8string_2ecpp_0',['Utf8String.cpp',['../_utf8_string_8cpp.html',1,'']]], + ['utf8string_2ehpp_1',['Utf8String.hpp',['../_utf8_string_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/files_f.js b/docs/html/search/files_f.js new file mode 100644 index 0000000..cb67f7e --- /dev/null +++ b/docs/html/search/files_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['vector_2ehpp_0',['Vector.hpp',['../_vector_8hpp.html',1,'']]] +]; diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js new file mode 100644 index 0000000..9b78223 --- /dev/null +++ b/docs/html/search/functions_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['action_0',['Action',['../classawsiotsdk_1_1_action.html#a020866ad68d3da1025f19dea2f965ed3',1,'awsiotsdk::Action']]], + ['addshadowsubscription_1',['AddShadowSubscription',['../classawsiotsdk_1_1_shadow.html#a62ce754ea72c07c543ed5a13498b403b',1,'awsiotsdk::Shadow']]], + ['appendtobuffer_2',['AppendToBuffer',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#a04c7b2d1fbcc8c81a21ceccadc522ad7',1,'awsiotsdk::mqtt::PacketFixedHeader']]] +]; diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js new file mode 100644 index 0000000..0d64ac7 --- /dev/null +++ b/docs/html/search/functions_1.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['canprocessqueuedactions_0',['CanProcessQueuedActions',['../classawsiotsdk_1_1_client_core_state.html#ac6138e05829b09fee28628e0d0b70cc3',1,'awsiotsdk::ClientCoreState']]], + ['clearoutboundactionqueue_1',['ClearOutboundActionQueue',['../classawsiotsdk_1_1_client_core_state.html#aee9925041664d43a8b487106fcdda9b9',1,'awsiotsdk::ClientCoreState']]], + ['clearregisteredactions_2',['ClearRegisteredActions',['../classawsiotsdk_1_1_client_core_state.html#ac78efbc143b86c7c4a35d08b55eff231',1,'awsiotsdk::ClientCoreState']]], + ['clientcore_3',['ClientCore',['../classawsiotsdk_1_1_client_core.html#ada3ef41d45548feb1b8c6bf9f3c8266e',1,'awsiotsdk::ClientCore']]], + ['clientcorestate_4',['ClientCoreState',['../classawsiotsdk_1_1_client_core_state.html#a116b0f8b93040759f71c57a7fc878d0c',1,'awsiotsdk::ClientCoreState']]], + ['connect_5',['Connect',['../classawsiotsdk_1_1_mqtt_client.html#abe3f172997b3bad3113015281faf48f6',1,'awsiotsdk::MqttClient::Connect(std::chrono::milliseconds action_response_timeout, bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg)'],['../classawsiotsdk_1_1_mqtt_client.html#af6a661ef6b047560e6b12056d43b032f',1,'awsiotsdk::MqttClient::Connect(std::chrono::milliseconds action_response_timeout, bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg, bool is_metrics_enabled)'],['../classawsiotsdk_1_1_network_connection.html#a794de5e7971077de1a80fa676ac8a0eb',1,'awsiotsdk::NetworkConnection::Connect()']]], + ['connectactionasync_6',['ConnectActionAsync',['../classawsiotsdk_1_1mqtt_1_1_connect_action_async.html#a0fcb723e59ac29013c469b720ae10daf',1,'awsiotsdk::mqtt::ConnectActionAsync']]], + ['connectinternal_7',['ConnectInternal',['../classawsiotsdk_1_1_network_connection.html#a16dfb6897aad49921763cf17756e2fcf',1,'awsiotsdk::NetworkConnection']]], + ['connectivityinfo_8',['ConnectivityInfo',['../classawsiotsdk_1_1_connectivity_info.html#ad17fbb8cffb8eed8cf3cbd7dfd386450',1,'awsiotsdk::ConnectivityInfo']]], + ['connectpacket_9',['ConnectPacket',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a2a62c8fcf5d326b5eadeb0aa2c346d2a',1,'awsiotsdk::mqtt::ConnectPacket::ConnectPacket(bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg, bool is_metrics_enabled)'],['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a1ffca2961338aac483f27be61e538882',1,'awsiotsdk::mqtt::ConnectPacket::ConnectPacket(bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg)']]], + ['create_10',['Create',['../classawsiotsdk_1_1_client_core.html#a31feb448b75fe97b8837624209d4f3dd',1,'awsiotsdk::ClientCore::Create()'],['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#a5942fc007da0667eabd9f0f268a6b660',1,'awsiotsdk::discovery::DiscoverRequestData::Create()'],['../classawsiotsdk_1_1discovery_1_1_discover_action.html#ab8689d195c174735a172ba5d9cfaaf98',1,'awsiotsdk::discovery::DiscoverAction::Create()'],['../classawsiotsdk_1_1_jobs.html#a932eb58bb162bb3c78b7d9a746b15d53',1,'awsiotsdk::Jobs::Create()'],['../classawsiotsdk_1_1_mqtt_client.html#a92d93df73e596a64f709c5cde7fcb665',1,'awsiotsdk::MqttClient::Create(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)'],['../classawsiotsdk_1_1_mqtt_client.html#a84ce11ccf8fdde7fcfb65952393ba7e4',1,'awsiotsdk::MqttClient::Create(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)'],['../classawsiotsdk_1_1_mqtt_client.html#aea20340feeebe9d6782b10942de40b9d',1,'awsiotsdk::MqttClient::Create(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr p_resubscribec_callback, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)'],['../classawsiotsdk_1_1mqtt_1_1_will_options.html#a1542fd84e9527f4b3e3c5a7c682f5da3',1,'awsiotsdk::mqtt::WillOptions::Create()'],['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a4257c96e7874f722275bfd67d9bfd08d',1,'awsiotsdk::mqtt::Subscription::Create()'],['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a76797604768ce129655efa21ebd3f1fc',1,'awsiotsdk::mqtt::ConnectPacket::Create(bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg, bool is_metrics_enabled)'],['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a322f6c91a6452c195e6826e3a32a4401',1,'awsiotsdk::mqtt::ConnectPacket::Create(bool is_clean_session, mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout, std::unique_ptr< Utf8String > p_client_id, std::unique_ptr< Utf8String > p_username, std::unique_ptr< Utf8String > p_password, std::unique_ptr< mqtt::WillOptions > p_will_msg)'],['../classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html#a1e10369a086a93abb52855788fc2c8e7',1,'awsiotsdk::mqtt::DisconnectPacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html#a72e4416e640d81f53dd01733e845d7c2',1,'awsiotsdk::mqtt::PingreqPacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_connect_action_async.html#ad374d4118a2d9b47a66cf21af0b454d4',1,'awsiotsdk::mqtt::ConnectActionAsync::Create()'],['../classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html#a420dec30ff4d07e509ccf4ffddd4fa69',1,'awsiotsdk::mqtt::DisconnectActionAsync::Create()'],['../classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html#a1ccd7b9252009ba0632f0779bad9328b',1,'awsiotsdk::mqtt::KeepaliveActionRunner::Create()'],['../classawsiotsdk_1_1_greengrass_mqtt_client.html#adef7d9d43349a3649e21047ff2ce9f2b',1,'awsiotsdk::GreengrassMqttClient::Create(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)'],['../classawsiotsdk_1_1_greengrass_mqtt_client.html#a186993f9f68002c3a98b552b0a36132f',1,'awsiotsdk::GreengrassMqttClient::Create(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)'],['../classawsiotsdk_1_1_greengrass_mqtt_client.html#a3e3f792ffc7c5761e2780563bdd9f38f',1,'awsiotsdk::GreengrassMqttClient::Create(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)'],['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a51a38316b522f4d6b2299b4ea24ef581',1,'awsiotsdk::mqtt::NetworkReadActionRunner::Create()'],['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#accfb2c7d1ca6a52a4bd34f199e54ba24',1,'awsiotsdk::mqtt::PublishPacket::Create(std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, QoS qos, const util::String &payload)'],['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#ace5dfbb5418dc14da40b06e052837f9c',1,'awsiotsdk::mqtt::PublishPacket::Create(const util::Vector< unsigned char > &buf, bool is_retained, bool is_duplicate, QoS qos)'],['../classawsiotsdk_1_1mqtt_1_1_puback_packet.html#ac1a8a7f3d98fd54c453a135a7d6bac18',1,'awsiotsdk::mqtt::PubackPacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_publish_action_async.html#a29e17035ad68e2177dc8751f534064ac',1,'awsiotsdk::mqtt::PublishActionAsync::Create()'],['../classawsiotsdk_1_1mqtt_1_1_puback_action_async.html#a9f03b315b4880f36bfd6dc565942ac79',1,'awsiotsdk::mqtt::PubackActionAsync::Create()'],['../classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html#aaa08ed82b647bd64a019b7eb01c08a1c',1,'awsiotsdk::mqtt::SubscribePacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_suback_packet.html#ada4cfceead07131ee67eb1c1e3140606',1,'awsiotsdk::mqtt::SubackPacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html#a5adb492be0873d20c7dcfabe2937e748',1,'awsiotsdk::mqtt::UnsubscribePacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html#af7a7273cca6cc658df41eba6c6df97cf',1,'awsiotsdk::mqtt::UnsubackPacket::Create()'],['../classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html#a76bcac8f8cd40a81b1233fdcc106c137',1,'awsiotsdk::mqtt::SubscribeActionAsync::Create()'],['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html#a95252959e0905fac96c0b5ecab9b3d3e',1,'awsiotsdk::mqtt::UnsubscribeActionAsync::Create()'],['../classawsiotsdk_1_1_shadow.html#ab1c018b94701182a441c6668933e3ed1',1,'awsiotsdk::Shadow::Create()']]], + ['createactionrunner_11',['CreateActionRunner',['../classawsiotsdk_1_1_client_core.html#a7f6353e2afef666705ce560d25046ae8',1,'awsiotsdk::ClientCore']]], + ['createjobssubscription_12',['CreateJobsSubscription',['../classawsiotsdk_1_1_jobs.html#a296bdfcd2236a88678f68f7e68e0efa0',1,'awsiotsdk::Jobs']]] +]; diff --git a/docs/html/search/functions_10.js b/docs/html/search/functions_10.js new file mode 100644 index 0000000..dd93a96 --- /dev/null +++ b/docs/html/search/functions_10.js @@ -0,0 +1,33 @@ +var searchData= +[ + ['sendjobsdescribe_0',['SendJobsDescribe',['../classawsiotsdk_1_1_jobs.html#a9c6be668aa4479a5e2baf2cb748087ed',1,'awsiotsdk::Jobs']]], + ['sendjobsquery_1',['SendJobsQuery',['../classawsiotsdk_1_1_jobs.html#ad5f5f53374f3bd0bf1ed0d5e2f602707',1,'awsiotsdk::Jobs']]], + ['sendjobsstartnext_2',['SendJobsStartNext',['../classawsiotsdk_1_1_jobs.html#a07078c9f64bc55c43c71d3a7e5974b08',1,'awsiotsdk::Jobs']]], + ['sendjobsupdate_3',['SendJobsUpdate',['../classawsiotsdk_1_1_jobs.html#ae5f075414b4c67807ac4ffa33578d91a',1,'awsiotsdk::Jobs']]], + ['setackindex_4',['SetAckIndex',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a2c773d95ef14803f56dd8543401d308b',1,'awsiotsdk::mqtt::Subscription']]], + ['setactionid_5',['SetActionId',['../classawsiotsdk_1_1_action_data.html#ab17bf9edafe120477f7aa781b76d8e76',1,'awsiotsdk::ActionData::SetActionId()'],['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#aa357cb351cc47e7ae7f09798cd639159',1,'awsiotsdk::discovery::DiscoverRequestData::SetActionId()'],['../classawsiotsdk_1_1mqtt_1_1_packet.html#a05d6fd383a02c1dad0f2f7180b8c94f8',1,'awsiotsdk::mqtt::Packet::SetActionId()']]], + ['setactive_6',['SetActive',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a88e0decb31d94a2fba0aec5144f5368c',1,'awsiotsdk::mqtt::Subscription']]], + ['setautoreconnectenabled_7',['SetAutoReconnectEnabled',['../classawsiotsdk_1_1_mqtt_client.html#ac044cfcd6384189000e892b47ac794f8',1,'awsiotsdk::MqttClient']]], + ['setconnectflags_8',['SetConnectFlags',['../classawsiotsdk_1_1mqtt_1_1_will_options.html#a4a925ebacee2cb30002a8f92c0dd17c6',1,'awsiotsdk::mqtt::WillOptions']]], + ['setdisconnectcallbackptr_9',['SetDisconnectCallbackPtr',['../classawsiotsdk_1_1_mqtt_client.html#a1784e886c9ca4f9eaa42d2a0be7d26b4',1,'awsiotsdk::MqttClient']]], + ['setloglevel_10',['SetLogLevel',['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html#a6cfbf9853ed9e4805273d402c754f219',1,'awsiotsdk::util::Logging::FormattedLogSystem']]], + ['setmaxactionqueuesize_11',['SetMaxActionQueueSize',['../classawsiotsdk_1_1_client_core_state.html#a9f89c92363682f93be53d12efe28882a',1,'awsiotsdk::ClientCoreState']]], + ['setmaxqos_12',['SetMaxQos',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#ab539ee75c4e16f2ac23773de7ee8a530',1,'awsiotsdk::mqtt::Subscription']]], + ['setmaxreconnectbackofftimeout_13',['SetMaxReconnectBackoffTimeout',['../classawsiotsdk_1_1_mqtt_client.html#a243cd5ec872b2d40cecc045a35b9742d',1,'awsiotsdk::MqttClient']]], + ['setminreconnectbackofftimeout_14',['SetMinReconnectBackoffTimeout',['../classawsiotsdk_1_1_mqtt_client.html#af8825e22dafe157ee1491f273db9af89',1,'awsiotsdk::MqttClient']]], + ['setparentthreadsync_15',['SetParentThreadSync',['../classawsiotsdk_1_1_action.html#a00d2052001858ccc95b97c1a16136946',1,'awsiotsdk::Action']]], + ['setprocessqueuedactions_16',['SetProcessQueuedActions',['../classawsiotsdk_1_1_client_core.html#aef3de407a8290f172a23beae86e96fdc',1,'awsiotsdk::ClientCore::SetProcessQueuedActions()'],['../classawsiotsdk_1_1_client_core_state.html#aeadcf9d6c1e027a800d063351fbf92d4',1,'awsiotsdk::ClientCoreState::SetProcessQueuedActions()']]], + ['setreconnectcallbackptr_17',['SetReconnectCallbackPtr',['../classawsiotsdk_1_1_mqtt_client.html#acbc7995b18dea34b4286ce058628c7e8',1,'awsiotsdk::MqttClient']]], + ['setresponsedocument_18',['SetResponseDocument',['../classawsiotsdk_1_1_discovery_response.html#a2fe515dc853623dd9d1001b2098fd1c9',1,'awsiotsdk::DiscoveryResponse']]], + ['setresubscribecallbackptr_19',['SetResubscribeCallbackPtr',['../classawsiotsdk_1_1_mqtt_client.html#a24f1ae044301ea709c570b07f9aa032c',1,'awsiotsdk::MqttClient']]], + ['shadow_20',['Shadow',['../classawsiotsdk_1_1_shadow.html#ac61365b06231fd3056c471ca04300f39',1,'awsiotsdk::Shadow']]], + ['shutdownawslogging_21',['ShutdownAWSLogging',['../_logging_8hpp.html#aec975326412017579929c165e37cb419',1,'awsiotsdk::util::Logging']]], + ['subackpacket_22',['SubackPacket',['../classawsiotsdk_1_1mqtt_1_1_suback_packet.html#a61b844be8d0e34285a78319c31adfffb',1,'awsiotsdk::mqtt::SubackPacket']]], + ['subscribe_23',['Subscribe',['../classawsiotsdk_1_1_mqtt_client.html#a3e0f12db09d30b971e917bcc98fd54f3',1,'awsiotsdk::MqttClient']]], + ['subscribeactionasync_24',['SubscribeActionAsync',['../classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html#aa5b2847dbf74ace208f1af3f93d037ef',1,'awsiotsdk::mqtt::SubscribeActionAsync']]], + ['subscribeasync_25',['SubscribeAsync',['../classawsiotsdk_1_1_mqtt_client.html#aeba4882234059894d342d2d050c86029',1,'awsiotsdk::MqttClient']]], + ['subscribepacket_26',['SubscribePacket',['../classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html#a11178facbe2bc6a842ddacffe815540f',1,'awsiotsdk::mqtt::SubscribePacket']]], + ['subscription_27',['Subscription',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a7e633ea787535f1ee69cceb34932918c',1,'awsiotsdk::mqtt::Subscription']]], + ['subscriptionhandler_28',['SubscriptionHandler',['../classawsiotsdk_1_1_shadow.html#a341cdd863d75591af30f77cd7a105513',1,'awsiotsdk::Shadow']]], + ['syncactionhandler_29',['SyncActionHandler',['../classawsiotsdk_1_1_client_core_state.html#ab04e5840801310033621d2f1a3efc9bf',1,'awsiotsdk::ClientCoreState']]] +]; diff --git a/docs/html/search/functions_11.js b/docs/html/search/functions_11.js new file mode 100644 index 0000000..cc3091a --- /dev/null +++ b/docs/html/search/functions_11.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tostring_0',['ToString',['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#ac6cfafcbf552988f424f014d4702dc77',1,'awsiotsdk::discovery::DiscoverRequestData::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a58cddfcc5cbebdd3cce20e751a4970d4',1,'awsiotsdk::mqtt::ConnectPacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html#a8dd21bf8d035457696226132fbf196cb',1,'awsiotsdk::mqtt::DisconnectPacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html#a3f9105cfef83a3254fde283f61ea8b9c',1,'awsiotsdk::mqtt::PingreqPacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a4a22eff11c7ad1d13d2e99ba4d144b1e',1,'awsiotsdk::mqtt::PublishPacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_puback_packet.html#a828066fcd422db7bba8dfbec38e9ab6c',1,'awsiotsdk::mqtt::PubackPacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html#a578ea5007c7074d01a9318d9b30696be',1,'awsiotsdk::mqtt::SubscribePacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_suback_packet.html#aca86e4c291cc647c25956b7f8422b952',1,'awsiotsdk::mqtt::SubackPacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html#a7f19b40d8e423a72dece037b2a479e7c',1,'awsiotsdk::mqtt::UnsubscribePacket::ToString()'],['../classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html#a344a55f2e90873c74a19b0473be3e2ed',1,'awsiotsdk::mqtt::UnsubackPacket::ToString()'],['../namespaceawsiotsdk_1_1_response_helper.html#a5397c423784f7787416903909e75640e',1,'awsiotsdk::ResponseHelper::ToString()']]] +]; diff --git a/docs/html/search/functions_12.js b/docs/html/search/functions_12.js new file mode 100644 index 0000000..d5080d5 --- /dev/null +++ b/docs/html/search/functions_12.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['unsubackpacket_0',['UnsubackPacket',['../classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html#a6e55a91e39e7efcb0de19d6159169635',1,'awsiotsdk::mqtt::UnsubackPacket']]], + ['unsubscribe_1',['Unsubscribe',['../classawsiotsdk_1_1_mqtt_client.html#a4f815b2e7142a2c806b53a0874c2ba06',1,'awsiotsdk::MqttClient']]], + ['unsubscribeactionasync_2',['UnsubscribeActionAsync',['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html#af136242f2e0e171f47729c0e700314f1',1,'awsiotsdk::mqtt::UnsubscribeActionAsync']]], + ['unsubscribeasync_3',['UnsubscribeAsync',['../classawsiotsdk_1_1_mqtt_client.html#a3206513894cd10d8cbb7733848174e76',1,'awsiotsdk::MqttClient']]], + ['unsubscribepacket_4',['UnsubscribePacket',['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html#a435b9d19997af557c0bc7f537d6fbda4',1,'awsiotsdk::mqtt::UnsubscribePacket']]], + ['updatedeviceshadow_5',['UpdateDeviceShadow',['../classawsiotsdk_1_1_shadow.html#a6031b52d2dfe8b43b79820860b4a701c',1,'awsiotsdk::Shadow']]] +]; diff --git a/docs/html/search/functions_13.js b/docs/html/search/functions_13.js new file mode 100644 index 0000000..6bc70ee --- /dev/null +++ b/docs/html/search/functions_13.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['willoptions_0',['WillOptions',['../classawsiotsdk_1_1mqtt_1_1_will_options.html#ad6c167fedfd2ff0c9ec8e30128fbf7a0',1,'awsiotsdk::mqtt::WillOptions']]], + ['write_1',['Write',['../classawsiotsdk_1_1_network_connection.html#adbfc2ced904d51efa42b46a38b92e4ec',1,'awsiotsdk::NetworkConnection']]], + ['writeinternal_2',['WriteInternal',['../classawsiotsdk_1_1_network_connection.html#abc09fbf4e86c0261f9185da614d2f8b0',1,'awsiotsdk::NetworkConnection']]], + ['writetobuffer_3',['WriteToBuffer',['../classawsiotsdk_1_1mqtt_1_1_will_options.html#a5ae572d5d9f05d609e27b776baa20244',1,'awsiotsdk::mqtt::WillOptions']]], + ['writetonetworkbuffer_4',['WriteToNetworkBuffer',['../classawsiotsdk_1_1_action.html#aef5ff915c2ce04b0f43931784b681f74',1,'awsiotsdk::Action']]], + ['writetopath_5',['WriteToPath',['../classawsiotsdk_1_1_discovery_response.html#ab6a90120d38d038c892692eb703a1248',1,'awsiotsdk::DiscoveryResponse']]] +]; diff --git a/docs/html/search/functions_14.js b/docs/html/search/functions_14.js new file mode 100644 index 0000000..00bf36a --- /dev/null +++ b/docs/html/search/functions_14.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7eclientcorestate_0',['~ClientCoreState',['../classawsiotsdk_1_1_client_core_state.html#ad9b82ca151aa764cd3cc5bfa4ff6f3dd',1,'awsiotsdk::ClientCoreState']]] +]; diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js new file mode 100644 index 0000000..3ca687c --- /dev/null +++ b/docs/html/search/functions_2.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['decoderemaininglength_0',['DecodeRemainingLength',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#acd27a82337fd3b5e063cbf75e5d8cdad',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['deleteexpiredacks_1',['DeleteExpiredAcks',['../classawsiotsdk_1_1_client_core_state.html#af97d7a6b48cb4e24ab02e8ceff3fa639',1,'awsiotsdk::ClientCoreState']]], + ['deletependingack_2',['DeletePendingAck',['../classawsiotsdk_1_1_client_core_state.html#a6621175906d2ce32f124c0dc6990d3ba',1,'awsiotsdk::ClientCoreState']]], + ['disconnect_3',['Disconnect',['../classawsiotsdk_1_1_mqtt_client.html#a81bc1cfb38a5eeb84df273f5228010e6',1,'awsiotsdk::MqttClient::Disconnect()'],['../classawsiotsdk_1_1_network_connection.html#a494c0109bbfd82c6fdcb166f26a2fd51',1,'awsiotsdk::NetworkConnection::Disconnect()']]], + ['disconnectactionasync_4',['DisconnectActionAsync',['../classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html#a044864f771a4f9a28def532c1387a964',1,'awsiotsdk::mqtt::DisconnectActionAsync']]], + ['disconnectinternal_5',['DisconnectInternal',['../classawsiotsdk_1_1_network_connection.html#ad3327debc2266d6499c1f7b5e6f2dfff',1,'awsiotsdk::NetworkConnection']]], + ['disconnectpacket_6',['DisconnectPacket',['../classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html#aa3d45d31d71bb0475459bff7883f018d',1,'awsiotsdk::mqtt::DisconnectPacket']]], + ['discover_7',['Discover',['../classawsiotsdk_1_1_greengrass_mqtt_client.html#a019ab163e56b2e51683cdbc70d4f818c',1,'awsiotsdk::GreengrassMqttClient']]], + ['discoveraction_8',['DiscoverAction',['../classawsiotsdk_1_1discovery_1_1_discover_action.html#ae1c5baeabeacc172e7d387468f27b0bd',1,'awsiotsdk::discovery::DiscoverAction']]], + ['discoverrequestdata_9',['DiscoverRequestData',['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#a3178fc7634caae43953b67b3e69003f5',1,'awsiotsdk::discovery::DiscoverRequestData']]], + ['discoveryresponse_10',['DiscoveryResponse',['../classawsiotsdk_1_1_discovery_response.html#a710f51a1cc7d0958be1044ac4d48f3a4',1,'awsiotsdk::DiscoveryResponse']]] +]; diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js new file mode 100644 index 0000000..6791293 --- /dev/null +++ b/docs/html/search/functions_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['enqueueoutboundaction_0',['EnqueueOutboundAction',['../classawsiotsdk_1_1_client_core_state.html#a4abb2e13eb14ce8b699f1a10c59e11a9',1,'awsiotsdk::ClientCoreState']]] +]; diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js new file mode 100644 index 0000000..ad9d04c --- /dev/null +++ b/docs/html/search/functions_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['find_5finvalid_0',['find_invalid',['../_utf8_string_8cpp.html#a84016f300c05647745c6a1b695928b1e',1,'awsiotsdk::utf8']]], + ['formattedlogsystem_1',['FormattedLogSystem',['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html#a5ad87d3bcfe2b3f5b9ccf5bba91d4b6c',1,'awsiotsdk::util::Logging::FormattedLogSystem']]], + ['forwardreceivedack_2',['ForwardReceivedAck',['../classawsiotsdk_1_1_client_core_state.html#a96c145303573c305b12865925e099ddd',1,'awsiotsdk::ClientCoreState']]] +]; diff --git a/docs/html/search/functions_5.js b/docs/html/search/functions_5.js new file mode 100644 index 0000000..39e2a31 --- /dev/null +++ b/docs/html/search/functions_5.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['get_5fsequence_5f1_0',['get_sequence_1',['../_utf8_string_8cpp.html#afb4c298bf6c392591c06ca2d68d0c56a',1,'awsiotsdk::utf8::internal']]], + ['getactioncreatehandler_1',['GetActionCreateHandler',['../classawsiotsdk_1_1_client_core_state.html#a5c92f8d890c477075aba359238ab2335',1,'awsiotsdk::ClientCoreState']]], + ['getactionid_2',['GetActionId',['../classawsiotsdk_1_1_action_data.html#abe37b5817be7992435cb400e4924fbae',1,'awsiotsdk::ActionData::GetActionId()'],['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#ac6245e2baca9303c4ba769de06f6c4c1',1,'awsiotsdk::discovery::DiscoverRequestData::GetActionId()'],['../classawsiotsdk_1_1mqtt_1_1_packet.html#a440fd11b52815d468225073d91d464d1',1,'awsiotsdk::mqtt::Packet::GetActionId()']]], + ['getactioninfo_3',['GetActionInfo',['../classawsiotsdk_1_1_action.html#aefd247484e07d9f45eb863ae298d8412',1,'awsiotsdk::Action']]], + ['getactiontype_4',['GetActionType',['../classawsiotsdk_1_1_action.html#a5d20213df835252c3a17efa4af61f36f',1,'awsiotsdk::Action']]], + ['getclientid_5',['GetClientID',['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a03669d12c5ed74603e9adfd8d75a7d0a',1,'awsiotsdk::mqtt::ConnectPacket']]], + ['getcoreexecutionsyncpoint_6',['GetCoreExecutionSyncPoint',['../classawsiotsdk_1_1_client_core_state.html#aed6a6ea153c305973550e0adac325c4a',1,'awsiotsdk::ClientCoreState']]], + ['getcurrentversionnumber_7',['GetCurrentVersionNumber',['../classawsiotsdk_1_1_shadow.html#ad631ad0e0dda4b4ebc9f2e5c27e90c28',1,'awsiotsdk::Shadow']]], + ['getdevicedesired_8',['GetDeviceDesired',['../classawsiotsdk_1_1_shadow.html#a31ea7834133f0140ee99656544c96157',1,'awsiotsdk::Shadow']]], + ['getdevicedocument_9',['GetDeviceDocument',['../classawsiotsdk_1_1_shadow.html#a3d372ac6a46fa15c78c66664a1257fb4',1,'awsiotsdk::Shadow']]], + ['getdevicereported_10',['GetDeviceReported',['../classawsiotsdk_1_1_shadow.html#a12ddb6f141b17ea1e61c64e7d91b8b69',1,'awsiotsdk::Shadow']]], + ['getemptyshadowdocument_11',['GetEmptyShadowDocument',['../classawsiotsdk_1_1_shadow.html#a7eadb2ffbdae182d60c52130e669253f',1,'awsiotsdk::Shadow']]], + ['getjobtopic_12',['GetJobTopic',['../classawsiotsdk_1_1_jobs.html#ab8d1e082c67d1fab8b467e9d866b8202',1,'awsiotsdk::Jobs']]], + ['getkeepalivetimeout_13',['GetKeepAliveTimeout',['../classawsiotsdk_1_1mqtt_1_1_client_state.html#a8aa4f6083b631d802a4ecc00a5b2f9d3',1,'awsiotsdk::mqtt::ClientState::GetKeepAliveTimeout()'],['../classawsiotsdk_1_1mqtt_1_1_connect_packet.html#a406f75a4f832de83a3bec52dc1b32c91',1,'awsiotsdk::mqtt::ConnectPacket::GetKeepAliveTimeout()']]], + ['getloglevel_14',['GetLogLevel',['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html#a432898fe14ad5eb3072a6b44fb4bf4ac',1,'awsiotsdk::util::Logging::FormattedLogSystem::GetLogLevel()'],['../classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html#af0011a58664a7e719862170d89c261a2',1,'awsiotsdk::util::Logging::LogSystemInterface::GetLogLevel()']]], + ['getlogsystem_15',['GetLogSystem',['../_logging_8hpp.html#a2c8849bef9f364aef2dffd3f75fa8ea1',1,'awsiotsdk::util::Logging']]], + ['getmaxactionqueuesize_16',['GetMaxActionQueueSize',['../classawsiotsdk_1_1_client_core_state.html#aa8269b76cb177076605c0dd059721718',1,'awsiotsdk::ClientCoreState']]], + ['getmaxqos_17',['GetMaxQos',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#aedf3de9db0ab597ec4dcdc0468523037',1,'awsiotsdk::mqtt::Subscription']]], + ['getmaxreconnectbackofftimeout_18',['GetMaxReconnectBackoffTimeout',['../classawsiotsdk_1_1_mqtt_client.html#a081e091d11fddfbf3dd0fe9e60340c89',1,'awsiotsdk::MqttClient']]], + ['getmaxresponsewaittime_19',['GetMaxResponseWaitTime',['../classawsiotsdk_1_1discovery_1_1_discover_request_data.html#afd079cd0dd74153ac09ee0a57e5a664b',1,'awsiotsdk::discovery::DiscoverRequestData']]], + ['getmessagetype_20',['GetMessageType',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#ac35dd9999eb00fdac51238ea60a1fc6d',1,'awsiotsdk::mqtt::PacketFixedHeader']]], + ['getminreconnectbackofftimeout_21',['GetMinReconnectBackoffTimeout',['../classawsiotsdk_1_1_mqtt_client.html#afc8eba415c7fd28b0f81bdedda046af0',1,'awsiotsdk::MqttClient']]], + ['getnextactionid_22',['GetNextActionId',['../classawsiotsdk_1_1_action_state.html#ae964648669a758781ca90a0470896f54',1,'awsiotsdk::ActionState::GetNextActionId()'],['../classawsiotsdk_1_1_client_core_state.html#a9d2376aa090de4b19b6febe3e84d46bd',1,'awsiotsdk::ClientCoreState::GetNextActionId()'],['../classawsiotsdk_1_1mqtt_1_1_client_state.html#aa35abad389e9e107854c3a597fcb4a60',1,'awsiotsdk::mqtt::ClientState::GetNextActionId()']]], + ['getpacketid_23',['GetPacketId',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#aac72bef5441856bd242b8388fac7712f',1,'awsiotsdk::mqtt::Subscription']]], + ['getparsedresponse_24',['GetParsedResponse',['../classawsiotsdk_1_1_discovery_response.html#a25bd16b706db9c3c03c515ff31afb680',1,'awsiotsdk::DiscoveryResponse']]], + ['getpayload_25',['GetPayload',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a8b60b590b35d58fca92d7640771f19c3',1,'awsiotsdk::mqtt::PublishPacket']]], + ['getpayloadlen_26',['GetPayloadLen',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#aa9a96202eed0faf251a3afc03514adda',1,'awsiotsdk::mqtt::PublishPacket']]], + ['getremaininglength_27',['GetRemainingLength',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#ab1ece2829657b0df77df00f8bac043c8',1,'awsiotsdk::mqtt::PacketFixedHeader']]], + ['getremaininglengthbytecount_28',['GetRemainingLengthByteCount',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#ab62ba94eb716fc018de39b4526c7deba',1,'awsiotsdk::mqtt::PacketFixedHeader']]], + ['getresponsedocument_29',['GetResponseDocument',['../classawsiotsdk_1_1_discovery_response.html#aac5d278156fcb66a8bcc2f0cfbfb0be6',1,'awsiotsdk::DiscoveryResponse']]], + ['getserverdesired_30',['GetServerDesired',['../classawsiotsdk_1_1_shadow.html#a094bdc1d53ab3197edde03676f291a85',1,'awsiotsdk::Shadow']]], + ['getserverdocument_31',['GetServerDocument',['../classawsiotsdk_1_1_shadow.html#a8701a0073bb279b248999b8e381816f5',1,'awsiotsdk::Shadow']]], + ['getserverreported_32',['GetServerReported',['../classawsiotsdk_1_1_shadow.html#a78846dfa72e12aeb154ea44191203300',1,'awsiotsdk::Shadow']]], + ['gettopicname_33',['GetTopicName',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a28b189bf50f31ff2dc6bfedd3c163567',1,'awsiotsdk::mqtt::Subscription::GetTopicName()'],['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a15bbd5df7d11829aa10f8d66c954f106',1,'awsiotsdk::mqtt::PublishPacket::GetTopicName()']]], + ['gettopicnamelength_34',['GetTopicNameLength',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a2a8b0a6078a346756de5eebf2a932747',1,'awsiotsdk::mqtt::Subscription']]], + ['gracefulshutdownallthreadtasks_35',['GracefulShutdownAllThreadTasks',['../classawsiotsdk_1_1_client_core.html#a90daf4cd75d0532fa908c153c29ee865',1,'awsiotsdk::ClientCore']]], + ['greengrassmqttclient_36',['GreengrassMqttClient',['../classawsiotsdk_1_1_greengrass_mqtt_client.html#acd5406a11c7437713f0316906df49a68',1,'awsiotsdk::GreengrassMqttClient::GreengrassMqttClient(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)'],['../classawsiotsdk_1_1_greengrass_mqtt_client.html#a047c6e7e7c310517323e2cc53ddfd0ac',1,'awsiotsdk::GreengrassMqttClient::GreengrassMqttClient(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)'],['../classawsiotsdk_1_1_greengrass_mqtt_client.html#a1c92870bcbca91692a3bb5e05d040263',1,'awsiotsdk::GreengrassMqttClient::GreengrassMqttClient(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)']]] +]; diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js new file mode 100644 index 0000000..c74c918 --- /dev/null +++ b/docs/html/search/functions_6.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['handleconnack_0',['HandleConnack',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#adb468fd2095f70898f78805bd23005d1',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['handledeleteresponse_1',['HandleDeleteResponse',['../classawsiotsdk_1_1_shadow.html#a08b854c29ec5c5397f5329a46d363f5d',1,'awsiotsdk::Shadow']]], + ['handlegetresponse_2',['HandleGetResponse',['../classawsiotsdk_1_1_shadow.html#a5eaccc9626cb22015c16947db795328a',1,'awsiotsdk::Shadow']]], + ['handlepuback_3',['HandlePuback',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a89d8d19563d3b96d5509c9bfbf4cb1d8',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['handlepublish_4',['HandlePublish',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#abe7a6ed7a6d7a979070848f9a957b07e',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['handlesuback_5',['HandleSuback',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a46a3d7746cba7cc4c61f57782c78bfb6',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['handleunsuback_6',['HandleUnsuback',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a559ab710cd899e2f9ce8d92594e82a48',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['handleupdateresponse_7',['HandleUpdateResponse',['../classawsiotsdk_1_1_shadow.html#a7e4cb7d5a7076c20c7fa765e4e8284aa',1,'awsiotsdk::Shadow']]] +]; diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js new file mode 100644 index 0000000..d049751 --- /dev/null +++ b/docs/html/search/functions_7.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['increase_5fsafely_0',['increase_safely',['../_utf8_string_8cpp.html#a179b9d95bf6b0910dd0943fcd76ab7f1',1,'awsiotsdk::utf8::internal']]], + ['initialize_1',['Initialize',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#af7a3eb25488b9c18e45b1140550e4a5f',1,'awsiotsdk::mqtt::PacketFixedHeader']]], + ['initializeawslogging_2',['InitializeAWSLogging',['../_logging_8hpp.html#a48060aa697cb050330157ad1ae215820',1,'awsiotsdk::util::Logging']]], + ['initializediscoveryresponsejson_3',['InitializeDiscoveryResponseJson',['../classawsiotsdk_1_1discovery_1_1_discover_action.html#aed38acae9ed65f8a4d435fb1310e61c3',1,'awsiotsdk::discovery::DiscoverAction']]], + ['isactive_4',['IsActive',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a98d33cb9b8be6f92d99aa0e1ee71a580',1,'awsiotsdk::mqtt::Subscription']]], + ['isautoreconnectenabled_5',['IsAutoReconnectEnabled',['../classawsiotsdk_1_1_mqtt_client.html#a90e668f6d3620a9373820a72c33a18af',1,'awsiotsdk::MqttClient']]], + ['isconnected_6',['IsConnected',['../classawsiotsdk_1_1_mqtt_client.html#a576a5360b3923e10a1418185c0eaf337',1,'awsiotsdk::MqttClient::IsConnected()'],['../classawsiotsdk_1_1_network_connection.html#a2a3a7515d2cdbdb811743204d9d60c7a',1,'awsiotsdk::NetworkConnection::IsConnected()']]], + ['isduplicate_7',['IsDuplicate',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a8e82302893e4adbab89802b44ce98f17',1,'awsiotsdk::mqtt::PublishPacket']]], + ['isheadervalid_8',['isHeaderValid',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#a88f11c64aa53dd18f6ff2b9f377b62bc',1,'awsiotsdk::mqtt::PacketFixedHeader']]], + ['isinsuback_9',['IsInSuback',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#a4ae0f16c1422040e40a02c954842e9d8',1,'awsiotsdk::mqtt::Subscription']]], + ['isinsync_10',['IsInSync',['../classawsiotsdk_1_1_shadow.html#a2b4d497cbfb2d1e20b96fc5015309079',1,'awsiotsdk::Shadow']]], + ['isphysicallayerconnected_11',['IsPhysicalLayerConnected',['../classawsiotsdk_1_1_network_connection.html#a0b81ce15a8f7a602f752e88b9860a924',1,'awsiotsdk::NetworkConnection']]], + ['isretained_12',['IsRetained',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#a34eb954b2cc4e58eb3ea67f316c8f6ae',1,'awsiotsdk::mqtt::PublishPacket']]], + ['isvalidtopicname_13',['IsValidTopicName',['../classawsiotsdk_1_1mqtt_1_1_subscription.html#aeb69b279e6e59d9297ce0ec0b47a177e',1,'awsiotsdk::mqtt::Subscription']]] +]; diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js new file mode 100644 index 0000000..1fed67c --- /dev/null +++ b/docs/html/search/functions_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['jobs_0',['Jobs',['../classawsiotsdk_1_1_jobs.html#a572afdd4be5b43e82a3775dd698f3b70',1,'awsiotsdk::Jobs']]] +]; diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js new file mode 100644 index 0000000..f6dd417 --- /dev/null +++ b/docs/html/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['keepaliveactionrunner_0',['KeepaliveActionRunner',['../classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html#a1b3835e9eb1579ca7fc8c0d124c2ec09',1,'awsiotsdk::mqtt::KeepaliveActionRunner']]] +]; diff --git a/docs/html/search/functions_a.js b/docs/html/search/functions_a.js new file mode 100644 index 0000000..a2e91d9 --- /dev/null +++ b/docs/html/search/functions_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['length_0',['Length',['../classawsiotsdk_1_1mqtt_1_1_will_options.html#ad6b4038ae16ff31d17c060a3265c7ddc',1,'awsiotsdk::mqtt::WillOptions::Length()'],['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#a761f695e701d0017566b1bef3abbaf29',1,'awsiotsdk::mqtt::PacketFixedHeader::Length()']]], + ['log_1',['Log',['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html#a4ad1670c7e57f20880461b1c37790040',1,'awsiotsdk::util::Logging::FormattedLogSystem::Log()'],['../classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html#af47938ba21d755ecf437e634c3e0a520',1,'awsiotsdk::util::Logging::LogSystemInterface::Log()']]], + ['logstream_2',['LogStream',['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html#aa92719ce4b9b22f95e66774ad82a67ea',1,'awsiotsdk::util::Logging::FormattedLogSystem::LogStream()'],['../classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html#a2704bdce2f3f5124465e2d42b137239a',1,'awsiotsdk::util::Logging::LogSystemInterface::LogStream()']]] +]; diff --git a/docs/html/search/functions_b.js b/docs/html/search/functions_b.js new file mode 100644 index 0000000..eef85f4 --- /dev/null +++ b/docs/html/search/functions_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['makediscoveryrequest_0',['MakeDiscoveryRequest',['../classawsiotsdk_1_1discovery_1_1_discover_action.html#a250b5d0dabad8a4201e6c99599a509fc',1,'awsiotsdk::discovery::DiscoverAction']]], + ['mqttclient_1',['MqttClient',['../classawsiotsdk_1_1_mqtt_client.html#a6dc8b474015bffe6811da291c044f9bd',1,'awsiotsdk::MqttClient::MqttClient(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data, ClientCoreState::ApplicationReconnectCallbackPtr reconnect_callback_ptr, std::shared_ptr< ReconnectCallbackContextData > p_reconnect_app_handler_data, ClientCoreState::ApplicationResubscribeCallbackPtr resubscribe_callback_ptr, std::shared_ptr< ResubscribeCallbackContextData > p_resubscribe_app_handler_data)'],['../classawsiotsdk_1_1_mqtt_client.html#ad73821af103564642e1fec1c0db0b35d',1,'awsiotsdk::MqttClient::MqttClient(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout, ClientCoreState::ApplicationDisconnectCallbackPtr disconnect_callback_ptr, std::shared_ptr< DisconnectCallbackContextData > p_disconnect_app_handler_data)'],['../classawsiotsdk_1_1_mqtt_client.html#aeabe73fd19352ee6fd619dbda7d330db',1,'awsiotsdk::MqttClient::MqttClient(std::shared_ptr< NetworkConnection > p_network_connection, std::chrono::milliseconds mqtt_command_timeout)']]] +]; diff --git a/docs/html/search/functions_c.js b/docs/html/search/functions_c.js new file mode 100644 index 0000000..32d9842 --- /dev/null +++ b/docs/html/search/functions_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['networkreadactionrunner_0',['NetworkReadActionRunner',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a7aacf550aa71d391d2f089ad99114354',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]] +]; diff --git a/docs/html/search/functions_d.js b/docs/html/search/functions_d.js new file mode 100644 index 0000000..7a1cf62 --- /dev/null +++ b/docs/html/search/functions_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['operator_3c_3c_0',['operator<<',['../_response_code_8hpp.html#a8e2ddf8ca2e479da706dad84b858b3c3',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/functions_e.js b/docs/html/search/functions_e.js new file mode 100644 index 0000000..0f76f22 --- /dev/null +++ b/docs/html/search/functions_e.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['packetfixedheader_0',['PacketFixedHeader',['../classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html#ade07a05124f3c173b6ffce44cc6e94ee',1,'awsiotsdk::mqtt::PacketFixedHeader']]], + ['performaction_1',['PerformAction',['../classawsiotsdk_1_1_action.html#a51341775a39d29bcc2e297f7e266365d',1,'awsiotsdk::Action::PerformAction()'],['../classawsiotsdk_1_1_client_core.html#a6c7a91c4e3e722431ac432a2414a36f9',1,'awsiotsdk::ClientCore::PerformAction()'],['../classawsiotsdk_1_1_client_core_state.html#a076a0ba4b1134e7cbe4c08defd247ed7',1,'awsiotsdk::ClientCoreState::PerformAction()'],['../classawsiotsdk_1_1discovery_1_1_discover_action.html#a9df3a0a3d5e25a5efa71acf5e0c63cdc',1,'awsiotsdk::discovery::DiscoverAction::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_connect_action_async.html#a7b058cfdf5e24202120e4e670b6eb4db',1,'awsiotsdk::mqtt::ConnectActionAsync::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html#a50de29602379b0496c66f8c1c51cd663',1,'awsiotsdk::mqtt::DisconnectActionAsync::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html#ad2185bce7c50899494e32c805782ce84',1,'awsiotsdk::mqtt::KeepaliveActionRunner::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#a59d3261f768f1bc68d70b0d956f57c52',1,'awsiotsdk::mqtt::NetworkReadActionRunner::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_publish_action_async.html#ab3e08d7218e7df481df01603387f3ee6',1,'awsiotsdk::mqtt::PublishActionAsync::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_puback_action_async.html#a4f5ef882d44f686b25dc5049511872da',1,'awsiotsdk::mqtt::PubackActionAsync::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html#a0b551f90c505c93bb482149d9fdf1056',1,'awsiotsdk::mqtt::SubscribeActionAsync::PerformAction()'],['../classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html#a1638862eb8f5e4b47ce25411c5085de9',1,'awsiotsdk::mqtt::UnsubscribeActionAsync::PerformAction()']]], + ['performactionasync_2',['PerformActionAsync',['../classawsiotsdk_1_1_client_core.html#a5443b4e70fb0a1271e752414934b793a',1,'awsiotsdk::ClientCore']]], + ['performdeleteasync_3',['PerformDeleteAsync',['../classawsiotsdk_1_1_shadow.html#accdcd03aea245117f11063fe93b4956f',1,'awsiotsdk::Shadow']]], + ['performgetasync_4',['PerformGetAsync',['../classawsiotsdk_1_1_shadow.html#a0834a3548c0cc6cf52c6472740d28ae9',1,'awsiotsdk::Shadow']]], + ['performupdateasync_5',['PerformUpdateAsync',['../classawsiotsdk_1_1_shadow.html#a18eca2c78c1c0585b5ea9616db7c5f6f',1,'awsiotsdk::Shadow']]], + ['pingreqpacket_6',['PingreqPacket',['../classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html#aca3bb8d89db1b5189713348058f81495',1,'awsiotsdk::mqtt::PingreqPacket']]], + ['poplogger_7',['PopLogger',['../_logging_8hpp.html#a3666d266982413776338b6792e892036',1,'awsiotsdk::util::Logging']]], + ['processformattedstatement_8',['ProcessFormattedStatement',['../classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html#a7d548c21ca39be297382b6d44148bfba',1,'awsiotsdk::util::Logging::ConsoleLogSystem::ProcessFormattedStatement()'],['../classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html#ae7df4b53025c3dcbb7d56239565143d9',1,'awsiotsdk::util::Logging::FormattedLogSystem::ProcessFormattedStatement()']]], + ['processoutboundactionqueue_9',['ProcessOutboundActionQueue',['../classawsiotsdk_1_1_client_core_state.html#a0fa9918be3d3a0311f70b07bc371e466',1,'awsiotsdk::ClientCoreState']]], + ['pubackactionasync_10',['PubackActionAsync',['../classawsiotsdk_1_1mqtt_1_1_puback_action_async.html#a576cddeb4963064e13de0d6f73240edb',1,'awsiotsdk::mqtt::PubackActionAsync']]], + ['pubackpacket_11',['PubackPacket',['../classawsiotsdk_1_1mqtt_1_1_puback_packet.html#ae7139a2a07319522cb553bb916406bcc',1,'awsiotsdk::mqtt::PubackPacket']]], + ['publish_12',['Publish',['../classawsiotsdk_1_1_mqtt_client.html#a1eb1f0d9bf6cf548d14115108017d0f3',1,'awsiotsdk::MqttClient']]], + ['publishactionasync_13',['PublishActionAsync',['../classawsiotsdk_1_1mqtt_1_1_publish_action_async.html#a79eae4ffe64c27e5eb1a4083438914fa',1,'awsiotsdk::mqtt::PublishActionAsync']]], + ['publishasync_14',['PublishAsync',['../classawsiotsdk_1_1_mqtt_client.html#afc7f9d05141c28ac5e35db12d98d22e2',1,'awsiotsdk::MqttClient']]], + ['publishpacket_15',['PublishPacket',['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#abad5b2fbf24bab3578cbdf6a94f204e1',1,'awsiotsdk::mqtt::PublishPacket::PublishPacket(std::unique_ptr< Utf8String > p_topic_name, bool is_retained, bool is_duplicate, QoS qos, const util::String &payload)'],['../classawsiotsdk_1_1mqtt_1_1_publish_packet.html#ae9be49b793b03622c1517ee9253ec78f',1,'awsiotsdk::mqtt::PublishPacket::PublishPacket(const util::Vector< unsigned char > &buf, bool is_retained, bool is_duplicate, QoS qos)']]], + ['pushlogger_16',['PushLogger',['../_logging_8hpp.html#ad9b4285987a8165e225bfb2ebea9fa95',1,'awsiotsdk::util::Logging']]] +]; diff --git a/docs/html/search/functions_f.js b/docs/html/search/functions_f.js new file mode 100644 index 0000000..e943c57 --- /dev/null +++ b/docs/html/search/functions_f.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['read_0',['Read',['../classawsiotsdk_1_1_network_connection.html#a651e897c09d1240b432fd9308f929511',1,'awsiotsdk::NetworkConnection']]], + ['readfromnetworkbuffer_1',['ReadFromNetworkBuffer',['../classawsiotsdk_1_1_action.html#a79d8a91104d018b79ba88c1c9c592276',1,'awsiotsdk::Action']]], + ['readinternal_2',['ReadInternal',['../classawsiotsdk_1_1_network_connection.html#adc1f0ab60dd9878f3d8e8b834c7af896',1,'awsiotsdk::NetworkConnection']]], + ['readpacketfromnetwork_3',['ReadPacketFromNetwork',['../classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html#ac33218e3fe1621151cbd9f4edb4be7d9',1,'awsiotsdk::mqtt::NetworkReadActionRunner']]], + ['readresponsefromnetwork_4',['ReadResponseFromNetwork',['../classawsiotsdk_1_1discovery_1_1_discover_action.html#afa5fa04ea04dbb4a9d8802c88761cd0b',1,'awsiotsdk::discovery::DiscoverAction']]], + ['registeraction_5',['RegisterAction',['../classawsiotsdk_1_1_client_core.html#adc3bd4741d3c45e97bf83d3be2988aff',1,'awsiotsdk::ClientCore::RegisterAction()'],['../classawsiotsdk_1_1_client_core_state.html#a97432a6ae52c345cc6ee1e3ddcf7664e',1,'awsiotsdk::ClientCoreState::RegisterAction(ActionType action_type, Action::CreateHandlerPtr p_action_create_handler, std::shared_ptr< ActionState > p_action_state)']]], + ['registerpendingack_6',['RegisterPendingAck',['../classawsiotsdk_1_1_client_core_state.html#a9d8333ae8644332821a01bf4dd02c089',1,'awsiotsdk::ClientCoreState']]], + ['resetclienttokensuffix_7',['ResetClientTokenSuffix',['../classawsiotsdk_1_1_shadow.html#a15c2714648b6e4737302cf4d77868930',1,'awsiotsdk::Shadow']]] +]; diff --git a/docs/html/search/mag.svg b/docs/html/search/mag.svg new file mode 100644 index 0000000..9f46b30 --- /dev/null +++ b/docs/html/search/mag.svg @@ -0,0 +1,37 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/docs/html/search/mag_d.svg b/docs/html/search/mag_d.svg new file mode 100644 index 0000000..b9a814c --- /dev/null +++ b/docs/html/search/mag_d.svg @@ -0,0 +1,37 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/docs/html/search/mag_sel.svg b/docs/html/search/mag_sel.svg new file mode 100644 index 0000000..03626f6 --- /dev/null +++ b/docs/html/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/html/search/mag_seld.svg b/docs/html/search/mag_seld.svg new file mode 100644 index 0000000..6e720dc --- /dev/null +++ b/docs/html/search/mag_seld.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/html/search/namespaces_0.js b/docs/html/search/namespaces_0.js new file mode 100644 index 0000000..1a38a6e --- /dev/null +++ b/docs/html/search/namespaces_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['responsehelper_0',['ResponseHelper',['../namespaceawsiotsdk_1_1_response_helper.html',1,'awsiotsdk']]] +]; diff --git a/docs/html/search/pages_0.js b/docs/html/search/pages_0.js new file mode 100644 index 0000000..1c87494 --- /dev/null +++ b/docs/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['aws_20greengrass_20discovery_20support_0',['AWS Greengrass Discovery Support',['../md__greengrass_discovery.html',1,'']]] +]; diff --git a/docs/html/search/pages_1.js b/docs/html/search/pages_1.js new file mode 100644 index 0000000..ccd7bf9 --- /dev/null +++ b/docs/html/search/pages_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['change_20log_0',['Change Log',['../md__changelog.html',1,'']]], + ['code_20of_20conduct_1',['Code of Conduct',['../md__c_o_d_e__o_f__c_o_n_d_u_c_t.html',1,'']]], + ['contributing_20guidelines_2',['Contributing Guidelines',['../md__c_o_n_t_r_i_b_u_t_i_n_g.html',1,'']]] +]; diff --git a/docs/html/search/pages_2.js b/docs/html/search/pages_2.js new file mode 100644 index 0000000..1b91d83 --- /dev/null +++ b/docs/html/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['development_20guide_0',['Development Guide',['../md__dev_guide.html',1,'']]] +]; diff --git a/docs/html/search/pages_3.js b/docs/html/search/pages_3.js new file mode 100644 index 0000000..a755ca4 --- /dev/null +++ b/docs/html/search/pages_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['known_20issues_2flimitations_0',['Known Issues/Limitations',['../md__known_issues.html',1,'']]] +]; diff --git a/docs/html/search/pages_4.js b/docs/html/search/pages_4.js new file mode 100644 index 0000000..dac3369 --- /dev/null +++ b/docs/html/search/pages_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['new_20version_20available_0',['New Version Available',['../index.html',1,'']]] +]; diff --git a/docs/html/search/pages_5.js b/docs/html/search/pages_5.js new file mode 100644 index 0000000..6bf5919 --- /dev/null +++ b/docs/html/search/pages_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['overview_0',['Overview',['../md__platform.html',1,'']]] +]; diff --git a/docs/html/search/search.css b/docs/html/search/search.css new file mode 100644 index 0000000..19f76f9 --- /dev/null +++ b/docs/html/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/docs/html/search/search.js b/docs/html/search/search.js new file mode 100644 index 0000000..e103a26 --- /dev/null +++ b/docs/html/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + searchResults.Search(searchValue); + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; e-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/docs/html/splitbard.png b/docs/html/splitbard.png new file mode 100644 index 0000000000000000000000000000000000000000..8367416d757fd7b6dc4272b6432dc75a75abd068 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@VhhFKy35^fiT zT~&lUj3=cDh^%3HDY9k5CEku}PHXNoNC(_$U3XPb&Q*ME25pT;2(*BOgAf<+R$lzakPG`kF31()Fx{L5Wrac|GQzjeE= zueY1`Ze{#x<8=S|`~MgGetGce)#vN&|J{Cd^tS%;tBYTo?+^d68<#n_Y_xx`J||4O V@QB{^CqU0Kc)I$ztaD0e0svEzbJzd? literal 0 HcmV?d00001 diff --git a/docs/html/sync_off.png b/docs/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/docs/html/sync_on.png b/docs/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/docs/html/tab_a.png b/docs/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/docs/html/tab_ad.png b/docs/html/tab_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..e34850acfc24be58da6d2fd1ccc6b29cc84fe34d GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QhuH;jv*C{Z|5d*H3V=pKi{In zd2jxLclDRPylmD}^l7{QOtL{vUjO{-WqItb5sQp2h-99b8^^Scr-=2mblCdZuUm?4 jzOJvgvt3{(cjKLW5(A@0qPS@<&}0TrS3j3^P6y&q2{!U5bk+Tso_B!YCpDh>v z{CM*1U8YvQRyBUHt^Ju0W_sq-?;9@_4equ-bavTs=gk796zopr0EBT&m;e9( literal 0 HcmV?d00001 diff --git a/docs/html/tab_s.png b/docs/html/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..ab478c95b67371d700a20869f7de1ddd73522d50 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QuUrLjv*C{Z|^p8HaRdjTwH7) zC?wLlL}}I{)n%R&r+1}IGmDnq;&J#%V6)9VsYhS`O^BVBQlxOUep0c$RENLq#g8A$ z)z7%K_bI&n@J+X_=x}fJoEKed-$<>=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/docs/html/tab_sd.png b/docs/html/tab_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..757a565ced4730f85c833fb2547d8e199ae68f19 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qq7(&jv*C{Z|_!fH5o7*c=%9% zcILh!EA=pAQKdx-Cdiev=v{eg{8Ht<{e8_NAN~b=)%W>-WDCE0PyDHGemi$BoXwcK z{>e9^za6*c1ilttWw&V+U;WCPlV9{LdC~Ey%_H(qj`xgfES(4Yz5jSTZfCt`4E$0YRsR*S^mTCR^;V&sxC8{l_Cp7w8-YPgg&ebxsLQ00$vXK>z>% literal 0 HcmV?d00001 diff --git a/docs/html/tabs.css b/docs/html/tabs.css new file mode 100644 index 0000000..71c8a47 --- /dev/null +++ b/docs/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file From f4f5c2a160a188971ffec317dbf39858e4e44703 Mon Sep 17 00:00:00 2001 From: Zhihui Xia Date: Fri, 9 Feb 2024 16:07:17 -0800 Subject: [PATCH 2/2] reset doc path --- docs/.DS_Store | Bin 0 -> 6148 bytes docs/{html => }/_action_8cpp.html | 0 docs/{html => }/_action_8hpp.html | 0 docs/{html => }/_action_8hpp_source.html | 0 docs/{html => }/_client_8cpp.html | 0 docs/{html => }/_client_8hpp.html | 0 docs/{html => }/_client_8hpp_source.html | 0 docs/{html => }/_client_core_8cpp.html | 0 docs/{html => }/_client_core_8hpp.html | 0 docs/{html => }/_client_core_8hpp_source.html | 0 docs/{html => }/_client_core_state_8cpp.html | 0 docs/{html => }/_client_core_state_8hpp.html | 0 .../_client_core_state_8hpp_source.html | 0 docs/{html => }/_client_state_8cpp.html | 0 docs/{html => }/_client_state_8hpp.html | 0 docs/{html => }/_client_state_8hpp_source.html | 0 docs/{html => }/_common_8cpp.html | 0 docs/{html => }/_common_8hpp.html | 0 docs/{html => }/_common_8hpp_source.html | 0 docs/{html => }/_config_common_8cpp.html | 0 docs/{html => }/_config_common_8hpp_source.html | 0 docs/{html => }/_connect_8cpp.html | 0 docs/{html => }/_connect_8hpp.html | 0 docs/{html => }/_connect_8hpp_source.html | 0 docs/{html => }/_console_log_system_8cpp.html | 0 docs/{html => }/_console_log_system_8hpp.html | 0 .../_console_log_system_8hpp_source.html | 0 .../_core___e_x_p_o_r_t_s_8hpp_source.html | 0 docs/{html => }/_discovery_8cpp.html | 0 docs/{html => }/_discovery_8hpp.html | 0 docs/{html => }/_discovery_8hpp_source.html | 0 docs/{html => }/_discovery_response_8cpp.html | 0 docs/{html => }/_discovery_response_8hpp.html | 0 .../_discovery_response_8hpp_source.html | 0 docs/{html => }/_formatted_log_system_8cpp.html | 0 docs/{html => }/_formatted_log_system_8hpp.html | 0 .../_formatted_log_system_8hpp_source.html | 0 .../{html => }/_greengrass_mqtt_client_8hpp.html | 0 .../_greengrass_mqtt_client_8hpp_source.html | 0 docs/{html => }/_jobs_8cpp.html | 0 docs/{html => }/_jobs_8hpp.html | 0 docs/{html => }/_jobs_8hpp_source.html | 0 docs/{html => }/_json_parser_8cpp.html | 0 docs/{html => }/_json_parser_8hpp.html | 0 docs/{html => }/_json_parser_8hpp_source.html | 0 docs/{html => }/_log_level_8cpp.html | 0 docs/{html => }/_log_level_8hpp.html | 0 docs/{html => }/_log_level_8hpp_source.html | 0 docs/{html => }/_log_macros_8hpp.html | 0 docs/{html => }/_log_macros_8hpp_source.html | 0 docs/{html => }/_log_system_interface_8hpp.html | 0 .../_log_system_interface_8hpp_source.html | 0 docs/{html => }/_logging_8cpp.html | 0 docs/{html => }/_logging_8hpp.html | 0 docs/{html => }/_logging_8hpp_source.html | 0 docs/{html => }/_map_8hpp.html | 0 docs/{html => }/_map_8hpp_source.html | 0 docs/{html => }/_network_connection_8cpp.html | 0 docs/{html => }/_network_connection_8hpp.html | 0 .../_network_connection_8hpp_source.html | 0 docs/{html => }/_network_read_8cpp.html | 0 docs/{html => }/_network_read_8hpp.html | 0 docs/{html => }/_network_read_8hpp_source.html | 0 docs/{html => }/_packet_8cpp.html | 0 docs/{html => }/_packet_8hpp.html | 0 docs/{html => }/_packet_8hpp_source.html | 0 docs/{html => }/_publish_8cpp.html | 0 docs/{html => }/_publish_8hpp.html | 0 docs/{html => }/_publish_8hpp_source.html | 0 docs/{html => }/_queue_8hpp.html | 0 docs/{html => }/_queue_8hpp_source.html | 0 docs/{html => }/_response_code_8cpp.html | 0 docs/{html => }/_response_code_8hpp.html | 0 docs/{html => }/_response_code_8hpp_source.html | 0 docs/{html => }/_shadow_8cpp.html | 0 docs/{html => }/_shadow_8hpp.html | 0 docs/{html => }/_shadow_8hpp_source.html | 0 docs/{html => }/_string_8hpp.html | 0 docs/{html => }/_string_8hpp_source.html | 0 docs/{html => }/_string_stream_8hpp.html | 0 docs/{html => }/_string_stream_8hpp_source.html | 0 docs/{html => }/_subscribe_8cpp.html | 0 docs/{html => }/_subscribe_8hpp.html | 0 docs/{html => }/_subscribe_8hpp_source.html | 0 docs/{html => }/_thread_task_8cpp.html | 0 docs/{html => }/_thread_task_8hpp_source.html | 0 docs/{html => }/_utf8_string_8cpp.html | 0 docs/{html => }/_utf8_string_8hpp.html | 0 docs/{html => }/_utf8_string_8hpp_source.html | 0 docs/{html => }/_vector_8hpp.html | 0 docs/{html => }/_vector_8hpp_source.html | 0 docs/{html => }/annotated.html | 0 docs/{html => }/bc_s.png | Bin docs/{html => }/bc_sd.png | Bin docs/{html => }/bdwn.png | Bin docs/{html => }/classawsiotsdk_1_1_action.html | 0 docs/{html => }/classawsiotsdk_1_1_action.png | Bin .../classawsiotsdk_1_1_action_data.html | 0 .../classawsiotsdk_1_1_action_data.png | Bin .../classawsiotsdk_1_1_action_state.html | 0 .../classawsiotsdk_1_1_action_state.png | Bin .../classawsiotsdk_1_1_client_core.html | 0 .../classawsiotsdk_1_1_client_core_state.html | 0 .../classawsiotsdk_1_1_client_core_state.png | Bin ...1_client_core_state_1_1_pending_ack_data.html | 0 .../classawsiotsdk_1_1_config_common.html | 0 .../classawsiotsdk_1_1_connectivity_info.html | 0 ...sdk_1_1_disconnect_callback_context_data.html | 0 .../classawsiotsdk_1_1_discovery_response.html | 0 ...lassawsiotsdk_1_1_greengrass_mqtt_client.html | 0 ...classawsiotsdk_1_1_greengrass_mqtt_client.png | Bin docs/{html => }/classawsiotsdk_1_1_jobs.html | 0 .../classawsiotsdk_1_1_mqtt_client.html | 0 .../classawsiotsdk_1_1_mqtt_client.png | Bin .../classawsiotsdk_1_1_network_connection.html | 0 ...tsdk_1_1_reconnect_callback_context_data.html | 0 ...dk_1_1_resubscribe_callback_context_data.html | 0 docs/{html => }/classawsiotsdk_1_1_shadow.html | 0 .../classawsiotsdk_1_1_utf8_string.html | 0 ...siotsdk_1_1discovery_1_1_discover_action.html | 0 ...wsiotsdk_1_1discovery_1_1_discover_action.png | Bin ...k_1_1discovery_1_1_discover_request_data.html | 0 ...dk_1_1discovery_1_1_discover_request_data.png | Bin .../classawsiotsdk_1_1mqtt_1_1_client_state.html | 0 .../classawsiotsdk_1_1mqtt_1_1_client_state.png | Bin ...siotsdk_1_1mqtt_1_1_connect_action_async.html | 0 ...wsiotsdk_1_1mqtt_1_1_connect_action_async.png | Bin ...lassawsiotsdk_1_1mqtt_1_1_connect_packet.html | 0 ...classawsiotsdk_1_1mqtt_1_1_connect_packet.png | Bin ...tsdk_1_1mqtt_1_1_disconnect_action_async.html | 0 ...otsdk_1_1mqtt_1_1_disconnect_action_async.png | Bin ...sawsiotsdk_1_1mqtt_1_1_disconnect_packet.html | 0 ...ssawsiotsdk_1_1mqtt_1_1_disconnect_packet.png | Bin ...tsdk_1_1mqtt_1_1_keepalive_action_runner.html | 0 ...otsdk_1_1mqtt_1_1_keepalive_action_runner.png | Bin ...k_1_1mqtt_1_1_network_read_action_runner.html | 0 ...dk_1_1mqtt_1_1_network_read_action_runner.png | Bin .../classawsiotsdk_1_1mqtt_1_1_packet.html | 0 .../classawsiotsdk_1_1mqtt_1_1_packet.png | Bin ...wsiotsdk_1_1mqtt_1_1_packet_fixed_header.html | 0 ...lassawsiotsdk_1_1mqtt_1_1_pingreq_packet.html | 0 ...classawsiotsdk_1_1mqtt_1_1_pingreq_packet.png | Bin ...wsiotsdk_1_1mqtt_1_1_puback_action_async.html | 0 ...awsiotsdk_1_1mqtt_1_1_puback_action_async.png | Bin ...classawsiotsdk_1_1mqtt_1_1_puback_packet.html | 0 .../classawsiotsdk_1_1mqtt_1_1_puback_packet.png | Bin ...siotsdk_1_1mqtt_1_1_publish_action_async.html | 0 ...wsiotsdk_1_1mqtt_1_1_publish_action_async.png | Bin ...lassawsiotsdk_1_1mqtt_1_1_publish_packet.html | 0 ...classawsiotsdk_1_1mqtt_1_1_publish_packet.png | Bin ...classawsiotsdk_1_1mqtt_1_1_suback_packet.html | 0 .../classawsiotsdk_1_1mqtt_1_1_suback_packet.png | Bin ...otsdk_1_1mqtt_1_1_subscribe_action_async.html | 0 ...iotsdk_1_1mqtt_1_1_subscribe_action_async.png | Bin ...ssawsiotsdk_1_1mqtt_1_1_subscribe_packet.html | 0 ...assawsiotsdk_1_1mqtt_1_1_subscribe_packet.png | Bin .../classawsiotsdk_1_1mqtt_1_1_subscription.html | 0 ...tt_1_1_subscription_handler_context_data.html | 0 ...assawsiotsdk_1_1mqtt_1_1_unsuback_packet.html | 0 ...lassawsiotsdk_1_1mqtt_1_1_unsuback_packet.png | Bin ...sdk_1_1mqtt_1_1_unsubscribe_action_async.html | 0 ...tsdk_1_1mqtt_1_1_unsubscribe_action_async.png | Bin ...awsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html | 0 ...sawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.png | Bin .../classawsiotsdk_1_1mqtt_1_1_will_options.html | 0 .../classawsiotsdk_1_1util_1_1_json_parser.html | 0 ...1util_1_1_logging_1_1_console_log_system.html | 0 ..._1util_1_1_logging_1_1_console_log_system.png | Bin ...til_1_1_logging_1_1_formatted_log_system.html | 0 ...util_1_1_logging_1_1_formatted_log_system.png | Bin ...til_1_1_logging_1_1_log_system_interface.html | 0 ...util_1_1_logging_1_1_log_system_interface.png | Bin ...dk_1_1util_1_1_threading_1_1_thread_task.html | 0 docs/{html => }/classes.html | 0 docs/{html => }/closed.png | Bin .../dir_2d45d85302b42b5377fddd52297f84fa.html | 0 .../dir_49b159e2fb90daf85a1b216fb2e8d8ed.html | 0 .../dir_503ebd9f384f44c9859dcb1451d026bc.html | 0 .../dir_586ad3c2f85d776b984733890d824e3e.html | 0 .../dir_61c9ccccd0f52ce700d1d68422bef0e1.html | 0 .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 0 .../dir_7240ac39f8ffbcbe685b1fc1c119d103.html | 0 .../dir_8c5814cf2a6c8c291521c44fe3383313.html | 0 .../dir_91e62c48b50e2efefbf56be16d49cf08.html | 0 .../dir_a666f0ef9cde9c04b6bede43cb621950.html | 0 .../dir_abfcfcfc84ac60d48c338b8a657a9e1d.html | 0 .../dir_b7878ad5ecbf2506f4125b9d34c97e45.html | 0 .../dir_bdd9a5d540de89e9fe90efdfc6973a4f.html | 0 .../dir_c6e0af4955507e99ff8b62707adbbb0e.html | 0 .../dir_ca82e1633b1ae766364945704c516e3f.html | 0 .../dir_d44c64559bbebec7f509842c48db8b23.html | 0 .../dir_e19064bd735a1cc9a0299ac24cf1c3ba.html | 0 .../dir_e9f668b2efc3a50f0424d5b34b84ca6b.html | 0 .../dir_eb47272452fa7970fc02c36be38abc9a.html | 0 docs/{html => }/doc.png | Bin docs/{html => }/docd.png | Bin docs/{html => }/doxygen.css | 0 docs/{html => }/doxygen.svg | 0 docs/{html => }/dynsections.js | 0 docs/{html => }/files.html | 0 docs/{html => }/folderclosed.png | Bin docs/{html => }/folderopen.png | Bin docs/{html => }/functions.html | 0 docs/{html => }/functions_c.html | 0 docs/{html => }/functions_d.html | 0 docs/{html => }/functions_e.html | 0 docs/{html => }/functions_f.html | 0 docs/{html => }/functions_func.html | 0 docs/{html => }/functions_func_c.html | 0 docs/{html => }/functions_func_d.html | 0 docs/{html => }/functions_func_e.html | 0 docs/{html => }/functions_func_f.html | 0 docs/{html => }/functions_func_g.html | 0 docs/{html => }/functions_func_h.html | 0 docs/{html => }/functions_func_i.html | 0 docs/{html => }/functions_func_j.html | 0 docs/{html => }/functions_func_k.html | 0 docs/{html => }/functions_func_l.html | 0 docs/{html => }/functions_func_m.html | 0 docs/{html => }/functions_func_n.html | 0 docs/{html => }/functions_func_p.html | 0 docs/{html => }/functions_func_r.html | 0 docs/{html => }/functions_func_s.html | 0 docs/{html => }/functions_func_t.html | 0 docs/{html => }/functions_func_u.html | 0 docs/{html => }/functions_func_w.html | 0 docs/{html => }/functions_func_~.html | 0 docs/{html => }/functions_g.html | 0 docs/{html => }/functions_h.html | 0 docs/{html => }/functions_i.html | 0 docs/{html => }/functions_j.html | 0 docs/{html => }/functions_k.html | 0 docs/{html => }/functions_l.html | 0 docs/{html => }/functions_m.html | 0 docs/{html => }/functions_n.html | 0 docs/{html => }/functions_o.html | 0 docs/{html => }/functions_p.html | 0 docs/{html => }/functions_q.html | 0 docs/{html => }/functions_r.html | 0 docs/{html => }/functions_s.html | 0 docs/{html => }/functions_t.html | 0 docs/{html => }/functions_type.html | 0 docs/{html => }/functions_u.html | 0 docs/{html => }/functions_vars.html | 0 docs/{html => }/functions_w.html | 0 docs/{html => }/functions_~.html | 0 docs/{html => }/globals.html | 0 docs/{html => }/globals_defs.html | 0 docs/{html => }/hierarchy.html | 0 docs/{html => }/index.html | 0 docs/{html => }/jquery.js | 0 .../md__c_o_d_e__o_f__c_o_n_d_u_c_t.html | 0 docs/{html => }/md__c_o_n_t_r_i_b_u_t_i_n_g.html | 0 docs/{html => }/md__changelog.html | 0 docs/{html => }/md__dev_guide.html | 0 docs/{html => }/md__greengrass_discovery.html | 0 docs/{html => }/md__known_issues.html | 0 docs/{html => }/md__platform.html | 0 docs/{html => }/menu.js | 0 docs/{html => }/menudata.js | 0 .../namespaceawsiotsdk_1_1_response_helper.html | 0 docs/{html => }/namespacemembers.html | 0 docs/{html => }/namespacemembers_func.html | 0 docs/{html => }/namespaces.html | 0 docs/{html => }/nav_f.png | Bin docs/{html => }/nav_fd.png | Bin docs/{html => }/nav_g.png | Bin docs/{html => }/nav_h.png | Bin docs/{html => }/nav_hd.png | Bin docs/{html => }/open.png | Bin docs/{html => }/pages.html | 0 docs/{html => }/search/all_0.js | 0 docs/{html => }/search/all_1.js | 0 docs/{html => }/search/all_10.js | 0 docs/{html => }/search/all_11.js | 0 docs/{html => }/search/all_12.js | 0 docs/{html => }/search/all_13.js | 0 docs/{html => }/search/all_14.js | 0 docs/{html => }/search/all_15.js | 0 docs/{html => }/search/all_16.js | 0 docs/{html => }/search/all_2.js | 0 docs/{html => }/search/all_3.js | 0 docs/{html => }/search/all_4.js | 0 docs/{html => }/search/all_5.js | 0 docs/{html => }/search/all_6.js | 0 docs/{html => }/search/all_7.js | 0 docs/{html => }/search/all_8.js | 0 docs/{html => }/search/all_9.js | 0 docs/{html => }/search/all_a.js | 0 docs/{html => }/search/all_b.js | 0 docs/{html => }/search/all_c.js | 0 docs/{html => }/search/all_d.js | 0 docs/{html => }/search/all_e.js | 0 docs/{html => }/search/all_f.js | 0 docs/{html => }/search/classes_0.js | 0 docs/{html => }/search/classes_1.js | 0 docs/{html => }/search/classes_2.js | 0 docs/{html => }/search/classes_3.js | 0 docs/{html => }/search/classes_4.js | 0 docs/{html => }/search/classes_5.js | 0 docs/{html => }/search/classes_6.js | 0 docs/{html => }/search/classes_7.js | 0 docs/{html => }/search/classes_8.js | 0 docs/{html => }/search/classes_9.js | 0 docs/{html => }/search/classes_a.js | 0 docs/{html => }/search/classes_b.js | 0 docs/{html => }/search/classes_c.js | 0 docs/{html => }/search/classes_d.js | 0 docs/{html => }/search/classes_e.js | 0 docs/{html => }/search/classes_f.js | 0 docs/{html => }/search/close.svg | 0 docs/{html => }/search/defines_0.js | 0 docs/{html => }/search/enums_0.js | 0 docs/{html => }/search/enums_1.js | 0 docs/{html => }/search/enums_2.js | 0 docs/{html => }/search/enums_3.js | 0 docs/{html => }/search/enums_4.js | 0 docs/{html => }/search/enums_5.js | 0 docs/{html => }/search/enums_6.js | 0 docs/{html => }/search/enums_7.js | 0 docs/{html => }/search/enumvalues_0.js | 0 docs/{html => }/search/enumvalues_1.js | 0 docs/{html => }/search/enumvalues_2.js | 0 docs/{html => }/search/enumvalues_3.js | 0 docs/{html => }/search/enumvalues_4.js | 0 docs/{html => }/search/enumvalues_5.js | 0 docs/{html => }/search/enumvalues_6.js | 0 docs/{html => }/search/enumvalues_7.js | 0 docs/{html => }/search/enumvalues_8.js | 0 docs/{html => }/search/enumvalues_9.js | 0 docs/{html => }/search/enumvalues_a.js | 0 docs/{html => }/search/enumvalues_b.js | 0 docs/{html => }/search/enumvalues_c.js | 0 docs/{html => }/search/enumvalues_d.js | 0 docs/{html => }/search/enumvalues_e.js | 0 docs/{html => }/search/files_0.js | 0 docs/{html => }/search/files_1.js | 0 docs/{html => }/search/files_2.js | 0 docs/{html => }/search/files_3.js | 0 docs/{html => }/search/files_4.js | 0 docs/{html => }/search/files_5.js | 0 docs/{html => }/search/files_6.js | 0 docs/{html => }/search/files_7.js | 0 docs/{html => }/search/files_8.js | 0 docs/{html => }/search/files_9.js | 0 docs/{html => }/search/files_a.js | 0 docs/{html => }/search/files_b.js | 0 docs/{html => }/search/files_c.js | 0 docs/{html => }/search/files_d.js | 0 docs/{html => }/search/files_e.js | 0 docs/{html => }/search/files_f.js | 0 docs/{html => }/search/functions_0.js | 0 docs/{html => }/search/functions_1.js | 0 docs/{html => }/search/functions_10.js | 0 docs/{html => }/search/functions_11.js | 0 docs/{html => }/search/functions_12.js | 0 docs/{html => }/search/functions_13.js | 0 docs/{html => }/search/functions_14.js | 0 docs/{html => }/search/functions_2.js | 0 docs/{html => }/search/functions_3.js | 0 docs/{html => }/search/functions_4.js | 0 docs/{html => }/search/functions_5.js | 0 docs/{html => }/search/functions_6.js | 0 docs/{html => }/search/functions_7.js | 0 docs/{html => }/search/functions_8.js | 0 docs/{html => }/search/functions_9.js | 0 docs/{html => }/search/functions_a.js | 0 docs/{html => }/search/functions_b.js | 0 docs/{html => }/search/functions_c.js | 0 docs/{html => }/search/functions_d.js | 0 docs/{html => }/search/functions_e.js | 0 docs/{html => }/search/functions_f.js | 0 docs/{html => }/search/mag.svg | 0 docs/{html => }/search/mag_d.svg | 0 docs/{html => }/search/mag_sel.svg | 0 docs/{html => }/search/mag_seld.svg | 0 docs/{html => }/search/namespaces_0.js | 0 docs/{html => }/search/pages_0.js | 0 docs/{html => }/search/pages_1.js | 0 docs/{html => }/search/pages_2.js | 0 docs/{html => }/search/pages_3.js | 0 docs/{html => }/search/pages_4.js | 0 docs/{html => }/search/pages_5.js | 0 docs/{html => }/search/search.css | 0 docs/{html => }/search/search.js | 0 docs/{html => }/search/searchdata.js | 0 docs/{html => }/search/typedefs_0.js | 0 docs/{html => }/search/typedefs_1.js | 0 docs/{html => }/search/typedefs_2.js | 0 docs/{html => }/search/variables_0.js | 0 docs/{html => }/search/variables_1.js | 0 docs/{html => }/search/variables_10.js | 0 docs/{html => }/search/variables_2.js | 0 docs/{html => }/search/variables_3.js | 0 docs/{html => }/search/variables_4.js | 0 docs/{html => }/search/variables_5.js | 0 docs/{html => }/search/variables_6.js | 0 docs/{html => }/search/variables_7.js | 0 docs/{html => }/search/variables_8.js | 0 docs/{html => }/search/variables_9.js | 0 docs/{html => }/search/variables_a.js | 0 docs/{html => }/search/variables_b.js | 0 docs/{html => }/search/variables_c.js | 0 docs/{html => }/search/variables_d.js | 0 docs/{html => }/search/variables_e.js | 0 docs/{html => }/search/variables_f.js | 0 docs/{html => }/splitbar.png | Bin docs/{html => }/splitbard.png | Bin docs/{html => }/sync_off.png | Bin docs/{html => }/sync_on.png | Bin docs/{html => }/tab_a.png | Bin docs/{html => }/tab_ad.png | Bin docs/{html => }/tab_b.png | Bin docs/{html => }/tab_bd.png | Bin docs/{html => }/tab_h.png | Bin docs/{html => }/tab_hd.png | Bin docs/{html => }/tab_s.png | Bin docs/{html => }/tab_sd.png | Bin docs/{html => }/tabs.css | 0 419 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/.DS_Store rename docs/{html => }/_action_8cpp.html (100%) rename docs/{html => }/_action_8hpp.html (100%) rename docs/{html => }/_action_8hpp_source.html (100%) rename docs/{html => }/_client_8cpp.html (100%) rename docs/{html => }/_client_8hpp.html (100%) rename docs/{html => }/_client_8hpp_source.html (100%) rename docs/{html => }/_client_core_8cpp.html (100%) rename docs/{html => }/_client_core_8hpp.html (100%) rename docs/{html => }/_client_core_8hpp_source.html (100%) rename docs/{html => }/_client_core_state_8cpp.html (100%) rename docs/{html => }/_client_core_state_8hpp.html (100%) rename docs/{html => }/_client_core_state_8hpp_source.html (100%) rename docs/{html => }/_client_state_8cpp.html (100%) rename docs/{html => }/_client_state_8hpp.html (100%) rename docs/{html => }/_client_state_8hpp_source.html (100%) rename docs/{html => }/_common_8cpp.html (100%) rename docs/{html => }/_common_8hpp.html (100%) rename docs/{html => }/_common_8hpp_source.html (100%) rename docs/{html => }/_config_common_8cpp.html (100%) rename docs/{html => }/_config_common_8hpp_source.html (100%) rename docs/{html => }/_connect_8cpp.html (100%) rename docs/{html => }/_connect_8hpp.html (100%) rename docs/{html => }/_connect_8hpp_source.html (100%) rename docs/{html => }/_console_log_system_8cpp.html (100%) rename docs/{html => }/_console_log_system_8hpp.html (100%) rename docs/{html => }/_console_log_system_8hpp_source.html (100%) rename docs/{html => }/_core___e_x_p_o_r_t_s_8hpp_source.html (100%) rename docs/{html => }/_discovery_8cpp.html (100%) rename docs/{html => }/_discovery_8hpp.html (100%) rename docs/{html => }/_discovery_8hpp_source.html (100%) rename docs/{html => }/_discovery_response_8cpp.html (100%) rename docs/{html => }/_discovery_response_8hpp.html (100%) rename docs/{html => }/_discovery_response_8hpp_source.html (100%) rename docs/{html => }/_formatted_log_system_8cpp.html (100%) rename docs/{html => }/_formatted_log_system_8hpp.html (100%) rename docs/{html => }/_formatted_log_system_8hpp_source.html (100%) rename docs/{html => }/_greengrass_mqtt_client_8hpp.html (100%) rename docs/{html => }/_greengrass_mqtt_client_8hpp_source.html (100%) rename docs/{html => }/_jobs_8cpp.html (100%) rename docs/{html => }/_jobs_8hpp.html (100%) rename docs/{html => }/_jobs_8hpp_source.html (100%) rename docs/{html => }/_json_parser_8cpp.html (100%) rename docs/{html => }/_json_parser_8hpp.html (100%) rename docs/{html => }/_json_parser_8hpp_source.html (100%) rename docs/{html => }/_log_level_8cpp.html (100%) rename docs/{html => }/_log_level_8hpp.html (100%) rename docs/{html => }/_log_level_8hpp_source.html (100%) rename docs/{html => }/_log_macros_8hpp.html (100%) rename docs/{html => }/_log_macros_8hpp_source.html (100%) rename docs/{html => }/_log_system_interface_8hpp.html (100%) rename docs/{html => }/_log_system_interface_8hpp_source.html (100%) rename docs/{html => }/_logging_8cpp.html (100%) rename docs/{html => }/_logging_8hpp.html (100%) rename docs/{html => }/_logging_8hpp_source.html (100%) rename docs/{html => }/_map_8hpp.html (100%) rename docs/{html => }/_map_8hpp_source.html (100%) rename docs/{html => }/_network_connection_8cpp.html (100%) rename docs/{html => }/_network_connection_8hpp.html (100%) rename docs/{html => }/_network_connection_8hpp_source.html (100%) rename docs/{html => }/_network_read_8cpp.html (100%) rename docs/{html => }/_network_read_8hpp.html (100%) rename docs/{html => }/_network_read_8hpp_source.html (100%) rename docs/{html => }/_packet_8cpp.html (100%) rename docs/{html => }/_packet_8hpp.html (100%) rename docs/{html => }/_packet_8hpp_source.html (100%) rename docs/{html => }/_publish_8cpp.html (100%) rename docs/{html => }/_publish_8hpp.html (100%) rename docs/{html => }/_publish_8hpp_source.html (100%) rename docs/{html => }/_queue_8hpp.html (100%) rename docs/{html => }/_queue_8hpp_source.html (100%) rename docs/{html => }/_response_code_8cpp.html (100%) rename docs/{html => }/_response_code_8hpp.html (100%) rename docs/{html => }/_response_code_8hpp_source.html (100%) rename docs/{html => }/_shadow_8cpp.html (100%) rename docs/{html => }/_shadow_8hpp.html (100%) rename docs/{html => }/_shadow_8hpp_source.html (100%) rename docs/{html => }/_string_8hpp.html (100%) rename docs/{html => }/_string_8hpp_source.html (100%) rename docs/{html => }/_string_stream_8hpp.html (100%) rename docs/{html => }/_string_stream_8hpp_source.html (100%) rename docs/{html => }/_subscribe_8cpp.html (100%) rename docs/{html => }/_subscribe_8hpp.html (100%) rename docs/{html => }/_subscribe_8hpp_source.html (100%) rename docs/{html => }/_thread_task_8cpp.html (100%) rename docs/{html => }/_thread_task_8hpp_source.html (100%) rename docs/{html => }/_utf8_string_8cpp.html (100%) rename docs/{html => }/_utf8_string_8hpp.html (100%) rename docs/{html => }/_utf8_string_8hpp_source.html (100%) rename docs/{html => }/_vector_8hpp.html (100%) rename docs/{html => }/_vector_8hpp_source.html (100%) rename docs/{html => }/annotated.html (100%) rename docs/{html => }/bc_s.png (100%) rename docs/{html => }/bc_sd.png (100%) rename docs/{html => }/bdwn.png (100%) rename docs/{html => }/classawsiotsdk_1_1_action.html (100%) rename docs/{html => }/classawsiotsdk_1_1_action.png (100%) rename docs/{html => }/classawsiotsdk_1_1_action_data.html (100%) rename docs/{html => }/classawsiotsdk_1_1_action_data.png (100%) rename docs/{html => }/classawsiotsdk_1_1_action_state.html (100%) rename docs/{html => }/classawsiotsdk_1_1_action_state.png (100%) rename docs/{html => }/classawsiotsdk_1_1_client_core.html (100%) rename docs/{html => }/classawsiotsdk_1_1_client_core_state.html (100%) rename docs/{html => }/classawsiotsdk_1_1_client_core_state.png (100%) rename docs/{html => }/classawsiotsdk_1_1_client_core_state_1_1_pending_ack_data.html (100%) rename docs/{html => }/classawsiotsdk_1_1_config_common.html (100%) rename docs/{html => }/classawsiotsdk_1_1_connectivity_info.html (100%) rename docs/{html => }/classawsiotsdk_1_1_disconnect_callback_context_data.html (100%) rename docs/{html => }/classawsiotsdk_1_1_discovery_response.html (100%) rename docs/{html => }/classawsiotsdk_1_1_greengrass_mqtt_client.html (100%) rename docs/{html => }/classawsiotsdk_1_1_greengrass_mqtt_client.png (100%) rename docs/{html => }/classawsiotsdk_1_1_jobs.html (100%) rename docs/{html => }/classawsiotsdk_1_1_mqtt_client.html (100%) rename docs/{html => }/classawsiotsdk_1_1_mqtt_client.png (100%) rename docs/{html => }/classawsiotsdk_1_1_network_connection.html (100%) rename docs/{html => }/classawsiotsdk_1_1_reconnect_callback_context_data.html (100%) rename docs/{html => }/classawsiotsdk_1_1_resubscribe_callback_context_data.html (100%) rename docs/{html => }/classawsiotsdk_1_1_shadow.html (100%) rename docs/{html => }/classawsiotsdk_1_1_utf8_string.html (100%) rename docs/{html => }/classawsiotsdk_1_1discovery_1_1_discover_action.html (100%) rename docs/{html => }/classawsiotsdk_1_1discovery_1_1_discover_action.png (100%) rename docs/{html => }/classawsiotsdk_1_1discovery_1_1_discover_request_data.html (100%) rename docs/{html => }/classawsiotsdk_1_1discovery_1_1_discover_request_data.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_client_state.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_client_state.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_connect_action_async.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_connect_action_async.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_connect_packet.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_connect_packet.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_packet.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_packet.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_puback_action_async.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_puback_action_async.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_puback_packet.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_puback_packet.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_publish_action_async.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_publish_action_async.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_publish_packet.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_publish_packet.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_suback_packet.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_suback_packet.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_subscription.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_subscription_handler_context_data.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.png (100%) rename docs/{html => }/classawsiotsdk_1_1mqtt_1_1_will_options.html (100%) rename docs/{html => }/classawsiotsdk_1_1util_1_1_json_parser.html (100%) rename docs/{html => }/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html (100%) rename docs/{html => }/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.png (100%) rename docs/{html => }/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html (100%) rename docs/{html => }/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.png (100%) rename docs/{html => }/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html (100%) rename docs/{html => }/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.png (100%) rename docs/{html => }/classawsiotsdk_1_1util_1_1_threading_1_1_thread_task.html (100%) rename docs/{html => }/classes.html (100%) rename docs/{html => }/closed.png (100%) rename docs/{html => }/dir_2d45d85302b42b5377fddd52297f84fa.html (100%) rename docs/{html => }/dir_49b159e2fb90daf85a1b216fb2e8d8ed.html (100%) rename docs/{html => }/dir_503ebd9f384f44c9859dcb1451d026bc.html (100%) rename docs/{html => }/dir_586ad3c2f85d776b984733890d824e3e.html (100%) rename docs/{html => }/dir_61c9ccccd0f52ce700d1d68422bef0e1.html (100%) rename docs/{html => }/dir_68267d1309a1af8e8297ef4c3efbcdba.html (100%) rename docs/{html => }/dir_7240ac39f8ffbcbe685b1fc1c119d103.html (100%) rename docs/{html => }/dir_8c5814cf2a6c8c291521c44fe3383313.html (100%) rename docs/{html => }/dir_91e62c48b50e2efefbf56be16d49cf08.html (100%) rename docs/{html => }/dir_a666f0ef9cde9c04b6bede43cb621950.html (100%) rename docs/{html => }/dir_abfcfcfc84ac60d48c338b8a657a9e1d.html (100%) rename docs/{html => }/dir_b7878ad5ecbf2506f4125b9d34c97e45.html (100%) rename docs/{html => }/dir_bdd9a5d540de89e9fe90efdfc6973a4f.html (100%) rename docs/{html => }/dir_c6e0af4955507e99ff8b62707adbbb0e.html (100%) rename docs/{html => }/dir_ca82e1633b1ae766364945704c516e3f.html (100%) rename docs/{html => }/dir_d44c64559bbebec7f509842c48db8b23.html (100%) rename docs/{html => }/dir_e19064bd735a1cc9a0299ac24cf1c3ba.html (100%) rename docs/{html => }/dir_e9f668b2efc3a50f0424d5b34b84ca6b.html (100%) rename docs/{html => }/dir_eb47272452fa7970fc02c36be38abc9a.html (100%) rename docs/{html => }/doc.png (100%) rename docs/{html => }/docd.png (100%) rename docs/{html => }/doxygen.css (100%) rename docs/{html => }/doxygen.svg (100%) rename docs/{html => }/dynsections.js (100%) rename docs/{html => }/files.html (100%) rename docs/{html => }/folderclosed.png (100%) rename docs/{html => }/folderopen.png (100%) rename docs/{html => }/functions.html (100%) rename docs/{html => }/functions_c.html (100%) rename docs/{html => }/functions_d.html (100%) rename docs/{html => }/functions_e.html (100%) rename docs/{html => }/functions_f.html (100%) rename docs/{html => }/functions_func.html (100%) rename docs/{html => }/functions_func_c.html (100%) rename docs/{html => }/functions_func_d.html (100%) rename docs/{html => }/functions_func_e.html (100%) rename docs/{html => }/functions_func_f.html (100%) rename docs/{html => }/functions_func_g.html (100%) rename docs/{html => }/functions_func_h.html (100%) rename docs/{html => }/functions_func_i.html (100%) rename docs/{html => }/functions_func_j.html (100%) rename docs/{html => }/functions_func_k.html (100%) rename docs/{html => }/functions_func_l.html (100%) rename docs/{html => }/functions_func_m.html (100%) rename docs/{html => }/functions_func_n.html (100%) rename docs/{html => }/functions_func_p.html (100%) rename docs/{html => }/functions_func_r.html (100%) rename docs/{html => }/functions_func_s.html (100%) rename docs/{html => }/functions_func_t.html (100%) rename docs/{html => }/functions_func_u.html (100%) rename docs/{html => }/functions_func_w.html (100%) rename docs/{html => }/functions_func_~.html (100%) rename docs/{html => }/functions_g.html (100%) rename docs/{html => }/functions_h.html (100%) rename docs/{html => }/functions_i.html (100%) rename docs/{html => }/functions_j.html (100%) rename docs/{html => }/functions_k.html (100%) rename docs/{html => }/functions_l.html (100%) rename docs/{html => }/functions_m.html (100%) rename docs/{html => }/functions_n.html (100%) rename docs/{html => }/functions_o.html (100%) rename docs/{html => }/functions_p.html (100%) rename docs/{html => }/functions_q.html (100%) rename docs/{html => }/functions_r.html (100%) rename docs/{html => }/functions_s.html (100%) rename docs/{html => }/functions_t.html (100%) rename docs/{html => }/functions_type.html (100%) rename docs/{html => }/functions_u.html (100%) rename docs/{html => }/functions_vars.html (100%) rename docs/{html => }/functions_w.html (100%) rename docs/{html => }/functions_~.html (100%) rename docs/{html => }/globals.html (100%) rename docs/{html => }/globals_defs.html (100%) rename docs/{html => }/hierarchy.html (100%) rename docs/{html => }/index.html (100%) rename docs/{html => }/jquery.js (100%) rename docs/{html => }/md__c_o_d_e__o_f__c_o_n_d_u_c_t.html (100%) rename docs/{html => }/md__c_o_n_t_r_i_b_u_t_i_n_g.html (100%) rename docs/{html => }/md__changelog.html (100%) rename docs/{html => }/md__dev_guide.html (100%) rename docs/{html => }/md__greengrass_discovery.html (100%) rename docs/{html => }/md__known_issues.html (100%) rename docs/{html => }/md__platform.html (100%) rename docs/{html => }/menu.js (100%) rename docs/{html => }/menudata.js (100%) rename docs/{html => }/namespaceawsiotsdk_1_1_response_helper.html (100%) rename docs/{html => }/namespacemembers.html (100%) rename docs/{html => }/namespacemembers_func.html (100%) rename docs/{html => }/namespaces.html (100%) rename docs/{html => }/nav_f.png (100%) rename docs/{html => }/nav_fd.png (100%) rename docs/{html => }/nav_g.png (100%) rename docs/{html => }/nav_h.png (100%) rename docs/{html => }/nav_hd.png (100%) rename docs/{html => }/open.png (100%) rename docs/{html => }/pages.html (100%) rename docs/{html => }/search/all_0.js (100%) rename docs/{html => }/search/all_1.js (100%) rename docs/{html => }/search/all_10.js (100%) rename docs/{html => }/search/all_11.js (100%) rename docs/{html => }/search/all_12.js (100%) rename docs/{html => }/search/all_13.js (100%) rename docs/{html => }/search/all_14.js (100%) rename docs/{html => }/search/all_15.js (100%) rename docs/{html => }/search/all_16.js (100%) rename docs/{html => }/search/all_2.js (100%) rename docs/{html => }/search/all_3.js (100%) rename docs/{html => }/search/all_4.js (100%) rename docs/{html => }/search/all_5.js (100%) rename docs/{html => }/search/all_6.js (100%) rename docs/{html => }/search/all_7.js (100%) rename docs/{html => }/search/all_8.js (100%) rename docs/{html => }/search/all_9.js (100%) rename docs/{html => }/search/all_a.js (100%) rename docs/{html => }/search/all_b.js (100%) rename docs/{html => }/search/all_c.js (100%) rename docs/{html => }/search/all_d.js (100%) rename docs/{html => }/search/all_e.js (100%) rename docs/{html => }/search/all_f.js (100%) rename docs/{html => }/search/classes_0.js (100%) rename docs/{html => }/search/classes_1.js (100%) rename docs/{html => }/search/classes_2.js (100%) rename docs/{html => }/search/classes_3.js (100%) rename docs/{html => }/search/classes_4.js (100%) rename docs/{html => }/search/classes_5.js (100%) rename docs/{html => }/search/classes_6.js (100%) rename docs/{html => }/search/classes_7.js (100%) rename docs/{html => }/search/classes_8.js (100%) rename docs/{html => }/search/classes_9.js (100%) rename docs/{html => }/search/classes_a.js (100%) rename docs/{html => }/search/classes_b.js (100%) rename docs/{html => }/search/classes_c.js (100%) rename docs/{html => }/search/classes_d.js (100%) rename docs/{html => }/search/classes_e.js (100%) rename docs/{html => }/search/classes_f.js (100%) rename docs/{html => }/search/close.svg (100%) rename docs/{html => }/search/defines_0.js (100%) rename docs/{html => }/search/enums_0.js (100%) rename docs/{html => }/search/enums_1.js (100%) rename docs/{html => }/search/enums_2.js (100%) rename docs/{html => }/search/enums_3.js (100%) rename docs/{html => }/search/enums_4.js (100%) rename docs/{html => }/search/enums_5.js (100%) rename docs/{html => }/search/enums_6.js (100%) rename docs/{html => }/search/enums_7.js (100%) rename docs/{html => }/search/enumvalues_0.js (100%) rename docs/{html => }/search/enumvalues_1.js (100%) rename docs/{html => }/search/enumvalues_2.js (100%) rename docs/{html => }/search/enumvalues_3.js (100%) rename docs/{html => }/search/enumvalues_4.js (100%) rename docs/{html => }/search/enumvalues_5.js (100%) rename docs/{html => }/search/enumvalues_6.js (100%) rename docs/{html => }/search/enumvalues_7.js (100%) rename docs/{html => }/search/enumvalues_8.js (100%) rename docs/{html => }/search/enumvalues_9.js (100%) rename docs/{html => }/search/enumvalues_a.js (100%) rename docs/{html => }/search/enumvalues_b.js (100%) rename docs/{html => }/search/enumvalues_c.js (100%) rename docs/{html => }/search/enumvalues_d.js (100%) rename docs/{html => }/search/enumvalues_e.js (100%) rename docs/{html => }/search/files_0.js (100%) rename docs/{html => }/search/files_1.js (100%) rename docs/{html => }/search/files_2.js (100%) rename docs/{html => }/search/files_3.js (100%) rename docs/{html => }/search/files_4.js (100%) rename docs/{html => }/search/files_5.js (100%) rename docs/{html => }/search/files_6.js (100%) rename docs/{html => }/search/files_7.js (100%) rename docs/{html => }/search/files_8.js (100%) rename docs/{html => }/search/files_9.js (100%) rename docs/{html => }/search/files_a.js (100%) rename docs/{html => }/search/files_b.js (100%) rename docs/{html => }/search/files_c.js (100%) rename docs/{html => }/search/files_d.js (100%) rename docs/{html => }/search/files_e.js (100%) rename docs/{html => }/search/files_f.js (100%) rename docs/{html => }/search/functions_0.js (100%) rename docs/{html => }/search/functions_1.js (100%) rename docs/{html => }/search/functions_10.js (100%) rename docs/{html => }/search/functions_11.js (100%) rename docs/{html => }/search/functions_12.js (100%) rename docs/{html => }/search/functions_13.js (100%) rename docs/{html => }/search/functions_14.js (100%) rename docs/{html => }/search/functions_2.js (100%) rename docs/{html => }/search/functions_3.js (100%) rename docs/{html => }/search/functions_4.js (100%) rename docs/{html => }/search/functions_5.js (100%) rename docs/{html => }/search/functions_6.js (100%) rename docs/{html => }/search/functions_7.js (100%) rename docs/{html => }/search/functions_8.js (100%) rename docs/{html => }/search/functions_9.js (100%) rename docs/{html => }/search/functions_a.js (100%) rename docs/{html => }/search/functions_b.js (100%) rename docs/{html => }/search/functions_c.js (100%) rename docs/{html => }/search/functions_d.js (100%) rename docs/{html => }/search/functions_e.js (100%) rename docs/{html => }/search/functions_f.js (100%) rename docs/{html => }/search/mag.svg (100%) rename docs/{html => }/search/mag_d.svg (100%) rename docs/{html => }/search/mag_sel.svg (100%) rename docs/{html => }/search/mag_seld.svg (100%) rename docs/{html => }/search/namespaces_0.js (100%) rename docs/{html => }/search/pages_0.js (100%) rename docs/{html => }/search/pages_1.js (100%) rename docs/{html => }/search/pages_2.js (100%) rename docs/{html => }/search/pages_3.js (100%) rename docs/{html => }/search/pages_4.js (100%) rename docs/{html => }/search/pages_5.js (100%) rename docs/{html => }/search/search.css (100%) rename docs/{html => }/search/search.js (100%) rename docs/{html => }/search/searchdata.js (100%) rename docs/{html => }/search/typedefs_0.js (100%) rename docs/{html => }/search/typedefs_1.js (100%) rename docs/{html => }/search/typedefs_2.js (100%) rename docs/{html => }/search/variables_0.js (100%) rename docs/{html => }/search/variables_1.js (100%) rename docs/{html => }/search/variables_10.js (100%) rename docs/{html => }/search/variables_2.js (100%) rename docs/{html => }/search/variables_3.js (100%) rename docs/{html => }/search/variables_4.js (100%) rename docs/{html => }/search/variables_5.js (100%) rename docs/{html => }/search/variables_6.js (100%) rename docs/{html => }/search/variables_7.js (100%) rename docs/{html => }/search/variables_8.js (100%) rename docs/{html => }/search/variables_9.js (100%) rename docs/{html => }/search/variables_a.js (100%) rename docs/{html => }/search/variables_b.js (100%) rename docs/{html => }/search/variables_c.js (100%) rename docs/{html => }/search/variables_d.js (100%) rename docs/{html => }/search/variables_e.js (100%) rename docs/{html => }/search/variables_f.js (100%) rename docs/{html => }/splitbar.png (100%) rename docs/{html => }/splitbard.png (100%) rename docs/{html => }/sync_off.png (100%) rename docs/{html => }/sync_on.png (100%) rename docs/{html => }/tab_a.png (100%) rename docs/{html => }/tab_ad.png (100%) rename docs/{html => }/tab_b.png (100%) rename docs/{html => }/tab_bd.png (100%) rename docs/{html => }/tab_h.png (100%) rename docs/{html => }/tab_hd.png (100%) rename docs/{html => }/tab_s.png (100%) rename docs/{html => }/tab_sd.png (100%) rename docs/{html => }/tabs.css (100%) diff --git a/docs/.DS_Store b/docs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c41e13fadd478230ce0c73eef41bf98b817f79f2 GIT binary patch literal 6148 zcmeHKOHKko5UmnoCb(hg#-y*n4O%jufD0gCWC0nXalx+7!j>Dr+S_;tUwt$VOyZ6h zQUy?nX3$q32fo`L-|x?T7QgyzmOpqJOpzia7zhS}fnXpQ zxCjHdvqh>K!{~#7U?3RyW> z>?HE*1a) literal 0 HcmV?d00001 diff --git a/docs/html/_action_8cpp.html b/docs/_action_8cpp.html similarity index 100% rename from docs/html/_action_8cpp.html rename to docs/_action_8cpp.html diff --git a/docs/html/_action_8hpp.html b/docs/_action_8hpp.html similarity index 100% rename from docs/html/_action_8hpp.html rename to docs/_action_8hpp.html diff --git a/docs/html/_action_8hpp_source.html b/docs/_action_8hpp_source.html similarity index 100% rename from docs/html/_action_8hpp_source.html rename to docs/_action_8hpp_source.html diff --git a/docs/html/_client_8cpp.html b/docs/_client_8cpp.html similarity index 100% rename from docs/html/_client_8cpp.html rename to docs/_client_8cpp.html diff --git a/docs/html/_client_8hpp.html b/docs/_client_8hpp.html similarity index 100% rename from docs/html/_client_8hpp.html rename to docs/_client_8hpp.html diff --git a/docs/html/_client_8hpp_source.html b/docs/_client_8hpp_source.html similarity index 100% rename from docs/html/_client_8hpp_source.html rename to docs/_client_8hpp_source.html diff --git a/docs/html/_client_core_8cpp.html b/docs/_client_core_8cpp.html similarity index 100% rename from docs/html/_client_core_8cpp.html rename to docs/_client_core_8cpp.html diff --git a/docs/html/_client_core_8hpp.html b/docs/_client_core_8hpp.html similarity index 100% rename from docs/html/_client_core_8hpp.html rename to docs/_client_core_8hpp.html diff --git a/docs/html/_client_core_8hpp_source.html b/docs/_client_core_8hpp_source.html similarity index 100% rename from docs/html/_client_core_8hpp_source.html rename to docs/_client_core_8hpp_source.html diff --git a/docs/html/_client_core_state_8cpp.html b/docs/_client_core_state_8cpp.html similarity index 100% rename from docs/html/_client_core_state_8cpp.html rename to docs/_client_core_state_8cpp.html diff --git a/docs/html/_client_core_state_8hpp.html b/docs/_client_core_state_8hpp.html similarity index 100% rename from docs/html/_client_core_state_8hpp.html rename to docs/_client_core_state_8hpp.html diff --git a/docs/html/_client_core_state_8hpp_source.html b/docs/_client_core_state_8hpp_source.html similarity index 100% rename from docs/html/_client_core_state_8hpp_source.html rename to docs/_client_core_state_8hpp_source.html diff --git a/docs/html/_client_state_8cpp.html b/docs/_client_state_8cpp.html similarity index 100% rename from docs/html/_client_state_8cpp.html rename to docs/_client_state_8cpp.html diff --git a/docs/html/_client_state_8hpp.html b/docs/_client_state_8hpp.html similarity index 100% rename from docs/html/_client_state_8hpp.html rename to docs/_client_state_8hpp.html diff --git a/docs/html/_client_state_8hpp_source.html b/docs/_client_state_8hpp_source.html similarity index 100% rename from docs/html/_client_state_8hpp_source.html rename to docs/_client_state_8hpp_source.html diff --git a/docs/html/_common_8cpp.html b/docs/_common_8cpp.html similarity index 100% rename from docs/html/_common_8cpp.html rename to docs/_common_8cpp.html diff --git a/docs/html/_common_8hpp.html b/docs/_common_8hpp.html similarity index 100% rename from docs/html/_common_8hpp.html rename to docs/_common_8hpp.html diff --git a/docs/html/_common_8hpp_source.html b/docs/_common_8hpp_source.html similarity index 100% rename from docs/html/_common_8hpp_source.html rename to docs/_common_8hpp_source.html diff --git a/docs/html/_config_common_8cpp.html b/docs/_config_common_8cpp.html similarity index 100% rename from docs/html/_config_common_8cpp.html rename to docs/_config_common_8cpp.html diff --git a/docs/html/_config_common_8hpp_source.html b/docs/_config_common_8hpp_source.html similarity index 100% rename from docs/html/_config_common_8hpp_source.html rename to docs/_config_common_8hpp_source.html diff --git a/docs/html/_connect_8cpp.html b/docs/_connect_8cpp.html similarity index 100% rename from docs/html/_connect_8cpp.html rename to docs/_connect_8cpp.html diff --git a/docs/html/_connect_8hpp.html b/docs/_connect_8hpp.html similarity index 100% rename from docs/html/_connect_8hpp.html rename to docs/_connect_8hpp.html diff --git a/docs/html/_connect_8hpp_source.html b/docs/_connect_8hpp_source.html similarity index 100% rename from docs/html/_connect_8hpp_source.html rename to docs/_connect_8hpp_source.html diff --git a/docs/html/_console_log_system_8cpp.html b/docs/_console_log_system_8cpp.html similarity index 100% rename from docs/html/_console_log_system_8cpp.html rename to docs/_console_log_system_8cpp.html diff --git a/docs/html/_console_log_system_8hpp.html b/docs/_console_log_system_8hpp.html similarity index 100% rename from docs/html/_console_log_system_8hpp.html rename to docs/_console_log_system_8hpp.html diff --git a/docs/html/_console_log_system_8hpp_source.html b/docs/_console_log_system_8hpp_source.html similarity index 100% rename from docs/html/_console_log_system_8hpp_source.html rename to docs/_console_log_system_8hpp_source.html diff --git a/docs/html/_core___e_x_p_o_r_t_s_8hpp_source.html b/docs/_core___e_x_p_o_r_t_s_8hpp_source.html similarity index 100% rename from docs/html/_core___e_x_p_o_r_t_s_8hpp_source.html rename to docs/_core___e_x_p_o_r_t_s_8hpp_source.html diff --git a/docs/html/_discovery_8cpp.html b/docs/_discovery_8cpp.html similarity index 100% rename from docs/html/_discovery_8cpp.html rename to docs/_discovery_8cpp.html diff --git a/docs/html/_discovery_8hpp.html b/docs/_discovery_8hpp.html similarity index 100% rename from docs/html/_discovery_8hpp.html rename to docs/_discovery_8hpp.html diff --git a/docs/html/_discovery_8hpp_source.html b/docs/_discovery_8hpp_source.html similarity index 100% rename from docs/html/_discovery_8hpp_source.html rename to docs/_discovery_8hpp_source.html diff --git a/docs/html/_discovery_response_8cpp.html b/docs/_discovery_response_8cpp.html similarity index 100% rename from docs/html/_discovery_response_8cpp.html rename to docs/_discovery_response_8cpp.html diff --git a/docs/html/_discovery_response_8hpp.html b/docs/_discovery_response_8hpp.html similarity index 100% rename from docs/html/_discovery_response_8hpp.html rename to docs/_discovery_response_8hpp.html diff --git a/docs/html/_discovery_response_8hpp_source.html b/docs/_discovery_response_8hpp_source.html similarity index 100% rename from docs/html/_discovery_response_8hpp_source.html rename to docs/_discovery_response_8hpp_source.html diff --git a/docs/html/_formatted_log_system_8cpp.html b/docs/_formatted_log_system_8cpp.html similarity index 100% rename from docs/html/_formatted_log_system_8cpp.html rename to docs/_formatted_log_system_8cpp.html diff --git a/docs/html/_formatted_log_system_8hpp.html b/docs/_formatted_log_system_8hpp.html similarity index 100% rename from docs/html/_formatted_log_system_8hpp.html rename to docs/_formatted_log_system_8hpp.html diff --git a/docs/html/_formatted_log_system_8hpp_source.html b/docs/_formatted_log_system_8hpp_source.html similarity index 100% rename from docs/html/_formatted_log_system_8hpp_source.html rename to docs/_formatted_log_system_8hpp_source.html diff --git a/docs/html/_greengrass_mqtt_client_8hpp.html b/docs/_greengrass_mqtt_client_8hpp.html similarity index 100% rename from docs/html/_greengrass_mqtt_client_8hpp.html rename to docs/_greengrass_mqtt_client_8hpp.html diff --git a/docs/html/_greengrass_mqtt_client_8hpp_source.html b/docs/_greengrass_mqtt_client_8hpp_source.html similarity index 100% rename from docs/html/_greengrass_mqtt_client_8hpp_source.html rename to docs/_greengrass_mqtt_client_8hpp_source.html diff --git a/docs/html/_jobs_8cpp.html b/docs/_jobs_8cpp.html similarity index 100% rename from docs/html/_jobs_8cpp.html rename to docs/_jobs_8cpp.html diff --git a/docs/html/_jobs_8hpp.html b/docs/_jobs_8hpp.html similarity index 100% rename from docs/html/_jobs_8hpp.html rename to docs/_jobs_8hpp.html diff --git a/docs/html/_jobs_8hpp_source.html b/docs/_jobs_8hpp_source.html similarity index 100% rename from docs/html/_jobs_8hpp_source.html rename to docs/_jobs_8hpp_source.html diff --git a/docs/html/_json_parser_8cpp.html b/docs/_json_parser_8cpp.html similarity index 100% rename from docs/html/_json_parser_8cpp.html rename to docs/_json_parser_8cpp.html diff --git a/docs/html/_json_parser_8hpp.html b/docs/_json_parser_8hpp.html similarity index 100% rename from docs/html/_json_parser_8hpp.html rename to docs/_json_parser_8hpp.html diff --git a/docs/html/_json_parser_8hpp_source.html b/docs/_json_parser_8hpp_source.html similarity index 100% rename from docs/html/_json_parser_8hpp_source.html rename to docs/_json_parser_8hpp_source.html diff --git a/docs/html/_log_level_8cpp.html b/docs/_log_level_8cpp.html similarity index 100% rename from docs/html/_log_level_8cpp.html rename to docs/_log_level_8cpp.html diff --git a/docs/html/_log_level_8hpp.html b/docs/_log_level_8hpp.html similarity index 100% rename from docs/html/_log_level_8hpp.html rename to docs/_log_level_8hpp.html diff --git a/docs/html/_log_level_8hpp_source.html b/docs/_log_level_8hpp_source.html similarity index 100% rename from docs/html/_log_level_8hpp_source.html rename to docs/_log_level_8hpp_source.html diff --git a/docs/html/_log_macros_8hpp.html b/docs/_log_macros_8hpp.html similarity index 100% rename from docs/html/_log_macros_8hpp.html rename to docs/_log_macros_8hpp.html diff --git a/docs/html/_log_macros_8hpp_source.html b/docs/_log_macros_8hpp_source.html similarity index 100% rename from docs/html/_log_macros_8hpp_source.html rename to docs/_log_macros_8hpp_source.html diff --git a/docs/html/_log_system_interface_8hpp.html b/docs/_log_system_interface_8hpp.html similarity index 100% rename from docs/html/_log_system_interface_8hpp.html rename to docs/_log_system_interface_8hpp.html diff --git a/docs/html/_log_system_interface_8hpp_source.html b/docs/_log_system_interface_8hpp_source.html similarity index 100% rename from docs/html/_log_system_interface_8hpp_source.html rename to docs/_log_system_interface_8hpp_source.html diff --git a/docs/html/_logging_8cpp.html b/docs/_logging_8cpp.html similarity index 100% rename from docs/html/_logging_8cpp.html rename to docs/_logging_8cpp.html diff --git a/docs/html/_logging_8hpp.html b/docs/_logging_8hpp.html similarity index 100% rename from docs/html/_logging_8hpp.html rename to docs/_logging_8hpp.html diff --git a/docs/html/_logging_8hpp_source.html b/docs/_logging_8hpp_source.html similarity index 100% rename from docs/html/_logging_8hpp_source.html rename to docs/_logging_8hpp_source.html diff --git a/docs/html/_map_8hpp.html b/docs/_map_8hpp.html similarity index 100% rename from docs/html/_map_8hpp.html rename to docs/_map_8hpp.html diff --git a/docs/html/_map_8hpp_source.html b/docs/_map_8hpp_source.html similarity index 100% rename from docs/html/_map_8hpp_source.html rename to docs/_map_8hpp_source.html diff --git a/docs/html/_network_connection_8cpp.html b/docs/_network_connection_8cpp.html similarity index 100% rename from docs/html/_network_connection_8cpp.html rename to docs/_network_connection_8cpp.html diff --git a/docs/html/_network_connection_8hpp.html b/docs/_network_connection_8hpp.html similarity index 100% rename from docs/html/_network_connection_8hpp.html rename to docs/_network_connection_8hpp.html diff --git a/docs/html/_network_connection_8hpp_source.html b/docs/_network_connection_8hpp_source.html similarity index 100% rename from docs/html/_network_connection_8hpp_source.html rename to docs/_network_connection_8hpp_source.html diff --git a/docs/html/_network_read_8cpp.html b/docs/_network_read_8cpp.html similarity index 100% rename from docs/html/_network_read_8cpp.html rename to docs/_network_read_8cpp.html diff --git a/docs/html/_network_read_8hpp.html b/docs/_network_read_8hpp.html similarity index 100% rename from docs/html/_network_read_8hpp.html rename to docs/_network_read_8hpp.html diff --git a/docs/html/_network_read_8hpp_source.html b/docs/_network_read_8hpp_source.html similarity index 100% rename from docs/html/_network_read_8hpp_source.html rename to docs/_network_read_8hpp_source.html diff --git a/docs/html/_packet_8cpp.html b/docs/_packet_8cpp.html similarity index 100% rename from docs/html/_packet_8cpp.html rename to docs/_packet_8cpp.html diff --git a/docs/html/_packet_8hpp.html b/docs/_packet_8hpp.html similarity index 100% rename from docs/html/_packet_8hpp.html rename to docs/_packet_8hpp.html diff --git a/docs/html/_packet_8hpp_source.html b/docs/_packet_8hpp_source.html similarity index 100% rename from docs/html/_packet_8hpp_source.html rename to docs/_packet_8hpp_source.html diff --git a/docs/html/_publish_8cpp.html b/docs/_publish_8cpp.html similarity index 100% rename from docs/html/_publish_8cpp.html rename to docs/_publish_8cpp.html diff --git a/docs/html/_publish_8hpp.html b/docs/_publish_8hpp.html similarity index 100% rename from docs/html/_publish_8hpp.html rename to docs/_publish_8hpp.html diff --git a/docs/html/_publish_8hpp_source.html b/docs/_publish_8hpp_source.html similarity index 100% rename from docs/html/_publish_8hpp_source.html rename to docs/_publish_8hpp_source.html diff --git a/docs/html/_queue_8hpp.html b/docs/_queue_8hpp.html similarity index 100% rename from docs/html/_queue_8hpp.html rename to docs/_queue_8hpp.html diff --git a/docs/html/_queue_8hpp_source.html b/docs/_queue_8hpp_source.html similarity index 100% rename from docs/html/_queue_8hpp_source.html rename to docs/_queue_8hpp_source.html diff --git a/docs/html/_response_code_8cpp.html b/docs/_response_code_8cpp.html similarity index 100% rename from docs/html/_response_code_8cpp.html rename to docs/_response_code_8cpp.html diff --git a/docs/html/_response_code_8hpp.html b/docs/_response_code_8hpp.html similarity index 100% rename from docs/html/_response_code_8hpp.html rename to docs/_response_code_8hpp.html diff --git a/docs/html/_response_code_8hpp_source.html b/docs/_response_code_8hpp_source.html similarity index 100% rename from docs/html/_response_code_8hpp_source.html rename to docs/_response_code_8hpp_source.html diff --git a/docs/html/_shadow_8cpp.html b/docs/_shadow_8cpp.html similarity index 100% rename from docs/html/_shadow_8cpp.html rename to docs/_shadow_8cpp.html diff --git a/docs/html/_shadow_8hpp.html b/docs/_shadow_8hpp.html similarity index 100% rename from docs/html/_shadow_8hpp.html rename to docs/_shadow_8hpp.html diff --git a/docs/html/_shadow_8hpp_source.html b/docs/_shadow_8hpp_source.html similarity index 100% rename from docs/html/_shadow_8hpp_source.html rename to docs/_shadow_8hpp_source.html diff --git a/docs/html/_string_8hpp.html b/docs/_string_8hpp.html similarity index 100% rename from docs/html/_string_8hpp.html rename to docs/_string_8hpp.html diff --git a/docs/html/_string_8hpp_source.html b/docs/_string_8hpp_source.html similarity index 100% rename from docs/html/_string_8hpp_source.html rename to docs/_string_8hpp_source.html diff --git a/docs/html/_string_stream_8hpp.html b/docs/_string_stream_8hpp.html similarity index 100% rename from docs/html/_string_stream_8hpp.html rename to docs/_string_stream_8hpp.html diff --git a/docs/html/_string_stream_8hpp_source.html b/docs/_string_stream_8hpp_source.html similarity index 100% rename from docs/html/_string_stream_8hpp_source.html rename to docs/_string_stream_8hpp_source.html diff --git a/docs/html/_subscribe_8cpp.html b/docs/_subscribe_8cpp.html similarity index 100% rename from docs/html/_subscribe_8cpp.html rename to docs/_subscribe_8cpp.html diff --git a/docs/html/_subscribe_8hpp.html b/docs/_subscribe_8hpp.html similarity index 100% rename from docs/html/_subscribe_8hpp.html rename to docs/_subscribe_8hpp.html diff --git a/docs/html/_subscribe_8hpp_source.html b/docs/_subscribe_8hpp_source.html similarity index 100% rename from docs/html/_subscribe_8hpp_source.html rename to docs/_subscribe_8hpp_source.html diff --git a/docs/html/_thread_task_8cpp.html b/docs/_thread_task_8cpp.html similarity index 100% rename from docs/html/_thread_task_8cpp.html rename to docs/_thread_task_8cpp.html diff --git a/docs/html/_thread_task_8hpp_source.html b/docs/_thread_task_8hpp_source.html similarity index 100% rename from docs/html/_thread_task_8hpp_source.html rename to docs/_thread_task_8hpp_source.html diff --git a/docs/html/_utf8_string_8cpp.html b/docs/_utf8_string_8cpp.html similarity index 100% rename from docs/html/_utf8_string_8cpp.html rename to docs/_utf8_string_8cpp.html diff --git a/docs/html/_utf8_string_8hpp.html b/docs/_utf8_string_8hpp.html similarity index 100% rename from docs/html/_utf8_string_8hpp.html rename to docs/_utf8_string_8hpp.html diff --git a/docs/html/_utf8_string_8hpp_source.html b/docs/_utf8_string_8hpp_source.html similarity index 100% rename from docs/html/_utf8_string_8hpp_source.html rename to docs/_utf8_string_8hpp_source.html diff --git a/docs/html/_vector_8hpp.html b/docs/_vector_8hpp.html similarity index 100% rename from docs/html/_vector_8hpp.html rename to docs/_vector_8hpp.html diff --git a/docs/html/_vector_8hpp_source.html b/docs/_vector_8hpp_source.html similarity index 100% rename from docs/html/_vector_8hpp_source.html rename to docs/_vector_8hpp_source.html diff --git a/docs/html/annotated.html b/docs/annotated.html similarity index 100% rename from docs/html/annotated.html rename to docs/annotated.html diff --git a/docs/html/bc_s.png b/docs/bc_s.png similarity index 100% rename from docs/html/bc_s.png rename to docs/bc_s.png diff --git a/docs/html/bc_sd.png b/docs/bc_sd.png similarity index 100% rename from docs/html/bc_sd.png rename to docs/bc_sd.png diff --git a/docs/html/bdwn.png b/docs/bdwn.png similarity index 100% rename from docs/html/bdwn.png rename to docs/bdwn.png diff --git a/docs/html/classawsiotsdk_1_1_action.html b/docs/classawsiotsdk_1_1_action.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_action.html rename to docs/classawsiotsdk_1_1_action.html diff --git a/docs/html/classawsiotsdk_1_1_action.png b/docs/classawsiotsdk_1_1_action.png similarity index 100% rename from docs/html/classawsiotsdk_1_1_action.png rename to docs/classawsiotsdk_1_1_action.png diff --git a/docs/html/classawsiotsdk_1_1_action_data.html b/docs/classawsiotsdk_1_1_action_data.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_action_data.html rename to docs/classawsiotsdk_1_1_action_data.html diff --git a/docs/html/classawsiotsdk_1_1_action_data.png b/docs/classawsiotsdk_1_1_action_data.png similarity index 100% rename from docs/html/classawsiotsdk_1_1_action_data.png rename to docs/classawsiotsdk_1_1_action_data.png diff --git a/docs/html/classawsiotsdk_1_1_action_state.html b/docs/classawsiotsdk_1_1_action_state.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_action_state.html rename to docs/classawsiotsdk_1_1_action_state.html diff --git a/docs/html/classawsiotsdk_1_1_action_state.png b/docs/classawsiotsdk_1_1_action_state.png similarity index 100% rename from docs/html/classawsiotsdk_1_1_action_state.png rename to docs/classawsiotsdk_1_1_action_state.png diff --git a/docs/html/classawsiotsdk_1_1_client_core.html b/docs/classawsiotsdk_1_1_client_core.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_client_core.html rename to docs/classawsiotsdk_1_1_client_core.html diff --git a/docs/html/classawsiotsdk_1_1_client_core_state.html b/docs/classawsiotsdk_1_1_client_core_state.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_client_core_state.html rename to docs/classawsiotsdk_1_1_client_core_state.html diff --git a/docs/html/classawsiotsdk_1_1_client_core_state.png b/docs/classawsiotsdk_1_1_client_core_state.png similarity index 100% rename from docs/html/classawsiotsdk_1_1_client_core_state.png rename to docs/classawsiotsdk_1_1_client_core_state.png diff --git a/docs/html/classawsiotsdk_1_1_client_core_state_1_1_pending_ack_data.html b/docs/classawsiotsdk_1_1_client_core_state_1_1_pending_ack_data.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_client_core_state_1_1_pending_ack_data.html rename to docs/classawsiotsdk_1_1_client_core_state_1_1_pending_ack_data.html diff --git a/docs/html/classawsiotsdk_1_1_config_common.html b/docs/classawsiotsdk_1_1_config_common.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_config_common.html rename to docs/classawsiotsdk_1_1_config_common.html diff --git a/docs/html/classawsiotsdk_1_1_connectivity_info.html b/docs/classawsiotsdk_1_1_connectivity_info.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_connectivity_info.html rename to docs/classawsiotsdk_1_1_connectivity_info.html diff --git a/docs/html/classawsiotsdk_1_1_disconnect_callback_context_data.html b/docs/classawsiotsdk_1_1_disconnect_callback_context_data.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_disconnect_callback_context_data.html rename to docs/classawsiotsdk_1_1_disconnect_callback_context_data.html diff --git a/docs/html/classawsiotsdk_1_1_discovery_response.html b/docs/classawsiotsdk_1_1_discovery_response.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_discovery_response.html rename to docs/classawsiotsdk_1_1_discovery_response.html diff --git a/docs/html/classawsiotsdk_1_1_greengrass_mqtt_client.html b/docs/classawsiotsdk_1_1_greengrass_mqtt_client.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_greengrass_mqtt_client.html rename to docs/classawsiotsdk_1_1_greengrass_mqtt_client.html diff --git a/docs/html/classawsiotsdk_1_1_greengrass_mqtt_client.png b/docs/classawsiotsdk_1_1_greengrass_mqtt_client.png similarity index 100% rename from docs/html/classawsiotsdk_1_1_greengrass_mqtt_client.png rename to docs/classawsiotsdk_1_1_greengrass_mqtt_client.png diff --git a/docs/html/classawsiotsdk_1_1_jobs.html b/docs/classawsiotsdk_1_1_jobs.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_jobs.html rename to docs/classawsiotsdk_1_1_jobs.html diff --git a/docs/html/classawsiotsdk_1_1_mqtt_client.html b/docs/classawsiotsdk_1_1_mqtt_client.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_mqtt_client.html rename to docs/classawsiotsdk_1_1_mqtt_client.html diff --git a/docs/html/classawsiotsdk_1_1_mqtt_client.png b/docs/classawsiotsdk_1_1_mqtt_client.png similarity index 100% rename from docs/html/classawsiotsdk_1_1_mqtt_client.png rename to docs/classawsiotsdk_1_1_mqtt_client.png diff --git a/docs/html/classawsiotsdk_1_1_network_connection.html b/docs/classawsiotsdk_1_1_network_connection.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_network_connection.html rename to docs/classawsiotsdk_1_1_network_connection.html diff --git a/docs/html/classawsiotsdk_1_1_reconnect_callback_context_data.html b/docs/classawsiotsdk_1_1_reconnect_callback_context_data.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_reconnect_callback_context_data.html rename to docs/classawsiotsdk_1_1_reconnect_callback_context_data.html diff --git a/docs/html/classawsiotsdk_1_1_resubscribe_callback_context_data.html b/docs/classawsiotsdk_1_1_resubscribe_callback_context_data.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_resubscribe_callback_context_data.html rename to docs/classawsiotsdk_1_1_resubscribe_callback_context_data.html diff --git a/docs/html/classawsiotsdk_1_1_shadow.html b/docs/classawsiotsdk_1_1_shadow.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_shadow.html rename to docs/classawsiotsdk_1_1_shadow.html diff --git a/docs/html/classawsiotsdk_1_1_utf8_string.html b/docs/classawsiotsdk_1_1_utf8_string.html similarity index 100% rename from docs/html/classawsiotsdk_1_1_utf8_string.html rename to docs/classawsiotsdk_1_1_utf8_string.html diff --git a/docs/html/classawsiotsdk_1_1discovery_1_1_discover_action.html b/docs/classawsiotsdk_1_1discovery_1_1_discover_action.html similarity index 100% rename from docs/html/classawsiotsdk_1_1discovery_1_1_discover_action.html rename to docs/classawsiotsdk_1_1discovery_1_1_discover_action.html diff --git a/docs/html/classawsiotsdk_1_1discovery_1_1_discover_action.png b/docs/classawsiotsdk_1_1discovery_1_1_discover_action.png similarity index 100% rename from docs/html/classawsiotsdk_1_1discovery_1_1_discover_action.png rename to docs/classawsiotsdk_1_1discovery_1_1_discover_action.png diff --git a/docs/html/classawsiotsdk_1_1discovery_1_1_discover_request_data.html b/docs/classawsiotsdk_1_1discovery_1_1_discover_request_data.html similarity index 100% rename from docs/html/classawsiotsdk_1_1discovery_1_1_discover_request_data.html rename to docs/classawsiotsdk_1_1discovery_1_1_discover_request_data.html diff --git a/docs/html/classawsiotsdk_1_1discovery_1_1_discover_request_data.png b/docs/classawsiotsdk_1_1discovery_1_1_discover_request_data.png similarity index 100% rename from docs/html/classawsiotsdk_1_1discovery_1_1_discover_request_data.png rename to docs/classawsiotsdk_1_1discovery_1_1_discover_request_data.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_client_state.html b/docs/classawsiotsdk_1_1mqtt_1_1_client_state.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_client_state.html rename to docs/classawsiotsdk_1_1mqtt_1_1_client_state.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_client_state.png b/docs/classawsiotsdk_1_1mqtt_1_1_client_state.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_client_state.png rename to docs/classawsiotsdk_1_1mqtt_1_1_client_state.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_action_async.html b/docs/classawsiotsdk_1_1mqtt_1_1_connect_action_async.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_connect_action_async.html rename to docs/classawsiotsdk_1_1mqtt_1_1_connect_action_async.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_action_async.png b/docs/classawsiotsdk_1_1mqtt_1_1_connect_action_async.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_connect_action_async.png rename to docs/classawsiotsdk_1_1mqtt_1_1_connect_action_async.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_packet.html b/docs/classawsiotsdk_1_1mqtt_1_1_connect_packet.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_connect_packet.html rename to docs/classawsiotsdk_1_1mqtt_1_1_connect_packet.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_connect_packet.png b/docs/classawsiotsdk_1_1mqtt_1_1_connect_packet.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_connect_packet.png rename to docs/classawsiotsdk_1_1mqtt_1_1_connect_packet.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html b/docs/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html rename to docs/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.png b/docs/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.png rename to docs/classawsiotsdk_1_1mqtt_1_1_disconnect_action_async.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html b/docs/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html rename to docs/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.png b/docs/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.png rename to docs/classawsiotsdk_1_1mqtt_1_1_disconnect_packet.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html b/docs/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html rename to docs/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.png b/docs/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.png rename to docs/classawsiotsdk_1_1mqtt_1_1_keepalive_action_runner.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html b/docs/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html rename to docs/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.png b/docs/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.png rename to docs/classawsiotsdk_1_1mqtt_1_1_network_read_action_runner.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_packet.html b/docs/classawsiotsdk_1_1mqtt_1_1_packet.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_packet.html rename to docs/classawsiotsdk_1_1mqtt_1_1_packet.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_packet.png b/docs/classawsiotsdk_1_1mqtt_1_1_packet.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_packet.png rename to docs/classawsiotsdk_1_1mqtt_1_1_packet.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html b/docs/classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html rename to docs/classawsiotsdk_1_1mqtt_1_1_packet_fixed_header.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html b/docs/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html rename to docs/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.png b/docs/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.png rename to docs/classawsiotsdk_1_1mqtt_1_1_pingreq_packet.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_action_async.html b/docs/classawsiotsdk_1_1mqtt_1_1_puback_action_async.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_puback_action_async.html rename to docs/classawsiotsdk_1_1mqtt_1_1_puback_action_async.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_action_async.png b/docs/classawsiotsdk_1_1mqtt_1_1_puback_action_async.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_puback_action_async.png rename to docs/classawsiotsdk_1_1mqtt_1_1_puback_action_async.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_packet.html b/docs/classawsiotsdk_1_1mqtt_1_1_puback_packet.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_puback_packet.html rename to docs/classawsiotsdk_1_1mqtt_1_1_puback_packet.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_puback_packet.png b/docs/classawsiotsdk_1_1mqtt_1_1_puback_packet.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_puback_packet.png rename to docs/classawsiotsdk_1_1mqtt_1_1_puback_packet.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_publish_action_async.html b/docs/classawsiotsdk_1_1mqtt_1_1_publish_action_async.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_publish_action_async.html rename to docs/classawsiotsdk_1_1mqtt_1_1_publish_action_async.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_publish_action_async.png b/docs/classawsiotsdk_1_1mqtt_1_1_publish_action_async.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_publish_action_async.png rename to docs/classawsiotsdk_1_1mqtt_1_1_publish_action_async.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_publish_packet.html b/docs/classawsiotsdk_1_1mqtt_1_1_publish_packet.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_publish_packet.html rename to docs/classawsiotsdk_1_1mqtt_1_1_publish_packet.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_publish_packet.png b/docs/classawsiotsdk_1_1mqtt_1_1_publish_packet.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_publish_packet.png rename to docs/classawsiotsdk_1_1mqtt_1_1_publish_packet.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_suback_packet.html b/docs/classawsiotsdk_1_1mqtt_1_1_suback_packet.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_suback_packet.html rename to docs/classawsiotsdk_1_1mqtt_1_1_suback_packet.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_suback_packet.png b/docs/classawsiotsdk_1_1mqtt_1_1_suback_packet.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_suback_packet.png rename to docs/classawsiotsdk_1_1mqtt_1_1_suback_packet.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html b/docs/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html rename to docs/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.png b/docs/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.png rename to docs/classawsiotsdk_1_1mqtt_1_1_subscribe_action_async.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html b/docs/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html rename to docs/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.png b/docs/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.png rename to docs/classawsiotsdk_1_1mqtt_1_1_subscribe_packet.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_subscription.html b/docs/classawsiotsdk_1_1mqtt_1_1_subscription.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_subscription.html rename to docs/classawsiotsdk_1_1mqtt_1_1_subscription.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_subscription_handler_context_data.html b/docs/classawsiotsdk_1_1mqtt_1_1_subscription_handler_context_data.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_subscription_handler_context_data.html rename to docs/classawsiotsdk_1_1mqtt_1_1_subscription_handler_context_data.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html b/docs/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html rename to docs/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.png b/docs/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.png rename to docs/classawsiotsdk_1_1mqtt_1_1_unsuback_packet.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html b/docs/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html rename to docs/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.png b/docs/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.png rename to docs/classawsiotsdk_1_1mqtt_1_1_unsubscribe_action_async.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html b/docs/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html rename to docs/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.html diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.png b/docs/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.png similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.png rename to docs/classawsiotsdk_1_1mqtt_1_1_unsubscribe_packet.png diff --git a/docs/html/classawsiotsdk_1_1mqtt_1_1_will_options.html b/docs/classawsiotsdk_1_1mqtt_1_1_will_options.html similarity index 100% rename from docs/html/classawsiotsdk_1_1mqtt_1_1_will_options.html rename to docs/classawsiotsdk_1_1mqtt_1_1_will_options.html diff --git a/docs/html/classawsiotsdk_1_1util_1_1_json_parser.html b/docs/classawsiotsdk_1_1util_1_1_json_parser.html similarity index 100% rename from docs/html/classawsiotsdk_1_1util_1_1_json_parser.html rename to docs/classawsiotsdk_1_1util_1_1_json_parser.html diff --git a/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html b/docs/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html similarity index 100% rename from docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html rename to docs/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.html diff --git a/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.png b/docs/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.png similarity index 100% rename from docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.png rename to docs/classawsiotsdk_1_1util_1_1_logging_1_1_console_log_system.png diff --git a/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html b/docs/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html similarity index 100% rename from docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html rename to docs/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.html diff --git a/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.png b/docs/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.png similarity index 100% rename from docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.png rename to docs/classawsiotsdk_1_1util_1_1_logging_1_1_formatted_log_system.png diff --git a/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html b/docs/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html similarity index 100% rename from docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html rename to docs/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.html diff --git a/docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.png b/docs/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.png similarity index 100% rename from docs/html/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.png rename to docs/classawsiotsdk_1_1util_1_1_logging_1_1_log_system_interface.png diff --git a/docs/html/classawsiotsdk_1_1util_1_1_threading_1_1_thread_task.html b/docs/classawsiotsdk_1_1util_1_1_threading_1_1_thread_task.html similarity index 100% rename from docs/html/classawsiotsdk_1_1util_1_1_threading_1_1_thread_task.html rename to docs/classawsiotsdk_1_1util_1_1_threading_1_1_thread_task.html diff --git a/docs/html/classes.html b/docs/classes.html similarity index 100% rename from docs/html/classes.html rename to docs/classes.html diff --git a/docs/html/closed.png b/docs/closed.png similarity index 100% rename from docs/html/closed.png rename to docs/closed.png diff --git a/docs/html/dir_2d45d85302b42b5377fddd52297f84fa.html b/docs/dir_2d45d85302b42b5377fddd52297f84fa.html similarity index 100% rename from docs/html/dir_2d45d85302b42b5377fddd52297f84fa.html rename to docs/dir_2d45d85302b42b5377fddd52297f84fa.html diff --git a/docs/html/dir_49b159e2fb90daf85a1b216fb2e8d8ed.html b/docs/dir_49b159e2fb90daf85a1b216fb2e8d8ed.html similarity index 100% rename from docs/html/dir_49b159e2fb90daf85a1b216fb2e8d8ed.html rename to docs/dir_49b159e2fb90daf85a1b216fb2e8d8ed.html diff --git a/docs/html/dir_503ebd9f384f44c9859dcb1451d026bc.html b/docs/dir_503ebd9f384f44c9859dcb1451d026bc.html similarity index 100% rename from docs/html/dir_503ebd9f384f44c9859dcb1451d026bc.html rename to docs/dir_503ebd9f384f44c9859dcb1451d026bc.html diff --git a/docs/html/dir_586ad3c2f85d776b984733890d824e3e.html b/docs/dir_586ad3c2f85d776b984733890d824e3e.html similarity index 100% rename from docs/html/dir_586ad3c2f85d776b984733890d824e3e.html rename to docs/dir_586ad3c2f85d776b984733890d824e3e.html diff --git a/docs/html/dir_61c9ccccd0f52ce700d1d68422bef0e1.html b/docs/dir_61c9ccccd0f52ce700d1d68422bef0e1.html similarity index 100% rename from docs/html/dir_61c9ccccd0f52ce700d1d68422bef0e1.html rename to docs/dir_61c9ccccd0f52ce700d1d68422bef0e1.html diff --git a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html similarity index 100% rename from docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html rename to docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html diff --git a/docs/html/dir_7240ac39f8ffbcbe685b1fc1c119d103.html b/docs/dir_7240ac39f8ffbcbe685b1fc1c119d103.html similarity index 100% rename from docs/html/dir_7240ac39f8ffbcbe685b1fc1c119d103.html rename to docs/dir_7240ac39f8ffbcbe685b1fc1c119d103.html diff --git a/docs/html/dir_8c5814cf2a6c8c291521c44fe3383313.html b/docs/dir_8c5814cf2a6c8c291521c44fe3383313.html similarity index 100% rename from docs/html/dir_8c5814cf2a6c8c291521c44fe3383313.html rename to docs/dir_8c5814cf2a6c8c291521c44fe3383313.html diff --git a/docs/html/dir_91e62c48b50e2efefbf56be16d49cf08.html b/docs/dir_91e62c48b50e2efefbf56be16d49cf08.html similarity index 100% rename from docs/html/dir_91e62c48b50e2efefbf56be16d49cf08.html rename to docs/dir_91e62c48b50e2efefbf56be16d49cf08.html diff --git a/docs/html/dir_a666f0ef9cde9c04b6bede43cb621950.html b/docs/dir_a666f0ef9cde9c04b6bede43cb621950.html similarity index 100% rename from docs/html/dir_a666f0ef9cde9c04b6bede43cb621950.html rename to docs/dir_a666f0ef9cde9c04b6bede43cb621950.html diff --git a/docs/html/dir_abfcfcfc84ac60d48c338b8a657a9e1d.html b/docs/dir_abfcfcfc84ac60d48c338b8a657a9e1d.html similarity index 100% rename from docs/html/dir_abfcfcfc84ac60d48c338b8a657a9e1d.html rename to docs/dir_abfcfcfc84ac60d48c338b8a657a9e1d.html diff --git a/docs/html/dir_b7878ad5ecbf2506f4125b9d34c97e45.html b/docs/dir_b7878ad5ecbf2506f4125b9d34c97e45.html similarity index 100% rename from docs/html/dir_b7878ad5ecbf2506f4125b9d34c97e45.html rename to docs/dir_b7878ad5ecbf2506f4125b9d34c97e45.html diff --git a/docs/html/dir_bdd9a5d540de89e9fe90efdfc6973a4f.html b/docs/dir_bdd9a5d540de89e9fe90efdfc6973a4f.html similarity index 100% rename from docs/html/dir_bdd9a5d540de89e9fe90efdfc6973a4f.html rename to docs/dir_bdd9a5d540de89e9fe90efdfc6973a4f.html diff --git a/docs/html/dir_c6e0af4955507e99ff8b62707adbbb0e.html b/docs/dir_c6e0af4955507e99ff8b62707adbbb0e.html similarity index 100% rename from docs/html/dir_c6e0af4955507e99ff8b62707adbbb0e.html rename to docs/dir_c6e0af4955507e99ff8b62707adbbb0e.html diff --git a/docs/html/dir_ca82e1633b1ae766364945704c516e3f.html b/docs/dir_ca82e1633b1ae766364945704c516e3f.html similarity index 100% rename from docs/html/dir_ca82e1633b1ae766364945704c516e3f.html rename to docs/dir_ca82e1633b1ae766364945704c516e3f.html diff --git a/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html b/docs/dir_d44c64559bbebec7f509842c48db8b23.html similarity index 100% rename from docs/html/dir_d44c64559bbebec7f509842c48db8b23.html rename to docs/dir_d44c64559bbebec7f509842c48db8b23.html diff --git a/docs/html/dir_e19064bd735a1cc9a0299ac24cf1c3ba.html b/docs/dir_e19064bd735a1cc9a0299ac24cf1c3ba.html similarity index 100% rename from docs/html/dir_e19064bd735a1cc9a0299ac24cf1c3ba.html rename to docs/dir_e19064bd735a1cc9a0299ac24cf1c3ba.html diff --git a/docs/html/dir_e9f668b2efc3a50f0424d5b34b84ca6b.html b/docs/dir_e9f668b2efc3a50f0424d5b34b84ca6b.html similarity index 100% rename from docs/html/dir_e9f668b2efc3a50f0424d5b34b84ca6b.html rename to docs/dir_e9f668b2efc3a50f0424d5b34b84ca6b.html diff --git a/docs/html/dir_eb47272452fa7970fc02c36be38abc9a.html b/docs/dir_eb47272452fa7970fc02c36be38abc9a.html similarity index 100% rename from docs/html/dir_eb47272452fa7970fc02c36be38abc9a.html rename to docs/dir_eb47272452fa7970fc02c36be38abc9a.html diff --git a/docs/html/doc.png b/docs/doc.png similarity index 100% rename from docs/html/doc.png rename to docs/doc.png diff --git a/docs/html/docd.png b/docs/docd.png similarity index 100% rename from docs/html/docd.png rename to docs/docd.png diff --git a/docs/html/doxygen.css b/docs/doxygen.css similarity index 100% rename from docs/html/doxygen.css rename to docs/doxygen.css diff --git a/docs/html/doxygen.svg b/docs/doxygen.svg similarity index 100% rename from docs/html/doxygen.svg rename to docs/doxygen.svg diff --git a/docs/html/dynsections.js b/docs/dynsections.js similarity index 100% rename from docs/html/dynsections.js rename to docs/dynsections.js diff --git a/docs/html/files.html b/docs/files.html similarity index 100% rename from docs/html/files.html rename to docs/files.html diff --git a/docs/html/folderclosed.png b/docs/folderclosed.png similarity index 100% rename from docs/html/folderclosed.png rename to docs/folderclosed.png diff --git a/docs/html/folderopen.png b/docs/folderopen.png similarity index 100% rename from docs/html/folderopen.png rename to docs/folderopen.png diff --git a/docs/html/functions.html b/docs/functions.html similarity index 100% rename from docs/html/functions.html rename to docs/functions.html diff --git a/docs/html/functions_c.html b/docs/functions_c.html similarity index 100% rename from docs/html/functions_c.html rename to docs/functions_c.html diff --git a/docs/html/functions_d.html b/docs/functions_d.html similarity index 100% rename from docs/html/functions_d.html rename to docs/functions_d.html diff --git a/docs/html/functions_e.html b/docs/functions_e.html similarity index 100% rename from docs/html/functions_e.html rename to docs/functions_e.html diff --git a/docs/html/functions_f.html b/docs/functions_f.html similarity index 100% rename from docs/html/functions_f.html rename to docs/functions_f.html diff --git a/docs/html/functions_func.html b/docs/functions_func.html similarity index 100% rename from docs/html/functions_func.html rename to docs/functions_func.html diff --git a/docs/html/functions_func_c.html b/docs/functions_func_c.html similarity index 100% rename from docs/html/functions_func_c.html rename to docs/functions_func_c.html diff --git a/docs/html/functions_func_d.html b/docs/functions_func_d.html similarity index 100% rename from docs/html/functions_func_d.html rename to docs/functions_func_d.html diff --git a/docs/html/functions_func_e.html b/docs/functions_func_e.html similarity index 100% rename from docs/html/functions_func_e.html rename to docs/functions_func_e.html diff --git a/docs/html/functions_func_f.html b/docs/functions_func_f.html similarity index 100% rename from docs/html/functions_func_f.html rename to docs/functions_func_f.html diff --git a/docs/html/functions_func_g.html b/docs/functions_func_g.html similarity index 100% rename from docs/html/functions_func_g.html rename to docs/functions_func_g.html diff --git a/docs/html/functions_func_h.html b/docs/functions_func_h.html similarity index 100% rename from docs/html/functions_func_h.html rename to docs/functions_func_h.html diff --git a/docs/html/functions_func_i.html b/docs/functions_func_i.html similarity index 100% rename from docs/html/functions_func_i.html rename to docs/functions_func_i.html diff --git a/docs/html/functions_func_j.html b/docs/functions_func_j.html similarity index 100% rename from docs/html/functions_func_j.html rename to docs/functions_func_j.html diff --git a/docs/html/functions_func_k.html b/docs/functions_func_k.html similarity index 100% rename from docs/html/functions_func_k.html rename to docs/functions_func_k.html diff --git a/docs/html/functions_func_l.html b/docs/functions_func_l.html similarity index 100% rename from docs/html/functions_func_l.html rename to docs/functions_func_l.html diff --git a/docs/html/functions_func_m.html b/docs/functions_func_m.html similarity index 100% rename from docs/html/functions_func_m.html rename to docs/functions_func_m.html diff --git a/docs/html/functions_func_n.html b/docs/functions_func_n.html similarity index 100% rename from docs/html/functions_func_n.html rename to docs/functions_func_n.html diff --git a/docs/html/functions_func_p.html b/docs/functions_func_p.html similarity index 100% rename from docs/html/functions_func_p.html rename to docs/functions_func_p.html diff --git a/docs/html/functions_func_r.html b/docs/functions_func_r.html similarity index 100% rename from docs/html/functions_func_r.html rename to docs/functions_func_r.html diff --git a/docs/html/functions_func_s.html b/docs/functions_func_s.html similarity index 100% rename from docs/html/functions_func_s.html rename to docs/functions_func_s.html diff --git a/docs/html/functions_func_t.html b/docs/functions_func_t.html similarity index 100% rename from docs/html/functions_func_t.html rename to docs/functions_func_t.html diff --git a/docs/html/functions_func_u.html b/docs/functions_func_u.html similarity index 100% rename from docs/html/functions_func_u.html rename to docs/functions_func_u.html diff --git a/docs/html/functions_func_w.html b/docs/functions_func_w.html similarity index 100% rename from docs/html/functions_func_w.html rename to docs/functions_func_w.html diff --git a/docs/html/functions_func_~.html b/docs/functions_func_~.html similarity index 100% rename from docs/html/functions_func_~.html rename to docs/functions_func_~.html diff --git a/docs/html/functions_g.html b/docs/functions_g.html similarity index 100% rename from docs/html/functions_g.html rename to docs/functions_g.html diff --git a/docs/html/functions_h.html b/docs/functions_h.html similarity index 100% rename from docs/html/functions_h.html rename to docs/functions_h.html diff --git a/docs/html/functions_i.html b/docs/functions_i.html similarity index 100% rename from docs/html/functions_i.html rename to docs/functions_i.html diff --git a/docs/html/functions_j.html b/docs/functions_j.html similarity index 100% rename from docs/html/functions_j.html rename to docs/functions_j.html diff --git a/docs/html/functions_k.html b/docs/functions_k.html similarity index 100% rename from docs/html/functions_k.html rename to docs/functions_k.html diff --git a/docs/html/functions_l.html b/docs/functions_l.html similarity index 100% rename from docs/html/functions_l.html rename to docs/functions_l.html diff --git a/docs/html/functions_m.html b/docs/functions_m.html similarity index 100% rename from docs/html/functions_m.html rename to docs/functions_m.html diff --git a/docs/html/functions_n.html b/docs/functions_n.html similarity index 100% rename from docs/html/functions_n.html rename to docs/functions_n.html diff --git a/docs/html/functions_o.html b/docs/functions_o.html similarity index 100% rename from docs/html/functions_o.html rename to docs/functions_o.html diff --git a/docs/html/functions_p.html b/docs/functions_p.html similarity index 100% rename from docs/html/functions_p.html rename to docs/functions_p.html diff --git a/docs/html/functions_q.html b/docs/functions_q.html similarity index 100% rename from docs/html/functions_q.html rename to docs/functions_q.html diff --git a/docs/html/functions_r.html b/docs/functions_r.html similarity index 100% rename from docs/html/functions_r.html rename to docs/functions_r.html diff --git a/docs/html/functions_s.html b/docs/functions_s.html similarity index 100% rename from docs/html/functions_s.html rename to docs/functions_s.html diff --git a/docs/html/functions_t.html b/docs/functions_t.html similarity index 100% rename from docs/html/functions_t.html rename to docs/functions_t.html diff --git a/docs/html/functions_type.html b/docs/functions_type.html similarity index 100% rename from docs/html/functions_type.html rename to docs/functions_type.html diff --git a/docs/html/functions_u.html b/docs/functions_u.html similarity index 100% rename from docs/html/functions_u.html rename to docs/functions_u.html diff --git a/docs/html/functions_vars.html b/docs/functions_vars.html similarity index 100% rename from docs/html/functions_vars.html rename to docs/functions_vars.html diff --git a/docs/html/functions_w.html b/docs/functions_w.html similarity index 100% rename from docs/html/functions_w.html rename to docs/functions_w.html diff --git a/docs/html/functions_~.html b/docs/functions_~.html similarity index 100% rename from docs/html/functions_~.html rename to docs/functions_~.html diff --git a/docs/html/globals.html b/docs/globals.html similarity index 100% rename from docs/html/globals.html rename to docs/globals.html diff --git a/docs/html/globals_defs.html b/docs/globals_defs.html similarity index 100% rename from docs/html/globals_defs.html rename to docs/globals_defs.html diff --git a/docs/html/hierarchy.html b/docs/hierarchy.html similarity index 100% rename from docs/html/hierarchy.html rename to docs/hierarchy.html diff --git a/docs/html/index.html b/docs/index.html similarity index 100% rename from docs/html/index.html rename to docs/index.html diff --git a/docs/html/jquery.js b/docs/jquery.js similarity index 100% rename from docs/html/jquery.js rename to docs/jquery.js diff --git a/docs/html/md__c_o_d_e__o_f__c_o_n_d_u_c_t.html b/docs/md__c_o_d_e__o_f__c_o_n_d_u_c_t.html similarity index 100% rename from docs/html/md__c_o_d_e__o_f__c_o_n_d_u_c_t.html rename to docs/md__c_o_d_e__o_f__c_o_n_d_u_c_t.html diff --git a/docs/html/md__c_o_n_t_r_i_b_u_t_i_n_g.html b/docs/md__c_o_n_t_r_i_b_u_t_i_n_g.html similarity index 100% rename from docs/html/md__c_o_n_t_r_i_b_u_t_i_n_g.html rename to docs/md__c_o_n_t_r_i_b_u_t_i_n_g.html diff --git a/docs/html/md__changelog.html b/docs/md__changelog.html similarity index 100% rename from docs/html/md__changelog.html rename to docs/md__changelog.html diff --git a/docs/html/md__dev_guide.html b/docs/md__dev_guide.html similarity index 100% rename from docs/html/md__dev_guide.html rename to docs/md__dev_guide.html diff --git a/docs/html/md__greengrass_discovery.html b/docs/md__greengrass_discovery.html similarity index 100% rename from docs/html/md__greengrass_discovery.html rename to docs/md__greengrass_discovery.html diff --git a/docs/html/md__known_issues.html b/docs/md__known_issues.html similarity index 100% rename from docs/html/md__known_issues.html rename to docs/md__known_issues.html diff --git a/docs/html/md__platform.html b/docs/md__platform.html similarity index 100% rename from docs/html/md__platform.html rename to docs/md__platform.html diff --git a/docs/html/menu.js b/docs/menu.js similarity index 100% rename from docs/html/menu.js rename to docs/menu.js diff --git a/docs/html/menudata.js b/docs/menudata.js similarity index 100% rename from docs/html/menudata.js rename to docs/menudata.js diff --git a/docs/html/namespaceawsiotsdk_1_1_response_helper.html b/docs/namespaceawsiotsdk_1_1_response_helper.html similarity index 100% rename from docs/html/namespaceawsiotsdk_1_1_response_helper.html rename to docs/namespaceawsiotsdk_1_1_response_helper.html diff --git a/docs/html/namespacemembers.html b/docs/namespacemembers.html similarity index 100% rename from docs/html/namespacemembers.html rename to docs/namespacemembers.html diff --git a/docs/html/namespacemembers_func.html b/docs/namespacemembers_func.html similarity index 100% rename from docs/html/namespacemembers_func.html rename to docs/namespacemembers_func.html diff --git a/docs/html/namespaces.html b/docs/namespaces.html similarity index 100% rename from docs/html/namespaces.html rename to docs/namespaces.html diff --git a/docs/html/nav_f.png b/docs/nav_f.png similarity index 100% rename from docs/html/nav_f.png rename to docs/nav_f.png diff --git a/docs/html/nav_fd.png b/docs/nav_fd.png similarity index 100% rename from docs/html/nav_fd.png rename to docs/nav_fd.png diff --git a/docs/html/nav_g.png b/docs/nav_g.png similarity index 100% rename from docs/html/nav_g.png rename to docs/nav_g.png diff --git a/docs/html/nav_h.png b/docs/nav_h.png similarity index 100% rename from docs/html/nav_h.png rename to docs/nav_h.png diff --git a/docs/html/nav_hd.png b/docs/nav_hd.png similarity index 100% rename from docs/html/nav_hd.png rename to docs/nav_hd.png diff --git a/docs/html/open.png b/docs/open.png similarity index 100% rename from docs/html/open.png rename to docs/open.png diff --git a/docs/html/pages.html b/docs/pages.html similarity index 100% rename from docs/html/pages.html rename to docs/pages.html diff --git a/docs/html/search/all_0.js b/docs/search/all_0.js similarity index 100% rename from docs/html/search/all_0.js rename to docs/search/all_0.js diff --git a/docs/html/search/all_1.js b/docs/search/all_1.js similarity index 100% rename from docs/html/search/all_1.js rename to docs/search/all_1.js diff --git a/docs/html/search/all_10.js b/docs/search/all_10.js similarity index 100% rename from docs/html/search/all_10.js rename to docs/search/all_10.js diff --git a/docs/html/search/all_11.js b/docs/search/all_11.js similarity index 100% rename from docs/html/search/all_11.js rename to docs/search/all_11.js diff --git a/docs/html/search/all_12.js b/docs/search/all_12.js similarity index 100% rename from docs/html/search/all_12.js rename to docs/search/all_12.js diff --git a/docs/html/search/all_13.js b/docs/search/all_13.js similarity index 100% rename from docs/html/search/all_13.js rename to docs/search/all_13.js diff --git a/docs/html/search/all_14.js b/docs/search/all_14.js similarity index 100% rename from docs/html/search/all_14.js rename to docs/search/all_14.js diff --git a/docs/html/search/all_15.js b/docs/search/all_15.js similarity index 100% rename from docs/html/search/all_15.js rename to docs/search/all_15.js diff --git a/docs/html/search/all_16.js b/docs/search/all_16.js similarity index 100% rename from docs/html/search/all_16.js rename to docs/search/all_16.js diff --git a/docs/html/search/all_2.js b/docs/search/all_2.js similarity index 100% rename from docs/html/search/all_2.js rename to docs/search/all_2.js diff --git a/docs/html/search/all_3.js b/docs/search/all_3.js similarity index 100% rename from docs/html/search/all_3.js rename to docs/search/all_3.js diff --git a/docs/html/search/all_4.js b/docs/search/all_4.js similarity index 100% rename from docs/html/search/all_4.js rename to docs/search/all_4.js diff --git a/docs/html/search/all_5.js b/docs/search/all_5.js similarity index 100% rename from docs/html/search/all_5.js rename to docs/search/all_5.js diff --git a/docs/html/search/all_6.js b/docs/search/all_6.js similarity index 100% rename from docs/html/search/all_6.js rename to docs/search/all_6.js diff --git a/docs/html/search/all_7.js b/docs/search/all_7.js similarity index 100% rename from docs/html/search/all_7.js rename to docs/search/all_7.js diff --git a/docs/html/search/all_8.js b/docs/search/all_8.js similarity index 100% rename from docs/html/search/all_8.js rename to docs/search/all_8.js diff --git a/docs/html/search/all_9.js b/docs/search/all_9.js similarity index 100% rename from docs/html/search/all_9.js rename to docs/search/all_9.js diff --git a/docs/html/search/all_a.js b/docs/search/all_a.js similarity index 100% rename from docs/html/search/all_a.js rename to docs/search/all_a.js diff --git a/docs/html/search/all_b.js b/docs/search/all_b.js similarity index 100% rename from docs/html/search/all_b.js rename to docs/search/all_b.js diff --git a/docs/html/search/all_c.js b/docs/search/all_c.js similarity index 100% rename from docs/html/search/all_c.js rename to docs/search/all_c.js diff --git a/docs/html/search/all_d.js b/docs/search/all_d.js similarity index 100% rename from docs/html/search/all_d.js rename to docs/search/all_d.js diff --git a/docs/html/search/all_e.js b/docs/search/all_e.js similarity index 100% rename from docs/html/search/all_e.js rename to docs/search/all_e.js diff --git a/docs/html/search/all_f.js b/docs/search/all_f.js similarity index 100% rename from docs/html/search/all_f.js rename to docs/search/all_f.js diff --git a/docs/html/search/classes_0.js b/docs/search/classes_0.js similarity index 100% rename from docs/html/search/classes_0.js rename to docs/search/classes_0.js diff --git a/docs/html/search/classes_1.js b/docs/search/classes_1.js similarity index 100% rename from docs/html/search/classes_1.js rename to docs/search/classes_1.js diff --git a/docs/html/search/classes_2.js b/docs/search/classes_2.js similarity index 100% rename from docs/html/search/classes_2.js rename to docs/search/classes_2.js diff --git a/docs/html/search/classes_3.js b/docs/search/classes_3.js similarity index 100% rename from docs/html/search/classes_3.js rename to docs/search/classes_3.js diff --git a/docs/html/search/classes_4.js b/docs/search/classes_4.js similarity index 100% rename from docs/html/search/classes_4.js rename to docs/search/classes_4.js diff --git a/docs/html/search/classes_5.js b/docs/search/classes_5.js similarity index 100% rename from docs/html/search/classes_5.js rename to docs/search/classes_5.js diff --git a/docs/html/search/classes_6.js b/docs/search/classes_6.js similarity index 100% rename from docs/html/search/classes_6.js rename to docs/search/classes_6.js diff --git a/docs/html/search/classes_7.js b/docs/search/classes_7.js similarity index 100% rename from docs/html/search/classes_7.js rename to docs/search/classes_7.js diff --git a/docs/html/search/classes_8.js b/docs/search/classes_8.js similarity index 100% rename from docs/html/search/classes_8.js rename to docs/search/classes_8.js diff --git a/docs/html/search/classes_9.js b/docs/search/classes_9.js similarity index 100% rename from docs/html/search/classes_9.js rename to docs/search/classes_9.js diff --git a/docs/html/search/classes_a.js b/docs/search/classes_a.js similarity index 100% rename from docs/html/search/classes_a.js rename to docs/search/classes_a.js diff --git a/docs/html/search/classes_b.js b/docs/search/classes_b.js similarity index 100% rename from docs/html/search/classes_b.js rename to docs/search/classes_b.js diff --git a/docs/html/search/classes_c.js b/docs/search/classes_c.js similarity index 100% rename from docs/html/search/classes_c.js rename to docs/search/classes_c.js diff --git a/docs/html/search/classes_d.js b/docs/search/classes_d.js similarity index 100% rename from docs/html/search/classes_d.js rename to docs/search/classes_d.js diff --git a/docs/html/search/classes_e.js b/docs/search/classes_e.js similarity index 100% rename from docs/html/search/classes_e.js rename to docs/search/classes_e.js diff --git a/docs/html/search/classes_f.js b/docs/search/classes_f.js similarity index 100% rename from docs/html/search/classes_f.js rename to docs/search/classes_f.js diff --git a/docs/html/search/close.svg b/docs/search/close.svg similarity index 100% rename from docs/html/search/close.svg rename to docs/search/close.svg diff --git a/docs/html/search/defines_0.js b/docs/search/defines_0.js similarity index 100% rename from docs/html/search/defines_0.js rename to docs/search/defines_0.js diff --git a/docs/html/search/enums_0.js b/docs/search/enums_0.js similarity index 100% rename from docs/html/search/enums_0.js rename to docs/search/enums_0.js diff --git a/docs/html/search/enums_1.js b/docs/search/enums_1.js similarity index 100% rename from docs/html/search/enums_1.js rename to docs/search/enums_1.js diff --git a/docs/html/search/enums_2.js b/docs/search/enums_2.js similarity index 100% rename from docs/html/search/enums_2.js rename to docs/search/enums_2.js diff --git a/docs/html/search/enums_3.js b/docs/search/enums_3.js similarity index 100% rename from docs/html/search/enums_3.js rename to docs/search/enums_3.js diff --git a/docs/html/search/enums_4.js b/docs/search/enums_4.js similarity index 100% rename from docs/html/search/enums_4.js rename to docs/search/enums_4.js diff --git a/docs/html/search/enums_5.js b/docs/search/enums_5.js similarity index 100% rename from docs/html/search/enums_5.js rename to docs/search/enums_5.js diff --git a/docs/html/search/enums_6.js b/docs/search/enums_6.js similarity index 100% rename from docs/html/search/enums_6.js rename to docs/search/enums_6.js diff --git a/docs/html/search/enums_7.js b/docs/search/enums_7.js similarity index 100% rename from docs/html/search/enums_7.js rename to docs/search/enums_7.js diff --git a/docs/html/search/enumvalues_0.js b/docs/search/enumvalues_0.js similarity index 100% rename from docs/html/search/enumvalues_0.js rename to docs/search/enumvalues_0.js diff --git a/docs/html/search/enumvalues_1.js b/docs/search/enumvalues_1.js similarity index 100% rename from docs/html/search/enumvalues_1.js rename to docs/search/enumvalues_1.js diff --git a/docs/html/search/enumvalues_2.js b/docs/search/enumvalues_2.js similarity index 100% rename from docs/html/search/enumvalues_2.js rename to docs/search/enumvalues_2.js diff --git a/docs/html/search/enumvalues_3.js b/docs/search/enumvalues_3.js similarity index 100% rename from docs/html/search/enumvalues_3.js rename to docs/search/enumvalues_3.js diff --git a/docs/html/search/enumvalues_4.js b/docs/search/enumvalues_4.js similarity index 100% rename from docs/html/search/enumvalues_4.js rename to docs/search/enumvalues_4.js diff --git a/docs/html/search/enumvalues_5.js b/docs/search/enumvalues_5.js similarity index 100% rename from docs/html/search/enumvalues_5.js rename to docs/search/enumvalues_5.js diff --git a/docs/html/search/enumvalues_6.js b/docs/search/enumvalues_6.js similarity index 100% rename from docs/html/search/enumvalues_6.js rename to docs/search/enumvalues_6.js diff --git a/docs/html/search/enumvalues_7.js b/docs/search/enumvalues_7.js similarity index 100% rename from docs/html/search/enumvalues_7.js rename to docs/search/enumvalues_7.js diff --git a/docs/html/search/enumvalues_8.js b/docs/search/enumvalues_8.js similarity index 100% rename from docs/html/search/enumvalues_8.js rename to docs/search/enumvalues_8.js diff --git a/docs/html/search/enumvalues_9.js b/docs/search/enumvalues_9.js similarity index 100% rename from docs/html/search/enumvalues_9.js rename to docs/search/enumvalues_9.js diff --git a/docs/html/search/enumvalues_a.js b/docs/search/enumvalues_a.js similarity index 100% rename from docs/html/search/enumvalues_a.js rename to docs/search/enumvalues_a.js diff --git a/docs/html/search/enumvalues_b.js b/docs/search/enumvalues_b.js similarity index 100% rename from docs/html/search/enumvalues_b.js rename to docs/search/enumvalues_b.js diff --git a/docs/html/search/enumvalues_c.js b/docs/search/enumvalues_c.js similarity index 100% rename from docs/html/search/enumvalues_c.js rename to docs/search/enumvalues_c.js diff --git a/docs/html/search/enumvalues_d.js b/docs/search/enumvalues_d.js similarity index 100% rename from docs/html/search/enumvalues_d.js rename to docs/search/enumvalues_d.js diff --git a/docs/html/search/enumvalues_e.js b/docs/search/enumvalues_e.js similarity index 100% rename from docs/html/search/enumvalues_e.js rename to docs/search/enumvalues_e.js diff --git a/docs/html/search/files_0.js b/docs/search/files_0.js similarity index 100% rename from docs/html/search/files_0.js rename to docs/search/files_0.js diff --git a/docs/html/search/files_1.js b/docs/search/files_1.js similarity index 100% rename from docs/html/search/files_1.js rename to docs/search/files_1.js diff --git a/docs/html/search/files_2.js b/docs/search/files_2.js similarity index 100% rename from docs/html/search/files_2.js rename to docs/search/files_2.js diff --git a/docs/html/search/files_3.js b/docs/search/files_3.js similarity index 100% rename from docs/html/search/files_3.js rename to docs/search/files_3.js diff --git a/docs/html/search/files_4.js b/docs/search/files_4.js similarity index 100% rename from docs/html/search/files_4.js rename to docs/search/files_4.js diff --git a/docs/html/search/files_5.js b/docs/search/files_5.js similarity index 100% rename from docs/html/search/files_5.js rename to docs/search/files_5.js diff --git a/docs/html/search/files_6.js b/docs/search/files_6.js similarity index 100% rename from docs/html/search/files_6.js rename to docs/search/files_6.js diff --git a/docs/html/search/files_7.js b/docs/search/files_7.js similarity index 100% rename from docs/html/search/files_7.js rename to docs/search/files_7.js diff --git a/docs/html/search/files_8.js b/docs/search/files_8.js similarity index 100% rename from docs/html/search/files_8.js rename to docs/search/files_8.js diff --git a/docs/html/search/files_9.js b/docs/search/files_9.js similarity index 100% rename from docs/html/search/files_9.js rename to docs/search/files_9.js diff --git a/docs/html/search/files_a.js b/docs/search/files_a.js similarity index 100% rename from docs/html/search/files_a.js rename to docs/search/files_a.js diff --git a/docs/html/search/files_b.js b/docs/search/files_b.js similarity index 100% rename from docs/html/search/files_b.js rename to docs/search/files_b.js diff --git a/docs/html/search/files_c.js b/docs/search/files_c.js similarity index 100% rename from docs/html/search/files_c.js rename to docs/search/files_c.js diff --git a/docs/html/search/files_d.js b/docs/search/files_d.js similarity index 100% rename from docs/html/search/files_d.js rename to docs/search/files_d.js diff --git a/docs/html/search/files_e.js b/docs/search/files_e.js similarity index 100% rename from docs/html/search/files_e.js rename to docs/search/files_e.js diff --git a/docs/html/search/files_f.js b/docs/search/files_f.js similarity index 100% rename from docs/html/search/files_f.js rename to docs/search/files_f.js diff --git a/docs/html/search/functions_0.js b/docs/search/functions_0.js similarity index 100% rename from docs/html/search/functions_0.js rename to docs/search/functions_0.js diff --git a/docs/html/search/functions_1.js b/docs/search/functions_1.js similarity index 100% rename from docs/html/search/functions_1.js rename to docs/search/functions_1.js diff --git a/docs/html/search/functions_10.js b/docs/search/functions_10.js similarity index 100% rename from docs/html/search/functions_10.js rename to docs/search/functions_10.js diff --git a/docs/html/search/functions_11.js b/docs/search/functions_11.js similarity index 100% rename from docs/html/search/functions_11.js rename to docs/search/functions_11.js diff --git a/docs/html/search/functions_12.js b/docs/search/functions_12.js similarity index 100% rename from docs/html/search/functions_12.js rename to docs/search/functions_12.js diff --git a/docs/html/search/functions_13.js b/docs/search/functions_13.js similarity index 100% rename from docs/html/search/functions_13.js rename to docs/search/functions_13.js diff --git a/docs/html/search/functions_14.js b/docs/search/functions_14.js similarity index 100% rename from docs/html/search/functions_14.js rename to docs/search/functions_14.js diff --git a/docs/html/search/functions_2.js b/docs/search/functions_2.js similarity index 100% rename from docs/html/search/functions_2.js rename to docs/search/functions_2.js diff --git a/docs/html/search/functions_3.js b/docs/search/functions_3.js similarity index 100% rename from docs/html/search/functions_3.js rename to docs/search/functions_3.js diff --git a/docs/html/search/functions_4.js b/docs/search/functions_4.js similarity index 100% rename from docs/html/search/functions_4.js rename to docs/search/functions_4.js diff --git a/docs/html/search/functions_5.js b/docs/search/functions_5.js similarity index 100% rename from docs/html/search/functions_5.js rename to docs/search/functions_5.js diff --git a/docs/html/search/functions_6.js b/docs/search/functions_6.js similarity index 100% rename from docs/html/search/functions_6.js rename to docs/search/functions_6.js diff --git a/docs/html/search/functions_7.js b/docs/search/functions_7.js similarity index 100% rename from docs/html/search/functions_7.js rename to docs/search/functions_7.js diff --git a/docs/html/search/functions_8.js b/docs/search/functions_8.js similarity index 100% rename from docs/html/search/functions_8.js rename to docs/search/functions_8.js diff --git a/docs/html/search/functions_9.js b/docs/search/functions_9.js similarity index 100% rename from docs/html/search/functions_9.js rename to docs/search/functions_9.js diff --git a/docs/html/search/functions_a.js b/docs/search/functions_a.js similarity index 100% rename from docs/html/search/functions_a.js rename to docs/search/functions_a.js diff --git a/docs/html/search/functions_b.js b/docs/search/functions_b.js similarity index 100% rename from docs/html/search/functions_b.js rename to docs/search/functions_b.js diff --git a/docs/html/search/functions_c.js b/docs/search/functions_c.js similarity index 100% rename from docs/html/search/functions_c.js rename to docs/search/functions_c.js diff --git a/docs/html/search/functions_d.js b/docs/search/functions_d.js similarity index 100% rename from docs/html/search/functions_d.js rename to docs/search/functions_d.js diff --git a/docs/html/search/functions_e.js b/docs/search/functions_e.js similarity index 100% rename from docs/html/search/functions_e.js rename to docs/search/functions_e.js diff --git a/docs/html/search/functions_f.js b/docs/search/functions_f.js similarity index 100% rename from docs/html/search/functions_f.js rename to docs/search/functions_f.js diff --git a/docs/html/search/mag.svg b/docs/search/mag.svg similarity index 100% rename from docs/html/search/mag.svg rename to docs/search/mag.svg diff --git a/docs/html/search/mag_d.svg b/docs/search/mag_d.svg similarity index 100% rename from docs/html/search/mag_d.svg rename to docs/search/mag_d.svg diff --git a/docs/html/search/mag_sel.svg b/docs/search/mag_sel.svg similarity index 100% rename from docs/html/search/mag_sel.svg rename to docs/search/mag_sel.svg diff --git a/docs/html/search/mag_seld.svg b/docs/search/mag_seld.svg similarity index 100% rename from docs/html/search/mag_seld.svg rename to docs/search/mag_seld.svg diff --git a/docs/html/search/namespaces_0.js b/docs/search/namespaces_0.js similarity index 100% rename from docs/html/search/namespaces_0.js rename to docs/search/namespaces_0.js diff --git a/docs/html/search/pages_0.js b/docs/search/pages_0.js similarity index 100% rename from docs/html/search/pages_0.js rename to docs/search/pages_0.js diff --git a/docs/html/search/pages_1.js b/docs/search/pages_1.js similarity index 100% rename from docs/html/search/pages_1.js rename to docs/search/pages_1.js diff --git a/docs/html/search/pages_2.js b/docs/search/pages_2.js similarity index 100% rename from docs/html/search/pages_2.js rename to docs/search/pages_2.js diff --git a/docs/html/search/pages_3.js b/docs/search/pages_3.js similarity index 100% rename from docs/html/search/pages_3.js rename to docs/search/pages_3.js diff --git a/docs/html/search/pages_4.js b/docs/search/pages_4.js similarity index 100% rename from docs/html/search/pages_4.js rename to docs/search/pages_4.js diff --git a/docs/html/search/pages_5.js b/docs/search/pages_5.js similarity index 100% rename from docs/html/search/pages_5.js rename to docs/search/pages_5.js diff --git a/docs/html/search/search.css b/docs/search/search.css similarity index 100% rename from docs/html/search/search.css rename to docs/search/search.css diff --git a/docs/html/search/search.js b/docs/search/search.js similarity index 100% rename from docs/html/search/search.js rename to docs/search/search.js diff --git a/docs/html/search/searchdata.js b/docs/search/searchdata.js similarity index 100% rename from docs/html/search/searchdata.js rename to docs/search/searchdata.js diff --git a/docs/html/search/typedefs_0.js b/docs/search/typedefs_0.js similarity index 100% rename from docs/html/search/typedefs_0.js rename to docs/search/typedefs_0.js diff --git a/docs/html/search/typedefs_1.js b/docs/search/typedefs_1.js similarity index 100% rename from docs/html/search/typedefs_1.js rename to docs/search/typedefs_1.js diff --git a/docs/html/search/typedefs_2.js b/docs/search/typedefs_2.js similarity index 100% rename from docs/html/search/typedefs_2.js rename to docs/search/typedefs_2.js diff --git a/docs/html/search/variables_0.js b/docs/search/variables_0.js similarity index 100% rename from docs/html/search/variables_0.js rename to docs/search/variables_0.js diff --git a/docs/html/search/variables_1.js b/docs/search/variables_1.js similarity index 100% rename from docs/html/search/variables_1.js rename to docs/search/variables_1.js diff --git a/docs/html/search/variables_10.js b/docs/search/variables_10.js similarity index 100% rename from docs/html/search/variables_10.js rename to docs/search/variables_10.js diff --git a/docs/html/search/variables_2.js b/docs/search/variables_2.js similarity index 100% rename from docs/html/search/variables_2.js rename to docs/search/variables_2.js diff --git a/docs/html/search/variables_3.js b/docs/search/variables_3.js similarity index 100% rename from docs/html/search/variables_3.js rename to docs/search/variables_3.js diff --git a/docs/html/search/variables_4.js b/docs/search/variables_4.js similarity index 100% rename from docs/html/search/variables_4.js rename to docs/search/variables_4.js diff --git a/docs/html/search/variables_5.js b/docs/search/variables_5.js similarity index 100% rename from docs/html/search/variables_5.js rename to docs/search/variables_5.js diff --git a/docs/html/search/variables_6.js b/docs/search/variables_6.js similarity index 100% rename from docs/html/search/variables_6.js rename to docs/search/variables_6.js diff --git a/docs/html/search/variables_7.js b/docs/search/variables_7.js similarity index 100% rename from docs/html/search/variables_7.js rename to docs/search/variables_7.js diff --git a/docs/html/search/variables_8.js b/docs/search/variables_8.js similarity index 100% rename from docs/html/search/variables_8.js rename to docs/search/variables_8.js diff --git a/docs/html/search/variables_9.js b/docs/search/variables_9.js similarity index 100% rename from docs/html/search/variables_9.js rename to docs/search/variables_9.js diff --git a/docs/html/search/variables_a.js b/docs/search/variables_a.js similarity index 100% rename from docs/html/search/variables_a.js rename to docs/search/variables_a.js diff --git a/docs/html/search/variables_b.js b/docs/search/variables_b.js similarity index 100% rename from docs/html/search/variables_b.js rename to docs/search/variables_b.js diff --git a/docs/html/search/variables_c.js b/docs/search/variables_c.js similarity index 100% rename from docs/html/search/variables_c.js rename to docs/search/variables_c.js diff --git a/docs/html/search/variables_d.js b/docs/search/variables_d.js similarity index 100% rename from docs/html/search/variables_d.js rename to docs/search/variables_d.js diff --git a/docs/html/search/variables_e.js b/docs/search/variables_e.js similarity index 100% rename from docs/html/search/variables_e.js rename to docs/search/variables_e.js diff --git a/docs/html/search/variables_f.js b/docs/search/variables_f.js similarity index 100% rename from docs/html/search/variables_f.js rename to docs/search/variables_f.js diff --git a/docs/html/splitbar.png b/docs/splitbar.png similarity index 100% rename from docs/html/splitbar.png rename to docs/splitbar.png diff --git a/docs/html/splitbard.png b/docs/splitbard.png similarity index 100% rename from docs/html/splitbard.png rename to docs/splitbard.png diff --git a/docs/html/sync_off.png b/docs/sync_off.png similarity index 100% rename from docs/html/sync_off.png rename to docs/sync_off.png diff --git a/docs/html/sync_on.png b/docs/sync_on.png similarity index 100% rename from docs/html/sync_on.png rename to docs/sync_on.png diff --git a/docs/html/tab_a.png b/docs/tab_a.png similarity index 100% rename from docs/html/tab_a.png rename to docs/tab_a.png diff --git a/docs/html/tab_ad.png b/docs/tab_ad.png similarity index 100% rename from docs/html/tab_ad.png rename to docs/tab_ad.png diff --git a/docs/html/tab_b.png b/docs/tab_b.png similarity index 100% rename from docs/html/tab_b.png rename to docs/tab_b.png diff --git a/docs/html/tab_bd.png b/docs/tab_bd.png similarity index 100% rename from docs/html/tab_bd.png rename to docs/tab_bd.png diff --git a/docs/html/tab_h.png b/docs/tab_h.png similarity index 100% rename from docs/html/tab_h.png rename to docs/tab_h.png diff --git a/docs/html/tab_hd.png b/docs/tab_hd.png similarity index 100% rename from docs/html/tab_hd.png rename to docs/tab_hd.png diff --git a/docs/html/tab_s.png b/docs/tab_s.png similarity index 100% rename from docs/html/tab_s.png rename to docs/tab_s.png diff --git a/docs/html/tab_sd.png b/docs/tab_sd.png similarity index 100% rename from docs/html/tab_sd.png rename to docs/tab_sd.png diff --git a/docs/html/tabs.css b/docs/tabs.css similarity index 100% rename from docs/html/tabs.css rename to docs/tabs.css