You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by xy...@apache.org on 2023/05/16 12:40:15 UTC
[pulsar-site] branch main updated: Generate C++ client 3.2.0 doc (#577)
This is an automated email from the ASF dual-hosted git repository.
xyz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
The following commit(s) were added to refs/heads/main by this push:
new ed5d19862c7 Generate C++ client 3.2.0 doc (#577)
ed5d19862c7 is described below
commit ed5d19862c7ea7d45813b78b4bba74cb287ad241
Author: Yunze Xu <xy...@163.com>
AuthorDate: Tue May 16 20:40:08 2023 +0800
Generate C++ client 3.2.0 doc (#577)
---
.../api/cpp/3.2.x/_authentication_8h_source.html | 364 ++++
.../cpp/3.2.x/_batch_receive_policy_8h_source.html | 112 ++
.../3.2.x/_broker_consumer_stats_8h_source.html | 147 ++
.../cpp/3.2.x/_client_configuration_8h_source.html | 230 +++
.../api/cpp/3.2.x/_compression_type_8h_source.html | 97 ++
.../3.2.x/_console_logger_factory_8h_source.html | 106 ++
.../3.2.x/_consumer_configuration_8h_source.html | 311 ++++
.../_consumer_crypto_failure_action_8h_source.html | 100 ++
.../3.2.x/_consumer_event_listener_8h_source.html | 102 ++
.../cpp/3.2.x/_consumer_interceptor_8h_source.html | 120 ++
static/api/cpp/3.2.x/_consumer_type_8h_source.html | 104 ++
.../cpp/3.2.x/_crypto_key_reader_8h_source.html | 131 ++
.../cpp/3.2.x/_dead_letter_policy_8h_source.html | 117 ++
.../_dead_letter_policy_builder_8h_source.html | 114 ++
.../cpp/3.2.x/_deprecated_exception_8h_source.html | 102 ++
.../cpp/3.2.x/_encryption_key_info_8h_source.html | 131 ++
.../cpp/3.2.x/_file_logger_factory_8h_source.html | 106 ++
.../api/cpp/3.2.x/_initial_position_8h_source.html | 94 +
.../cpp/3.2.x/_key_shared_policy_8h_source.html | 137 ++
static/api/cpp/3.2.x/_key_value_8h_source.html | 120 ++
static/api/cpp/3.2.x/_logger_8h_source.html | 118 ++
static/api/cpp/3.2.x/_message_batch_8h_source.html | 115 ++
.../api/cpp/3.2.x/_message_builder_8h_source.html | 153 ++
static/api/cpp/3.2.x/_message_id_8h_source.html | 163 ++
.../cpp/3.2.x/_message_id_builder_8h_source.html | 121 ++
.../3.2.x/_message_routing_policy_8h_source.html | 123 ++
.../3.2.x/_producer_configuration_8h_source.html | 263 +++
.../_producer_crypto_failure_action_8h_source.html | 96 +
.../cpp/3.2.x/_producer_interceptor_8h_source.html | 118 ++
.../3.2.x/_protobuf_native_schema_8h_source.html | 93 +
.../cpp/3.2.x/_reader_configuration_8h_source.html | 192 ++
.../3.2.x/_regex_subscription_mode_8h_source.html | 101 ++
static/api/cpp/3.2.x/_schema_8h_source.html | 198 +++
static/api/cpp/3.2.x/_table_view_8h_source.html | 134 ++
.../3.2.x/_table_view_configuration_8h_source.html | 102 ++
.../api/cpp/3.2.x/_topic_metadata_8h_source.html | 98 ++
static/api/cpp/3.2.x/_typed_message_8h_source.html | 117 ++
.../3.2.x/_typed_message_builder_8h_source.html | 147 ++
static/api/cpp/3.2.x/annotated.html | 133 ++
static/api/cpp/3.2.x/bc_s.png | Bin 0 -> 676 bytes
static/api/cpp/3.2.x/bdwn.png | Bin 0 -> 147 bytes
.../cpp/3.2.x/c_2_authentication_8h_source.html | 115 ++
static/api/cpp/3.2.x/c_2client_8h_source.html | 185 ++
static/api/cpp/3.2.x/c_2consumer_8h_source.html | 198 +++
static/api/cpp/3.2.x/c_2message_8h_source.html | 160 ++
static/api/cpp/3.2.x/c_2producer_8h_source.html | 127 ++
static/api/cpp/3.2.x/c_2reader_8h_source.html | 126 ++
static/api/cpp/3.2.x/c_2result_8h_source.html | 156 ++
static/api/cpp/3.2.x/classes.html | 179 ++
.../3.2.x/classpulsar_1_1_auth_athenz-members.html | 93 +
.../api/cpp/3.2.x/classpulsar_1_1_auth_athenz.html | 256 +++
.../api/cpp/3.2.x/classpulsar_1_1_auth_athenz.png | Bin 0 -> 584 bytes
.../3.2.x/classpulsar_1_1_auth_basic-members.html | 95 +
.../api/cpp/3.2.x/classpulsar_1_1_auth_basic.html | 338 ++++
.../api/cpp/3.2.x/classpulsar_1_1_auth_basic.png | Bin 0 -> 573 bytes
.../classpulsar_1_1_auth_factory-members.html | 90 +
.../cpp/3.2.x/classpulsar_1_1_auth_factory.html | 240 +++
.../3.2.x/classpulsar_1_1_auth_oauth2-members.html | 93 +
.../api/cpp/3.2.x/classpulsar_1_1_auth_oauth2.html | 261 +++
.../api/cpp/3.2.x/classpulsar_1_1_auth_oauth2.png | Bin 0 -> 581 bytes
.../3.2.x/classpulsar_1_1_auth_tls-members.html | 94 +
static/api/cpp/3.2.x/classpulsar_1_1_auth_tls.html | 295 ++++
static/api/cpp/3.2.x/classpulsar_1_1_auth_tls.png | Bin 0 -> 556 bytes
.../3.2.x/classpulsar_1_1_auth_token-members.html | 95 +
.../api/cpp/3.2.x/classpulsar_1_1_auth_token.html | 328 ++++
.../api/cpp/3.2.x/classpulsar_1_1_auth_token.png | Bin 0 -> 574 bytes
.../classpulsar_1_1_authentication-members.html | 90 +
.../cpp/3.2.x/classpulsar_1_1_authentication.html | 228 +++
.../cpp/3.2.x/classpulsar_1_1_authentication.png | Bin 0 -> 1455 bytes
...r_1_1_authentication_data_provider-members.html | 93 +
...asspulsar_1_1_authentication_data_provider.html | 315 ++++
...asspulsar_1_1_batch_receive_policy-members.html | 88 +
.../classpulsar_1_1_batch_receive_policy.html | 231 +++
...sspulsar_1_1_broker_consumer_stats-members.html | 102 ++
.../classpulsar_1_1_broker_consumer_stats.html | 489 ++++++
.../classpulsar_1_1_cached_token-members.html | 87 +
.../cpp/3.2.x/classpulsar_1_1_cached_token.html | 148 ++
.../cpp/3.2.x/classpulsar_1_1_client-members.html | 115 ++
static/api/cpp/3.2.x/classpulsar_1_1_client.html | 1369 +++++++++++++++
...asspulsar_1_1_client_configuration-members.html | 130 ++
.../classpulsar_1_1_client_configuration.html | 1075 ++++++++++++
...spulsar_1_1_console_logger_factory-members.html | 87 +
.../classpulsar_1_1_console_logger_factory.html | 155 ++
.../classpulsar_1_1_console_logger_factory.png | Bin 0 -> 736 bytes
.../3.2.x/classpulsar_1_1_consumer-members.html | 129 ++
static/api/cpp/3.2.x/classpulsar_1_1_consumer.html | 1184 +++++++++++++
...spulsar_1_1_consumer_configuration-members.html | 163 ++
.../classpulsar_1_1_consumer_configuration.html | 1834 ++++++++++++++++++++
...pulsar_1_1_consumer_event_listener-members.html | 86 +
.../classpulsar_1_1_consumer_event_listener.html | 187 ++
...asspulsar_1_1_consumer_interceptor-members.html | 89 +
.../classpulsar_1_1_consumer_interceptor.html | 330 ++++
.../classpulsar_1_1_crypto_key_reader-members.html | 87 +
.../3.2.x/classpulsar_1_1_crypto_key_reader.html | 216 +++
.../3.2.x/classpulsar_1_1_crypto_key_reader.png | Bin 0 -> 824 bytes
...classpulsar_1_1_dead_letter_policy-members.html | 88 +
.../3.2.x/classpulsar_1_1_dead_letter_policy.html | 166 ++
...sar_1_1_dead_letter_policy_builder-members.html | 88 +
...classpulsar_1_1_dead_letter_policy_builder.html | 211 +++
...lsar_1_1_default_crypto_key_reader-members.html | 90 +
.../classpulsar_1_1_default_crypto_key_reader.html | 261 +++
.../classpulsar_1_1_default_crypto_key_reader.png | Bin 0 -> 818 bytes
...asspulsar_1_1_deprecated_exception-members.html | 84 +
.../classpulsar_1_1_deprecated_exception.html | 99 ++
.../3.2.x/classpulsar_1_1_deprecated_exception.png | Bin 0 -> 645 bytes
...lasspulsar_1_1_encryption_key_info-members.html | 91 +
.../3.2.x/classpulsar_1_1_encryption_key_info.html | 232 +++
...lasspulsar_1_1_file_logger_factory-members.html | 87 +
.../3.2.x/classpulsar_1_1_file_logger_factory.html | 192 ++
.../3.2.x/classpulsar_1_1_file_logger_factory.png | Bin 0 -> 700 bytes
.../classpulsar_1_1_key_shared_policy-members.html | 95 +
.../3.2.x/classpulsar_1_1_key_shared_policy.html | 286 +++
.../3.2.x/classpulsar_1_1_key_value-members.html | 90 +
.../api/cpp/3.2.x/classpulsar_1_1_key_value.html | 229 +++
.../cpp/3.2.x/classpulsar_1_1_logger-members.html | 91 +
static/api/cpp/3.2.x/classpulsar_1_1_logger.html | 190 ++
.../classpulsar_1_1_logger_factory-members.html | 85 +
.../cpp/3.2.x/classpulsar_1_1_logger_factory.html | 140 ++
.../cpp/3.2.x/classpulsar_1_1_logger_factory.png | Bin 0 -> 1013 bytes
.../cpp/3.2.x/classpulsar_1_1_message-members.html | 125 ++
static/api/cpp/3.2.x/classpulsar_1_1_message.html | 614 +++++++
static/api/cpp/3.2.x/classpulsar_1_1_message.png | Bin 0 -> 683 bytes
.../classpulsar_1_1_message_batch-members.html | 88 +
.../cpp/3.2.x/classpulsar_1_1_message_batch.html | 102 ++
.../classpulsar_1_1_message_builder-members.html | 105 ++
.../cpp/3.2.x/classpulsar_1_1_message_builder.html | 584 +++++++
.../cpp/3.2.x/classpulsar_1_1_message_builder.png | Bin 0 -> 1154 bytes
.../3.2.x/classpulsar_1_1_message_id-members.html | 118 ++
.../api/cpp/3.2.x/classpulsar_1_1_message_id.html | 391 +++++
...classpulsar_1_1_message_id_builder-members.html | 92 +
.../3.2.x/classpulsar_1_1_message_id_builder.html | 303 ++++
...spulsar_1_1_message_routing_policy-members.html | 86 +
.../classpulsar_1_1_message_routing_policy.html | 167 ++
.../3.2.x/classpulsar_1_1_oauth2_flow-members.html | 88 +
.../api/cpp/3.2.x/classpulsar_1_1_oauth2_flow.html | 175 ++
...lasspulsar_1_1_oauth2_token_result-members.html | 94 +
.../3.2.x/classpulsar_1_1_oauth2_token_result.html | 286 +++
.../3.2.x/classpulsar_1_1_producer-members.html | 100 ++
static/api/cpp/3.2.x/classpulsar_1_1_producer.html | 432 +++++
...spulsar_1_1_producer_configuration-members.html | 158 ++
.../classpulsar_1_1_producer_configuration.html | 1412 +++++++++++++++
...asspulsar_1_1_producer_interceptor-members.html | 88 +
.../classpulsar_1_1_producer_interceptor.html | 283 +++
.../cpp/3.2.x/classpulsar_1_1_reader-members.html | 104 ++
static/api/cpp/3.2.x/classpulsar_1_1_reader.html | 538 ++++++
...asspulsar_1_1_reader_configuration-members.html | 120 ++
.../classpulsar_1_1_reader_configuration.html | 885 ++++++++++
.../3.2.x/classpulsar_1_1_schema_info-members.html | 90 +
.../api/cpp/3.2.x/classpulsar_1_1_schema_info.html | 297 ++++
.../3.2.x/classpulsar_1_1_table_view-members.html | 95 +
.../api/cpp/3.2.x/classpulsar_1_1_table_view.html | 358 ++++
.../classpulsar_1_1_topic_metadata-members.html | 85 +
.../cpp/3.2.x/classpulsar_1_1_topic_metadata.html | 123 ++
.../classpulsar_1_1_typed_message-members.html | 116 ++
.../cpp/3.2.x/classpulsar_1_1_typed_message.html | 185 ++
.../cpp/3.2.x/classpulsar_1_1_typed_message.png | Bin 0 -> 679 bytes
...sspulsar_1_1_typed_message_builder-members.html | 108 ++
.../classpulsar_1_1_typed_message_builder.html | 164 ++
.../classpulsar_1_1_typed_message_builder.png | Bin 0 -> 800 bytes
...age_builder_3_01std_1_1string_01_4-members.html | 108 ++
...ped_message_builder_3_01std_1_1string_01_4.html | 164 ++
...yped_message_builder_3_01std_1_1string_01_4.png | Bin 0 -> 866 bytes
static/api/cpp/3.2.x/client_8h_source.html | 216 +++
.../cpp/3.2.x/client__configuration_8h_source.html | 193 ++
static/api/cpp/3.2.x/closed.png | Bin 0 -> 132 bytes
static/api/cpp/3.2.x/consumer_8h_source.html | 218 +++
.../3.2.x/consumer__configuration_8h_source.html | 327 ++++
static/api/cpp/3.2.x/defines_8h_source.html | 107 ++
static/api/cpp/3.2.x/deprecated.html | 93 +
.../dir_501ae28692a6b25a33adbd2bed71d4b9.html | 80 +
.../dir_84093bac216bb6272e4432021f1ca7f4.html | 84 +
.../dir_d44c64559bbebec7f509842c48db8b23.html | 84 +
static/api/cpp/3.2.x/doc.png | Bin 0 -> 746 bytes
static/api/cpp/3.2.x/doxygen.css | 1771 +++++++++++++++++++
static/api/cpp/3.2.x/doxygen.png | Bin 0 -> 3779 bytes
static/api/cpp/3.2.x/dynsections.js | 120 ++
static/api/cpp/3.2.x/files.html | 145 ++
static/api/cpp/3.2.x/folderclosed.png | Bin 0 -> 616 bytes
static/api/cpp/3.2.x/folderopen.png | Bin 0 -> 597 bytes
static/api/cpp/3.2.x/functions.html | 94 +
static/api/cpp/3.2.x/functions_b.html | 111 ++
static/api/cpp/3.2.x/functions_c.html | 136 ++
static/api/cpp/3.2.x/functions_d.html | 91 +
static/api/cpp/3.2.x/functions_e.html | 91 +
static/api/cpp/3.2.x/functions_enum.html | 80 +
static/api/cpp/3.2.x/functions_eval.html | 92 +
static/api/cpp/3.2.x/functions_f.html | 94 +
static/api/cpp/3.2.x/functions_func.html | 94 +
static/api/cpp/3.2.x/functions_func_b.html | 108 ++
static/api/cpp/3.2.x/functions_func_c.html | 136 ++
static/api/cpp/3.2.x/functions_func_d.html | 88 +
static/api/cpp/3.2.x/functions_func_e.html | 85 +
static/api/cpp/3.2.x/functions_func_f.html | 94 +
static/api/cpp/3.2.x/functions_func_g.html | 519 ++++++
static/api/cpp/3.2.x/functions_func_h.html | 115 ++
static/api/cpp/3.2.x/functions_func_i.html | 141 ++
static/api/cpp/3.2.x/functions_func_k.html | 79 +
static/api/cpp/3.2.x/functions_func_l.html | 85 +
static/api/cpp/3.2.x/functions_func_m.html | 85 +
static/api/cpp/3.2.x/functions_func_n.html | 79 +
static/api/cpp/3.2.x/functions_func_o.html | 91 +
static/api/cpp/3.2.x/functions_func_p.html | 88 +
static/api/cpp/3.2.x/functions_func_r.html | 100 ++
static/api/cpp/3.2.x/functions_func_s.html | 423 +++++
static/api/cpp/3.2.x/functions_func_t.html | 79 +
static/api/cpp/3.2.x/functions_func_u.html | 82 +
static/api/cpp/3.2.x/functions_g.html | 519 ++++++
static/api/cpp/3.2.x/functions_h.html | 115 ++
static/api/cpp/3.2.x/functions_i.html | 141 ++
static/api/cpp/3.2.x/functions_k.html | 82 +
static/api/cpp/3.2.x/functions_l.html | 85 +
static/api/cpp/3.2.x/functions_m.html | 85 +
static/api/cpp/3.2.x/functions_n.html | 79 +
static/api/cpp/3.2.x/functions_o.html | 91 +
static/api/cpp/3.2.x/functions_p.html | 91 +
static/api/cpp/3.2.x/functions_r.html | 100 ++
static/api/cpp/3.2.x/functions_s.html | 426 +++++
static/api/cpp/3.2.x/functions_t.html | 79 +
static/api/cpp/3.2.x/functions_u.html | 82 +
static/api/cpp/3.2.x/functions_w.html | 79 +
static/api/cpp/3.2.x/hierarchy.html | 133 ++
static/api/cpp/3.2.x/index.html | 220 +++
static/api/cpp/3.2.x/jquery.js | 35 +
static/api/cpp/3.2.x/menu.js | 50 +
static/api/cpp/3.2.x/menudata.js | 108 ++
static/api/cpp/3.2.x/message_8h_source.html | 190 ++
static/api/cpp/3.2.x/message__id_8h_source.html | 108 ++
.../api/cpp/3.2.x/message__router_8h_source.html | 100 ++
static/api/cpp/3.2.x/messages_8h_source.html | 102 ++
static/api/cpp/3.2.x/namespacemembers.html | 370 ++++
static/api/cpp/3.2.x/namespacemembers_enum.html | 92 +
static/api/cpp/3.2.x/namespacemembers_eval.html | 333 ++++
static/api/cpp/3.2.x/namespacemembers_func.html | 77 +
static/api/cpp/3.2.x/namespacemembers_type.html | 86 +
static/api/cpp/3.2.x/namespacepulsar.html | 752 ++++++++
static/api/cpp/3.2.x/namespaces.html | 81 +
static/api/cpp/3.2.x/nav_f.png | Bin 0 -> 153 bytes
static/api/cpp/3.2.x/nav_g.png | Bin 0 -> 95 bytes
static/api/cpp/3.2.x/nav_h.png | Bin 0 -> 98 bytes
static/api/cpp/3.2.x/open.png | Bin 0 -> 123 bytes
static/api/cpp/3.2.x/pages.html | 81 +
static/api/cpp/3.2.x/producer_8h_source.html | 147 ++
.../3.2.x/producer__configuration_8h_source.html | 296 ++++
static/api/cpp/3.2.x/reader_8h_source.html | 150 ++
.../cpp/3.2.x/reader__configuration_8h_source.html | 143 ++
static/api/cpp/3.2.x/result_8h_source.html | 210 +++
static/api/cpp/3.2.x/search/all_0.html | 30 +
static/api/cpp/3.2.x/search/all_0.js | 22 +
static/api/cpp/3.2.x/search/all_1.html | 30 +
static/api/cpp/3.2.x/search/all_1.js | 16 +
static/api/cpp/3.2.x/search/all_10.html | 30 +
static/api/cpp/3.2.x/search/all_10.js | 62 +
static/api/cpp/3.2.x/search/all_11.html | 30 +
static/api/cpp/3.2.x/search/all_11.js | 117 ++
static/api/cpp/3.2.x/search/all_12.html | 30 +
static/api/cpp/3.2.x/search/all_12.js | 9 +
static/api/cpp/3.2.x/search/all_13.html | 30 +
static/api/cpp/3.2.x/search/all_13.js | 5 +
static/api/cpp/3.2.x/search/all_14.html | 30 +
static/api/cpp/3.2.x/search/all_14.js | 4 +
static/api/cpp/3.2.x/search/all_2.html | 30 +
static/api/cpp/3.2.x/search/all_2.js | 30 +
static/api/cpp/3.2.x/search/all_3.html | 30 +
static/api/cpp/3.2.x/search/all_3.js | 13 +
static/api/cpp/3.2.x/search/all_4.html | 30 +
static/api/cpp/3.2.x/search/all_4.js | 8 +
static/api/cpp/3.2.x/search/all_5.html | 30 +
static/api/cpp/3.2.x/search/all_5.js | 10 +
static/api/cpp/3.2.x/search/all_6.html | 30 +
static/api/cpp/3.2.x/search/all_6.js | 136 ++
static/api/cpp/3.2.x/search/all_7.html | 30 +
static/api/cpp/3.2.x/search/all_7.js | 15 +
static/api/cpp/3.2.x/search/all_8.html | 30 +
static/api/cpp/3.2.x/search/all_8.js | 28 +
static/api/cpp/3.2.x/search/all_9.html | 30 +
static/api/cpp/3.2.x/search/all_9.js | 4 +
static/api/cpp/3.2.x/search/all_a.html | 30 +
static/api/cpp/3.2.x/search/all_a.js | 9 +
static/api/cpp/3.2.x/search/all_b.html | 30 +
static/api/cpp/3.2.x/search/all_b.js | 8 +
static/api/cpp/3.2.x/search/all_c.html | 30 +
static/api/cpp/3.2.x/search/all_c.js | 12 +
static/api/cpp/3.2.x/search/all_d.html | 30 +
static/api/cpp/3.2.x/search/all_d.js | 6 +
static/api/cpp/3.2.x/search/all_e.html | 30 +
static/api/cpp/3.2.x/search/all_e.js | 10 +
static/api/cpp/3.2.x/search/all_f.html | 30 +
static/api/cpp/3.2.x/search/all_f.js | 17 +
static/api/cpp/3.2.x/search/classes_0.html | 30 +
static/api/cpp/3.2.x/search/classes_0.js | 11 +
static/api/cpp/3.2.x/search/classes_1.html | 30 +
static/api/cpp/3.2.x/search/classes_1.js | 5 +
static/api/cpp/3.2.x/search/classes_2.html | 30 +
static/api/cpp/3.2.x/search/classes_2.js | 12 +
static/api/cpp/3.2.x/search/classes_3.html | 30 +
static/api/cpp/3.2.x/search/classes_3.js | 7 +
static/api/cpp/3.2.x/search/classes_4.html | 30 +
static/api/cpp/3.2.x/search/classes_4.js | 4 +
static/api/cpp/3.2.x/search/classes_5.html | 30 +
static/api/cpp/3.2.x/search/classes_5.js | 4 +
static/api/cpp/3.2.x/search/classes_6.html | 30 +
static/api/cpp/3.2.x/search/classes_6.js | 5 +
static/api/cpp/3.2.x/search/classes_7.html | 30 +
static/api/cpp/3.2.x/search/classes_7.js | 5 +
static/api/cpp/3.2.x/search/classes_8.html | 30 +
static/api/cpp/3.2.x/search/classes_8.js | 9 +
static/api/cpp/3.2.x/search/classes_9.html | 30 +
static/api/cpp/3.2.x/search/classes_9.js | 5 +
static/api/cpp/3.2.x/search/classes_a.html | 30 +
static/api/cpp/3.2.x/search/classes_a.js | 9 +
static/api/cpp/3.2.x/search/classes_b.html | 30 +
static/api/cpp/3.2.x/search/classes_b.js | 5 +
static/api/cpp/3.2.x/search/classes_c.html | 30 +
static/api/cpp/3.2.x/search/classes_c.js | 4 +
static/api/cpp/3.2.x/search/classes_d.html | 30 +
static/api/cpp/3.2.x/search/classes_d.js | 9 +
static/api/cpp/3.2.x/search/close.png | Bin 0 -> 273 bytes
static/api/cpp/3.2.x/search/enums_0.html | 30 +
static/api/cpp/3.2.x/search/enums_0.js | 4 +
static/api/cpp/3.2.x/search/enums_1.html | 30 +
static/api/cpp/3.2.x/search/enums_1.js | 4 +
static/api/cpp/3.2.x/search/enums_2.html | 30 +
static/api/cpp/3.2.x/search/enums_2.js | 5 +
static/api/cpp/3.2.x/search/enums_3.html | 30 +
static/api/cpp/3.2.x/search/enums_3.js | 4 +
static/api/cpp/3.2.x/search/enums_4.html | 30 +
static/api/cpp/3.2.x/search/enums_4.js | 5 +
static/api/cpp/3.2.x/search/enums_5.html | 30 +
static/api/cpp/3.2.x/search/enums_5.js | 4 +
static/api/cpp/3.2.x/search/enumvalues_0.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_0.js | 8 +
static/api/cpp/3.2.x/search/enumvalues_1.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_1.js | 4 +
static/api/cpp/3.2.x/search/enumvalues_2.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_2.js | 7 +
static/api/cpp/3.2.x/search/enumvalues_3.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_3.js | 5 +
static/api/cpp/3.2.x/search/enumvalues_4.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_4.js | 5 +
static/api/cpp/3.2.x/search/enumvalues_5.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_5.js | 4 +
static/api/cpp/3.2.x/search/enumvalues_6.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_6.js | 8 +
static/api/cpp/3.2.x/search/enumvalues_7.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_7.js | 4 +
static/api/cpp/3.2.x/search/enumvalues_8.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_8.js | 5 +
static/api/cpp/3.2.x/search/enumvalues_9.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_9.js | 5 +
static/api/cpp/3.2.x/search/enumvalues_a.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_a.js | 6 +
static/api/cpp/3.2.x/search/enumvalues_b.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_b.js | 49 +
static/api/cpp/3.2.x/search/enumvalues_c.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_c.js | 7 +
static/api/cpp/3.2.x/search/enumvalues_d.html | 30 +
static/api/cpp/3.2.x/search/enumvalues_d.js | 4 +
static/api/cpp/3.2.x/search/functions_0.html | 30 +
static/api/cpp/3.2.x/search/functions_0.js | 9 +
static/api/cpp/3.2.x/search/functions_1.html | 30 +
static/api/cpp/3.2.x/search/functions_1.js | 13 +
static/api/cpp/3.2.x/search/functions_10.html | 30 +
static/api/cpp/3.2.x/search/functions_10.js | 112 ++
static/api/cpp/3.2.x/search/functions_11.html | 30 +
static/api/cpp/3.2.x/search/functions_11.js | 4 +
static/api/cpp/3.2.x/search/functions_12.html | 30 +
static/api/cpp/3.2.x/search/functions_12.js | 5 +
static/api/cpp/3.2.x/search/functions_2.html | 30 +
static/api/cpp/3.2.x/search/functions_2.js | 18 +
static/api/cpp/3.2.x/search/functions_3.html | 30 +
static/api/cpp/3.2.x/search/functions_3.js | 7 +
static/api/cpp/3.2.x/search/functions_4.html | 30 +
static/api/cpp/3.2.x/search/functions_4.js | 6 +
static/api/cpp/3.2.x/search/functions_5.html | 30 +
static/api/cpp/3.2.x/search/functions_5.js | 9 +
static/api/cpp/3.2.x/search/functions_6.html | 30 +
static/api/cpp/3.2.x/search/functions_6.js | 136 ++
static/api/cpp/3.2.x/search/functions_7.html | 30 +
static/api/cpp/3.2.x/search/functions_7.js | 15 +
static/api/cpp/3.2.x/search/functions_8.html | 30 +
static/api/cpp/3.2.x/search/functions_8.js | 23 +
static/api/cpp/3.2.x/search/functions_9.html | 30 +
static/api/cpp/3.2.x/search/functions_9.js | 4 +
static/api/cpp/3.2.x/search/functions_a.html | 30 +
static/api/cpp/3.2.x/search/functions_a.js | 6 +
static/api/cpp/3.2.x/search/functions_b.html | 30 +
static/api/cpp/3.2.x/search/functions_b.js | 6 +
static/api/cpp/3.2.x/search/functions_c.html | 30 +
static/api/cpp/3.2.x/search/functions_c.js | 4 +
static/api/cpp/3.2.x/search/functions_d.html | 30 +
static/api/cpp/3.2.x/search/functions_d.js | 8 +
static/api/cpp/3.2.x/search/functions_e.html | 30 +
static/api/cpp/3.2.x/search/functions_e.js | 7 +
static/api/cpp/3.2.x/search/functions_f.html | 30 +
static/api/cpp/3.2.x/search/functions_f.js | 11 +
static/api/cpp/3.2.x/search/mag_sel.png | Bin 0 -> 465 bytes
static/api/cpp/3.2.x/search/namespaces_0.html | 30 +
static/api/cpp/3.2.x/search/namespaces_0.js | 4 +
static/api/cpp/3.2.x/search/nomatches.html | 12 +
static/api/cpp/3.2.x/search/pages_0.html | 30 +
static/api/cpp/3.2.x/search/pages_0.js | 4 +
static/api/cpp/3.2.x/search/search.css | 271 +++
static/api/cpp/3.2.x/search/search.js | 814 +++++++++
static/api/cpp/3.2.x/search/search_l.png | Bin 0 -> 567 bytes
static/api/cpp/3.2.x/search/search_m.png | Bin 0 -> 158 bytes
static/api/cpp/3.2.x/search/search_r.png | Bin 0 -> 553 bytes
static/api/cpp/3.2.x/search/searchdata.js | 36 +
static/api/cpp/3.2.x/search/typedefs_0.html | 30 +
static/api/cpp/3.2.x/search/typedefs_0.js | 5 +
static/api/cpp/3.2.x/search/typedefs_1.html | 30 +
static/api/cpp/3.2.x/search/typedefs_1.js | 5 +
static/api/cpp/3.2.x/splitbar.png | Bin 0 -> 314 bytes
static/api/cpp/3.2.x/string__list_8h_source.html | 103 ++
static/api/cpp/3.2.x/string__map_8h_source.html | 106 ++
...ulsar_1_1_table_view_configuration-members.html | 85 +
.../structpulsar_1_1_table_view_configuration.html | 96 +
...onsumer__batch__receive__policy__t-members.html | 82 +
...ulsar__consumer__batch__receive__policy__t.html | 95 +
...r__config__dead__letter__policy__t-members.html | 82 +
..._consumer__config__dead__letter__policy__t.html | 95 +
.../cpp/3.2.x/structpulsar__logger__t-members.html | 82 +
static/api/cpp/3.2.x/structpulsar__logger__t.html | 95 +
static/api/cpp/3.2.x/sync_off.png | Bin 0 -> 853 bytes
static/api/cpp/3.2.x/sync_on.png | Bin 0 -> 845 bytes
static/api/cpp/3.2.x/tab_a.png | Bin 0 -> 142 bytes
static/api/cpp/3.2.x/tab_b.png | Bin 0 -> 169 bytes
static/api/cpp/3.2.x/tab_h.png | Bin 0 -> 177 bytes
static/api/cpp/3.2.x/tab_s.png | Bin 0 -> 184 bytes
static/api/cpp/3.2.x/tabs.css | 1 +
static/api/cpp/3.2.x/version_8h_source.html | 84 +
430 files changed, 48785 insertions(+)
diff --git a/static/api/cpp/3.2.x/_authentication_8h_source.html b/static/api/cpp/3.2.x/_authentication_8h_source.html
new file mode 100644
index 00000000000..96f3365cda6
--- /dev/null
+++ b/static/api/cpp/3.2.x/_authentication_8h_source.html
@@ -0,0 +1,364 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/Authentication.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">Authentication.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_AUTHENTICATION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_AUTHENTICATION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/Result.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <functional></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <map></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="namespacepulsar.html"> 31</a></span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_authentication.html">Authentication</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication_data_provider.html"> 36</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_authentication_data_provider.html">AuthenticationDataProvider</a> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_authentication_data_provider.html">AuthenticationDataProvider</a>();</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDataForTls();</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">virtual</span> std::string getTlsCertificates();</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">virtual</span> std::string getTlsPrivateKey();</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDataForHttp();</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">virtual</span> std::string getHttpAuthType();</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">virtual</span> std::string getHttpHeaders();</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDataFromCommand();</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">virtual</span> std::string getCommandData();</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classpulsar_1_1_authentication_data_provider.html">AuthenticationDataProvider</a>();</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> };</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">typedef</span> std::shared_ptr<AuthenticationDataProvider> AuthenticationDataPtr;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">typedef</span> std::shared_ptr<Authentication> AuthenticationPtr;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">typedef</span> std::map<std::string, std::string> ParamMap;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication.html"> 88</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_authentication.html">Authentication</a> {</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_authentication.html">Authentication</a>();</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string getAuthMethodName() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688"> 104</a></span>  <span class="keyword">virtual</span> <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> <a class="code" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">getAuthData</a>(AuthenticationDataPtr& authDataContent) {</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  authDataContent = authData_;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba0aac5dae08c453e94161e28d7cd5a92f">ResultOk</a>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">static</span> ParamMap parseDefaultFormatAuthParams(<span class="keyword">const</span> std::string& authParamsString);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="classpulsar_1_1_authentication.html">Authentication</a>();</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  AuthenticationDataPtr authData_;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> };</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_factory.html"> 136</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_auth_factory.html">AuthFactory</a> {</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keyword">static</span> AuthenticationPtr Disabled();</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string& pluginNameOrDynamicLibPath);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string& pluginNameOrDynamicLibPath,</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">const</span> std::string& authParamsString);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string& pluginNameOrDynamicLibPath, ParamMap& params);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> isShutdownHookRegistered_;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keyword">static</span> std::vector<void*> loadedLibrariesHandles_;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> release_handles();</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> };</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div>
+<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_tls.html"> 183</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_auth_tls.html">AuthTls</a> : <span class="keyword">public</span> <a class="code" href="classpulsar_1_1_authentication.html">Authentication</a> {</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classpulsar_1_1_auth_tls.html">AuthTls</a>(AuthenticationDataPtr&);</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  ~<a class="code" href="classpulsar_1_1_auth_tls.html">AuthTls</a>();</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">static</span> AuthenticationPtr create(ParamMap& params);</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string& authParamsString);</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  </div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string& certificatePath, <span class="keyword">const</span> std::string& privateKeyPath);</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keyword">const</span> std::string getAuthMethodName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  </div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getAuthData(AuthenticationDataPtr& authDataTls);</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  AuthenticationDataPtr authDataTls_;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> };</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  </div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">typedef</span> std::function<std::string()> TokenSupplier;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  </div>
+<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_token.html"> 234</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_auth_token.html">AuthToken</a> : <span class="keyword">public</span> <a class="code" href="classpulsar_1_1_authentication.html">Authentication</a> {</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classpulsar_1_1_auth_token.html">AuthToken</a>(AuthenticationDataPtr&);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  ~<a class="code" href="classpulsar_1_1_auth_token.html">AuthToken</a>();</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">static</span> AuthenticationPtr create(ParamMap& params);</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string& authParamsString);</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keyword">static</span> AuthenticationPtr createWithToken(<span class="keyword">const</span> std::string& token);</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  </div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> TokenSupplier& tokenSupplier);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  </div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keyword">const</span> std::string getAuthMethodName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  </div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getAuthData(AuthenticationDataPtr& authDataToken);</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  </div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  AuthenticationDataPtr authDataToken_;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> };</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  </div>
+<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_basic.html"> 300</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_auth_basic.html">AuthBasic</a> : <span class="keyword">public</span> <a class="code" href="classpulsar_1_1_authentication.html">Authentication</a> {</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_auth_basic.html">AuthBasic</a>(AuthenticationDataPtr&);</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  ~<a class="code" href="classpulsar_1_1_auth_basic.html">AuthBasic</a>() <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">static</span> AuthenticationPtr create(ParamMap& params);</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  </div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string& authParamsString);</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  </div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string& username, <span class="keyword">const</span> std::string& password);</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string& username, <span class="keyword">const</span> std::string& password,</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keyword">const</span> std::string& method);</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  </div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keyword">const</span> std::string getAuthMethodName() <span class="keyword">const override</span>;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  </div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getAuthData(AuthenticationDataPtr& authDataBasic) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  </div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  AuthenticationDataPtr authDataBasic_;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> };</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  </div>
+<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_athenz.html"> 352</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a> : <span class="keyword">public</span> <a class="code" href="classpulsar_1_1_authentication.html">Authentication</a> {</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <a class="code" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a>(AuthenticationDataPtr&);</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  ~<a class="code" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a>();</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  </div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keyword">static</span> AuthenticationPtr create(ParamMap& params);</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  </div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string& authParamsString);</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  </div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">const</span> std::string getAuthMethodName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  </div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getAuthData(AuthenticationDataPtr& authDataAthenz);</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  </div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  AuthenticationDataPtr authDataAthenz_;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> };</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  </div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="comment">// OAuth 2.0 token and associated information.</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="comment">// currently mainly works for access token</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_token_result.html"> 395</a></span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a> {</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keyword">enum</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  undefined_expiration = -1</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  };</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  </div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <a class="code" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a>();</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  ~<a class="code" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a>();</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  </div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a>& <a class="code" href="classpulsar_1_1_oauth2_token_result.html#ab8714dfd4aa25c2032efaa1f39d418fb">setAccessToken</a>(<span class="keyword">const</span> std::string& accessToken);</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  </div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a>& <a class="code" href="classpulsar_1_1_oauth2_token_result.html#a645d769212d85e7f0d9dd68eb72fefd6">setIdToken</a>(<span class="keyword">const</span> std::string& idToken);</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  </div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a>& <a class="code" href="classpulsar_1_1_oauth2_token_result.html#af4c586178ec5c1accd15245ca12c66c3">setRefreshToken</a>(<span class="keyword">const</span> std::string& refreshToken);</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  </div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a>& <a class="code" href="classpulsar_1_1_oauth2_token_result.html#a955b9f57e13635faad89dd0d4f080e35">setExpiresIn</a>(<span class="keyword">const</span> int64_t expiresIn);</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  </div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keyword">const</span> std::string& <a class="code" href="classpulsar_1_1_oauth2_token_result.html#a7a897414fe23ee0b29f03838c56421bf">getAccessToken</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  </div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keyword">const</span> std::string& <a class="code" href="classpulsar_1_1_oauth2_token_result.html#a2b3ad776ee10ec2e6eed8857e8c44c1a">getIdToken</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  </div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keyword">const</span> std::string& <a class="code" href="classpulsar_1_1_oauth2_token_result.html#aa3c7838c045c07e3cb353bac5810681a">getRefreshToken</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  </div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  int64_t <a class="code" href="classpulsar_1_1_oauth2_token_result.html#a3fe9ca08aada6022f2977051420eea77">getExpiresIn</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  </div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="comment">// map to json "access_token"</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  std::string accessToken_;</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="comment">// map to json "id_token"</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  std::string idToken_;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="comment">// map to json "refresh_token"</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  std::string refreshToken_;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="comment">// map to json "expires_in"</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  int64_t expiresIn_;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> };</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  </div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keyword">typedef</span> std::shared_ptr<Oauth2TokenResult> Oauth2TokenResultPtr;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  </div>
+<div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_flow.html"> 468</a></span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_oauth2_flow.html">Oauth2Flow</a> {</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_oauth2_flow.html">Oauth2Flow</a>();</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  </div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classpulsar_1_1_oauth2_flow.html#a2d9a138289565a4e07aded8fffdcb96e">initialize</a>() = 0;</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  </div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keyword">virtual</span> Oauth2TokenResultPtr <a class="code" href="classpulsar_1_1_oauth2_flow.html#a26ba112e97d9ce0283adaa9213f848ac">authenticate</a>() = 0;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  </div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classpulsar_1_1_oauth2_flow.html#ae4815e1adf8cced8553f9e3d6d6717a8">close</a>() = 0;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  </div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <a class="code" href="classpulsar_1_1_oauth2_flow.html">Oauth2Flow</a>();</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> };</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  </div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="keyword">typedef</span> std::shared_ptr<Oauth2Flow> FlowPtr;</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  </div>
+<div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="classpulsar_1_1_cached_token.html"> 494</a></span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_cached_token.html">CachedToken</a> {</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_cached_token.html">CachedToken</a>();</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  </div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classpulsar_1_1_cached_token.html#a2fe69f2fb7037139b52f9c66a0af05f2">isExpired</a>() = 0;</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  </div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keyword">virtual</span> AuthenticationDataPtr <a class="code" href="classpulsar_1_1_cached_token.html#a6e249f44ae21288c7365d1baece3da5d">getAuthData</a>() = 0;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  </div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <a class="code" href="classpulsar_1_1_cached_token.html">CachedToken</a>();</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> };</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  </div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="keyword">typedef</span> std::shared_ptr<CachedToken> CachedTokenPtr;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  </div>
+<div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_oauth2.html"> 528</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_auth_oauth2.html">AuthOauth2</a> : <span class="keyword">public</span> <a class="code" href="classpulsar_1_1_authentication.html">Authentication</a> {</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <a class="code" href="classpulsar_1_1_auth_oauth2.html">AuthOauth2</a>(ParamMap& params);</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  ~<a class="code" href="classpulsar_1_1_auth_oauth2.html">AuthOauth2</a>();</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  </div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keyword">static</span> AuthenticationPtr create(ParamMap& params);</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  </div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string& authParamsString);</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  </div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keyword">const</span> std::string getAuthMethodName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  </div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getAuthData(AuthenticationDataPtr& authDataOauth2);</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  </div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  FlowPtr flowPtr_;</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  CachedTokenPtr cachedTokenPtr_;</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> };</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  </div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  </div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="preprocessor">#endif </span><span class="comment">/* PULSAR_AUTHENTICATION_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_auth_athenz_html"><div class="ttname"><a href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:352</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_factory_html"><div class="ttname"><a href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:136</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_token_result_html_a7a897414fe23ee0b29f03838c56421bf"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#a7a897414fe23ee0b29f03838c56421bf">pulsar::Oauth2TokenResult::getAccessToken</a></div><div class="ttdeci">const std::string & getAccessToken() const</div></div>
+<div class="ttc" id="anamespacepulsar_html_ae85314d6b9e8afd831cf8c66705f2dbb"><div class="ttname"><a href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition:</b> Result.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_token_result_html_aa3c7838c045c07e3cb353bac5810681a"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#aa3c7838c045c07e3cb353bac5810681a">pulsar::Oauth2TokenResult::getRefreshToken</a></div><div class="ttdeci">const std::string & getRefreshToken() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_token_result_html"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html">pulsar::Oauth2TokenResult</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:395</div></div>
+<div class="ttc" id="anamespacepulsar_html_ae85314d6b9e8afd831cf8c66705f2dbba0aac5dae08c453e94161e28d7cd5a92f"><div class="ttname"><a href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbba0aac5dae08c453e94161e28d7cd5a92f">pulsar::ResultOk</a></div><div class="ttdeci">@ ResultOk</div><div class="ttdoc">An internal error code used for retry.</div><div class="ttdef"><b>Definition:</b> Result.h:34</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_token_result_html_af4c586178ec5c1accd15245ca12c66c3"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#af4c586178ec5c1accd15245ca12c66c3">pulsar::Oauth2TokenResult::setRefreshToken</a></div><div class="ttdeci">Oauth2TokenResult & setRefreshToken(const std::string &refreshToken)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></div><div class="ttdef"><b>Definition:</b> ClientConfiguration.h:29</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_token_result_html_a645d769212d85e7f0d9dd68eb72fefd6"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#a645d769212d85e7f0d9dd68eb72fefd6">pulsar::Oauth2TokenResult::setIdToken</a></div><div class="ttdeci">Oauth2TokenResult & setIdToken(const std::string &idToken)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_oauth2_html"><div class="ttname"><a href="classpulsar_1_1_auth_oauth2.html">pulsar::AuthOauth2</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:528</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_token_result_html_a3fe9ca08aada6022f2977051420eea77"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#a3fe9ca08aada6022f2977051420eea77">pulsar::Oauth2TokenResult::getExpiresIn</a></div><div class="ttdeci">int64_t getExpiresIn() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_cached_token_html_a2fe69f2fb7037139b52f9c66a0af05f2"><div class="ttname"><a href="classpulsar_1_1_cached_token.html#a2fe69f2fb7037139b52f9c66a0af05f2">pulsar::CachedToken::isExpired</a></div><div class="ttdeci">virtual bool isExpired()=0</div></div>
+<div class="ttc" id="aclasspulsar_1_1_cached_token_html_a6e249f44ae21288c7365d1baece3da5d"><div class="ttname"><a href="classpulsar_1_1_cached_token.html#a6e249f44ae21288c7365d1baece3da5d">pulsar::CachedToken::getAuthData</a></div><div class="ttdeci">virtual AuthenticationDataPtr getAuthData()=0</div></div>
+<div class="ttc" id="aclasspulsar_1_1_authentication_html_a14811c36fc300cfa7769f7ee96018688"><div class="ttname"><a href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">pulsar::Authentication::getAuthData</a></div><div class="ttdeci">virtual Result getAuthData(AuthenticationDataPtr &authDataContent)</div><div class="ttdef"><b>Definition:</b> Authentication.h:104</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_flow_html_ae4815e1adf8cced8553f9e3d6d6717a8"><div class="ttname"><a href="classpulsar_1_1_oauth2_flow.html#ae4815e1adf8cced8553f9e3d6d6717a8">pulsar::Oauth2Flow::close</a></div><div class="ttdeci">virtual void close()=0</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_token_result_html_a955b9f57e13635faad89dd0d4f080e35"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#a955b9f57e13635faad89dd0d4f080e35">pulsar::Oauth2TokenResult::setExpiresIn</a></div><div class="ttdeci">Oauth2TokenResult & setExpiresIn(const int64_t expiresIn)</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_token_html"><div class="ttname"><a href="classpulsar_1_1_auth_token.html">pulsar::AuthToken</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:234</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_flow_html"><div class="ttname"><a href="classpulsar_1_1_oauth2_flow.html">pulsar::Oauth2Flow</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:468</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_token_result_html_ab8714dfd4aa25c2032efaa1f39d418fb"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#ab8714dfd4aa25c2032efaa1f39d418fb">pulsar::Oauth2TokenResult::setAccessToken</a></div><div class="ttdeci">Oauth2TokenResult & setAccessToken(const std::string &accessToken)</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_authentication_html"><div class="ttname"><a href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:88</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_basic_html"><div class="ttname"><a href="classpulsar_1_1_auth_basic.html">pulsar::AuthBasic</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:300</div></div>
+<div class="ttc" id="aclasspulsar_1_1_cached_token_html"><div class="ttname"><a href="classpulsar_1_1_cached_token.html">pulsar::CachedToken</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:494</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_flow_html_a2d9a138289565a4e07aded8fffdcb96e"><div class="ttname"><a href="classpulsar_1_1_oauth2_flow.html#a2d9a138289565a4e07aded8fffdcb96e">pulsar::Oauth2Flow::initialize</a></div><div class="ttdeci">virtual void initialize()=0</div></div>
+<div class="ttc" id="aclasspulsar_1_1_authentication_data_provider_html"><div class="ttname"><a href="classpulsar_1_1_authentication_data_provider.html">pulsar::AuthenticationDataProvider</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:36</div></div>
+<div class="ttc" id="aclasspulsar_1_1_auth_tls_html"><div class="ttname"><a href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:183</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_token_result_html_a2b3ad776ee10ec2e6eed8857e8c44c1a"><div class="ttname"><a href="classpulsar_1_1_oauth2_token_result.html#a2b3ad776ee10ec2e6eed8857e8c44c1a">pulsar::Oauth2TokenResult::getIdToken</a></div><div class="ttdeci">const std::string & getIdToken() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_oauth2_flow_html_a26ba112e97d9ce0283adaa9213f848ac"><div class="ttname"><a href="classpulsar_1_1_oauth2_flow.html#a26ba112e97d9ce0283adaa9213f848ac">pulsar::Oauth2Flow::authenticate</a></div><div class="ttdeci">virtual Oauth2TokenResultPtr authenticate()=0</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_batch_receive_policy_8h_source.html b/static/api/cpp/3.2.x/_batch_receive_policy_8h_source.html
new file mode 100644
index 00000000000..64d45111d5a
--- /dev/null
+++ b/static/api/cpp/3.2.x/_batch_receive_policy_8h_source.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/BatchReceivePolicy.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">BatchReceivePolicy.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef BATCH_RECEIVE_POLICY_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define BATCH_RECEIVE_POLICY_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">struct </span>BatchReceivePolicyImpl;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classpulsar_1_1_batch_receive_policy.html"> 52</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_batch_receive_policy.html">BatchReceivePolicy</a> {</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classpulsar_1_1_batch_receive_policy.html">BatchReceivePolicy</a>();</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classpulsar_1_1_batch_receive_policy.html">BatchReceivePolicy</a>(<span class="keywordtype">int</span> maxNumMessage, <span class="keywordtype">long</span> maxNumBytes, <span class="keywordtype">long</span> timeoutMs);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">long</span> getTimeoutMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordtype">int</span> getMaxNumMessages() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">long</span> getMaxNumBytes() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  std::shared_ptr<BatchReceivePolicyImpl> impl_;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> };</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#endif </span><span class="comment">/* BATCH_RECEIVE_POLICY_HPP_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_batch_receive_policy_html"><div class="ttname"><a href="classpulsar_1_1_batch_receive_policy.html">pulsar::BatchReceivePolicy</a></div><div class="ttdef"><b>Definition:</b> BatchReceivePolicy.h:52</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_broker_consumer_stats_8h_source.html b/static/api/cpp/3.2.x/_broker_consumer_stats_8h_source.html
new file mode 100644
index 00000000000..07b57ac4c3a
--- /dev/null
+++ b/static/api/cpp/3.2.x/_broker_consumer_stats_8h_source.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/BrokerConsumerStats.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">BrokerConsumerStats.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_CPP_BROKERCONSUMERSTATS_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_CPP_BROKERCONSUMERSTATS_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/ConsumerType.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/Result.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <functional></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <iostream></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">class </span>BrokerConsumerStatsImplBase;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">/* @note: isValid() or getXXX() methods are not allowed on an invalid BrokerConsumerStats */</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classpulsar_1_1_broker_consumer_stats.html"> 35</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a> {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  std::shared_ptr<BrokerConsumerStatsImplBase> impl_;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a>(std::shared_ptr<BrokerConsumerStatsImplBase> impl);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isValid() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> getMsgRateOut() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> getMsgThroughputOut() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> getMsgRateRedeliver() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string getConsumerName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">virtual</span> uint64_t getAvailablePermits() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">virtual</span> uint64_t getUnackedMessages() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isBlockedConsumerOnUnackedMsgs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string getAddress() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string getConnectedSince() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40">ConsumerType</a> getType() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> getMsgRateExpired() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">virtual</span> uint64_t getMsgBacklog() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  std::shared_ptr<BrokerConsumerStatsImplBase> getImpl() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">friend</span> PULSAR_PUBLIC std::ostream &operator<<(std::ostream &os, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a> &obj);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> };</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">typedef</span> std::function<void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result, <a class="code" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a> brokerConsumerStats)></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  BrokerConsumerStatsCallback;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#endif // PULSAR_CPP_BROKERCONSUMERSTATS_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespacepulsar_html_ae85314d6b9e8afd831cf8c66705f2dbb"><div class="ttname"><a href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition:</b> Result.h:31</div></div>
+<div class="ttc" id="anamespacepulsar_html_ac3e442abe2558a2b257fc7344af61d40"><div class="ttname"><a href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40">pulsar::ConsumerType</a></div><div class="ttdeci">ConsumerType</div><div class="ttdef"><b>Definition:</b> ConsumerType.h:23</div></div>
+<div class="ttc" id="aclasspulsar_1_1_broker_consumer_stats_html"><div class="ttname"><a href="classpulsar_1_1_broker_consumer_stats.html">pulsar::BrokerConsumerStats</a></div><div class="ttdef"><b>Definition:</b> BrokerConsumerStats.h:35</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_client_configuration_8h_source.html b/static/api/cpp/3.2.x/_client_configuration_8h_source.html
new file mode 100644
index 00000000000..e446fe5f05c
--- /dev/null
+++ b/static/api/cpp/3.2.x/_client_configuration_8h_source.html
@@ -0,0 +1,230 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/ClientConfiguration.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ClientConfiguration.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_CLIENTCONFIGURATION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_CLIENTCONFIGURATION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/Authentication.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/Logger.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">struct </span>ClientConfigurationImpl;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classpulsar_1_1_client_configuration.html"> 29</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>();</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  ~<a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>();</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& operator=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setMemoryLimit(uint64_t memoryLimitBytes);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  uint64_t getMemoryLimit() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setAuth(<span class="keyword">const</span> AuthenticationPtr& authentication);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classpulsar_1_1_authentication.html">Authentication</a>& getAuth() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setOperationTimeoutSeconds(<span class="keywordtype">int</span> timeout);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordtype">int</span> getOperationTimeoutSeconds() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setIOThreads(<span class="keywordtype">int</span> threads);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">int</span> getIOThreads() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setMessageListenerThreads(<span class="keywordtype">int</span> threads);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordtype">int</span> getMessageListenerThreads() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setConcurrentLookupRequest(<span class="keywordtype">int</span> concurrentLookupRequest);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordtype">int</span> getConcurrentLookupRequest() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setMaxLookupRedirects(<span class="keywordtype">int</span> maxLookupRedirects);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordtype">int</span> getMaxLookupRedirects() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setInitialBackoffIntervalMs(<span class="keywordtype">int</span> initialBackoffIntervalMs);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordtype">int</span> getInitialBackoffIntervalMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setMaxBackoffIntervalMs(<span class="keywordtype">int</span> maxBackoffIntervalMs);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordtype">int</span> getMaxBackoffIntervalMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  </div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setLogConfFilePath(<span class="keyword">const</span> std::string& logConfFilePath);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">const</span> std::string& getLogConfFilePath() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setLogger(<a class="code" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a>* loggerFactory);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  </div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setUseTls(<span class="keywordtype">bool</span> useTls);</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordtype">bool</span> isUseTls() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setTlsPrivateKeyFilePath(<span class="keyword">const</span> std::string& tlsKeyFilePath);</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  </div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keyword">const</span> std::string& getTlsPrivateKeyFilePath() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  </div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setTlsCertificateFilePath(<span class="keyword">const</span> std::string& tlsCertificateFilePath);</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keyword">const</span> std::string& getTlsCertificateFilePath() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setTlsTrustCertsFilePath(<span class="keyword">const</span> std::string& tlsTrustCertsFilePath);</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  </div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">const</span> std::string& getTlsTrustCertsFilePath() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  </div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setTlsAllowInsecureConnection(<span class="keywordtype">bool</span> allowInsecure);</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordtype">bool</span> isTlsAllowInsecureConnection() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  </div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setValidateHostName(<span class="keywordtype">bool</span> validateHostName);</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordtype">bool</span> isValidateHostName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  </div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setListenerName(<span class="keyword">const</span> std::string& listenerName);</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  </div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">const</span> std::string& getListenerName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setStatsIntervalInSeconds(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&);</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  </div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>& getStatsIntervalInSeconds() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  </div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setPartititionsUpdateInterval(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> intervalInSeconds);</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  </div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPartitionsUpdateInterval() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  </div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setConnectionTimeout(<span class="keywordtype">int</span> timeoutMs);</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordtype">int</span> getConnectionTimeout() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  </div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">friend</span> <span class="keyword">class </span>ClientImpl;</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  </div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">const</span> AuthenticationPtr& getAuthPtr() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  std::shared_ptr<ClientConfigurationImpl> impl_;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  </div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="comment">// By default, when the client connects to the broker, a version string like "Pulsar-CPP-v<x.y.z>" will be</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="comment">// carried and saved by the broker. The client version string could be queried from the topic stats.</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="comment">// This method provides a way to add more description to a specific `Client` instance. If it's configured,</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="comment">// the description will be appended to the original client version string, with '-' as the separator.</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="comment">// For example, if the client version is 3.2.0, and the description is "forked", the final client version</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="comment">// string will be "Pulsar-CPP-v3.2.0-forked".</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="comment">// NOTE: This method should only be called by the PulsarWrapper and the length should not exceed 64.</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="comment">// For example, you can add a PulsarWrapper class like:</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="comment">// ```c++</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="comment">// namespace pulsar {</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="comment">// class PulsarWrapper {</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="comment">// static ClientConfiguration clientConfig() {</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="comment">// ClientConfiguration conf;</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="comment">// conf.setDescription("forked");</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="comment">// return conf;</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="comment">// }</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="comment">// };</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="comment">// }</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="comment">// ```</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="comment">// Then, call the method before passing the `conf` to the constructor of `Client`:</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="comment">// ```c++</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="comment">// auto conf = PulsarWrapper::clientConfig();</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="comment">// // Set other attributes of `conf` here...</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="comment">// Client client{"pulsar://localhost:6650", conf);</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="comment">// ```</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>& setDescription(<span class="keyword">const</span> std::string& description);</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  </div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keyword">const</span> std::string& getDescription() <span class="keyword">const</span> noexcept;</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> };</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  </div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor">#endif </span><span class="comment">/* PULSAR_CLIENTCONFIGURATION_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_logger_factory_html"><div class="ttname"><a href="classpulsar_1_1_logger_factory.html">pulsar::LoggerFactory</a></div><div class="ttdef"><b>Definition:</b> Logger.h:58</div></div>
+<div class="ttc" id="aclasspulsar_1_1_client_configuration_html"><div class="ttname"><a href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></div><div class="ttdef"><b>Definition:</b> ClientConfiguration.h:29</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_authentication_html"><div class="ttname"><a href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:88</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_compression_type_8h_source.html b/static/api/cpp/3.2.x/_compression_type_8h_source.html
new file mode 100644
index 00000000000..7642dd89abe
--- /dev/null
+++ b/static/api/cpp/3.2.x/_compression_type_8h_source.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/CompressionType.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">CompressionType.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_COMPRESSIONTYPE_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_COMPRESSIONTYPE_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">enum</span> CompressionType</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  CompressionNone = 0,</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  CompressionLZ4 = 1,</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  CompressionZLib = 2,</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  CompressionZSTD = 3,</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  CompressionSNAPPY = 4</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> };</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#endif </span><span class="comment">/* PULSAR_COMPRESSIONTYPE_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_console_logger_factory_8h_source.html b/static/api/cpp/3.2.x/_console_logger_factory_8h_source.html
new file mode 100644
index 00000000000..dcced70ee7b
--- /dev/null
+++ b/static/api/cpp/3.2.x/_console_logger_factory_8h_source.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/ConsoleLoggerFactory.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ConsoleLoggerFactory.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/Logger.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">class </span>ConsoleLoggerFactoryImpl;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classpulsar_1_1_console_logger_factory.html"> 49</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_console_logger_factory.html">ConsoleLoggerFactory</a> : <span class="keyword">public</span> <a class="code" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a> {</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_console_logger_factory.html">ConsoleLoggerFactory</a>(Logger::Level level = Logger::LEVEL_INFO);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  ~<a class="code" href="classpulsar_1_1_console_logger_factory.html">ConsoleLoggerFactory</a>();</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classpulsar_1_1_logger.html">Logger</a>* getLogger(<span class="keyword">const</span> std::string& fileName) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  std::unique_ptr<ConsoleLoggerFactoryImpl> impl_;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> };</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> } <span class="comment">// namespace pulsar</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_logger_factory_html"><div class="ttname"><a href="classpulsar_1_1_logger_factory.html">pulsar::LoggerFactory</a></div><div class="ttdef"><b>Definition:</b> Logger.h:58</div></div>
+<div class="ttc" id="aclasspulsar_1_1_console_logger_factory_html"><div class="ttname"><a href="classpulsar_1_1_console_logger_factory.html">pulsar::ConsoleLoggerFactory</a></div><div class="ttdef"><b>Definition:</b> ConsoleLoggerFactory.h:49</div></div>
+<div class="ttc" id="aclasspulsar_1_1_logger_html"><div class="ttname"><a href="classpulsar_1_1_logger.html">pulsar::Logger</a></div><div class="ttdef"><b>Definition:</b> Logger.h:28</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_consumer_configuration_8h_source.html b/static/api/cpp/3.2.x/_consumer_configuration_8h_source.html
new file mode 100644
index 00000000000..610402c80ce
--- /dev/null
+++ b/static/api/cpp/3.2.x/_consumer_configuration_8h_source.html
@@ -0,0 +1,311 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/ConsumerConfiguration.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ConsumerConfiguration.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_CONSUMERCONFIGURATION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_CONSUMERCONFIGURATION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/ConsumerCryptoFailureAction.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/ConsumerEventListener.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <pulsar/ConsumerInterceptor.h></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <pulsar/ConsumerType.h></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <pulsar/CryptoKeyReader.h></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <pulsar/InitialPosition.h></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <pulsar/KeySharedPolicy.h></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <pulsar/Message.h></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <pulsar/RegexSubscriptionMode.h></span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <pulsar/Result.h></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <pulsar/Schema.h></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <pulsar/TypedMessage.h></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <functional></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "BatchReceivePolicy.h"</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "DeadLetterPolicy.h"</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">class </span>Consumer;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ac87806090d752fb2248e8da65727630a"> 46</a></span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> std::vector<Message> <a class="code" href="namespacepulsar.html#ac87806090d752fb2248e8da65727630a">Messages</a>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d"> 50</a></span> <span class="keyword">typedef</span> std::function<void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result)> <a class="code" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> std::function<void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>& msg)> ReceiveCallback;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">typedef</span> std::function<void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>, <span class="keyword">const</span> <a class="code" href="namespacepulsar.html#ac87806090d752fb2248e8da65727630a">Messages</a>& msgs)> BatchReceiveCallback;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">typedef</span> std::function<void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result, <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a> messageId)> GetLastMessageIdCallback;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespacepulsar.html#aa2439b1ef83202e8d35359d0134f2d56"> 56</a></span> <span class="keyword">typedef</span> std::function<void(<a class="code" href="classpulsar_1_1_consumer.html">Consumer</a>& consumer, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>& msg)> <a class="code" href="namespacepulsar.html#aa2439b1ef83202e8d35359d0134f2d56">M [...]
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> std::shared_ptr<ConsumerEventListener> ConsumerEventListenerPtr;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">struct </span>ConsumerConfigurationImpl;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html"> 65</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a> {</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>();</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  ~<a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>();</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& operator=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a> clone() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setSchema(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>& schemaInfo);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>& getSchema() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setConsumerType(<a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40">ConsumerType</a> consumerType);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40">ConsumerType</a> getConsumerType() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setKeySharedPolicy(<a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a> keySharedPolicy);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a> getKeySharedPolicy() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setMessageListener(<a class="code" href="namespacepulsar.html#aa2439b1ef83202e8d35359d0134f2d56">MessageListener</a> messageListener);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setTypedMessageListener(</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  std::function<<span class="keywordtype">void</span>(<a class="code" href="classpulsar_1_1_consumer.html">Consumer</a>&, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_typed_message.html">TypedMessage<T></a>&)> listener,</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keyword">typename</span> TypedMessage<T>::Decoder decoder) {</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> setMessageListener([listener, decoder](<a class="code" href="classpulsar_1_1_consumer.html">Consumer</a>& consumer, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>& msg) {</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  listener(consumer, <a class="code" href="classpulsar_1_1_typed_message.html">TypedMessage<T></a>{msg, decoder});</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  });</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  }</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="namespacepulsar.html#aa2439b1ef83202e8d35359d0134f2d56">MessageListener</a> getMessageListener() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordtype">bool</span> hasMessageListener() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setConsumerEventListener(ConsumerEventListenerPtr eventListener);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  ConsumerEventListenerPtr getConsumerEventListener() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">bool</span> hasConsumerEventListener() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordtype">void</span> setReceiverQueueSize(<span class="keywordtype">int</span> size);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  </div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordtype">int</span> getReceiverQueueSize() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordtype">void</span> setMaxTotalReceiverQueueSizeAcrossPartitions(<span class="keywordtype">int</span> maxTotalReceiverQueueSizeAcrossPartitions);</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  </div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordtype">int</span> getMaxTotalReceiverQueueSizeAcrossPartitions() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  </div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordtype">void</span> setConsumerName(<span class="keyword">const</span> std::string& consumerName);</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  </div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keyword">const</span> std::string& getConsumerName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  </div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordtype">void</span> setUnAckedMessagesTimeoutMs(<span class="keyword">const</span> uint64_t milliSeconds);</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordtype">long</span> getUnAckedMessagesTimeoutMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordtype">void</span> setTickDurationInMs(<span class="keyword">const</span> uint64_t milliSeconds);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordtype">long</span> getTickDurationInMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  </div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordtype">void</span> setNegativeAckRedeliveryDelayMs(<span class="keywordtype">long</span> redeliveryDelayMillis);</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordtype">long</span> getNegativeAckRedeliveryDelayMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordtype">void</span> setAckGroupingTimeMs(<span class="keywordtype">long</span> ackGroupingMillis);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  </div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordtype">long</span> getAckGroupingTimeMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  </div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordtype">void</span> setAckGroupingMaxSize(<span class="keywordtype">long</span> maxGroupingSize);</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  </div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordtype">long</span> getAckGroupingMaxSize() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  </div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordtype">void</span> setBrokerConsumerStatsCacheTimeInMs(<span class="keyword">const</span> <span class="keywordtype">long</span> cacheTimeInMs);</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordtype">long</span> getBrokerConsumerStatsCacheTimeInMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  </div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordtype">bool</span> isEncryptionEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  </div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keyword">const</span> CryptoKeyReaderPtr getCryptoKeyReader() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  </div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setCryptoKeyReader(CryptoKeyReaderPtr cryptoKeyReader);</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  </div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  ConsumerCryptoFailureAction getCryptoFailureAction() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  </div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setCryptoFailureAction(ConsumerCryptoFailureAction action);</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  </div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordtype">bool</span> isReadCompacted() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  </div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordtype">void</span> setReadCompacted(<span class="keywordtype">bool</span> compacted);</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  </div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordtype">void</span> setPatternAutoDiscoveryPeriod(<span class="keywordtype">int</span> periodInSeconds);</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  </div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordtype">int</span> getPatternAutoDiscoveryPeriod() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  </div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setRegexSubscriptionMode(<a class="code" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbd">RegexSubscriptionMode</a> regexSubscriptionMode);</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  </div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <a class="code" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbd">RegexSubscriptionMode</a> getRegexSubscriptionMode() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  </div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordtype">void</span> setSubscriptionInitialPosition(InitialPosition subscriptionInitialPosition);</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  </div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  InitialPosition getSubscriptionInitialPosition() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  </div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordtype">void</span> setBatchReceivePolicy(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_batch_receive_policy.html">BatchReceivePolicy</a>& batchReceivePolicy);</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  </div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_batch_receive_policy.html">BatchReceivePolicy</a>& getBatchReceivePolicy() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  </div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordtype">void</span> setDeadLetterPolicy(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a>& deadLetterPolicy);</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  </div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a>& getDeadLetterPolicy() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  </div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keywordtype">void</span> setReplicateSubscriptionStateEnabled(<span class="keywordtype">bool</span> enabled);</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  </div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordtype">bool</span> isReplicateSubscriptionStateEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  </div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordtype">bool</span> hasProperty(<span class="keyword">const</span> std::string& name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  </div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keyword">const</span> std::string& getProperty(<span class="keyword">const</span> std::string& name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  </div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  std::map<std::string, std::string>& getProperties() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  </div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setProperty(<span class="keyword">const</span> std::string& name, <span class="keyword">const</span> std::string& value);</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  </div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setProperties(<span class="keyword">const</span> std::map<std::string, std::string>& properties);</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  </div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  std::map<std::string, std::string>& getSubscriptionProperties() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  </div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setSubscriptionProperties(</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keyword">const</span> std::map<std::string, std::string>& subscriptionProperties);</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  </div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setPriorityLevel(<span class="keywordtype">int</span> priorityLevel);</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  </div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordtype">int</span> getPriorityLevel() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  </div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setMaxPendingChunkedMessage(<span class="keywordtype">size_t</span> maxPendingChunkedMessage);</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  </div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordtype">size_t</span> getMaxPendingChunkedMessage() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  </div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setAutoAckOldestChunkedMessageOnQueueFull(</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keywordtype">bool</span> autoAckOldestChunkedMessageOnQueueFull);</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  </div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordtype">bool</span> isAutoAckOldestChunkedMessageOnQueueFull() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  </div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setExpireTimeOfIncompleteChunkedMessageMs(</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordtype">long</span> expireTimeOfIncompleteChunkedMessageMs);</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  </div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordtype">long</span> getExpireTimeOfIncompleteChunkedMessageMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  </div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setStartMessageIdInclusive(<span class="keywordtype">bool</span> startMessageIdInclusive);</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  </div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keywordtype">bool</span> isStartMessageIdInclusive() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  </div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setBatchIndexAckEnabled(<span class="keywordtype">bool</span> enabled);</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  </div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordtype">bool</span> isBatchIndexAckEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  </div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& intercept(<span class="keyword">const</span> std::vector<ConsumerInterceptorPtr>& interceptors);</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  </div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keyword">const</span> std::vector<ConsumerInterceptorPtr>& getInterceptors() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  </div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>& setAckReceiptEnabled(<span class="keywordtype">bool</span> ackReceiptEnabled);</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  </div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keywordtype">bool</span> isAckReceiptEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  </div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  </div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  std::shared_ptr<ConsumerConfigurationImpl> impl_;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> };</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor">#endif </span><span class="comment">/* PULSAR_CONSUMERCONFIGURATION_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_key_shared_policy_html"><div class="ttname"><a href="classpulsar_1_1_key_shared_policy.html">pulsar::KeySharedPolicy</a></div><div class="ttdef"><b>Definition:</b> KeySharedPolicy.h:52</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_html"><div class="ttname"><a href="classpulsar_1_1_message_id.html">pulsar::MessageId</a></div><div class="ttdef"><b>Definition:</b> MessageId.h:34</div></div>
+<div class="ttc" id="anamespacepulsar_html_ae85314d6b9e8afd831cf8c66705f2dbb"><div class="ttname"><a href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition:</b> Result.h:31</div></div>
+<div class="ttc" id="anamespacepulsar_html_ac87806090d752fb2248e8da65727630a"><div class="ttname"><a href="namespacepulsar.html#ac87806090d752fb2248e8da65727630a">pulsar::Messages</a></div><div class="ttdeci">std::vector< Message > Messages</div><div class="ttdoc">Callback definition for non-data operation.</div><div class="ttdef"><b>Definition:</b> ConsumerConfiguration.h:46</div></div>
+<div class="ttc" id="aclasspulsar_1_1_dead_letter_policy_html"><div class="ttname"><a href="classpulsar_1_1_dead_letter_policy.html">pulsar::DeadLetterPolicy</a></div><div class="ttdef"><b>Definition:</b> DeadLetterPolicy.h:36</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_configuration_html"><div class="ttname"><a href="classpulsar_1_1_consumer_configuration.html">pulsar::ConsumerConfiguration</a></div><div class="ttdef"><b>Definition:</b> ConsumerConfiguration.h:65</div></div>
+<div class="ttc" id="aclasspulsar_1_1_batch_receive_policy_html"><div class="ttname"><a href="classpulsar_1_1_batch_receive_policy.html">pulsar::BatchReceivePolicy</a></div><div class="ttdef"><b>Definition:</b> BatchReceivePolicy.h:52</div></div>
+<div class="ttc" id="anamespacepulsar_html_ac3e442abe2558a2b257fc7344af61d40"><div class="ttname"><a href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40">pulsar::ConsumerType</a></div><div class="ttdeci">ConsumerType</div><div class="ttdef"><b>Definition:</b> ConsumerType.h:23</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:43</div></div>
+<div class="ttc" id="aclasspulsar_1_1_typed_message_html"><div class="ttname"><a href="classpulsar_1_1_typed_message.html">pulsar::TypedMessage</a></div><div class="ttdef"><b>Definition:</b> TypedMessage.h:28</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html"><div class="ttname"><a href="classpulsar_1_1_consumer.html">pulsar::Consumer</a></div><div class="ttdef"><b>Definition:</b> Consumer.h:37</div></div>
+<div class="ttc" id="aclasspulsar_1_1_schema_info_html"><div class="ttname"><a href="classpulsar_1_1_schema_info.html">pulsar::SchemaInfo</a></div><div class="ttdef"><b>Definition:</b> Schema.h:146</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="anamespacepulsar_html_aa2439b1ef83202e8d35359d0134f2d56"><div class="ttname"><a href="namespacepulsar.html#aa2439b1ef83202e8d35359d0134f2d56">pulsar::MessageListener</a></div><div class="ttdeci">std::function< void(Consumer &consumer, const Message &msg)> MessageListener</div><div class="ttdoc">Callback definition for MessageListener.</div><div class="ttdef"><b>Definition:</b> ConsumerConfiguration.h:56</div></div>
+<div class="ttc" id="anamespacepulsar_html_abd9b21e56a6fb78e04cae2664ff0dbbd"><div class="ttname"><a href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbd">pulsar::RegexSubscriptionMode</a></div><div class="ttdeci">RegexSubscriptionMode</div><div class="ttdef"><b>Definition:</b> RegexSubscriptionMode.h:23</div></div>
+<div class="ttc" id="anamespacepulsar_html_ae5bf6401bfa8e3962e5c8f9fa2efbf4d"><div class="ttname"><a href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">pulsar::ResultCallback</a></div><div class="ttdeci">std::function< void(Result result)> ResultCallback</div><div class="ttdoc">Callback definition for non-data operation.</div><div class="ttdef"><b>Definition:</b> ConsumerConfiguration.h:50</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_consumer_crypto_failure_action_8h_source.html b/static/api/cpp/3.2.x/_consumer_crypto_failure_action_8h_source.html
new file mode 100644
index 00000000000..b5d7a057d7d
--- /dev/null
+++ b/static/api/cpp/3.2.x/_consumer_crypto_failure_action_8h_source.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/ConsumerCryptoFailureAction.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ConsumerCryptoFailureAction.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef CONSUMERCRYPTOFAILUREACTION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define CONSUMERCRYPTOFAILUREACTION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">enum class</span> ConsumerCryptoFailureAction</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  FAIL, <span class="comment">// This is the default option to fail consume until crypto succeeds</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  DISCARD, <span class="comment">// Message is silently acknowledged and not delivered to the application</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  CONSUME <span class="comment">// Deliver the encrypted message to the application. It's the application's</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="comment">// responsibility to decrypt the message. If message is also compressed,</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="comment">// decompression will fail. If message contain batch messages, client will</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="comment">// not be able to retrieve individual messages in the batch</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> };</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> } <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#endif </span><span class="comment">/* CONSUMERCRYPTOFAILUREACTION_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_consumer_event_listener_8h_source.html b/static/api/cpp/3.2.x/_consumer_event_listener_8h_source.html
new file mode 100644
index 00000000000..4625914effe
--- /dev/null
+++ b/static/api/cpp/3.2.x/_consumer_event_listener_8h_source.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/ConsumerEventListener.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ConsumerEventListener.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_CONSUMEREVENTLISTENER_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_CONSUMEREVENTLISTENER_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">class </span>Consumer;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_event_listener.html"> 28</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_consumer_event_listener.html">ConsumerEventListener</a> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_consumer_event_listener.html">ConsumerEventListener</a>(){};</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> becameActive(<a class="code" href="classpulsar_1_1_consumer.html">Consumer</a> consumer, <span class="keywordtype">int</span> partitionId) = 0;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> becameInactive(<a class="code" href="classpulsar_1_1_consumer.html">Consumer</a> consumer, <span class="keywordtype">int</span> partitionId) = 0;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> };</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif </span><span class="comment">/* PULSAR_CONSUMEREVENTLISTENER_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_consumer_html"><div class="ttname"><a href="classpulsar_1_1_consumer.html">pulsar::Consumer</a></div><div class="ttdef"><b>Definition:</b> Consumer.h:37</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_event_listener_html"><div class="ttname"><a href="classpulsar_1_1_consumer_event_listener.html">pulsar::ConsumerEventListener</a></div><div class="ttdef"><b>Definition:</b> ConsumerEventListener.h:28</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_consumer_interceptor_8h_source.html b/static/api/cpp/3.2.x/_consumer_interceptor_8h_source.html
new file mode 100644
index 00000000000..4065cf30c32
--- /dev/null
+++ b/static/api/cpp/3.2.x/_consumer_interceptor_8h_source.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/ConsumerInterceptor.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ConsumerInterceptor.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifndef PULSAR_CPP_CONSUMER_INTERCEPTOR_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#define PULSAR_CPP_CONSUMER_INTERCEPTOR_H</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/Message.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <pulsar/Result.h></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <set></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">class </span>Consumer;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_interceptor.html"> 43</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_consumer_interceptor.html">ConsumerInterceptor</a> {</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_consumer_interceptor.html">ConsumerInterceptor</a>() {}</div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_interceptor.html#abe9d12923a7f6b3bc56c9596a4bac7bc"> 49</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classpulsar_1_1_consumer_interceptor.html#abe9d12923a7f6b3bc56c9596a4bac7bc">close</a>() {}</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">virtual</span> <a class="code" href="classpulsar_1_1_message.html">Message</a> beforeConsume(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_consumer.html">Consumer</a>& consumer, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>& message) = 0;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> onAcknowledge(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_consumer.html">Consumer</a>& consumer, <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& [...]
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> onAcknowledgeCumulative(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_consumer.html">Consumer</a>& consumer, <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result,</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& messageID) = 0;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> onNegativeAcksSend(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_consumer.html">Consumer</a>& consumer, <span class="keyword">const</span> std::set<MessageId>& messageIds) = 0;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> };</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">typedef</span> std::shared_ptr<ConsumerInterceptor> ConsumerInterceptorPtr;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#endif // PULSAR_CPP_CONSUMER_INTERCEPTOR_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_consumer_interceptor_html"><div class="ttname"><a href="classpulsar_1_1_consumer_interceptor.html">pulsar::ConsumerInterceptor</a></div><div class="ttdef"><b>Definition:</b> ConsumerInterceptor.h:43</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_html"><div class="ttname"><a href="classpulsar_1_1_message_id.html">pulsar::MessageId</a></div><div class="ttdef"><b>Definition:</b> MessageId.h:34</div></div>
+<div class="ttc" id="anamespacepulsar_html_ae85314d6b9e8afd831cf8c66705f2dbb"><div class="ttname"><a href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition:</b> Result.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:43</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_html"><div class="ttname"><a href="classpulsar_1_1_consumer.html">pulsar::Consumer</a></div><div class="ttdef"><b>Definition:</b> Consumer.h:37</div></div>
+<div class="ttc" id="aclasspulsar_1_1_consumer_interceptor_html_abe9d12923a7f6b3bc56c9596a4bac7bc"><div class="ttname"><a href="classpulsar_1_1_consumer_interceptor.html#abe9d12923a7f6b3bc56c9596a4bac7bc">pulsar::ConsumerInterceptor::close</a></div><div class="ttdeci">virtual void close()</div><div class="ttdef"><b>Definition:</b> ConsumerInterceptor.h:49</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_consumer_type_8h_source.html b/static/api/cpp/3.2.x/_consumer_type_8h_source.html
new file mode 100644
index 00000000000..ff9e8cc498d
--- /dev/null
+++ b/static/api/cpp/3.2.x/_consumer_type_8h_source.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/ConsumerType.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ConsumerType.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_CPP_CONSUMERTYPE_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_CPP_CONSUMERTYPE_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40"> 23</a></span> <span class="keyword">enum</span> <a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40">ConsumerType</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40a915cd237340dcd1d212f8d398f3d91ac"> 28</a></span>  <a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40a915cd237340dcd1d212f8d398f3d91ac">ConsumerExclusive</a>,</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40ac55370821e835a03c2da742ab27e1705"> 34</a></span>  <a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40ac55370821e835a03c2da742ab27e1705">ConsumerShared</a>,</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40aadffd5f0d50b1da36685230cd3f910a1"> 39</a></span>  <a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40aadffd5f0d50b1da36685230cd3f910a1">ConsumerFailover</a>,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40acb902cf3781caf307d06e37dc447d5cc"> 45</a></span>  <a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40acb902cf3781caf307d06e37dc447d5cc">ConsumerKeyShared</a></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> };</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> }</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif // PULSAR_CPP_CONSUMERTYPE_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespacepulsar_html_ac3e442abe2558a2b257fc7344af61d40acb902cf3781caf307d06e37dc447d5cc"><div class="ttname"><a href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40acb902cf3781caf307d06e37dc447d5cc">pulsar::ConsumerKeyShared</a></div><div class="ttdeci">@ ConsumerKeyShared</div><div class="ttdef"><b>Definition:</b> ConsumerType.h:45</div></div>
+<div class="ttc" id="anamespacepulsar_html_ac3e442abe2558a2b257fc7344af61d40"><div class="ttname"><a href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40">pulsar::ConsumerType</a></div><div class="ttdeci">ConsumerType</div><div class="ttdef"><b>Definition:</b> ConsumerType.h:23</div></div>
+<div class="ttc" id="anamespacepulsar_html_ac3e442abe2558a2b257fc7344af61d40a915cd237340dcd1d212f8d398f3d91ac"><div class="ttname"><a href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40a915cd237340dcd1d212f8d398f3d91ac">pulsar::ConsumerExclusive</a></div><div class="ttdeci">@ ConsumerExclusive</div><div class="ttdef"><b>Definition:</b> ConsumerType.h:28</div></div>
+<div class="ttc" id="anamespacepulsar_html_ac3e442abe2558a2b257fc7344af61d40aadffd5f0d50b1da36685230cd3f910a1"><div class="ttname"><a href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40aadffd5f0d50b1da36685230cd3f910a1">pulsar::ConsumerFailover</a></div><div class="ttdeci">@ ConsumerFailover</div><div class="ttdef"><b>Definition:</b> ConsumerType.h:39</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="anamespacepulsar_html_ac3e442abe2558a2b257fc7344af61d40ac55370821e835a03c2da742ab27e1705"><div class="ttname"><a href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40ac55370821e835a03c2da742ab27e1705">pulsar::ConsumerShared</a></div><div class="ttdeci">@ ConsumerShared</div><div class="ttdef"><b>Definition:</b> ConsumerType.h:34</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_crypto_key_reader_8h_source.html b/static/api/cpp/3.2.x/_crypto_key_reader_8h_source.html
new file mode 100644
index 00000000000..80c8cff69ba
--- /dev/null
+++ b/static/api/cpp/3.2.x/_crypto_key_reader_8h_source.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/CryptoKeyReader.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">CryptoKeyReader.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef CRYPTOKEYREADER_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define CRYPTOKEYREADER_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/EncryptionKeyInfo.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/Result.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="classpulsar_1_1_crypto_key_reader.html"> 31</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a>();</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a>();</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">virtual</span> <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getPublicKey(<span class="keyword">const</span> std::string& keyName, std::map<std::string, std::string>& metadata,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>& encKeyInfo) <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">virtual</span> <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getPrivateKey(<span class="keyword">const</span> std::string& keyName, std::map<std::string, std::string>& metadata,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>& encKeyInfo) <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }; <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">typedef</span> std::shared_ptr<CryptoKeyReader> CryptoKeyReaderPtr;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classpulsar_1_1_default_crypto_key_reader.html"> 70</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_default_crypto_key_reader.html">DefaultCryptoKeyReader</a> : <span class="keyword">public</span> <a class="code" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a> {</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  std::string publicKeyPath_;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  std::string privateKeyPath_;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordtype">void</span> readFile(std::string fileName, std::string& fileContents) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classpulsar_1_1_default_crypto_key_reader.html">DefaultCryptoKeyReader</a>(<span class="keyword">const</span> std::string& publicKeyPath, <span class="keyword">const</span> std::string& privateKeyPath);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  ~<a class="code" href="classpulsar_1_1_default_crypto_key_reader.html">DefaultCryptoKeyReader</a>();</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getPublicKey(<span class="keyword">const</span> std::string& keyName, std::map<std::string, std::string>& metadata,</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>& encKeyInfo) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getPrivateKey(<span class="keyword">const</span> std::string& keyName, std::map<std::string, std::string>& metadata,</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>& encKeyInfo) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">static</span> CryptoKeyReaderPtr create(<span class="keyword">const</span> std::string& publicKeyPath, <span class="keyword">const</span> std::string& privateKeyPath);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> }; <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor">#endif </span><span class="comment">/* CRYPTOKEYREADER_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_default_crypto_key_reader_html"><div class="ttname"><a href="classpulsar_1_1_default_crypto_key_reader.html">pulsar::DefaultCryptoKeyReader</a></div><div class="ttdef"><b>Definition:</b> CryptoKeyReader.h:70</div></div>
+<div class="ttc" id="aclasspulsar_1_1_encryption_key_info_html"><div class="ttname"><a href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a></div><div class="ttdef"><b>Definition:</b> EncryptionKeyInfo.h:35</div></div>
+<div class="ttc" id="anamespacepulsar_html_ae85314d6b9e8afd831cf8c66705f2dbb"><div class="ttname"><a href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition:</b> Result.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_crypto_key_reader_html"><div class="ttname"><a href="classpulsar_1_1_crypto_key_reader.html">pulsar::CryptoKeyReader</a></div><div class="ttdef"><b>Definition:</b> CryptoKeyReader.h:31</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_dead_letter_policy_8h_source.html b/static/api/cpp/3.2.x/_dead_letter_policy_8h_source.html
new file mode 100644
index 00000000000..acecc2fc8a4
--- /dev/null
+++ b/static/api/cpp/3.2.x/_dead_letter_policy_8h_source.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/DeadLetterPolicy.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">DeadLetterPolicy.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef DEAD_LETTER_POLICY_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define DEAD_LETTER_POLICY_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">struct </span>DeadLetterPolicyImpl;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classpulsar_1_1_dead_letter_policy.html"> 36</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a>();</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> std::string& getDeadLetterTopic() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordtype">int</span> getMaxRedeliverCount() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">const</span> std::string& getInitialSubscriptionName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_dead_letter_policy_builder.html">DeadLetterPolicyBuilder</a>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">typedef</span> std::shared_ptr<DeadLetterPolicyImpl> DeadLetterPolicyImplPtr;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  DeadLetterPolicyImplPtr impl_;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a>(<span class="keyword">const</span> DeadLetterPolicyImplPtr& impl);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> };</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#endif </span><span class="comment">/* DEAD_LETTER_POLICY_HPP_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_dead_letter_policy_html"><div class="ttname"><a href="classpulsar_1_1_dead_letter_policy.html">pulsar::DeadLetterPolicy</a></div><div class="ttdef"><b>Definition:</b> DeadLetterPolicy.h:36</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_dead_letter_policy_builder_html"><div class="ttname"><a href="classpulsar_1_1_dead_letter_policy_builder.html">pulsar::DeadLetterPolicyBuilder</a></div><div class="ttdef"><b>Definition:</b> DeadLetterPolicyBuilder.h:44</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_dead_letter_policy_builder_8h_source.html b/static/api/cpp/3.2.x/_dead_letter_policy_builder_8h_source.html
new file mode 100644
index 00000000000..d69bee88ae4
--- /dev/null
+++ b/static/api/cpp/3.2.x/_dead_letter_policy_builder_8h_source.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/DeadLetterPolicyBuilder.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">DeadLetterPolicyBuilder.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef DEAD_LETTER_POLICY_BUILD_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define DEAD_LETTER_POLICY_BUILD_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/DeadLetterPolicy.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">struct </span>DeadLetterPolicyImpl;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classpulsar_1_1_dead_letter_policy_builder.html"> 44</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_dead_letter_policy_builder.html">DeadLetterPolicyBuilder</a> {</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classpulsar_1_1_dead_letter_policy_builder.html">DeadLetterPolicyBuilder</a>();</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classpulsar_1_1_dead_letter_policy_builder.html">DeadLetterPolicyBuilder</a>& deadLetterTopic(<span class="keyword">const</span> std::string& deadLetterTopic);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classpulsar_1_1_dead_letter_policy_builder.html">DeadLetterPolicyBuilder</a>& maxRedeliverCount(<span class="keywordtype">int</span> maxRedeliverCount);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classpulsar_1_1_dead_letter_policy_builder.html">DeadLetterPolicyBuilder</a>& initialSubscriptionName(<span class="keyword">const</span> std::string& initialSubscriptionName);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a> build();</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  std::shared_ptr<DeadLetterPolicyImpl> impl_;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> };</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#endif </span><span class="comment">/* DEAD_LETTER_POLICY_BUILD_HPP_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_dead_letter_policy_html"><div class="ttname"><a href="classpulsar_1_1_dead_letter_policy.html">pulsar::DeadLetterPolicy</a></div><div class="ttdef"><b>Definition:</b> DeadLetterPolicy.h:36</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_dead_letter_policy_builder_html"><div class="ttname"><a href="classpulsar_1_1_dead_letter_policy_builder.html">pulsar::DeadLetterPolicyBuilder</a></div><div class="ttdef"><b>Definition:</b> DeadLetterPolicyBuilder.h:44</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_deprecated_exception_8h_source.html b/static/api/cpp/3.2.x/_deprecated_exception_8h_source.html
new file mode 100644
index 00000000000..f54bad159f5
--- /dev/null
+++ b/static/api/cpp/3.2.x/_deprecated_exception_8h_source.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/DeprecatedException.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">DeprecatedException.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef DEPRECATED_EXCEPTION_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define DEPRECATED_EXCEPTION_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdexcept></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_deprecated_exception.html"> 28</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a> : <span class="keyword">public</span> std::runtime_error {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a>(<span class="keyword">const</span> std::string& __arg);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">static</span> <span class="keyword">const</span> std::string message_prefix;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> };</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#endif // DEPRECATED_EXCEPTION_HPP_</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_deprecated_exception_html"><div class="ttname"><a href="classpulsar_1_1_deprecated_exception.html">pulsar::DeprecatedException</a></div><div class="ttdef"><b>Definition:</b> DeprecatedException.h:28</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_encryption_key_info_8h_source.html b/static/api/cpp/3.2.x/_encryption_key_info_8h_source.html
new file mode 100644
index 00000000000..8d6c3f59dab
--- /dev/null
+++ b/static/api/cpp/3.2.x/_encryption_key_info_8h_source.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/EncryptionKeyInfo.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">EncryptionKeyInfo.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef ENCRYPTIONKEYINFO_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define ENCRYPTIONKEYINFO_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <iostream></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <map></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">class </span>EncryptionKeyInfoImpl;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">typedef</span> std::shared_ptr<EncryptionKeyInfoImpl> EncryptionKeyInfoImplPtr;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classpulsar_1_1_encryption_key_info.html"> 35</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a> {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="comment">/*</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment"> * This object contains the encryption key and corresponding metadata which contains</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> * additional information about the key such as version, timestammp</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">typedef</span> std::map<std::string, std::string> StringMap;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>();</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>(std::string key, StringMap& metadata);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  std::string& getKey();</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordtype">void</span> setKey(std::string key);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  StringMap& getMetadata(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordtype">void</span> setMetadata(StringMap& metadata);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>(EncryptionKeyInfoImplPtr);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  EncryptionKeyInfoImplPtr impl_;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> };</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> } <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#endif </span><span class="comment">/* ENCRYPTIONKEYINFO_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_encryption_key_info_html"><div class="ttname"><a href="classpulsar_1_1_encryption_key_info.html">pulsar::EncryptionKeyInfo</a></div><div class="ttdef"><b>Definition:</b> EncryptionKeyInfo.h:35</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_file_logger_factory_8h_source.html b/static/api/cpp/3.2.x/_file_logger_factory_8h_source.html
new file mode 100644
index 00000000000..0abbb4d6ec3
--- /dev/null
+++ b/static/api/cpp/3.2.x/_file_logger_factory_8h_source.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/FileLoggerFactory.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">FileLoggerFactory.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/Logger.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">class </span>FileLoggerFactoryImpl;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classpulsar_1_1_file_logger_factory.html"> 47</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_file_logger_factory.html">FileLoggerFactory</a> : <span class="keyword">public</span> <a class="code" href="classpulsar_1_1_logger_factory.html">pulsar::LoggerFactory</a> {</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classpulsar_1_1_file_logger_factory.html">FileLoggerFactory</a>(Logger::Level level, <span class="keyword">const</span> std::string& logFilePath);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  ~<a class="code" href="classpulsar_1_1_file_logger_factory.html">FileLoggerFactory</a>();</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classpulsar_1_1_logger.html">pulsar::Logger</a>* getLogger(<span class="keyword">const</span> std::string& filename) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  std::unique_ptr<FileLoggerFactoryImpl> impl_;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> };</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> } <span class="comment">// namespace pulsar</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_logger_factory_html"><div class="ttname"><a href="classpulsar_1_1_logger_factory.html">pulsar::LoggerFactory</a></div><div class="ttdef"><b>Definition:</b> Logger.h:58</div></div>
+<div class="ttc" id="aclasspulsar_1_1_logger_html"><div class="ttname"><a href="classpulsar_1_1_logger.html">pulsar::Logger</a></div><div class="ttdef"><b>Definition:</b> Logger.h:28</div></div>
+<div class="ttc" id="aclasspulsar_1_1_file_logger_factory_html"><div class="ttname"><a href="classpulsar_1_1_file_logger_factory.html">pulsar::FileLoggerFactory</a></div><div class="ttdef"><b>Definition:</b> FileLoggerFactory.h:47</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_initial_position_8h_source.html b/static/api/cpp/3.2.x/_initial_position_8h_source.html
new file mode 100644
index 00000000000..d24c258a95b
--- /dev/null
+++ b/static/api/cpp/3.2.x/_initial_position_8h_source.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/InitialPosition.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">InitialPosition.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_CPP_INITIAL_POSITION_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_CPP_INITIAL_POSITION_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">enum</span> InitialPosition</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  InitialPositionLatest,</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  InitialPositionEarliest</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> };</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> }</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#endif // PULSAR_CPP_INITIAL_POSITION_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_key_shared_policy_8h_source.html b/static/api/cpp/3.2.x/_key_shared_policy_8h_source.html
new file mode 100644
index 00000000000..897ae7ca9b8
--- /dev/null
+++ b/static/api/cpp/3.2.x/_key_shared_policy_8h_source.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/KeySharedPolicy.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">KeySharedPolicy.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <utility></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04"> 32</a></span> <span class="keyword">enum</span> <a class="code" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04">KeySharedMode</a></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04a1dce3e502d8e018e90f97c07b37cde1f"> 38</a></span>  <a class="code" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04a1dce3e502d8e018e90f97c07b37cde1f">AUTO_SPLIT</a> = 0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04aed98d14aabee0f3bc70a0cc7723e5b16"> 44</a></span>  <a class="code" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04aed98d14aabee0f3bc70a0cc7723e5b16">STICKY</a> = 1</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> };</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">struct </span>KeySharedPolicyImpl;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> std::pair<int, int> StickyRange;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> std::vector<StickyRange> StickyRanges;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_shared_policy.html"> 52</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a> {</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>();</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  ~<a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>();</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>&);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>& operator=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>&);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a> clone() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>& setKeySharedMode(<a class="code" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04">KeySharedMode</a> keySharedMode);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04">KeySharedMode</a> getKeySharedMode() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>& setAllowOutOfOrderDelivery(<span class="keywordtype">bool</span> allowOutOfOrderDelivery);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordtype">bool</span> isAllowOutOfOrderDelivery() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>& setStickyRanges(std::initializer_list<StickyRange> ranges);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>& setStickyRanges(<span class="keyword">const</span> StickyRanges& ranges);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  StickyRanges getStickyRanges() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  std::shared_ptr<KeySharedPolicyImpl> impl_;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> };</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> } <span class="comment">// namespace pulsar</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_key_shared_policy_html"><div class="ttname"><a href="classpulsar_1_1_key_shared_policy.html">pulsar::KeySharedPolicy</a></div><div class="ttdef"><b>Definition:</b> KeySharedPolicy.h:52</div></div>
+<div class="ttc" id="anamespacepulsar_html_a499d1327931169d068b9b353f106dd04"><div class="ttname"><a href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04">pulsar::KeySharedMode</a></div><div class="ttdeci">KeySharedMode</div><div class="ttdef"><b>Definition:</b> KeySharedPolicy.h:32</div></div>
+<div class="ttc" id="anamespacepulsar_html_a499d1327931169d068b9b353f106dd04a1dce3e502d8e018e90f97c07b37cde1f"><div class="ttname"><a href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04a1dce3e502d8e018e90f97c07b37cde1f">pulsar::AUTO_SPLIT</a></div><div class="ttdeci">@ AUTO_SPLIT</div><div class="ttdef"><b>Definition:</b> KeySharedPolicy.h:38</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="anamespacepulsar_html_a499d1327931169d068b9b353f106dd04aed98d14aabee0f3bc70a0cc7723e5b16"><div class="ttname"><a href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04aed98d14aabee0f3bc70a0cc7723e5b16">pulsar::STICKY</a></div><div class="ttdeci">@ STICKY</div><div class="ttdef"><b>Definition:</b> KeySharedPolicy.h:44</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_key_value_8h_source.html b/static/api/cpp/3.2.x/_key_value_8h_source.html
new file mode 100644
index 00000000000..9ceeedfee58
--- /dev/null
+++ b/static/api/cpp/3.2.x/_key_value_8h_source.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/KeyValue.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">KeyValue.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef KEY_VALUE_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define KEY_VALUE_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "Schema.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "defines.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">class </span>KeyValueImpl;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_value.html"> 35</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_key_value.html">KeyValue</a> {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classpulsar_1_1_key_value.html">KeyValue</a>(std::string &&key, std::string &&value);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  std::string getKey() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">const</span> <span class="keywordtype">void</span> *getValue() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordtype">size_t</span> getValueLength() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  std::string getValueAsString() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">typedef</span> std::shared_ptr<KeyValueImpl> KeyValueImplPtr;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classpulsar_1_1_key_value.html">KeyValue</a>(KeyValueImplPtr keyValueImplPtr);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  KeyValueImplPtr impl_;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_message.html">Message</a>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> };</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#endif </span><span class="comment">/* KEY_VALUE_HPP_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:43</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_value_html"><div class="ttname"><a href="classpulsar_1_1_key_value.html">pulsar::KeyValue</a></div><div class="ttdef"><b>Definition:</b> KeyValue.h:35</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html"><div class="ttname"><a href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></div><div class="ttdef"><b>Definition:</b> MessageBuilder.h:33</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_logger_8h_source.html b/static/api/cpp/3.2.x/_logger_8h_source.html
new file mode 100644
index 00000000000..39b2a2690f2
--- /dev/null
+++ b/static/api/cpp/3.2.x/_logger_8h_source.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/Logger.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">Logger.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_logger.html"> 28</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_logger.html">Logger</a> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">enum</span> Level</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  LEVEL_DEBUG = 0,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  LEVEL_INFO = 1,</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  LEVEL_WARN = 2,</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  LEVEL_ERROR = 3</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  };</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_logger.html">Logger</a>() {}</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isEnabled(Level level) = 0;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> log(Level level, <span class="keywordtype">int</span> line, <span class="keyword">const</span> std::string& message) = 0;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> };</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classpulsar_1_1_logger_factory.html"> 58</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a> {</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a>() {}</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">virtual</span> <a class="code" href="classpulsar_1_1_logger.html">Logger</a>* getLogger(<span class="keyword">const</span> std::string& fileName) = 0;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> };</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> } <span class="comment">// namespace pulsar</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_logger_factory_html"><div class="ttname"><a href="classpulsar_1_1_logger_factory.html">pulsar::LoggerFactory</a></div><div class="ttdef"><b>Definition:</b> Logger.h:58</div></div>
+<div class="ttc" id="aclasspulsar_1_1_logger_html"><div class="ttname"><a href="classpulsar_1_1_logger.html">pulsar::Logger</a></div><div class="ttdef"><b>Definition:</b> Logger.h:28</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_message_batch_8h_source.html b/static/api/cpp/3.2.x/_message_batch_8h_source.html
new file mode 100644
index 00000000000..5ce75ad1ecb
--- /dev/null
+++ b/static/api/cpp/3.2.x/_message_batch_8h_source.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/MessageBatch.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MessageBatch.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifndef LIB_MESSAGE_BATCH_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#define LIB_MESSAGE_BATCH_H</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/Message.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_batch.html"> 29</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_message_batch.html">MessageBatch</a> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="classpulsar_1_1_message_batch.html">MessageBatch</a>();</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="classpulsar_1_1_message_batch.html">MessageBatch</a>& withMessageId(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& messageId);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="classpulsar_1_1_message_batch.html">MessageBatch</a>& parseFrom(<span class="keyword">const</span> std::string& payload, uint32_t batchSize);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="classpulsar_1_1_message_batch.html">MessageBatch</a>& parseFrom(<span class="keyword">const</span> SharedBuffer& payload, uint32_t batchSize);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">const</span> std::vector<Message>& messages();</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">typedef</span> std::shared_ptr<MessageImpl> MessageImplPtr;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  MessageImplPtr impl_;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classpulsar_1_1_message.html">Message</a> batchMessage_;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  std::vector<Message> batch_;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> };</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif // LIB_MESSAGE_BATCH_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_message_id_html"><div class="ttname"><a href="classpulsar_1_1_message_id.html">pulsar::MessageId</a></div><div class="ttdef"><b>Definition:</b> MessageId.h:34</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_batch_html"><div class="ttname"><a href="classpulsar_1_1_message_batch.html">pulsar::MessageBatch</a></div><div class="ttdef"><b>Definition:</b> MessageBatch.h:29</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:43</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_message_builder_8h_source.html b/static/api/cpp/3.2.x/_message_builder_8h_source.html
new file mode 100644
index 00000000000..b05092e58a5
--- /dev/null
+++ b/static/api/cpp/3.2.x/_message_builder_8h_source.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/MessageBuilder.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MessageBuilder.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef MESSAGE_BUILDER_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define MESSAGE_BUILDER_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/KeyValue.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/Message.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <chrono></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html"> 33</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> {</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>();</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">typedef</span> std::map<std::string, std::string> StringMap;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classpulsar_1_1_message.html">Message</a> build();</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setContent(<span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setContent(<span class="keyword">const</span> std::string& data);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setContent(std::string&& data);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setContent(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_key_value.html">KeyValue</a>& data);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setAllocatedContent(<span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setProperty(<span class="keyword">const</span> std::string& name, <span class="keyword">const</span> std::string& value);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setProperties(<span class="keyword">const</span> StringMap& properties);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setPartitionKey(<span class="keyword">const</span> std::string& partitionKey);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setOrderingKey(<span class="keyword">const</span> std::string& orderingKey);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setDeliverAfter(<span class="keyword">const</span> std::chrono::milliseconds delay);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setDeliverAt(uint64_t deliveryTimestamp);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setEventTimestamp(uint64_t eventTimestamp);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setSequenceId(int64_t sequenceId);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& setReplicationClusters(<span class="keyword">const</span> std::vector<std::string>& clusters);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& disableReplication(<span class="keywordtype">bool</span> flag);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>& create();</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* data() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  std::size_t size() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordtype">void</span> checkMetadata();</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">static</span> std::shared_ptr<MessageImpl> createMessageImpl();</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  Message::MessageImplPtr impl_;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> };</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:43</div></div>
+<div class="ttc" id="aclasspulsar_1_1_key_value_html"><div class="ttname"><a href="classpulsar_1_1_key_value.html">pulsar::KeyValue</a></div><div class="ttdef"><b>Definition:</b> KeyValue.h:35</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html"><div class="ttname"><a href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></div><div class="ttdef"><b>Definition:</b> MessageBuilder.h:33</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_message_id_8h_source.html b/static/api/cpp/3.2.x/_message_id_8h_source.html
new file mode 100644
index 00000000000..f6c828a99ef
--- /dev/null
+++ b/static/api/cpp/3.2.x/_message_id_8h_source.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/MessageId.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MessageId.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef MESSAGE_ID_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define MESSAGE_ID_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdint.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <iosfwd></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">class </span>MessageIdImpl;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id.html"> 34</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a> {</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& operator=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>();</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>(int32_t partition, int64_t ledgerId, int64_t entryId, int32_t batchIndex);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& earliest();</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& latest();</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordtype">void</span> serialize(std::string& result) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">const</span> std::string& getTopicName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordtype">void</span> setTopicName(<span class="keyword">const</span> std::string& topicName);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">static</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a> deserialize(<span class="keyword">const</span> std::string& serializedMessageId);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// These functions compare the message order as stored in bookkeeper</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordtype">bool</span> operator<(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordtype">bool</span> operator<=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordtype">bool</span> operator>(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordtype">bool</span> operator>=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  int64_t ledgerId() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  int64_t entryId() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  int32_t batchIndex() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  int32_t partition() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  int32_t batchSize() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">friend</span> <span class="keyword">class </span>ConsumerImpl;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keyword">friend</span> <span class="keyword">class </span>ReaderImpl;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_message.html">Message</a>;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">friend</span> <span class="keyword">class </span>MessageImpl;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">friend</span> <span class="keyword">class </span>Commands;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keyword">friend</span> <span class="keyword">class </span>PartitionedProducerImpl;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">friend</span> <span class="keyword">class </span>MultiTopicsConsumerImpl;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">friend</span> <span class="keyword">class </span>UnAckedMessageTrackerEnabled;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">friend</span> <span class="keyword">class </span>BatchAcknowledgementTracker;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">friend</span> <span class="keyword">class </span>NegativeAcksTracker;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a>;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">friend</span> <span class="keyword">class </span>ChunkMessageIdImpl;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordtype">void</span> setTopicName(<span class="keyword">const</span> std::shared_ptr<std::string>& topic);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">friend</span> PULSAR_PUBLIC std::ostream& operator<<(std::ostream& s, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& messageId);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">typedef</span> std::shared_ptr<MessageIdImpl> MessageIdImplPtr;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  MessageIdImplPtr impl_;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>(<span class="keyword">const</span> MessageIdImplPtr& impl);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> };</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">typedef</span> std::vector<MessageId> MessageIdList;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor">#endif // MESSAGE_ID_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_message_id_html"><div class="ttname"><a href="classpulsar_1_1_message_id.html">pulsar::MessageId</a></div><div class="ttdef"><b>Definition:</b> MessageId.h:34</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_builder_html"><div class="ttname"><a href="classpulsar_1_1_message_id_builder.html">pulsar::MessageIdBuilder</a></div><div class="ttdef"><b>Definition:</b> MessageIdBuilder.h:54</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:43</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_message_id_builder_8h_source.html b/static/api/cpp/3.2.x/_message_id_builder_8h_source.html
new file mode 100644
index 00000000000..db1627de44c
--- /dev/null
+++ b/static/api/cpp/3.2.x/_message_id_builder_8h_source.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/MessageIdBuilder.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MessageIdBuilder.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <pulsar/MessageId.h></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span>proto {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">class </span>MessageIdData;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> }</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id_builder.html"> 54</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a> {</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a>();</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">static</span> <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a> from(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& messageId);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">static</span> <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a> from(<span class="keyword">const</span> proto::MessageIdData& messageIdData);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a> build() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a>& ledgerId(int64_t ledgerId);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a>& entryId(int64_t entryId);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a>& partition(int32_t partition);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a>& batchIndex(int32_t batchIndex);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a>& batchSize(int32_t batchSize);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  std::shared_ptr<MessageIdImpl> impl_;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> };</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> } <span class="comment">// namespace pulsar</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_message_id_html"><div class="ttname"><a href="classpulsar_1_1_message_id.html">pulsar::MessageId</a></div><div class="ttdef"><b>Definition:</b> MessageId.h:34</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_id_builder_html"><div class="ttname"><a href="classpulsar_1_1_message_id_builder.html">pulsar::MessageIdBuilder</a></div><div class="ttdef"><b>Definition:</b> MessageIdBuilder.h:54</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_message_routing_policy_8h_source.html b/static/api/cpp/3.2.x/_message_routing_policy_8h_source.html
new file mode 100644
index 00000000000..fed3fce8fb2
--- /dev/null
+++ b/static/api/cpp/3.2.x/_message_routing_policy_8h_source.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/MessageRoutingPolicy.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MessageRoutingPolicy.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_MESSAGE_ROUTING_POLICY_HEADER_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_MESSAGE_ROUTING_POLICY_HEADER_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/DeprecatedException.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/Message.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <pulsar/TopicMetadata.h></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * Implement this interface to define custom policy giving message to</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * partition mapping.</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_routing_policy.html"> 35</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a> {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a>() {}</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_routing_policy.html#a8071e740dd2e44ae75a91901e776c310"> 42</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classpulsar_1_1_message_routing_policy.html#a8071e740dd2e44ae75a91901e776c310">getPartition</a>(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>& msg) {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">throw</span> <a class="code" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a>(</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="stringliteral">"Use int getPartition(const Message& msg,"</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="stringliteral">" const TopicMetadata& topicMetadata)"</span>);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_routing_policy.html#a080148f08d302d032b0f49d68ada73de"> 55</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classpulsar_1_1_message_routing_policy.html#a080148f08d302d032b0f49d68ada73de">getPartition</a>(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>& msg, <spa [...]
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">return</span> getPartition(msg);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> };</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">typedef</span> std::shared_ptr<MessageRoutingPolicy> MessageRoutingPolicyPtr;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#endif // PULSAR_MESSAGE_ROUTING_POLICY_HEADER_</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_message_routing_policy_html_a8071e740dd2e44ae75a91901e776c310"><div class="ttname"><a href="classpulsar_1_1_message_routing_policy.html#a8071e740dd2e44ae75a91901e776c310">pulsar::MessageRoutingPolicy::getPartition</a></div><div class="ttdeci">virtual int getPartition(const Message &msg)</div><div class="ttdef"><b>Definition:</b> MessageRoutingPolicy.h:42</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_routing_policy_html_a080148f08d302d032b0f49d68ada73de"><div class="ttname"><a href="classpulsar_1_1_message_routing_policy.html#a080148f08d302d032b0f49d68ada73de">pulsar::MessageRoutingPolicy::getPartition</a></div><div class="ttdeci">virtual int getPartition(const Message &msg, const TopicMetadata &topicMetadata)</div><div class="ttdef"><b>Definition:</b> MessageRoutingPolicy.h:55</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_routing_policy_html"><div class="ttname"><a href="classpulsar_1_1_message_routing_policy.html">pulsar::MessageRoutingPolicy</a></div><div class="ttdef"><b>Definition:</b> MessageRoutingPolicy.h:35</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:43</div></div>
+<div class="ttc" id="aclasspulsar_1_1_topic_metadata_html"><div class="ttname"><a href="classpulsar_1_1_topic_metadata.html">pulsar::TopicMetadata</a></div><div class="ttdef"><b>Definition:</b> TopicMetadata.h:28</div></div>
+<div class="ttc" id="aclasspulsar_1_1_deprecated_exception_html"><div class="ttname"><a href="classpulsar_1_1_deprecated_exception.html">pulsar::DeprecatedException</a></div><div class="ttdef"><b>Definition:</b> DeprecatedException.h:28</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_producer_configuration_8h_source.html b/static/api/cpp/3.2.x/_producer_configuration_8h_source.html
new file mode 100644
index 00000000000..fd55160dd65
--- /dev/null
+++ b/static/api/cpp/3.2.x/_producer_configuration_8h_source.html
@@ -0,0 +1,263 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/ProducerConfiguration.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ProducerConfiguration.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_PRODUCERCONFIGURATION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_PRODUCERCONFIGURATION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <pulsar/CompressionType.h></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/CryptoKeyReader.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/Message.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <pulsar/MessageRoutingPolicy.h></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <pulsar/ProducerCryptoFailureAction.h></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <pulsar/ProducerInterceptor.h></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <pulsar/Result.h></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <pulsar/Schema.h></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <functional></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <set></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">typedef</span> std::function<void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>, <span class="keyword">const</span> MessageId& messageId)> SendCallback;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">typedef</span> std::function<void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>)> CloseCallback;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">struct </span>ProducerConfigurationImpl;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html"> 45</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a> {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">enum</span> PartitionsRoutingMode</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  UseSinglePartition,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  RoundRobinDistribution,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  CustomPartition</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  };</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">enum</span> HashingScheme</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  {</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  Murmur3_32Hash,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  BoostHash,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  JavaStringHash</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  };</div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#adeed584c68f90401147e31091e54c5e5"> 59</a></span>  <span class="keyword">enum</span> <a class="code" href="classpulsar_1_1_producer_configuration.html#adeed584c68f90401147e31091e54c5e5">BatchingType</a></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#adeed584c68f90401147e31091e54c5e5af2acbf3fc9b0dc49d8af65a148d22e27"> 70</a></span>  <a class="code" href="classpulsar_1_1_producer_configuration.html#adeed584c68f90401147e31091e54c5e5af2acbf3fc9b0dc49d8af65a148d22e27">DefaultBatching</a>,</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#adeed584c68f90401147e31091e54c5e5a291402f9cfb8e9f0fa888722930233ea"> 81</a></span>  KeyBasedBatching</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  };</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ab217b341d1fa532552bcd03064a39cea"> 83</a></span>  <span class="keyword">enum</span> <a class="code" href="classpulsar_1_1_producer_configuration.html#ab217b341d1fa532552bcd03064a39cea">ProducerAccessMode</a></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ab217b341d1fa532552bcd03064a39ceaa73f8f203fbd16f91a5b123a362bf13e5"> 88</a></span>  Shared = 0,</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ab217b341d1fa532552bcd03064a39ceaabd2cd3c2f4a00e0dc5d5aeb07404831d"> 93</a></span>  Exclusive = 1,</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ab217b341d1fa532552bcd03064a39ceaa9ba09474e854bd3d7094580ed7a3ff29"> 98</a></span>  WaitForExclusive = 2,</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html#ab217b341d1fa532552bcd03064a39ceaae142b6a80e588880365caa719fe6ebd8"> 104</a></span>  ExclusiveWithFencing = 3</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  };</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>();</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  ~<a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>();</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& operator=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setProducerName(<span class="keyword">const</span> std::string& producerName);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">const</span> std::string& getProducerName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setSchema(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>& schemaInfo);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>& getSchema() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  </div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setSendTimeout(<span class="keywordtype">int</span> sendTimeoutMs);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  </div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordtype">int</span> getSendTimeout() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setInitialSequenceId(int64_t initialSequenceId);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  int64_t getInitialSequenceId() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setCompressionType(CompressionType compressionType);</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  CompressionType getCompressionType() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setMaxPendingMessages(<span class="keywordtype">int</span> maxPendingMessages);</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  </div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordtype">int</span> getMaxPendingMessages() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  </div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setMaxPendingMessagesAcrossPartitions(<span class="keywordtype">int</span> maxPendingMessagesAcrossPartitions);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  </div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordtype">int</span> getMaxPendingMessagesAcrossPartitions() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setPartitionsRoutingMode(<span class="keyword">const</span> PartitionsRoutingMode& mode);</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  PartitionsRoutingMode getPartitionsRoutingMode() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  </div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setMessageRouter(<span class="keyword">const</span> MessageRoutingPolicyPtr& router);</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  </div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keyword">const</span> MessageRoutingPolicyPtr& getMessageRouterPtr() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  </div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setHashingScheme(<span class="keyword">const</span> HashingScheme& scheme);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  </div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  HashingScheme getHashingScheme() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  </div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setLazyStartPartitionedProducers(<span class="keywordtype">bool</span>);</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  </div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordtype">bool</span> getLazyStartPartitionedProducers() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  </div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setBlockIfQueueFull(<span class="keywordtype">bool</span>);</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  </div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordtype">bool</span> getBlockIfQueueFull() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  </div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="comment">// Zero queue size feature will not be supported on consumer end if batching is enabled</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setBatchingEnabled(<span class="keyword">const</span> <span class="keywordtype">bool</span>& batchingEnabled);</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  </div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span>& getBatchingEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  </div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setBatchingMaxMessages(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>& batchingMaxMessages);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  </div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>& getBatchingMaxMessages() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  </div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setBatchingMaxAllowedSizeInBytes(</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>& batchingMaxAllowedSizeInBytes);</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  </div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>& getBatchingMaxAllowedSizeInBytes() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  </div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setBatchingMaxPublishDelayMs(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>& batchingMaxPublishDelayMs);</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  </div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>& getBatchingMaxPublishDelayMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  </div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setBatchingType(BatchingType batchingType);</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  </div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  BatchingType getBatchingType() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  </div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keyword">const</span> CryptoKeyReaderPtr getCryptoKeyReader() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  </div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setCryptoKeyReader(CryptoKeyReaderPtr cryptoKeyReader);</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  </div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  ProducerCryptoFailureAction getCryptoFailureAction() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  </div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setCryptoFailureAction(ProducerCryptoFailureAction action);</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  </div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keyword">const</span> std::set<std::string>& getEncryptionKeys() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  </div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordtype">bool</span> isEncryptionEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  </div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& addEncryptionKey(std::string key);</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  </div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordtype">bool</span> hasProperty(<span class="keyword">const</span> std::string& name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  </div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keyword">const</span> std::string& getProperty(<span class="keyword">const</span> std::string& name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  </div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  std::map<std::string, std::string>& getProperties() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  </div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setProperty(<span class="keyword">const</span> std::string& name, <span class="keyword">const</span> std::string& value);</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  </div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setProperties(<span class="keyword">const</span> std::map<std::string, std::string>& properties);</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  </div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setChunkingEnabled(<span class="keywordtype">bool</span> chunkingEnabled);</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  </div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordtype">bool</span> isChunkingEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  </div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& setAccessMode(<span class="keyword">const</span> ProducerAccessMode& accessMode);</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  </div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  ProducerAccessMode getAccessMode() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  </div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>& intercept(<span class="keyword">const</span> std::vector<ProducerInterceptorPtr>& interceptors);</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  </div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keyword">const</span> std::vector<ProducerInterceptorPtr>& getInterceptors() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  </div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  std::shared_ptr<ProducerConfigurationImpl> impl_;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  </div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keyword">friend</span> <span class="keyword">class </span>ConsumerImpl;</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keyword">friend</span> <span class="keyword">class </span>ProducerImpl;</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> };</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor">#endif </span><span class="comment">/* PULSAR_PRODUCERCONFIGURATION_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespacepulsar_html_ae85314d6b9e8afd831cf8c66705f2dbb"><div class="ttname"><a href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition:</b> Result.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_adeed584c68f90401147e31091e54c5e5af2acbf3fc9b0dc49d8af65a148d22e27"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#adeed584c68f90401147e31091e54c5e5af2acbf3fc9b0dc49d8af65a148d22e27">pulsar::ProducerConfiguration::DefaultBatching</a></div><div class="ttdeci">@ DefaultBatching</div><div class="ttdef"><b>Definition:</b> ProducerConfiguration.h:70</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_adeed584c68f90401147e31091e54c5e5"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#adeed584c68f90401147e31091e54c5e5">pulsar::ProducerConfiguration::BatchingType</a></div><div class="ttdeci">BatchingType</div><div class="ttdef"><b>Definition:</b> ProducerConfiguration.h:59</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html_ab217b341d1fa532552bcd03064a39cea"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html#ab217b341d1fa532552bcd03064a39cea">pulsar::ProducerConfiguration::ProducerAccessMode</a></div><div class="ttdeci">ProducerAccessMode</div><div class="ttdef"><b>Definition:</b> ProducerConfiguration.h:83</div></div>
+<div class="ttc" id="aclasspulsar_1_1_schema_info_html"><div class="ttname"><a href="classpulsar_1_1_schema_info.html">pulsar::SchemaInfo</a></div><div class="ttdef"><b>Definition:</b> Schema.h:146</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_configuration_html"><div class="ttname"><a href="classpulsar_1_1_producer_configuration.html">pulsar::ProducerConfiguration</a></div><div class="ttdef"><b>Definition:</b> ProducerConfiguration.h:45</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_producer_crypto_failure_action_8h_source.html b/static/api/cpp/3.2.x/_producer_crypto_failure_action_8h_source.html
new file mode 100644
index 00000000000..078bc91a061
--- /dev/null
+++ b/static/api/cpp/3.2.x/_producer_crypto_failure_action_8h_source.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/ProducerCryptoFailureAction.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ProducerCryptoFailureAction.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PRODUCERCRYPTOFAILUREACTION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PRODUCERCRYPTOFAILUREACTION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">enum class</span> ProducerCryptoFailureAction</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  FAIL, <span class="comment">// This is the default option to fail send if crypto operation fails</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  SEND <span class="comment">// Ignore crypto failure and proceed with sending unencrypted messages</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> };</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> } <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#endif </span><span class="comment">/* PRODUCERCRYPTOFAILUREACTION_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_producer_interceptor_8h_source.html b/static/api/cpp/3.2.x/_producer_interceptor_8h_source.html
new file mode 100644
index 00000000000..eea6365716e
--- /dev/null
+++ b/static/api/cpp/3.2.x/_producer_interceptor_8h_source.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/ProducerInterceptor.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ProducerInterceptor.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifndef PULSAR_PRODUCER_INTERCEPTOR_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#define PULSAR_PRODUCER_INTERCEPTOR_H</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/Message.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <pulsar/Result.h></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">class </span>Producer;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_interceptor.html"> 42</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_producer_interceptor.html">ProducerInterceptor</a> {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_producer_interceptor.html">ProducerInterceptor</a>() {}</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_interceptor.html#a59d5f25b142cd69ebbca13f22842120b"> 49</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classpulsar_1_1_producer_interceptor.html#a59d5f25b142cd69ebbca13f22842120b">close</a>() {}</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">virtual</span> <a class="code" href="classpulsar_1_1_message.html">Message</a> beforeSend(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_producer.html">Producer</a>& producer, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>& message) = 0;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> onSendAcknowledgement(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_producer.html">Producer</a>& producer, <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>&a [...]
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>& messageID) = 0;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_interceptor.html#aa4fbfa721d9d9985a304c3d2ce924202"> 108</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classpulsar_1_1_producer_interceptor.html#aa4fbfa721d9d9985a304c3d2ce924202">onPartitionsChange</a>(<span class="keyword">const</span> std::string& topicName, <span class="keywordtype">int</span> partitions [...]
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> };</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">typedef</span> std::shared_ptr<ProducerInterceptor> ProducerInterceptorPtr;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#endif // PULSAR_PRODUCER_INTERCEPTOR_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_message_id_html"><div class="ttname"><a href="classpulsar_1_1_message_id.html">pulsar::MessageId</a></div><div class="ttdef"><b>Definition:</b> MessageId.h:34</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_interceptor_html_a59d5f25b142cd69ebbca13f22842120b"><div class="ttname"><a href="classpulsar_1_1_producer_interceptor.html#a59d5f25b142cd69ebbca13f22842120b">pulsar::ProducerInterceptor::close</a></div><div class="ttdeci">virtual void close()</div><div class="ttdef"><b>Definition:</b> ProducerInterceptor.h:49</div></div>
+<div class="ttc" id="anamespacepulsar_html_ae85314d6b9e8afd831cf8c66705f2dbb"><div class="ttname"><a href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition:</b> Result.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_interceptor_html"><div class="ttname"><a href="classpulsar_1_1_producer_interceptor.html">pulsar::ProducerInterceptor</a></div><div class="ttdef"><b>Definition:</b> ProducerInterceptor.h:42</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:43</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_interceptor_html_aa4fbfa721d9d9985a304c3d2ce924202"><div class="ttname"><a href="classpulsar_1_1_producer_interceptor.html#aa4fbfa721d9d9985a304c3d2ce924202">pulsar::ProducerInterceptor::onPartitionsChange</a></div><div class="ttdeci">virtual void onPartitionsChange(const std::string &topicName, int partitions)</div><div class="ttdef"><b>Definition:</b> ProducerInterceptor.h:108</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_producer_html"><div class="ttname"><a href="classpulsar_1_1_producer.html">pulsar::Producer</a></div><div class="ttdef"><b>Definition:</b> Producer.h:36</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_protobuf_native_schema_8h_source.html b/static/api/cpp/3.2.x/_protobuf_native_schema_8h_source.html
new file mode 100644
index 00000000000..af3d91980fc
--- /dev/null
+++ b/static/api/cpp/3.2.x/_protobuf_native_schema_8h_source.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/ProtobufNativeSchema.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ProtobufNativeSchema.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <google/protobuf/descriptor.h></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/Schema.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> PULSAR_PUBLIC SchemaInfo <a class="code" href="namespacepulsar.html#a7dc480604aefdd4119b2e2ee2b9e7764">createProtobufNativeSchema</a>(<span class="keyword">const</span> google::protobuf::Descriptor* descriptor);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> } <span class="comment">// namespace pulsar</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="anamespacepulsar_html_a7dc480604aefdd4119b2e2ee2b9e7764"><div class="ttname"><a href="namespacepulsar.html#a7dc480604aefdd4119b2e2ee2b9e7764">pulsar::createProtobufNativeSchema</a></div><div class="ttdeci">PULSAR_PUBLIC SchemaInfo createProtobufNativeSchema(const google::protobuf::Descriptor *descriptor)</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_reader_configuration_8h_source.html b/static/api/cpp/3.2.x/_reader_configuration_8h_source.html
new file mode 100644
index 00000000000..b28e8d5016d
--- /dev/null
+++ b/static/api/cpp/3.2.x/_reader_configuration_8h_source.html
@@ -0,0 +1,192 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/ReaderConfiguration.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ReaderConfiguration.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_READER_CONFIGURATION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_READER_CONFIGURATION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/ConsumerCryptoFailureAction.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/CryptoKeyReader.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <pulsar/Message.h></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <pulsar/Result.h></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <pulsar/Schema.h></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <functional></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">class </span>Reader;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">typedef</span> std::function<void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result)> <a class="code" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">typedef</span> std::function<void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result, MessageId messageId)> GetLastMessageIdCallback;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a9bddad6880419962bbc6af877209cd49"> 42</a></span> <span class="keyword">typedef</span> std::function<void(<a class="code" href="classpulsar_1_1_reader.html">Reader</a> reader, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>& msg)> <a class="code" href="namespacepulsar.html#a9bddad6880419962bbc6af877209cd49">ReaderListen [...]
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">struct </span>ReaderConfigurationImpl;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html"> 49</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a> {</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>();</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  ~<a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>();</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>&);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>& operator=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>&);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>& setSchema(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>& schemaInfo);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>& getSchema() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>& setReaderListener(<a class="code" href="namespacepulsar.html#a9bddad6880419962bbc6af877209cd49">ReaderListener</a> listener);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="namespacepulsar.html#a9bddad6880419962bbc6af877209cd49">ReaderListener</a> getReaderListener() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">bool</span> hasReaderListener() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordtype">void</span> setReceiverQueueSize(<span class="keywordtype">int</span> size);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordtype">int</span> getReceiverQueueSize() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordtype">void</span> setReaderName(<span class="keyword">const</span> std::string& readerName);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">const</span> std::string& getReaderName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordtype">void</span> setSubscriptionRolePrefix(<span class="keyword">const</span> std::string& subscriptionRolePrefix);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keyword">const</span> std::string& getSubscriptionRolePrefix() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordtype">void</span> setReadCompacted(<span class="keywordtype">bool</span> compacted);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordtype">bool</span> isReadCompacted() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">void</span> setInternalSubscriptionName(std::string internalSubscriptionName);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keyword">const</span> std::string& getInternalSubscriptionName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordtype">void</span> setUnAckedMessagesTimeoutMs(<span class="keyword">const</span> uint64_t milliSeconds);</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordtype">long</span> getUnAckedMessagesTimeoutMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordtype">void</span> setTickDurationInMs(<span class="keyword">const</span> uint64_t milliSeconds);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordtype">long</span> getTickDurationInMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  </div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordtype">void</span> setAckGroupingTimeMs(<span class="keywordtype">long</span> ackGroupingMillis);</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordtype">long</span> getAckGroupingTimeMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  </div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordtype">void</span> setAckGroupingMaxSize(<span class="keywordtype">long</span> maxGroupingSize);</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordtype">long</span> getAckGroupingMaxSize() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordtype">bool</span> isEncryptionEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  </div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keyword">const</span> CryptoKeyReaderPtr getCryptoKeyReader() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>& setCryptoKeyReader(CryptoKeyReaderPtr cryptoKeyReader);</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  ConsumerCryptoFailureAction getCryptoFailureAction() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>& setCryptoFailureAction(ConsumerCryptoFailureAction action);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  </div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordtype">bool</span> hasProperty(<span class="keyword">const</span> std::string& name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">const</span> std::string& getProperty(<span class="keyword">const</span> std::string& name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  </div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  std::map<std::string, std::string>& getProperties() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  </div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>& setProperty(<span class="keyword">const</span> std::string& name, <span class="keyword">const</span> std::string& value);</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  </div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>& setProperties(<span class="keyword">const</span> std::map<std::string, std::string>& properties);</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  std::shared_ptr<ReaderConfigurationImpl> impl_;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> };</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor">#endif </span><span class="comment">/* PULSAR_READER_CONFIGURATION_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespacepulsar_html_ae85314d6b9e8afd831cf8c66705f2dbb"><div class="ttname"><a href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition:</b> Result.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:43</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_html"><div class="ttname"><a href="classpulsar_1_1_reader.html">pulsar::Reader</a></div><div class="ttdef"><b>Definition:</b> Reader.h:37</div></div>
+<div class="ttc" id="aclasspulsar_1_1_schema_info_html"><div class="ttname"><a href="classpulsar_1_1_schema_info.html">pulsar::SchemaInfo</a></div><div class="ttdef"><b>Definition:</b> Schema.h:146</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="anamespacepulsar_html_a9bddad6880419962bbc6af877209cd49"><div class="ttname"><a href="namespacepulsar.html#a9bddad6880419962bbc6af877209cd49">pulsar::ReaderListener</a></div><div class="ttdeci">std::function< void(Reader reader, const Message &msg)> ReaderListener</div><div class="ttdoc">Callback definition for MessageListener.</div><div class="ttdef"><b>Definition:</b> ReaderConfiguration.h:42</div></div>
+<div class="ttc" id="aclasspulsar_1_1_reader_configuration_html"><div class="ttname"><a href="classpulsar_1_1_reader_configuration.html">pulsar::ReaderConfiguration</a></div><div class="ttdef"><b>Definition:</b> ReaderConfiguration.h:49</div></div>
+<div class="ttc" id="anamespacepulsar_html_ae5bf6401bfa8e3962e5c8f9fa2efbf4d"><div class="ttname"><a href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">pulsar::ResultCallback</a></div><div class="ttdeci">std::function< void(Result result)> ResultCallback</div><div class="ttdoc">Callback definition for non-data operation.</div><div class="ttdef"><b>Definition:</b> ConsumerConfiguration.h:50</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_regex_subscription_mode_8h_source.html b/static/api/cpp/3.2.x/_regex_subscription_mode_8h_source.html
new file mode 100644
index 00000000000..3cfcdebf26f
--- /dev/null
+++ b/static/api/cpp/3.2.x/_regex_subscription_mode_8h_source.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/RegexSubscriptionMode.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">RegexSubscriptionMode.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_CPP_REGEX_SUB_MODE_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_CPP_REGEX_SUB_MODE_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbd"> 23</a></span> <span class="keyword">enum</span> <a class="code" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbd">RegexSubscriptionMode</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda68931062ae96d4dcc4778eeac5fa3de4"> 28</a></span>  <a class="code" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda68931062ae96d4dcc4778eeac5fa3de4">PersistentOnly</a> = 0,</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda5af3d512f79ac90cacc326d86a230603"> 33</a></span>  <a class="code" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda5af3d512f79ac90cacc326d86a230603">NonPersistentOnly</a> = 1,</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbdaa30bab3d7d550e08f128647cbbd5b6ef"> 38</a></span>  <a class="code" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbdaa30bab3d7d550e08f128647cbbd5b6ef">AllTopics</a> = 2</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> };</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> }</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#endif // PULSAR_CPP_REGEX_SUB_MODE_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespacepulsar_html_abd9b21e56a6fb78e04cae2664ff0dbbdaa30bab3d7d550e08f128647cbbd5b6ef"><div class="ttname"><a href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbdaa30bab3d7d550e08f128647cbbd5b6ef">pulsar::AllTopics</a></div><div class="ttdeci">@ AllTopics</div><div class="ttdef"><b>Definition:</b> RegexSubscriptionMode.h:38</div></div>
+<div class="ttc" id="anamespacepulsar_html_abd9b21e56a6fb78e04cae2664ff0dbbda68931062ae96d4dcc4778eeac5fa3de4"><div class="ttname"><a href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda68931062ae96d4dcc4778eeac5fa3de4">pulsar::PersistentOnly</a></div><div class="ttdeci">@ PersistentOnly</div><div class="ttdef"><b>Definition:</b> RegexSubscriptionMode.h:28</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="anamespacepulsar_html_abd9b21e56a6fb78e04cae2664ff0dbbda5af3d512f79ac90cacc326d86a230603"><div class="ttname"><a href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda5af3d512f79ac90cacc326d86a230603">pulsar::NonPersistentOnly</a></div><div class="ttdeci">@ NonPersistentOnly</div><div class="ttdef"><b>Definition:</b> RegexSubscriptionMode.h:33</div></div>
+<div class="ttc" id="anamespacepulsar_html_abd9b21e56a6fb78e04cae2664ff0dbbd"><div class="ttname"><a href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbd">pulsar::RegexSubscriptionMode</a></div><div class="ttdeci">RegexSubscriptionMode</div><div class="ttdef"><b>Definition:</b> RegexSubscriptionMode.h:23</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_schema_8h_source.html b/static/api/cpp/3.2.x/_schema_8h_source.html
new file mode 100644
index 00000000000..eb9e04ff949
--- /dev/null
+++ b/static/api/cpp/3.2.x/_schema_8h_source.html
@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/Schema.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">Schema.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <iosfwd></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <map></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <memory></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595"> 33</a></span> <span class="keyword">enum class</span> <a class="code" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595">KeyValueEncodingType</a></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595a561af55a6a824ae74125a6cf4eade06a">SEPARATED</a>,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595acfbac07c6ae3e73f0e10ca60ad916bef">INLINE</a></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> };</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Return string representation of result code</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *strEncodingType(<a class="code" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595">pulsar::KeyValueEncodingType</a> encodingType);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> PULSAR_PUBLIC <a class="code" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595">KeyValueEncodingType</a> enumEncodingType(std::string encodingTypeStr);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305"> 51</a></span> <span class="keyword">enum</span> <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305">SchemaType</a></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305af9377cb56d5b6973392d0fd2ca76009a"> 56</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305af9377cb56d5b6973392d0fd2ca76009a">NONE</a> = 0,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ab936a9dad2cbb5fca28fc477ff39fb70"> 61</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ab936a9dad2cbb5fca28fc477ff39fb70">STRING</a> = 1,</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a15f7910601e8d522f151f3129c753283"> 66</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a15f7910601e8d522f151f3129c753283">JSON</a> = 2,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a5054f171f6c60b73043727ddc60698a0"> 71</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a5054f171f6c60b73043727ddc60698a0">PROTOBUF</a> = 3,</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ac728ff4cb4de807c1b6fa8ca33f41d47"> 76</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ac728ff4cb4de807c1b6fa8ca33f41d47">AVRO</a> = 4,</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a2c52dde965d6ba972179fa14116160e9"> 81</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a2c52dde965d6ba972179fa14116160e9">INT8</a> = 6,</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a9e5ed020cb2ca197a0918946352cf96e"> 86</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a9e5ed020cb2ca197a0918946352cf96e">INT16</a> = 7,</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ac048e1576ab161018f9e3c6eda6307d0"> 91</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ac048e1576ab161018f9e3c6eda6307d0">INT32</a> = 8,</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a11fafed4115309cf1f33eac044e704a2"> 96</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a11fafed4115309cf1f33eac044e704a2">INT64</a> = 9,</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a5102395892b9d15d0a0483a27ca64777"> 101</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a5102395892b9d15d0a0483a27ca64777">FLOAT</a> = 10,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a1b1684230ae9c15941cb3fe05bf972f0"> 106</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a1b1684230ae9c15941cb3fe05bf972f0">DOUBLE</a> = 11,</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ab6fbe0f5b80de2aa67b68572e7a054d3"> 111</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ab6fbe0f5b80de2aa67b68572e7a054d3">KEY_VALUE</a> = 15,</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a24048f6ae2e1048989e69644edcdc8f6"> 116</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a24048f6ae2e1048989e69644edcdc8f6">PROTOBUF_NATIVE</a> = 20,</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a4dcbdcae67c5f78b7c4fff2c2135cba2"> 121</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a4dcbdcae67c5f78b7c4fff2c2135cba2">BYTES</a> = -1,</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a6a9078e01119bddf19aa24dc05390f99"> 126</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a6a9078e01119bddf19aa24dc05390f99">AUTO_CONSUME</a> = -3,</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ad1af93d272614c940d322497eb8e31f0"> 131</a></span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ad1af93d272614c940d322497eb8e31f0">AUTO_PUBLISH</a> = -4,</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> };</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// Return string representation of result code</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *strSchemaType(<a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305">SchemaType</a> schemaType);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> PULSAR_PUBLIC <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305">SchemaType</a> enumSchemaType(std::string schemaTypeStr);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">class </span>SchemaInfoImpl;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">typedef</span> std::map<std::string, std::string> StringMap;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classpulsar_1_1_schema_info.html"> 146</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a> {</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>();</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>(<a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305">SchemaType</a> schemaType, <span class="keyword">const</span> std::string &name, <span class="keyword">const</span> std::string &schema,</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keyword">const</span> StringMap &properties = StringMap());</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a> &keySchema, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a> &valueSchema,</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">const</span> <a class="code" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595">KeyValueEncodingType</a> &keyValueEncodingType = <a class="code" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595acfbac07c6ae3e73f0e10ca60ad916bef">KeyValueEncodingType::INLINE</a>);</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305">SchemaType</a> getSchemaType() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  </div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">const</span> std::string &getName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keyword">const</span> std::string &getSchema() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  </div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keyword">const</span> StringMap &getProperties() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keyword">typedef</span> std::shared_ptr<SchemaInfoImpl> SchemaInfoImplPtr;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  SchemaInfoImplPtr impl_;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> };</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  </div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> PULSAR_PUBLIC std::ostream &operator<<(std::ostream &s, <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305">pulsar::SchemaType</a> schemaType);</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  </div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> PULSAR_PUBLIC std::ostream &operator<<(std::ostream &s, <a class="code" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595">pulsar::KeyValueEncodingType</a> encodingType);</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305ab6fbe0f5b80de2aa67b68572e7a054d3"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ab6fbe0f5b80de2aa67b68572e7a054d3">pulsar::KEY_VALUE</a></div><div class="ttdeci">@ KEY_VALUE</div><div class="ttdef"><b>Definition:</b> Schema.h:111</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305a1b1684230ae9c15941cb3fe05bf972f0"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a1b1684230ae9c15941cb3fe05bf972f0">pulsar::DOUBLE</a></div><div class="ttdeci">@ DOUBLE</div><div class="ttdef"><b>Definition:</b> Schema.h:106</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305ac048e1576ab161018f9e3c6eda6307d0"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ac048e1576ab161018f9e3c6eda6307d0">pulsar::INT32</a></div><div class="ttdeci">@ INT32</div><div class="ttdef"><b>Definition:</b> Schema.h:91</div></div>
+<div class="ttc" id="anamespacepulsar_html_a0dca31b62c0207ea87e146cde0609595acfbac07c6ae3e73f0e10ca60ad916bef"><div class="ttname"><a href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595acfbac07c6ae3e73f0e10ca60ad916bef">pulsar::KeyValueEncodingType::INLINE</a></div><div class="ttdeci">@ INLINE</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305ac728ff4cb4de807c1b6fa8ca33f41d47"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ac728ff4cb4de807c1b6fa8ca33f41d47">pulsar::AVRO</a></div><div class="ttdeci">@ AVRO</div><div class="ttdef"><b>Definition:</b> Schema.h:76</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305a11fafed4115309cf1f33eac044e704a2"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a11fafed4115309cf1f33eac044e704a2">pulsar::INT64</a></div><div class="ttdeci">@ INT64</div><div class="ttdef"><b>Definition:</b> Schema.h:96</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305a5102395892b9d15d0a0483a27ca64777"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a5102395892b9d15d0a0483a27ca64777">pulsar::FLOAT</a></div><div class="ttdeci">@ FLOAT</div><div class="ttdef"><b>Definition:</b> Schema.h:101</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305">pulsar::SchemaType</a></div><div class="ttdeci">SchemaType</div><div class="ttdef"><b>Definition:</b> Schema.h:51</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305a2c52dde965d6ba972179fa14116160e9"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a2c52dde965d6ba972179fa14116160e9">pulsar::INT8</a></div><div class="ttdeci">@ INT8</div><div class="ttdef"><b>Definition:</b> Schema.h:81</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305a9e5ed020cb2ca197a0918946352cf96e"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a9e5ed020cb2ca197a0918946352cf96e">pulsar::INT16</a></div><div class="ttdeci">@ INT16</div><div class="ttdef"><b>Definition:</b> Schema.h:86</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305ad1af93d272614c940d322497eb8e31f0"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ad1af93d272614c940d322497eb8e31f0">pulsar::AUTO_PUBLISH</a></div><div class="ttdeci">@ AUTO_PUBLISH</div><div class="ttdef"><b>Definition:</b> Schema.h:131</div></div>
+<div class="ttc" id="anamespacepulsar_html_a0dca31b62c0207ea87e146cde0609595"><div class="ttname"><a href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595">pulsar::KeyValueEncodingType</a></div><div class="ttdeci">KeyValueEncodingType</div><div class="ttdef"><b>Definition:</b> Schema.h:33</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305a15f7910601e8d522f151f3129c753283"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a15f7910601e8d522f151f3129c753283">pulsar::JSON</a></div><div class="ttdeci">@ JSON</div><div class="ttdef"><b>Definition:</b> Schema.h:66</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305ab936a9dad2cbb5fca28fc477ff39fb70"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ab936a9dad2cbb5fca28fc477ff39fb70">pulsar::STRING</a></div><div class="ttdeci">@ STRING</div><div class="ttdef"><b>Definition:</b> Schema.h:61</div></div>
+<div class="ttc" id="aclasspulsar_1_1_schema_info_html"><div class="ttname"><a href="classpulsar_1_1_schema_info.html">pulsar::SchemaInfo</a></div><div class="ttdef"><b>Definition:</b> Schema.h:146</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305a4dcbdcae67c5f78b7c4fff2c2135cba2"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a4dcbdcae67c5f78b7c4fff2c2135cba2">pulsar::BYTES</a></div><div class="ttdeci">@ BYTES</div><div class="ttdef"><b>Definition:</b> Schema.h:121</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305af9377cb56d5b6973392d0fd2ca76009a"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305af9377cb56d5b6973392d0fd2ca76009a">pulsar::NONE</a></div><div class="ttdeci">@ NONE</div><div class="ttdef"><b>Definition:</b> Schema.h:56</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305a5054f171f6c60b73043727ddc60698a0"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a5054f171f6c60b73043727ddc60698a0">pulsar::PROTOBUF</a></div><div class="ttdeci">@ PROTOBUF</div><div class="ttdef"><b>Definition:</b> Schema.h:71</div></div>
+<div class="ttc" id="anamespacepulsar_html_a0dca31b62c0207ea87e146cde0609595a561af55a6a824ae74125a6cf4eade06a"><div class="ttname"><a href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595a561af55a6a824ae74125a6cf4eade06a">pulsar::KeyValueEncodingType::SEPARATED</a></div><div class="ttdeci">@ SEPARATED</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305a6a9078e01119bddf19aa24dc05390f99"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a6a9078e01119bddf19aa24dc05390f99">pulsar::AUTO_CONSUME</a></div><div class="ttdeci">@ AUTO_CONSUME</div><div class="ttdef"><b>Definition:</b> Schema.h:126</div></div>
+<div class="ttc" id="anamespacepulsar_html_abab5b1f233c9cc54c10d28cb5b973305a24048f6ae2e1048989e69644edcdc8f6"><div class="ttname"><a href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a24048f6ae2e1048989e69644edcdc8f6">pulsar::PROTOBUF_NATIVE</a></div><div class="ttdeci">@ PROTOBUF_NATIVE</div><div class="ttdef"><b>Definition:</b> Schema.h:116</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_table_view_8h_source.html b/static/api/cpp/3.2.x/_table_view_8h_source.html
new file mode 100644
index 00000000000..54c1c73ee66
--- /dev/null
+++ b/static/api/cpp/3.2.x/_table_view_8h_source.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/TableView.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">TableView.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef TABEL_VIEW_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define TABEL_VIEW_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/Result.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/TableViewConfiguration.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <functional></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <unordered_map></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">class </span>TableViewImpl;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">typedef</span> std::function<void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result)> <a class="code" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">typedef</span> std::function<void(<span class="keyword">const</span> std::string& key, <span class="keyword">const</span> std::string& value)> TableViewAction;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classpulsar_1_1_table_view.html"> 38</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_table_view.html">TableView</a> {</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="classpulsar_1_1_table_view.html">TableView</a>();</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordtype">bool</span> retrieveValue(<span class="keyword">const</span> std::string& key, std::string& value);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordtype">bool</span> getValue(<span class="keyword">const</span> std::string& key, std::string& value) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">bool</span> containsKey(<span class="keyword">const</span> std::string& key) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  std::unordered_map<std::string, std::string> snapshot();</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  std::size_t size() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordtype">void</span> forEach(TableViewAction action);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">void</span> forEachAndListen(TableViewAction action);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordtype">void</span> closeAsync(<a class="code" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a> callback);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> close();</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">typedef</span> std::shared_ptr<TableViewImpl> TableViewImplPtr;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  TableViewImplPtr impl_;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_table_view.html">TableView</a>(TableViewImplPtr);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">friend</span> <span class="keyword">class </span>ClientImpl;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> };</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor">#endif </span><span class="comment">/* TABEL_VIEW_HPP_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespacepulsar_html_ae85314d6b9e8afd831cf8c66705f2dbb"><div class="ttname"><a href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">pulsar::Result</a></div><div class="ttdeci">Result</div><div class="ttdef"><b>Definition:</b> Result.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_table_view_html"><div class="ttname"><a href="classpulsar_1_1_table_view.html">pulsar::TableView</a></div><div class="ttdef"><b>Definition:</b> TableView.h:38</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="anamespacepulsar_html_ae5bf6401bfa8e3962e5c8f9fa2efbf4d"><div class="ttname"><a href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">pulsar::ResultCallback</a></div><div class="ttdeci">std::function< void(Result result)> ResultCallback</div><div class="ttdoc">Callback definition for non-data operation.</div><div class="ttdef"><b>Definition:</b> ConsumerConfiguration.h:50</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_table_view_configuration_8h_source.html b/static/api/cpp/3.2.x/_table_view_configuration_8h_source.html
new file mode 100644
index 00000000000..0000f7178e3
--- /dev/null
+++ b/static/api/cpp/3.2.x/_table_view_configuration_8h_source.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/TableViewConfiguration.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">TableViewConfiguration.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef PULSAR_TABLEVIEW_CONFIGURATION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define PULSAR_TABLEVIEW_CONFIGURATION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/Schema.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="structpulsar_1_1_table_view_configuration.html"> 27</a></span> <span class="keyword">struct </span><a class="code" href="structpulsar_1_1_table_view_configuration.html">TableViewConfiguration</a> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="comment">// Declare the schema of the data that this table view will be accepting.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="comment">// The schema will be checked against the schema of the topic, and the</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="comment">// table view creation will fail if it's not compatible.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a> schemaInfo;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="comment">// The name of the subscription to the topic. Default value is reader-{random string}.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  std::string subscriptionName;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> };</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#endif </span><span class="comment">/* PULSAR_TABLEVIEW_CONFIGURATION_H_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_schema_info_html"><div class="ttname"><a href="classpulsar_1_1_schema_info.html">pulsar::SchemaInfo</a></div><div class="ttdef"><b>Definition:</b> Schema.h:146</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="astructpulsar_1_1_table_view_configuration_html"><div class="ttname"><a href="structpulsar_1_1_table_view_configuration.html">pulsar::TableViewConfiguration</a></div><div class="ttdef"><b>Definition:</b> TableViewConfiguration.h:27</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_topic_metadata_8h_source.html b/static/api/cpp/3.2.x/_topic_metadata_8h_source.html
new file mode 100644
index 00000000000..127fbed9d90
--- /dev/null
+++ b/static/api/cpp/3.2.x/_topic_metadata_8h_source.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/TopicMetadata.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">TopicMetadata.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef TOPIC_METADATA_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define TOPIC_METADATA_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_topic_metadata.html"> 28</a></span> <span class="keyword">class </span>PULSAR_PUBLIC <a class="code" href="classpulsar_1_1_topic_metadata.html">TopicMetadata</a> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">virtual</span> ~<a class="code" href="classpulsar_1_1_topic_metadata.html">TopicMetadata</a>() {}</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> getNumPartitions() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> };</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> } <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#endif </span><span class="comment">/* TOPIC_METADATA_HPP_ */</span><span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_topic_metadata_html"><div class="ttname"><a href="classpulsar_1_1_topic_metadata.html">pulsar::TopicMetadata</a></div><div class="ttdef"><b>Definition:</b> TopicMetadata.h:28</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_typed_message_8h_source.html b/static/api/cpp/3.2.x/_typed_message_8h_source.html
new file mode 100644
index 00000000000..94cab13a9a3
--- /dev/null
+++ b/static/api/cpp/3.2.x/_typed_message_8h_source.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/TypedMessage.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">TypedMessage.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <pulsar/Message.h></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <functional></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_typed_message.html"> 28</a></span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_typed_message.html">TypedMessage</a> : <span class="keyword">public</span> <a class="code" href="classpulsar_1_1_message.html">Message</a> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">using</span> Decoder = std::function<T(<span class="keyword">const</span> <span class="keywordtype">char</span>*, std::size_t)>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <a class="code" href="classpulsar_1_1_typed_message.html">TypedMessage</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="classpulsar_1_1_typed_message.html">TypedMessage</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>& message, Decoder decoder = [](<span class="keyword">const</span> <span class="keywordtype">char</span>*, std::size_t) { <span class="keywordflow">return</span> T{}; })</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  : <a class="code" href="classpulsar_1_1_message.html">Message</a>(message), decoder_(decoder) {}</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  T getValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> decoder_(<span class="keyword">static_cast<</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">></span>(<a class="code" href="classpulsar_1_1_message.html#a8dbf166243cec33af9deec269de2ebf3">getData</a>()), <a class="code" href="classpulsar_1_1_message.html#aa47d8c [...]
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="classpulsar_1_1_typed_message.html">TypedMessage</a>& setDecoder(Decoder decoder) {</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  decoder_ = decoder;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  Decoder decoder_;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> };</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> } <span class="comment">// namespace pulsar</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_message_html_aa47d8ca71292939d4d15e4b543835234"><div class="ttname"><a href="classpulsar_1_1_message.html#aa47d8ca71292939d4d15e4b543835234">pulsar::Message::getLength</a></div><div class="ttdeci">std::size_t getLength() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html"><div class="ttname"><a href="classpulsar_1_1_message.html">pulsar::Message</a></div><div class="ttdef"><b>Definition:</b> Message.h:43</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_html_a8dbf166243cec33af9deec269de2ebf3"><div class="ttname"><a href="classpulsar_1_1_message.html#a8dbf166243cec33af9deec269de2ebf3">pulsar::Message::getData</a></div><div class="ttdeci">const void * getData() const</div></div>
+<div class="ttc" id="aclasspulsar_1_1_typed_message_html"><div class="ttname"><a href="classpulsar_1_1_typed_message.html">pulsar::TypedMessage</a></div><div class="ttdef"><b>Definition:</b> TypedMessage.h:28</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/_typed_message_builder_8h_source.html b/static/api/cpp/3.2.x/_typed_message_builder_8h_source.html
new file mode 100644
index 00000000000..5417be0495e
--- /dev/null
+++ b/static/api/cpp/3.2.x/_typed_message_builder_8h_source.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/TypedMessageBuilder.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">TypedMessageBuilder.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <pulsar/MessageBuilder.h></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <functional></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="namespacepulsar.html">pulsar</a> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_typed_message_builder.html"> 28</a></span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder</a> : <span class="keyword">public</span> <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">using</span> Encoder = std::function<std::string(<span class="keyword">const</span> T&)>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keyword">using</span> Validator = std::function<void(<span class="keyword">const</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">size_t</span>)>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder</a>(</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  Encoder encoder, Validator validator = [](<span class="keyword">const</span> <span class="keywordtype">char</span>*, std::size_t) {})</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  : encoder_(encoder), validator_(validator) {}</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder</a>& setValue(<span class="keyword">const</span> T& value) {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8">setContent</a>(encoder_(value));</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">if</span> (validator_) {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  validator_(data(), size());</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  }</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">const</span> Encoder encoder_;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">const</span> Validator validator_;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> };</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classpulsar_1_1_typed_message_builder_3_01std_1_1string_01_4.html"> 51</a></span> <span class="keyword">class </span><a class="code" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder</a><std::string> : <span class="keyword">public</span> <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> {</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// The validator should throw an exception to indicate the message is corrupted.</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">using</span> Validator = std::function<void(<span class="keyword">const</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">size_t</span>)>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder</a>(Validator validator = <span class="keyword">nullptr</span>) : validator_(validator) {}</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder</a>& setValue(<span class="keyword">const</span> std::string& value) {</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">if</span> (validator_) {</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  validator_(value.data(), value.size());</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8">setContent</a>(value);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder</a>& setValue(std::string&& value) {</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (validator_) {</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  validator_(value.data(), value.size());</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8">setContent</a>(std::move(value));</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  Validator validator_;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> };</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">using</span> <a class="code" href="classpulsar_1_1_typed_message_builder_3_01std_1_1string_01_4.html">BytesMessageBuilder</a> = <a class="code" href="classpulsar_1_1_typed_message_builder_3_01std_1_1string_01_4.html">TypedMessageBuilder<std::string></a>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> } <span class="comment">// namespace pulsar</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclasspulsar_1_1_typed_message_builder_html"><div class="ttname"><a href="classpulsar_1_1_typed_message_builder.html">pulsar::TypedMessageBuilder</a></div><div class="ttdef"><b>Definition:</b> TypedMessageBuilder.h:28</div></div>
+<div class="ttc" id="aclasspulsar_1_1_typed_message_builder_3_01std_1_1string_01_4_html"><div class="ttname"><a href="classpulsar_1_1_typed_message_builder_3_01std_1_1string_01_4.html">pulsar::TypedMessageBuilder< std::string ></a></div><div class="ttdef"><b>Definition:</b> TypedMessageBuilder.h:51</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html"><div class="ttname"><a href="classpulsar_1_1_message_builder.html">pulsar::MessageBuilder</a></div><div class="ttdef"><b>Definition:</b> MessageBuilder.h:33</div></div>
+<div class="ttc" id="anamespacepulsar_html"><div class="ttname"><a href="namespacepulsar.html">pulsar</a></div><div class="ttdef"><b>Definition:</b> Authentication.h:31</div></div>
+<div class="ttc" id="aclasspulsar_1_1_message_builder_html_ab88fc9caf6c2406ba7b34a1770484df8"><div class="ttname"><a href="classpulsar_1_1_message_builder.html#ab88fc9caf6c2406ba7b34a1770484df8">pulsar::MessageBuilder::setContent</a></div><div class="ttdeci">MessageBuilder & setContent(const void *data, size_t size)</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/annotated.html b/static/api/cpp/3.2.x/annotated.html
new file mode 100644
index 00000000000..9a1b772e79b
--- /dev/null
+++ b/static/api/cpp/3.2.x/annotated.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: Class List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Class List</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">▼</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacepulsar.html" target="_self">pulsar</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_athenz.html" target="_self">AuthAthenz</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_basic.html" target="_self">AuthBasic</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_authentication.html" target="_self">Authentication</a></td><td class="desc"></td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_authentication_data_provider.html" target="_self">AuthenticationDataProvider</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_factory.html" target="_self">AuthFactory</a></td><td class="desc"></td></tr>
+<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_oauth2.html" target="_self">AuthOauth2</a></td><td class="desc"></td></tr>
+<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_tls.html" target="_self">AuthTls</a></td><td class="desc"></td></tr>
+<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_auth_token.html" target="_self">AuthToken</a></td><td class="desc"></td></tr>
+<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_batch_receive_policy.html" target="_self">BatchReceivePolicy</a></td><td class="desc"></td></tr>
+<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_broker_consumer_stats.html" target="_self">BrokerConsumerStats</a></td><td class="desc"></td></tr>
+<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_cached_token.html" target="_self">CachedToken</a></td><td class="desc"></td></tr>
+<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_client.html" target="_self">Client</a></td><td class="desc"></td></tr>
+<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_client_configuration.html" target="_self">ClientConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_console_logger_factory.html" target="_self">ConsoleLoggerFactory</a></td><td class="desc"></td></tr>
+<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_consumer.html" target="_self">Consumer</a></td><td class="desc"></td></tr>
+<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_consumer_configuration.html" target="_self">ConsumerConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_consumer_event_listener.html" target="_self">ConsumerEventListener</a></td><td class="desc"></td></tr>
+<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_consumer_interceptor.html" target="_self">ConsumerInterceptor</a></td><td class="desc"></td></tr>
+<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_crypto_key_reader.html" target="_self">CryptoKeyReader</a></td><td class="desc"></td></tr>
+<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_dead_letter_policy.html" target="_self">DeadLetterPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_0_20_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_dead_letter_policy_builder.html" target="_self">DeadLetterPolicyBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_default_crypto_key_reader.html" target="_self">DefaultCryptoKeyReader</a></td><td class="desc"></td></tr>
+<tr id="row_0_22_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_deprecated_exception.html" target="_self">DeprecatedException</a></td><td class="desc"></td></tr>
+<tr id="row_0_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_encryption_key_info.html" target="_self">EncryptionKeyInfo</a></td><td class="desc"></td></tr>
+<tr id="row_0_24_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_file_logger_factory.html" target="_self">FileLoggerFactory</a></td><td class="desc"></td></tr>
+<tr id="row_0_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_key_shared_policy.html" target="_self">KeySharedPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_0_26_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_key_value.html" target="_self">KeyValue</a></td><td class="desc"></td></tr>
+<tr id="row_0_27_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_logger.html" target="_self">Logger</a></td><td class="desc"></td></tr>
+<tr id="row_0_28_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_logger_factory.html" target="_self">LoggerFactory</a></td><td class="desc"></td></tr>
+<tr id="row_0_29_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message.html" target="_self">Message</a></td><td class="desc"></td></tr>
+<tr id="row_0_30_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_batch.html" target="_self">MessageBatch</a></td><td class="desc"></td></tr>
+<tr id="row_0_31_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_builder.html" target="_self">MessageBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_32_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_id.html" target="_self">MessageId</a></td><td class="desc"></td></tr>
+<tr id="row_0_33_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_id_builder.html" target="_self">MessageIdBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_34_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_routing_policy.html" target="_self">MessageRoutingPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_0_35_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_oauth2_flow.html" target="_self">Oauth2Flow</a></td><td class="desc"></td></tr>
+<tr id="row_0_36_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_oauth2_token_result.html" target="_self">Oauth2TokenResult</a></td><td class="desc"></td></tr>
+<tr id="row_0_37_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer.html" target="_self">Producer</a></td><td class="desc"></td></tr>
+<tr id="row_0_38_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer_configuration.html" target="_self">ProducerConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_39_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer_interceptor.html" target="_self">ProducerInterceptor</a></td><td class="desc"></td></tr>
+<tr id="row_0_40_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader.html" target="_self">Reader</a></td><td class="desc"></td></tr>
+<tr id="row_0_41_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader_configuration.html" target="_self">ReaderConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_42_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_schema_info.html" target="_self">SchemaInfo</a></td><td class="desc"></td></tr>
+<tr id="row_0_43_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_table_view.html" target="_self">TableView</a></td><td class="desc"></td></tr>
+<tr id="row_0_44_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpulsar_1_1_table_view_configuration.html" target="_self">TableViewConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_45_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_topic_metadata.html" target="_self">TopicMetadata</a></td><td class="desc"></td></tr>
+<tr id="row_0_46_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_typed_message.html" target="_self">TypedMessage</a></td><td class="desc"></td></tr>
+<tr id="row_0_47_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_typed_message_builder.html" target="_self">TypedMessageBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_48_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_typed_message_builder_3_01std_1_1string_01_4.html" target="_self">TypedMessageBuilder< std::string ></a></td><td class="desc"></td></tr>
+<tr id="row_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpulsar__consumer__batch__receive__policy__t.html" target="_self">pulsar_consumer_batch_receive_policy_t</a></td><td class="desc"></td></tr>
+<tr id="row_2_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpulsar__consumer__config__dead__letter__policy__t.html" target="_self">pulsar_consumer_config_dead_letter_policy_t</a></td><td class="desc"></td></tr>
+<tr id="row_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpulsar__logger__t.html" target="_self">pulsar_logger_t</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/bc_s.png b/static/api/cpp/3.2.x/bc_s.png
new file mode 100644
index 00000000000..224b29aa984
Binary files /dev/null and b/static/api/cpp/3.2.x/bc_s.png differ
diff --git a/static/api/cpp/3.2.x/bdwn.png b/static/api/cpp/3.2.x/bdwn.png
new file mode 100644
index 00000000000..940a0b95044
Binary files /dev/null and b/static/api/cpp/3.2.x/bdwn.png differ
diff --git a/static/api/cpp/3.2.x/c_2_authentication_8h_source.html b/static/api/cpp/3.2.x/c_2_authentication_8h_source.html
new file mode 100644
index 00000000000..e60ebd7b6ab
--- /dev/null
+++ b/static/api/cpp/3.2.x/c_2_authentication_8h_source.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/c/authentication.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li><li class="navelem"><a class="el" href="dir_501ae28692a6b25a33adbd2bed71d4b9.html">c</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">authentication.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_authentication pulsar_authentication_t;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">typedef</span> <span class="keywordtype">char</span> *(*token_supplier)(<span class="keywordtype">void</span> *);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *dynamicLibPath,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *authParamsString);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_tls_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *certificatePath,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *privateKeyPath);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_token_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *token);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_token_create_with_supplier(</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  token_supplier tokenSupplier, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_basic_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *username,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *password);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_athenz_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *authParamsString);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_oauth2_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *authParamsString);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_authentication_free(pulsar_authentication_t *authentication);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/c_2client_8h_source.html b/static/api/cpp/3.2.x/c_2client_8h_source.html
new file mode 100644
index 00000000000..3f49abe5483
--- /dev/null
+++ b/static/api/cpp/3.2.x/c_2client_8h_source.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/c/client.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li><li class="navelem"><a class="el" href="dir_501ae28692a6b25a33adbd2bed71d4b9.html">c</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">client.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/c/client_configuration.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/c/consumer.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <pulsar/c/consumer_configuration.h></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <pulsar/c/message.h></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <pulsar/c/message_id.h></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <pulsar/c/producer.h></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <pulsar/c/producer_configuration.h></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <pulsar/c/reader.h></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <pulsar/c/reader_configuration.h></span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <pulsar/c/result.h></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <pulsar/c/string_list.h></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_client pulsar_client_t;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_producer pulsar_producer_t;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_string_list pulsar_string_list_t;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_client_configuration pulsar_client_configuration_t;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_producer_configuration pulsar_producer_configuration_t;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> void (*pulsar_create_producer_callback)(pulsar_result result, pulsar_producer_t *producer, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> void (*pulsar_subscribe_callback)(pulsar_result result, pulsar_consumer_t *consumer, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> void (*pulsar_reader_callback)(pulsar_result result, pulsar_reader_t *reader, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> void (*pulsar_get_partitions_callback)(pulsar_result result, pulsar_string_list_t *partitions,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">typedef</span> void (*pulsar_close_callback)(pulsar_result result, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> PULSAR_PUBLIC pulsar_client_t *pulsar_client_create(<span class="keyword">const</span> <span class="keywordtype">char</span> *serviceUrl,</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">const</span> pulsar_client_configuration_t *clientConfiguration);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> PULSAR_PUBLIC pulsar_result pulsar_client_create_producer(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">const</span> pulsar_producer_configuration_t *conf,</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  pulsar_producer_t **producer);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_create_producer_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">const</span> pulsar_producer_configuration_t *conf,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  pulsar_create_producer_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> PULSAR_PUBLIC pulsar_result pulsar_client_subscribe(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  pulsar_consumer_t **consumer);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_subscribe_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  pulsar_subscribe_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> PULSAR_PUBLIC pulsar_result pulsar_client_subscribe_multi_topics(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> **topics,</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordtype">int</span> topicsCount,</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  pulsar_consumer_t **consumer);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_subscribe_multi_topics_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> **topics,</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordtype">int</span> topicsCount, <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  pulsar_subscribe_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> PULSAR_PUBLIC pulsar_result pulsar_client_subscribe_pattern(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topicPattern,</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  pulsar_consumer_t **consumer);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_subscribe_pattern_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topicPattern,</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  pulsar_subscribe_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> PULSAR_PUBLIC pulsar_result pulsar_client_create_reader(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keyword">const</span> pulsar_message_id_t *startMessageId,</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  pulsar_reader_configuration_t *conf,</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  pulsar_reader_t **reader);</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_create_reader_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keyword">const</span> pulsar_message_id_t *startMessageId,</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  pulsar_reader_configuration_t *conf,</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  pulsar_reader_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> PULSAR_PUBLIC pulsar_result pulsar_client_get_topic_partitions(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  pulsar_string_list_t **partitions);</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_get_topic_partitions_async(pulsar_client_t *client, <span class="keyword">const</span> <span class="keywordtype">char</span> *topic,</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  pulsar_get_partitions_callback callback,</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  </div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> PULSAR_PUBLIC pulsar_result pulsar_client_close(pulsar_client_t *client);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_close_async(pulsar_client_t *client, pulsar_close_callback callback,</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_client_free(pulsar_client_t *client);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> }</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/c_2consumer_8h_source.html b/static/api/cpp/3.2.x/c_2consumer_8h_source.html
new file mode 100644
index 00000000000..de19fabb1aa
--- /dev/null
+++ b/static/api/cpp/3.2.x/c_2consumer_8h_source.html
@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/c/consumer.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li><li class="navelem"><a class="el" href="dir_501ae28692a6b25a33adbd2bed71d4b9.html">c</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">consumer.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <pulsar/c/message.h></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <pulsar/c/messages.h></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <pulsar/c/result.h></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <stdint.h></span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_consumer pulsar_consumer_t;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">typedef</span> void (*pulsar_result_callback)(pulsar_result, <span class="keywordtype">void</span> *);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">typedef</span> void (*pulsar_receive_callback)(pulsar_result result, pulsar_message_t *msg, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">typedef</span> void (*pulsar_batch_receive_callback)(pulsar_result result, pulsar_messages_t *msgs, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_consumer_get_topic(pulsar_consumer_t *consumer);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_consumer_get_subscription_name(pulsar_consumer_t *consumer);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_unsubscribe(pulsar_consumer_t *consumer);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_unsubscribe_async(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_receive(pulsar_consumer_t *consumer, pulsar_message_t **msg);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_receive_with_timeout(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  pulsar_message_t **msg, <span class="keywordtype">int</span> timeoutMs);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_receive_async(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  pulsar_receive_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_batch_receive(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  pulsar_messages_t **msgs);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_batch_receive_async(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  pulsar_batch_receive_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  pulsar_message_t *message);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_id(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  pulsar_message_id_t *messageId);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_acknowledge_async(pulsar_consumer_t *consumer, pulsar_message_t *message,</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_acknowledge_async_id(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  pulsar_message_id_t *messageId,</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_cumulative(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  pulsar_message_t *message);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_cumulative_id(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  pulsar_message_id_t *messageId);</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_acknowledge_cumulative_async(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  pulsar_message_t *message,</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  </div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_acknowledge_cumulative_async_id(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  pulsar_message_id_t *messageId,</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  pulsar_result_callback callback,</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  </div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_negative_acknowledge(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  pulsar_message_t *message);</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_negative_acknowledge_id(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  pulsar_message_id_t *messageId);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  </div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_close(pulsar_consumer_t *consumer);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_close_async(pulsar_consumer_t *consumer, pulsar_result_callback callback,</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_free(pulsar_consumer_t *consumer);</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  </div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment"> * Pause receiving messages via the messageListener, till resumeMessageListener() is called.</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_pause_message_listener(pulsar_consumer_t *consumer);</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="comment"> * Resume receiving the messages via the messageListener.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="comment"> * Asynchronously receive all the messages enqueued from time pauseMessageListener() was called.</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> PULSAR_PUBLIC pulsar_result resume_message_listener(pulsar_consumer_t *consumer);</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  </div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_redeliver_unacknowledged_messages(pulsar_consumer_t *consumer);</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  </div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_seek_async(pulsar_consumer_t *consumer, pulsar_message_id_t *messageId,</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  </div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_seek(pulsar_consumer_t *consumer, pulsar_message_id_t *messageId);</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_consumer_seek_by_timestamp_async(pulsar_consumer_t *consumer, uint64_t timestamp,</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_seek_by_timestamp(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  uint64_t timestamp);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  </div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_consumer_is_connected(pulsar_consumer_t *consumer);</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  </div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> PULSAR_PUBLIC pulsar_result pulsar_consumer_get_last_message_id(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  pulsar_message_id_t *messageId);</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  </div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> }</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/c_2message_8h_source.html b/static/api/cpp/3.2.x/c_2message_8h_source.html
new file mode 100644
index 00000000000..9c3faaa31f4
--- /dev/null
+++ b/static/api/cpp/3.2.x/c_2message_8h_source.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/c/message.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li><li class="navelem"><a class="el" href="dir_501ae28692a6b25a33adbd2bed71d4b9.html">c</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">message.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stddef.h></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stdint.h></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "string_map.h"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_message pulsar_message_t;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_message_id pulsar_message_id_t;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> PULSAR_PUBLIC pulsar_message_t *pulsar_message_create();</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_free(pulsar_message_t *message);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_content(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_allocated_content(pulsar_message_t *message, <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_property(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_partition_key(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> *partitionKey);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_ordering_key(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> *orderingKey);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_event_timestamp(pulsar_message_t *message, uint64_t eventTimestamp);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_sequence_id(pulsar_message_t *message, int64_t sequenceId);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_deliver_after(pulsar_message_t *message, uint64_t delayMillis);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_deliver_at(pulsar_message_t *message, uint64_t deliveryTimestampMillis);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_replication_clusters(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> **clusters,</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_disable_replication(pulsar_message_t *message, <span class="keywordtype">int</span> flag);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> PULSAR_PUBLIC pulsar_string_map_t *pulsar_message_get_properties(pulsar_message_t *message);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_message_has_property(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_message_get_property(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">void</span> *pulsar_message_get_data(pulsar_message_t *message);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> PULSAR_PUBLIC uint32_t pulsar_message_get_length(pulsar_message_t *message);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> PULSAR_PUBLIC pulsar_message_id_t *pulsar_message_get_message_id(pulsar_message_t *message);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_message_get_partitionKey(pulsar_message_t *message);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_message_has_partition_key(pulsar_message_t *message);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_message_get_orderingKey(pulsar_message_t *message);</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_message_has_ordering_key(pulsar_message_t *message);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> PULSAR_PUBLIC uint64_t pulsar_message_get_publish_timestamp(pulsar_message_t *message);</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  </div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> PULSAR_PUBLIC uint64_t pulsar_message_get_event_timestamp(pulsar_message_t *message);</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_message_get_topic_name(pulsar_message_t *message);</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_message_get_redelivery_count(pulsar_message_t *message);</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  </div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_message_has_schema_version(pulsar_message_t *message);</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  </div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_message_get_schemaVersion(pulsar_message_t *message);</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_message_set_schema_version(pulsar_message_t *message, <span class="keyword">const</span> <span class="keywordtype">char</span> *schemaVersion);</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  </div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> }</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/c_2producer_8h_source.html b/static/api/cpp/3.2.x/c_2producer_8h_source.html
new file mode 100644
index 00000000000..a2de98ce28d
--- /dev/null
+++ b/static/api/cpp/3.2.x/c_2producer_8h_source.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/c/producer.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li><li class="navelem"><a class="el" href="dir_501ae28692a6b25a33adbd2bed71d4b9.html">c</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">producer.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <pulsar/c/message.h></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <pulsar/c/result.h></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <stdint.h></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_producer pulsar_producer_t;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">typedef</span> void (*pulsar_send_callback)(pulsar_result, pulsar_message_id_t *msgId, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">typedef</span> void (*pulsar_close_callback)(pulsar_result, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">typedef</span> void (*pulsar_flush_callback)(pulsar_result, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_producer_get_topic(pulsar_producer_t *producer);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_producer_get_producer_name(pulsar_producer_t *producer);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> PULSAR_PUBLIC pulsar_result pulsar_producer_send(pulsar_producer_t *producer, pulsar_message_t *msg);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_producer_send_async(pulsar_producer_t *producer, pulsar_message_t *msg,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  pulsar_send_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> PULSAR_PUBLIC int64_t pulsar_producer_get_last_sequence_id(pulsar_producer_t *producer);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> PULSAR_PUBLIC pulsar_result pulsar_producer_close(pulsar_producer_t *producer);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_producer_close_async(pulsar_producer_t *producer, pulsar_close_callback callback,</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// Flush all the messages buffered in the client and wait until all messages have been successfully persisted.</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> PULSAR_PUBLIC pulsar_result pulsar_producer_flush(pulsar_producer_t *producer);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_producer_flush_async(pulsar_producer_t *producer, pulsar_flush_callback callback,</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_producer_free(pulsar_producer_t *producer);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_producer_is_connected(pulsar_producer_t *producer);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> }</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/c_2reader_8h_source.html b/static/api/cpp/3.2.x/c_2reader_8h_source.html
new file mode 100644
index 00000000000..646bcca5f2d
--- /dev/null
+++ b/static/api/cpp/3.2.x/c_2reader_8h_source.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/c/reader.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li><li class="navelem"><a class="el" href="dir_501ae28692a6b25a33adbd2bed71d4b9.html">c</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">reader.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <pulsar/c/message.h></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/c/result.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pulsar_reader pulsar_reader_t;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">typedef</span> void (*pulsar_result_callback)(pulsar_result, <span class="keywordtype">void</span> *);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_reader_get_topic(pulsar_reader_t *reader);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> PULSAR_PUBLIC pulsar_result pulsar_reader_read_next(pulsar_reader_t *reader, pulsar_message_t **msg);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> PULSAR_PUBLIC pulsar_result pulsar_reader_read_next_with_timeout(pulsar_reader_t *reader,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  pulsar_message_t **msg, <span class="keywordtype">int</span> timeoutMs);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_reader_seek_async(pulsar_reader_t *reader, pulsar_message_id_t *messageId,</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> PULSAR_PUBLIC pulsar_result pulsar_reader_seek(pulsar_reader_t *reader, pulsar_message_id_t *messageId);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_reader_seek_by_timestamp_async(pulsar_reader_t *reader, uint64_t timestamp,</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> PULSAR_PUBLIC pulsar_result pulsar_reader_seek_by_timestamp(pulsar_reader_t *reader, uint64_t timestamp);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> PULSAR_PUBLIC pulsar_result pulsar_reader_close(pulsar_reader_t *reader);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_reader_close_async(pulsar_reader_t *reader, pulsar_result_callback callback,</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> PULSAR_PUBLIC <span class="keywordtype">void</span> pulsar_reader_free(pulsar_reader_t *reader);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> PULSAR_PUBLIC pulsar_result pulsar_reader_has_message_available(pulsar_reader_t *reader, <span class="keywordtype">int</span> *available);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> PULSAR_PUBLIC <span class="keywordtype">int</span> pulsar_reader_is_connected(pulsar_reader_t *reader);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/c_2result_8h_source.html b/static/api/cpp/3.2.x/c_2result_8h_source.html
new file mode 100644
index 00000000000..6b763fbb06d
--- /dev/null
+++ b/static/api/cpp/3.2.x/c_2result_8h_source.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: include/pulsar/c/result.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_84093bac216bb6272e4432021f1ca7f4.html">pulsar</a></li><li class="navelem"><a class="el" href="dir_501ae28692a6b25a33adbd2bed71d4b9.html">c</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">result.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <pulsar/defines.h></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  pulsar_result_Ok, </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  pulsar_result_UnknownError, </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  pulsar_result_InvalidConfiguration, </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  pulsar_result_Timeout, </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  pulsar_result_LookupError, </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  pulsar_result_ConnectError, </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  pulsar_result_ReadError, </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  pulsar_result_AuthenticationError, </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  pulsar_result_AuthorizationError, </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  pulsar_result_ErrorGettingAuthenticationData, </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  pulsar_result_BrokerMetadataError, </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  pulsar_result_BrokerPersistenceError, </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  pulsar_result_ChecksumError, </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  pulsar_result_ConsumerBusy, </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  pulsar_result_NotConnected, </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  pulsar_result_AlreadyClosed, </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  pulsar_result_InvalidMessage, </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  pulsar_result_ConsumerNotInitialized, </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  pulsar_result_ProducerNotInitialized, </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  pulsar_result_ProducerBusy, </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  pulsar_result_TooManyLookupRequestException, </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  pulsar_result_InvalidTopicName, </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  pulsar_result_InvalidUrl, </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  pulsar_result_ServiceUnitNotReady, </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  pulsar_result_OperationNotSupported,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  pulsar_result_ProducerBlockedQuotaExceededError, </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  pulsar_result_ProducerBlockedQuotaExceededException, </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  pulsar_result_ProducerQueueIsFull, </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  pulsar_result_MessageTooBig, </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  pulsar_result_TopicNotFound, </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  pulsar_result_SubscriptionNotFound, </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  pulsar_result_ConsumerNotFound, </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  pulsar_result_UnsupportedVersionError, </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  pulsar_result_TopicTerminated, </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  pulsar_result_CryptoError, </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  pulsar_result_IncompatibleSchema, </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  pulsar_result_ConsumerAssignError, </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  pulsar_result_CumulativeAcknowledgementNotAllowedError, </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  pulsar_result_TransactionCoordinatorNotFoundError, </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  pulsar_result_InvalidTxnStatusError, </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  pulsar_result_NotAllowedError, </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  pulsar_result_TransactionConflict, </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  pulsar_result_TransactionNotFound, </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  pulsar_result_ProducerFenced, </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  pulsar_result_MemoryBufferIsFull, </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  pulsar_result_Interrupted, </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> } pulsar_result;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// Return string representation of result code</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> PULSAR_PUBLIC <span class="keyword">const</span> <span class="keywordtype">char</span> *pulsar_result_str(pulsar_result result);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> }</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classes.html b/static/api/cpp/3.2.x/classes.html
new file mode 100644
index 00000000000..f081434ea81
--- /dev/null
+++ b/static/api/cpp/3.2.x/classes.html
@@ -0,0 +1,179 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: Class Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Class Index</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_a">a</a> | <a class="qindex" href="#letter_b">b</a> | <a class="qindex" href="#letter_c">c</a> | <a class="qindex" href="#letter_d">d</a> | <a class="qindex" href="#letter_e">e</a> | <a class="qindex" href="#letter_f">f</a> | <a class="qindex" href="#letter_k">k</a> | <a class="qindex" href="#letter_l">l</a> | <a class="qindex" href="#letter_m">m</a> |& [...]
+<table class="classindex">
+<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  a  </div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_client.html">Client</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  f  </div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_message_id.html">MessageId</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+</tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  s  </div></td></tr></table>
+</td>
+</tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_console_logger_factory.html">ConsoleLoggerFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_file_logger_factory.html">FileLoggerFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+</tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_basic.html">AuthBasic</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_consumer.html">Consumer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td rowspan="2" valign="bottom"><a name="letter_k"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  k  </div></td></tr></table>
+</td>
+<td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  o  </div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_schema_info.html">SchemaInfo</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+</tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication.html">Authentication</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  t  </div></td></tr></table>
+</td>
+</tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication_data_provider.html">AuthenticationDataProvider</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_consumer_event_listener.html">ConsumerEventListener</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_oauth2_flow.html">Oauth2Flow</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+</tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_consumer_interceptor.html">ConsumerInterceptor</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_key_value.html">KeyValue</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_table_view.html">TableView</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+</tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_oauth2.html">AuthOauth2</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  l  </div></td></tr></table>
+</td>
+<td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  p  </div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="structpulsar_1_1_table_view_configuration.html">TableViewConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+</tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_tls.html">AuthTls</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  d  </div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_topic_metadata.html">TopicMetadata</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+</tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_token.html">AuthToken</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_logger.html">Logger</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_producer.html">Producer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_typed_message.html">TypedMessage</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+</tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  b  </div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+</tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_dead_letter_policy_builder.html">DeadLetterPolicyBuilder</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  m  </div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_producer_interceptor.html">ProducerInterceptor</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_typed_message_builder_3_01std_1_1string_01_4.html">TypedMessageBuilder< std::string ></a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+</tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_batch_receive_policy.html">BatchReceivePolicy</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_default_crypto_key_reader.html">DefaultCryptoKeyReader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="structpulsar__consumer__batch__receive__policy__t.html">pulsar_consumer_batch_receive_policy_t</a>   </td>
+<td></td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_message.html">Message</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="structpulsar__consumer__config__dead__letter__policy__t.html">pulsar_consumer_config_dead_letter_policy_t</a>   </td>
+<td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  c  </div></td></tr></table>
+</td>
+<td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  e  </div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_message_batch.html">MessageBatch</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="structpulsar__logger__t.html">pulsar_logger_t</a>   </td>
+<td></td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td rowspan="2" valign="bottom"><a name="letter_r"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  r  </div></td></tr></table>
+</td>
+<td></td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_cached_token.html">CachedToken</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td valign="top"><a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td></td><td></td></tr>
+<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="classpulsar_1_1_reader.html">Reader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)   </td>
+<td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_a">a</a> | <a class="qindex" href="#letter_b">b</a> | <a class="qindex" href="#letter_c">c</a> | <a class="qindex" href="#letter_d">d</a> | <a class="qindex" href="#letter_e">e</a> | <a class="qindex" href="#letter_f">f</a> | <a class="qindex" href="#letter_k">k</a> | <a class="qindex" href="#letter_l">l</a> | <a class="qindex" href="#letter_m">m</a> |& [...]
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_athenz-members.html b/static/api/cpp/3.2.x/classpulsar_1_1_auth_athenz-members.html
new file mode 100644
index 00000000000..510f641ea49
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_auth_athenz-members.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">pulsar::AuthAthenz Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AuthAthenz</b>(AuthenticationDataPtr &) (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>authData_</b> (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html#acde69fc41668a27d12d558023aaed0d9">create</a>(ParamMap &params)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html#afd40a525e1d8d61fc97880c2c8a958fe">create</a>(const std::string &authParamsString)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html#a274c9e677c536166fd1d4f8af6161546">getAuthData</a>(AuthenticationDataPtr &authDataAthenz)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html#a65405a1cfd2ec3efcaeea3ed8269fa47">getAuthMethodName</a>() const</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a>(const std::string &authParamsString)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~AuthAthenz</b>() (defined in <a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_athenz.html">pulsar::AuthAthenz</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_athenz.html b/static/api/cpp/3.2.x/classpulsar_1_1_auth_athenz.html
new file mode 100644
index 00000000000..c4cc1747edc
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_auth_athenz.html
@@ -0,0 +1,256 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: pulsar::AuthAthenz Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="classpulsar_1_1_auth_athenz-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">pulsar::AuthAthenz Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include <<a class="el" href="_authentication_8h_source.html">Authentication.h</a>></code></p>
+<div class="dynheader">
+Inheritance diagram for pulsar::AuthAthenz:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classpulsar_1_1_auth_athenz.png" usemap="#pulsar::AuthAthenz_map" alt=""/>
+ <map id="pulsar::AuthAthenz_map" name="pulsar::AuthAthenz_map">
+<area href="classpulsar_1_1_authentication.html" alt="pulsar::Authentication" shape="rect" coords="0,0,133,24"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ab4ed3eadbc72cabc8ff942e0ebdc053d"><td class="memItemLeft" align="right" valign="top"><a id="ab4ed3eadbc72cabc8ff942e0ebdc053d"></a>
+ </td><td class="memItemRight" valign="bottom"><b>AuthAthenz</b> (AuthenticationDataPtr &)</td></tr>
+<tr class="separator:ab4ed3eadbc72cabc8ff942e0ebdc053d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a65405a1cfd2ec3efcaeea3ed8269fa47"><td class="memItemLeft" align="right" valign="top">const std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_athenz.html#a65405a1cfd2ec3efcaeea3ed8269fa47">getAuthMethodName</a> () const</td></tr>
+<tr class="separator:a65405a1cfd2ec3efcaeea3ed8269fa47"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a274c9e677c536166fd1d4f8af6161546"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_athenz.html#a274c9e677c536166fd1d4f8af6161546">getAuthData</a> (AuthenticationDataPtr &authDataAthenz)</td></tr>
+<tr class="separator:a274c9e677c536166fd1d4f8af6161546"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:acde69fc41668a27d12d558023aaed0d9"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_athenz.html#acde69fc41668a27d12d558023aaed0d9">create</a> (ParamMap &params)</td></tr>
+<tr class="separator:acde69fc41668a27d12d558023aaed0d9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:afd40a525e1d8d61fc97880c2c8a958fe"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_athenz.html#afd40a525e1d8d61fc97880c2c8a958fe">create</a> (const std::string &authParamsString)</td></tr>
+<tr class="separator:afd40a525e1d8d61fc97880c2c8a958fe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="inherit_header pub_static_methods_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top">static ParamMap </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a> (const std::string &authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top"><a id="abac33d5c492826fb8a4bea05512c9f7c"></a>
+AuthenticationDataPtr </td><td class="memItemRight" valign="bottom"><b>authData_</b></td></tr>
+<tr class="separator:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Athenz implementation of Pulsar client authentication </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="afd40a525e1d8d61fc97880c2c8a958fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd40a525e1d8d61fc97880c2c8a958fe">◆ </a></span>create() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthAthenz::create </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>authParamsString</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a> with an authentication parameter string</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">Authentication::parseDefaultFormatAuthParams</a> </dd></dl>
+
+</div>
+</div>
+<a id="acde69fc41668a27d12d558023aaed0d9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acde69fc41668a27d12d558023aaed0d9">◆ </a></span>create() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthAthenz::create </td>
+ <td>(</td>
+ <td class="paramtype">ParamMap & </td>
+ <td class="paramname"><em>params</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a> with a ParamMap</p>
+<p>The required parameter keys are “tenantDomain”, “tenantService”, “providerDomain”, “privateKey”, and “ztsUrl”</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">params</td><td>the key-value to construct ZTS client </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://pulsar.apache.org/docs/en/security-athenz/">http://pulsar.apache.org/docs/en/security-athenz/</a> </dd></dl>
+
+</div>
+</div>
+<a id="a274c9e677c536166fd1d4f8af6161546"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a274c9e677c536166fd1d4f8af6161546">◆ </a></span>getAuthData()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> pulsar::AuthAthenz::getAuthData </td>
+ <td>(</td>
+ <td class="paramtype">AuthenticationDataPtr & </td>
+ <td class="paramname"><em>authDataAthenz</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Get AuthenticationData from the current instance</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">authDataAthenz</td><td>the shared pointer of AuthenticationData. The content of AuthenticationData is changed to the internal data of the current instance. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>ResultOk </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">pulsar::Authentication</a>.</p>
+
+</div>
+</div>
+<a id="a65405a1cfd2ec3efcaeea3ed8269fa47"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a65405a1cfd2ec3efcaeea3ed8269fa47">◆ </a></span>getAuthMethodName()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const std::string pulsar::AuthAthenz::getAuthMethodName </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>“athenz” </dd></dl>
+
+<p>Implements <a class="el" href="classpulsar_1_1_authentication.html#aafe5c68d220ae0926a2c66953eafed57">pulsar::Authentication</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/pulsar/<a class="el" href="_authentication_8h_source.html">Authentication.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_athenz.png b/static/api/cpp/3.2.x/classpulsar_1_1_auth_athenz.png
new file mode 100644
index 00000000000..d27f4a74805
Binary files /dev/null and b/static/api/cpp/3.2.x/classpulsar_1_1_auth_athenz.png differ
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_basic-members.html b/static/api/cpp/3.2.x/classpulsar_1_1_auth_basic-members.html
new file mode 100644
index 00000000000..e92aa86f7f5
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_auth_basic-members.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_basic.html">AuthBasic</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">pulsar::AuthBasic Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_auth_basic.html">pulsar::AuthBasic</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AuthBasic</b>(AuthenticationDataPtr &) (defined in <a class="el" href="classpulsar_1_1_auth_basic.html">pulsar::AuthBasic</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html">pulsar::AuthBasic</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>authData_</b> (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html#aee17b2ca84965dfe8b3d9296dd397400">create</a>(ParamMap &params)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html">pulsar::AuthBasic</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html#ac9f7f369e4559f0aa108708355dcaaec">create</a>(const std::string &authParamsString)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html">pulsar::AuthBasic</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html#a86ce78ef0606d5642f110dc4ec8c6f67">create</a>(const std::string &username, const std::string &password)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html">pulsar::AuthBasic</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html#ac85c75b0d48375423cbb5c1421529c46">create</a>(const std::string &username, const std::string &password, const std::string &method)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html">pulsar::AuthBasic</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html#a7b1ccda07ff0a22a705159e27149f3d4">getAuthData</a>(AuthenticationDataPtr &authDataBasic) override</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html">pulsar::AuthBasic</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html#ad9d2d1d47a1f1d82fee3522ea5991c3b">getAuthMethodName</a>() const override</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html">pulsar::AuthBasic</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a>(const std::string &authParamsString)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~AuthBasic</b>() override (defined in <a class="el" href="classpulsar_1_1_auth_basic.html">pulsar::AuthBasic</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_basic.html">pulsar::AuthBasic</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_basic.html b/static/api/cpp/3.2.x/classpulsar_1_1_auth_basic.html
new file mode 100644
index 00000000000..5fee61e2c6b
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_auth_basic.html
@@ -0,0 +1,338 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: pulsar::AuthBasic Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_basic.html">AuthBasic</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="classpulsar_1_1_auth_basic-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">pulsar::AuthBasic Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include <<a class="el" href="_authentication_8h_source.html">Authentication.h</a>></code></p>
+<div class="dynheader">
+Inheritance diagram for pulsar::AuthBasic:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classpulsar_1_1_auth_basic.png" usemap="#pulsar::AuthBasic_map" alt=""/>
+ <map id="pulsar::AuthBasic_map" name="pulsar::AuthBasic_map">
+<area href="classpulsar_1_1_authentication.html" alt="pulsar::Authentication" shape="rect" coords="0,0,133,24"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa1731ccdb4171f03fe4fc0fc618a7b38"><td class="memItemLeft" align="right" valign="top"><a id="aa1731ccdb4171f03fe4fc0fc618a7b38"></a>
+ </td><td class="memItemRight" valign="bottom"><b>AuthBasic</b> (AuthenticationDataPtr &)</td></tr>
+<tr class="separator:aa1731ccdb4171f03fe4fc0fc618a7b38"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad9d2d1d47a1f1d82fee3522ea5991c3b"><td class="memItemLeft" align="right" valign="top">const std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_basic.html#ad9d2d1d47a1f1d82fee3522ea5991c3b">getAuthMethodName</a> () const override</td></tr>
+<tr class="separator:ad9d2d1d47a1f1d82fee3522ea5991c3b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7b1ccda07ff0a22a705159e27149f3d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_basic.html#a7b1ccda07ff0a22a705159e27149f3d4">getAuthData</a> (AuthenticationDataPtr &authDataBasic) override</td></tr>
+<tr class="separator:a7b1ccda07ff0a22a705159e27149f3d4"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:aee17b2ca84965dfe8b3d9296dd397400"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_basic.html#aee17b2ca84965dfe8b3d9296dd397400">create</a> (ParamMap &params)</td></tr>
+<tr class="separator:aee17b2ca84965dfe8b3d9296dd397400"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac9f7f369e4559f0aa108708355dcaaec"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_basic.html#ac9f7f369e4559f0aa108708355dcaaec">create</a> (const std::string &authParamsString)</td></tr>
+<tr class="separator:ac9f7f369e4559f0aa108708355dcaaec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a86ce78ef0606d5642f110dc4ec8c6f67"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_basic.html#a86ce78ef0606d5642f110dc4ec8c6f67">create</a> (const std::string &username, const std::string &password)</td></tr>
+<tr class="separator:a86ce78ef0606d5642f110dc4ec8c6f67"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac85c75b0d48375423cbb5c1421529c46"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_basic.html#ac85c75b0d48375423cbb5c1421529c46">create</a> (const std::string &username, const std::string &password, const std::string &method)</td></tr>
+<tr class="separator:ac85c75b0d48375423cbb5c1421529c46"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="inherit_header pub_static_methods_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top">static ParamMap </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a> (const std::string &authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top"><a id="abac33d5c492826fb8a4bea05512c9f7c"></a>
+AuthenticationDataPtr </td><td class="memItemRight" valign="bottom"><b>authData_</b></td></tr>
+<tr class="separator:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Basic based implementation of Pulsar client authentication </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="ac9f7f369e4559f0aa108708355dcaaec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac9f7f369e4559f0aa108708355dcaaec">◆ </a></span>create() <span class="overload">[1/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthBasic::create </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>authParamsString</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_basic.html">AuthBasic</a> with an authentication parameter string</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">authParamsString</td><td>the JSON format string: {"username": "admin", "password": "123456"} </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="a86ce78ef0606d5642f110dc4ec8c6f67"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a86ce78ef0606d5642f110dc4ec8c6f67">◆ </a></span>create() <span class="overload">[2/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthBasic::create </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>username</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>password</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_basic.html">AuthBasic</a> with the required parameters </p>
+
+</div>
+</div>
+<a id="ac85c75b0d48375423cbb5c1421529c46"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac85c75b0d48375423cbb5c1421529c46">◆ </a></span>create() <span class="overload">[3/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthBasic::create </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>username</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>password</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>method</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_basic.html">AuthBasic</a> with the required parameters </p>
+
+</div>
+</div>
+<a id="aee17b2ca84965dfe8b3d9296dd397400"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aee17b2ca84965dfe8b3d9296dd397400">◆ </a></span>create() <span class="overload">[4/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthBasic::create </td>
+ <td>(</td>
+ <td class="paramtype">ParamMap & </td>
+ <td class="paramname"><em>params</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_basic.html">AuthBasic</a> with a ParamMap</p>
+<p>It is equal to create(params[“username”], params[“password”]) </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classpulsar_1_1_auth_basic.html#a86ce78ef0606d5642f110dc4ec8c6f67">create(const std::string&, const std::string&)</a> </dd></dl>
+
+</div>
+</div>
+<a id="a7b1ccda07ff0a22a705159e27149f3d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7b1ccda07ff0a22a705159e27149f3d4">◆ </a></span>getAuthData()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> pulsar::AuthBasic::getAuthData </td>
+ <td>(</td>
+ <td class="paramtype">AuthenticationDataPtr & </td>
+ <td class="paramname"><em>authDataBasic</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Get AuthenticationData from the current instance</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">authDataBasic</td><td>the shared pointer of AuthenticationData. The content of AuthenticationData is changed to the internal data of the current instance. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>ResultOk </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">pulsar::Authentication</a>.</p>
+
+</div>
+</div>
+<a id="ad9d2d1d47a1f1d82fee3522ea5991c3b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad9d2d1d47a1f1d82fee3522ea5991c3b">◆ </a></span>getAuthMethodName()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const std::string pulsar::AuthBasic::getAuthMethodName </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>“basic” </dd></dl>
+
+<p>Implements <a class="el" href="classpulsar_1_1_authentication.html#aafe5c68d220ae0926a2c66953eafed57">pulsar::Authentication</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/pulsar/<a class="el" href="_authentication_8h_source.html">Authentication.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_basic.png b/static/api/cpp/3.2.x/classpulsar_1_1_auth_basic.png
new file mode 100644
index 00000000000..475b87632dc
Binary files /dev/null and b/static/api/cpp/3.2.x/classpulsar_1_1_auth_basic.png differ
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_factory-members.html b/static/api/cpp/3.2.x/classpulsar_1_1_auth_factory-members.html
new file mode 100644
index 00000000000..64309ee0a03
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_auth_factory-members.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">pulsar::AuthFactory Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html#a551395eda623d3454c758c3479423ce3">create</a>(const std::string &pluginNameOrDynamicLibPath)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html#af84e99a6be262145d928e599946ab82d">create</a>(const std::string &pluginNameOrDynamicLibPath, const std::string &authParamsString)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html#a644b858e4a59482ecce5d1782bd4b452">create</a>(const std::string &pluginNameOrDynamicLibPath, ParamMap &params)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>Disabled</b>() (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isShutdownHookRegistered_</b> (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>loadedLibrariesHandles_</b> (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>release_handles</b>() (defined in <a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_factory.html">pulsar::AuthFactory</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_factory.html b/static/api/cpp/3.2.x/classpulsar_1_1_auth_factory.html
new file mode 100644
index 00000000000..39c5cac6bf0
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_auth_factory.html
@@ -0,0 +1,240 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: pulsar::AuthFactory Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pro-static-methods">Static Protected Member Functions</a> |
+<a href="#pro-static-attribs">Static Protected Attributes</a> |
+<a href="classpulsar_1_1_auth_factory-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">pulsar::AuthFactory Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include <<a class="el" href="_authentication_8h_source.html">Authentication.h</a>></code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a430f22348c1a089dd8589d87c6accf41"><td class="memItemLeft" align="right" valign="top"><a id="a430f22348c1a089dd8589d87c6accf41"></a>
+static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><b>Disabled</b> ()</td></tr>
+<tr class="separator:a430f22348c1a089dd8589d87c6accf41"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a551395eda623d3454c758c3479423ce3"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_factory.html#a551395eda623d3454c758c3479423ce3">create</a> (const std::string &pluginNameOrDynamicLibPath)</td></tr>
+<tr class="separator:a551395eda623d3454c758c3479423ce3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af84e99a6be262145d928e599946ab82d"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_factory.html#af84e99a6be262145d928e599946ab82d">create</a> (const std::string &pluginNameOrDynamicLibPath, const std::string &authParamsString)</td></tr>
+<tr class="separator:af84e99a6be262145d928e599946ab82d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a644b858e4a59482ecce5d1782bd4b452"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_factory.html#a644b858e4a59482ecce5d1782bd4b452">create</a> (const std::string &pluginNameOrDynamicLibPath, ParamMap &params)</td></tr>
+<tr class="separator:a644b858e4a59482ecce5d1782bd4b452"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
+Static Protected Member Functions</h2></td></tr>
+<tr class="memitem:a313049ed4f9c7e587b7529b8b667e569"><td class="memItemLeft" align="right" valign="top"><a id="a313049ed4f9c7e587b7529b8b667e569"></a>
+static void </td><td class="memItemRight" valign="bottom"><b>release_handles</b> ()</td></tr>
+<tr class="separator:a313049ed4f9c7e587b7529b8b667e569"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
+Static Protected Attributes</h2></td></tr>
+<tr class="memitem:a6a3436cb14de4c90a3b02509410753fd"><td class="memItemLeft" align="right" valign="top"><a id="a6a3436cb14de4c90a3b02509410753fd"></a>
+static bool </td><td class="memItemRight" valign="bottom"><b>isShutdownHookRegistered_</b></td></tr>
+<tr class="separator:a6a3436cb14de4c90a3b02509410753fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:abf8d4232884ae351e216935f1d229ee6"><td class="memItemLeft" align="right" valign="top"><a id="abf8d4232884ae351e216935f1d229ee6"></a>
+static std::vector< void * > </td><td class="memItemRight" valign="bottom"><b>loadedLibrariesHandles_</b></td></tr>
+<tr class="separator:abf8d4232884ae351e216935f1d229ee6"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a> is used to create instances of <a class="el" href="classpulsar_1_1_authentication.html">Authentication</a> class when configuring a <a class="el" href="classpulsar_1_1_client.html">Client</a> instance. It loads the authentication from an external plugin.</p>
+<p>To use authentication methods that are internally supported, you should use <code><a class="el" href="classpulsar_1_1_auth_tls.html#a3a2603a8be94cdde4845c941dc8871cc">AuthTls::create</a>("my-cert.pem", "my-private.key")</code> or similar. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a551395eda623d3454c758c3479423ce3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a551395eda623d3454c758c3479423ce3">◆ </a></span>create() <span class="overload">[1/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthFactory::create </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>pluginNameOrDynamicLibPath</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an AuthenticationPtr with an empty ParamMap</p>
+<dl class="section see"><dt>See also</dt><dd>create(const std::string&, const ParamMap&) </dd></dl>
+
+</div>
+</div>
+<a id="af84e99a6be262145d928e599946ab82d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af84e99a6be262145d928e599946ab82d">◆ </a></span>create() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthFactory::create </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>pluginNameOrDynamicLibPath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>authParamsString</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an AuthenticationPtr with a ParamMap that is converted from authParamsString</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">Authentication::parseDefaultFormatAuthParams</a> </dd>
+<dd>
+create(const std::string&, const ParamMap&) </dd></dl>
+
+</div>
+</div>
+<a id="a644b858e4a59482ecce5d1782bd4b452"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a644b858e4a59482ecce5d1782bd4b452">◆ </a></span>create() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthFactory::create </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>pluginNameOrDynamicLibPath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ParamMap & </td>
+ <td class="paramname"><em>params</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an AuthenticationPtr</p>
+<p>When the first parameter represents the plugin name, the type of authentication can be one of the following:</p><ul>
+<li><a class="el" href="classpulsar_1_1_auth_tls.html">AuthTls</a> (if the plugin name is “tls”)</li>
+<li><a class="el" href="classpulsar_1_1_auth_token.html">AuthToken</a> (if the plugin name is “token” or “org.apache.pulsar.client.impl.auth.AuthenticationToken”)</li>
+<li><a class="el" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a> (if the plugin name is “athenz” or “org.apache.pulsar.client.impl.auth.AuthenticationAthenz”)</li>
+<li><a class="el" href="classpulsar_1_1_auth_oauth2.html">AuthOauth2</a> (if the plugin name is “oauth2token” or “org.apache.pulsar.client.impl.auth.oauth2.AuthenticationOAuth2”)</li>
+</ul>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">pluginNameOrDynamicLibPath</td><td>the plugin name or the path or a dynamic library that contains the implementation of <a class="el" href="classpulsar_1_1_authentication.html">Authentication</a> </td></tr>
+ <tr><td class="paramname">params</td><td>the ParamMap that is passed to Authentication::create method </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/pulsar/<a class="el" href="_authentication_8h_source.html">Authentication.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_oauth2-members.html b/static/api/cpp/3.2.x/classpulsar_1_1_auth_oauth2-members.html
new file mode 100644
index 00000000000..6221ec28bb5
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_auth_oauth2-members.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_oauth2.html">AuthOauth2</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">pulsar::AuthOauth2 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_auth_oauth2.html">pulsar::AuthOauth2</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>authData_</b> (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AuthOauth2</b>(ParamMap &params) (defined in <a class="el" href="classpulsar_1_1_auth_oauth2.html">pulsar::AuthOauth2</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_oauth2.html">pulsar::AuthOauth2</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_oauth2.html#a7bb0d842b22b59036587b22da2447377">create</a>(ParamMap &params)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_oauth2.html">pulsar::AuthOauth2</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_oauth2.html#aca6ec2237b43187d8001a5b79a2f11e4">create</a>(const std::string &authParamsString)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_oauth2.html">pulsar::AuthOauth2</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_oauth2.html#adcf1f8cac446270ee6aa0a0ad156842e">getAuthData</a>(AuthenticationDataPtr &authDataOauth2)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_oauth2.html">pulsar::AuthOauth2</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_oauth2.html#ac71578130863f59cb02fe1aefa9d70f6">getAuthMethodName</a>() const</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_oauth2.html">pulsar::AuthOauth2</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a>(const std::string &authParamsString)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>~AuthOauth2</b>() (defined in <a class="el" href="classpulsar_1_1_auth_oauth2.html">pulsar::AuthOauth2</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_oauth2.html">pulsar::AuthOauth2</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_oauth2.html b/static/api/cpp/3.2.x/classpulsar_1_1_auth_oauth2.html
new file mode 100644
index 00000000000..d49a13fd976
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_auth_oauth2.html
@@ -0,0 +1,261 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: pulsar::AuthOauth2 Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_oauth2.html">AuthOauth2</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="classpulsar_1_1_auth_oauth2-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">pulsar::AuthOauth2 Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include <<a class="el" href="_authentication_8h_source.html">Authentication.h</a>></code></p>
+<div class="dynheader">
+Inheritance diagram for pulsar::AuthOauth2:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classpulsar_1_1_auth_oauth2.png" usemap="#pulsar::AuthOauth2_map" alt=""/>
+ <map id="pulsar::AuthOauth2_map" name="pulsar::AuthOauth2_map">
+<area href="classpulsar_1_1_authentication.html" alt="pulsar::Authentication" shape="rect" coords="0,0,133,24"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:af35b3e1423d0efb557a2d56be3a17acd"><td class="memItemLeft" align="right" valign="top"><a id="af35b3e1423d0efb557a2d56be3a17acd"></a>
+ </td><td class="memItemRight" valign="bottom"><b>AuthOauth2</b> (ParamMap &params)</td></tr>
+<tr class="separator:af35b3e1423d0efb557a2d56be3a17acd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac71578130863f59cb02fe1aefa9d70f6"><td class="memItemLeft" align="right" valign="top">const std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_oauth2.html#ac71578130863f59cb02fe1aefa9d70f6">getAuthMethodName</a> () const</td></tr>
+<tr class="separator:ac71578130863f59cb02fe1aefa9d70f6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:adcf1f8cac446270ee6aa0a0ad156842e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_oauth2.html#adcf1f8cac446270ee6aa0a0ad156842e">getAuthData</a> (AuthenticationDataPtr &authDataOauth2)</td></tr>
+<tr class="separator:adcf1f8cac446270ee6aa0a0ad156842e"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a7bb0d842b22b59036587b22da2447377"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_oauth2.html#a7bb0d842b22b59036587b22da2447377">create</a> (ParamMap &params)</td></tr>
+<tr class="separator:a7bb0d842b22b59036587b22da2447377"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aca6ec2237b43187d8001a5b79a2f11e4"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_oauth2.html#aca6ec2237b43187d8001a5b79a2f11e4">create</a> (const std::string &authParamsString)</td></tr>
+<tr class="separator:aca6ec2237b43187d8001a5b79a2f11e4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="inherit_header pub_static_methods_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top">static ParamMap </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a> (const std::string &authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top"><a id="abac33d5c492826fb8a4bea05512c9f7c"></a>
+AuthenticationDataPtr </td><td class="memItemRight" valign="bottom"><b>authData_</b></td></tr>
+<tr class="separator:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Oauth2 based implementation of Pulsar client authentication. Passed in parameter would be like: </p><div class="fragment"><div class="line"><span class="stringliteral">"type"</span>: <span class="stringliteral">"client_credentials"</span>,</div>
+<div class="line"><span class="stringliteral">"issuer_url"</span>: <span class="stringliteral">"https://accounts.google.com"</span>,</div>
+<div class="line"><span class="stringliteral">"client_id"</span>: <span class="stringliteral">"d9ZyX97q1ef8Cr81WHVC4hFQ64vSlDK3"</span>,</div>
+<div class="line"><span class="stringliteral">"client_secret"</span>: <span class="stringliteral">"on1uJ...k6F6R"</span>,</div>
+<div class="line"><span class="stringliteral">"audience"</span>: <span class="stringliteral">"https://broker.example.com"</span></div>
+</div><!-- fragment --><p>If passed in as std::string, it should be in Json format. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="aca6ec2237b43187d8001a5b79a2f11e4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aca6ec2237b43187d8001a5b79a2f11e4">◆ </a></span>create() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthOauth2::create </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>authParamsString</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_oauth2.html">AuthOauth2</a> with an authentication parameter string</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">Authentication::parseDefaultFormatAuthParams</a> </dd></dl>
+
+</div>
+</div>
+<a id="a7bb0d842b22b59036587b22da2447377"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7bb0d842b22b59036587b22da2447377">◆ </a></span>create() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthOauth2::create </td>
+ <td>(</td>
+ <td class="paramtype">ParamMap & </td>
+ <td class="paramname"><em>params</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_oauth2.html">AuthOauth2</a> with a ParamMap</p>
+<p>The required parameter keys are “issuer_url”, “private_key”, and “audience”</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">parameters</td><td>the key-value to create OAuth 2.0 client credentials </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://pulsar.apache.org/docs/en/security-oauth2/#client-credentials">http://pulsar.apache.org/docs/en/security-oauth2/#client-credentials</a> </dd></dl>
+
+</div>
+</div>
+<a id="adcf1f8cac446270ee6aa0a0ad156842e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adcf1f8cac446270ee6aa0a0ad156842e">◆ </a></span>getAuthData()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> pulsar::AuthOauth2::getAuthData </td>
+ <td>(</td>
+ <td class="paramtype">AuthenticationDataPtr & </td>
+ <td class="paramname"><em>authDataOauth2</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Get AuthenticationData from the current instance</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">authDataOauth2</td><td>the shared pointer of AuthenticationData. The content of AuthenticationData is changed to the internal data of the current instance. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>ResultOk or ResultAuthenticationError if authentication failed </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">pulsar::Authentication</a>.</p>
+
+</div>
+</div>
+<a id="ac71578130863f59cb02fe1aefa9d70f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac71578130863f59cb02fe1aefa9d70f6">◆ </a></span>getAuthMethodName()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const std::string pulsar::AuthOauth2::getAuthMethodName </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>“token” </dd></dl>
+
+<p>Implements <a class="el" href="classpulsar_1_1_authentication.html#aafe5c68d220ae0926a2c66953eafed57">pulsar::Authentication</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/pulsar/<a class="el" href="_authentication_8h_source.html">Authentication.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_oauth2.png b/static/api/cpp/3.2.x/classpulsar_1_1_auth_oauth2.png
new file mode 100644
index 00000000000..656f4070507
Binary files /dev/null and b/static/api/cpp/3.2.x/classpulsar_1_1_auth_oauth2.png differ
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_tls-members.html b/static/api/cpp/3.2.x/classpulsar_1_1_auth_tls-members.html
new file mode 100644
index 00000000000..68ffdb015a1
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_auth_tls-members.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_tls.html">AuthTls</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">pulsar::AuthTls Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>authData_</b> (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AuthTls</b>(AuthenticationDataPtr &) (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html#a3a2603a8be94cdde4845c941dc8871cc">create</a>(ParamMap &params)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html#a19312c7b58d94aa05927ee33922731de">create</a>(const std::string &authParamsString)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html#ac32274cb7d7095cfcd35fcebcf277d5b">create</a>(const std::string &certificatePath, const std::string &privateKeyPath)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html#ae88d06f62a47e92e7c52e74df3cacb56">getAuthData</a>(AuthenticationDataPtr &authDataTls)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html#a2c87f86950aa979f666896e7a5f79398">getAuthMethodName</a>() const</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a>(const std::string &authParamsString)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~AuthTls</b>() (defined in <a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_tls.html">pulsar::AuthTls</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_tls.html b/static/api/cpp/3.2.x/classpulsar_1_1_auth_tls.html
new file mode 100644
index 00000000000..a59ae217f80
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_auth_tls.html
@@ -0,0 +1,295 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: pulsar::AuthTls Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_tls.html">AuthTls</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="classpulsar_1_1_auth_tls-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">pulsar::AuthTls Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include <<a class="el" href="_authentication_8h_source.html">Authentication.h</a>></code></p>
+<div class="dynheader">
+Inheritance diagram for pulsar::AuthTls:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classpulsar_1_1_auth_tls.png" usemap="#pulsar::AuthTls_map" alt=""/>
+ <map id="pulsar::AuthTls_map" name="pulsar::AuthTls_map">
+<area href="classpulsar_1_1_authentication.html" alt="pulsar::Authentication" shape="rect" coords="0,0,133,24"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a288702412c2ed9dc55e293902d476767"><td class="memItemLeft" align="right" valign="top"><a id="a288702412c2ed9dc55e293902d476767"></a>
+ </td><td class="memItemRight" valign="bottom"><b>AuthTls</b> (AuthenticationDataPtr &)</td></tr>
+<tr class="separator:a288702412c2ed9dc55e293902d476767"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a2c87f86950aa979f666896e7a5f79398"><td class="memItemLeft" align="right" valign="top">const std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_tls.html#a2c87f86950aa979f666896e7a5f79398">getAuthMethodName</a> () const</td></tr>
+<tr class="separator:a2c87f86950aa979f666896e7a5f79398"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae88d06f62a47e92e7c52e74df3cacb56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_tls.html#ae88d06f62a47e92e7c52e74df3cacb56">getAuthData</a> (AuthenticationDataPtr &authDataTls)</td></tr>
+<tr class="separator:ae88d06f62a47e92e7c52e74df3cacb56"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a3a2603a8be94cdde4845c941dc8871cc"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_tls.html#a3a2603a8be94cdde4845c941dc8871cc">create</a> (ParamMap &params)</td></tr>
+<tr class="separator:a3a2603a8be94cdde4845c941dc8871cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a19312c7b58d94aa05927ee33922731de"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_tls.html#a19312c7b58d94aa05927ee33922731de">create</a> (const std::string &authParamsString)</td></tr>
+<tr class="separator:a19312c7b58d94aa05927ee33922731de"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac32274cb7d7095cfcd35fcebcf277d5b"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_tls.html#ac32274cb7d7095cfcd35fcebcf277d5b">create</a> (const std::string &certificatePath, const std::string &privateKeyPath)</td></tr>
+<tr class="separator:ac32274cb7d7095cfcd35fcebcf277d5b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="inherit_header pub_static_methods_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top">static ParamMap </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a> (const std::string &authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top"><a id="abac33d5c492826fb8a4bea05512c9f7c"></a>
+AuthenticationDataPtr </td><td class="memItemRight" valign="bottom"><b>authData_</b></td></tr>
+<tr class="separator:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>TLS implementation of Pulsar client authentication </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a19312c7b58d94aa05927ee33922731de"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a19312c7b58d94aa05927ee33922731de">◆ </a></span>create() <span class="overload">[1/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthTls::create </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>authParamsString</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_tls.html">AuthTls</a> with an authentication parameter string</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">Authentication::parseDefaultFormatAuthParams</a> </dd></dl>
+
+</div>
+</div>
+<a id="ac32274cb7d7095cfcd35fcebcf277d5b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac32274cb7d7095cfcd35fcebcf277d5b">◆ </a></span>create() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthTls::create </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>certificatePath</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>privateKeyPath</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_tls.html">AuthTls</a> with the required parameters</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">certificatePath</td><td>the file path for a client certificate </td></tr>
+ <tr><td class="paramname">privateKeyPath</td><td>the file path for a client private key </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="a3a2603a8be94cdde4845c941dc8871cc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3a2603a8be94cdde4845c941dc8871cc">◆ </a></span>create() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthTls::create </td>
+ <td>(</td>
+ <td class="paramtype">ParamMap & </td>
+ <td class="paramname"><em>params</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_tls.html">AuthTls</a> with a ParamMap</p>
+<p>It is equal to create(params[“tlsCertFile”], params[“tlsKeyFile”]) </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classpulsar_1_1_auth_tls.html#ac32274cb7d7095cfcd35fcebcf277d5b">create(const std::string&, const std::string&)</a> </dd></dl>
+
+</div>
+</div>
+<a id="ae88d06f62a47e92e7c52e74df3cacb56"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae88d06f62a47e92e7c52e74df3cacb56">◆ </a></span>getAuthData()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> pulsar::AuthTls::getAuthData </td>
+ <td>(</td>
+ <td class="paramtype">AuthenticationDataPtr & </td>
+ <td class="paramname"><em>authDataTls</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Get AuthenticationData from the current instance</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">authDataTls</td><td>the shared pointer of AuthenticationData. The content of AuthenticationData is changed to the internal data of the current instance. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>ResultOk </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">pulsar::Authentication</a>.</p>
+
+</div>
+</div>
+<a id="a2c87f86950aa979f666896e7a5f79398"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2c87f86950aa979f666896e7a5f79398">◆ </a></span>getAuthMethodName()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const std::string pulsar::AuthTls::getAuthMethodName </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>“tls” </dd></dl>
+
+<p>Implements <a class="el" href="classpulsar_1_1_authentication.html#aafe5c68d220ae0926a2c66953eafed57">pulsar::Authentication</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/pulsar/<a class="el" href="_authentication_8h_source.html">Authentication.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_tls.png b/static/api/cpp/3.2.x/classpulsar_1_1_auth_tls.png
new file mode 100644
index 00000000000..936a732e64b
Binary files /dev/null and b/static/api/cpp/3.2.x/classpulsar_1_1_auth_tls.png differ
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_token-members.html b/static/api/cpp/3.2.x/classpulsar_1_1_auth_token-members.html
new file mode 100644
index 00000000000..ccd6bb911bf
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_auth_token-members.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_token.html">AuthToken</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">pulsar::AuthToken Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_auth_token.html">pulsar::AuthToken</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>authData_</b> (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AuthToken</b>(AuthenticationDataPtr &) (defined in <a class="el" href="classpulsar_1_1_auth_token.html">pulsar::AuthToken</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html">pulsar::AuthToken</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html#aa4d3740c838620765a7332bf2247b5e9">create</a>(ParamMap &params)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html">pulsar::AuthToken</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html#a9601a01bd5b7b644531d82fc3cfa7d09">create</a>(const std::string &authParamsString)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html">pulsar::AuthToken</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html#ae9b2da50ad0c22335b298d939239602c">create</a>(const TokenSupplier &tokenSupplier)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html">pulsar::AuthToken</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html#a80911f1374df425fdb76f066dfe7ebd9">createWithToken</a>(const std::string &token)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html">pulsar::AuthToken</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html#a212a8af7680f196e4fba4e0152e6d0a5">getAuthData</a>(AuthenticationDataPtr &authDataToken)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html">pulsar::AuthToken</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html#a0d1bf202c18b9131be315b166b4b1caa">getAuthMethodName</a>() const</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html">pulsar::AuthToken</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a>(const std::string &authParamsString)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>~AuthToken</b>() (defined in <a class="el" href="classpulsar_1_1_auth_token.html">pulsar::AuthToken</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_auth_token.html">pulsar::AuthToken</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_token.html b/static/api/cpp/3.2.x/classpulsar_1_1_auth_token.html
new file mode 100644
index 00000000000..914c52db375
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_auth_token.html
@@ -0,0 +1,328 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: pulsar::AuthToken Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_auth_token.html">AuthToken</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="classpulsar_1_1_auth_token-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">pulsar::AuthToken Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include <<a class="el" href="_authentication_8h_source.html">Authentication.h</a>></code></p>
+<div class="dynheader">
+Inheritance diagram for pulsar::AuthToken:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classpulsar_1_1_auth_token.png" usemap="#pulsar::AuthToken_map" alt=""/>
+ <map id="pulsar::AuthToken_map" name="pulsar::AuthToken_map">
+<area href="classpulsar_1_1_authentication.html" alt="pulsar::Authentication" shape="rect" coords="0,0,133,24"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aeb6fe37de94ac0898f32ca07d1a22b7c"><td class="memItemLeft" align="right" valign="top"><a id="aeb6fe37de94ac0898f32ca07d1a22b7c"></a>
+ </td><td class="memItemRight" valign="bottom"><b>AuthToken</b> (AuthenticationDataPtr &)</td></tr>
+<tr class="separator:aeb6fe37de94ac0898f32ca07d1a22b7c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0d1bf202c18b9131be315b166b4b1caa"><td class="memItemLeft" align="right" valign="top">const std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_token.html#a0d1bf202c18b9131be315b166b4b1caa">getAuthMethodName</a> () const</td></tr>
+<tr class="separator:a0d1bf202c18b9131be315b166b4b1caa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a212a8af7680f196e4fba4e0152e6d0a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_token.html#a212a8af7680f196e4fba4e0152e6d0a5">getAuthData</a> (AuthenticationDataPtr &authDataToken)</td></tr>
+<tr class="separator:a212a8af7680f196e4fba4e0152e6d0a5"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:aa4d3740c838620765a7332bf2247b5e9"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_token.html#aa4d3740c838620765a7332bf2247b5e9">create</a> (ParamMap &params)</td></tr>
+<tr class="separator:aa4d3740c838620765a7332bf2247b5e9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9601a01bd5b7b644531d82fc3cfa7d09"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_token.html#a9601a01bd5b7b644531d82fc3cfa7d09">create</a> (const std::string &authParamsString)</td></tr>
+<tr class="separator:a9601a01bd5b7b644531d82fc3cfa7d09"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a80911f1374df425fdb76f066dfe7ebd9"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_token.html#a80911f1374df425fdb76f066dfe7ebd9">createWithToken</a> (const std::string &token)</td></tr>
+<tr class="separator:a80911f1374df425fdb76f066dfe7ebd9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae9b2da50ad0c22335b298d939239602c"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_token.html#ae9b2da50ad0c22335b298d939239602c">create</a> (const TokenSupplier &tokenSupplier)</td></tr>
+<tr class="separator:ae9b2da50ad0c22335b298d939239602c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="inherit_header pub_static_methods_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top">static ParamMap </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a> (const std::string &authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classpulsar_1_1_authentication"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpulsar_1_1_authentication')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td></tr>
+<tr class="memitem:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memItemLeft" align="right" valign="top"><a id="abac33d5c492826fb8a4bea05512c9f7c"></a>
+AuthenticationDataPtr </td><td class="memItemRight" valign="bottom"><b>authData_</b></td></tr>
+<tr class="separator:abac33d5c492826fb8a4bea05512c9f7c inherit pro_attribs_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Token based implementation of Pulsar client authentication </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a9601a01bd5b7b644531d82fc3cfa7d09"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9601a01bd5b7b644531d82fc3cfa7d09">◆ </a></span>create() <span class="overload">[1/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthToken::create </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>authParamsString</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_token.html">AuthToken</a> with an authentication parameter string</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">Authentication::parseDefaultFormatAuthParams</a> </dd></dl>
+
+</div>
+</div>
+<a id="ae9b2da50ad0c22335b298d939239602c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae9b2da50ad0c22335b298d939239602c">◆ </a></span>create() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthToken::create </td>
+ <td>(</td>
+ <td class="paramtype">const TokenSupplier & </td>
+ <td class="paramname"><em>tokenSupplier</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an authentication provider for token based authentication</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">tokenSupplier</td><td>a supplier of the client auth token </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa4d3740c838620765a7332bf2247b5e9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa4d3740c838620765a7332bf2247b5e9">◆ </a></span>create() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthToken::create </td>
+ <td>(</td>
+ <td class="paramtype">ParamMap & </td>
+ <td class="paramname"><em>params</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an <a class="el" href="classpulsar_1_1_auth_token.html">AuthToken</a> with a ParamMap</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">parameters</td><td>it must contain a key-value, where key means how to get the token and value means the token source</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>If the key is “token”, the value is the token</p>
+<p>If the key is “file”, the value is the file that contains the token</p>
+<p>If the key is “env”, the value is the environment variable whose value is the token</p>
+<p>Otherwise, a <code>std::runtime_error</code> error is thrown. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classpulsar_1_1_auth_token.html#a9601a01bd5b7b644531d82fc3cfa7d09">create(const std::string& authParamsString)</a> </dd></dl>
+
+</div>
+</div>
+<a id="a80911f1374df425fdb76f066dfe7ebd9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a80911f1374df425fdb76f066dfe7ebd9">◆ </a></span>createWithToken()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static AuthenticationPtr pulsar::AuthToken::createWithToken </td>
+ <td>(</td>
+ <td class="paramtype">const std::string & </td>
+ <td class="paramname"><em>token</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Create an authentication provider for token based authentication</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">token</td><td>a string containing the auth token </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="a212a8af7680f196e4fba4e0152e6d0a5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a212a8af7680f196e4fba4e0152e6d0a5">◆ </a></span>getAuthData()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> pulsar::AuthToken::getAuthData </td>
+ <td>(</td>
+ <td class="paramtype">AuthenticationDataPtr & </td>
+ <td class="paramname"><em>authDataToken</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Get AuthenticationData from the current instance</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">authDataToken</td><td>the shared pointer of AuthenticationData. The content of AuthenticationData is changed to the internal data of the current instance. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>ResultOk </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">pulsar::Authentication</a>.</p>
+
+</div>
+</div>
+<a id="a0d1bf202c18b9131be315b166b4b1caa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0d1bf202c18b9131be315b166b4b1caa">◆ </a></span>getAuthMethodName()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">const std::string pulsar::AuthToken::getAuthMethodName </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>“token” </dd></dl>
+
+<p>Implements <a class="el" href="classpulsar_1_1_authentication.html#aafe5c68d220ae0926a2c66953eafed57">pulsar::Authentication</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/pulsar/<a class="el" href="_authentication_8h_source.html">Authentication.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_auth_token.png b/static/api/cpp/3.2.x/classpulsar_1_1_auth_token.png
new file mode 100644
index 00000000000..f92d2396f13
Binary files /dev/null and b/static/api/cpp/3.2.x/classpulsar_1_1_auth_token.png differ
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_authentication-members.html b/static/api/cpp/3.2.x/classpulsar_1_1_authentication-members.html
new file mode 100644
index 00000000000..610b78b824b
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_authentication-members.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_authentication.html">Authentication</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">pulsar::Authentication Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>authData_</b> (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ClientConfiguration</b> (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">getAuthData</a>(AuthenticationDataPtr &authDataContent)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html#aafe5c68d220ae0926a2c66953eafed57">getAuthMethodName</a>() const =0</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a>(const std::string &authParamsString)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Authentication</b>() (defined in <a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_authentication.html">pulsar::Authentication</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.17
+</small></address>
+</body>
+</html>
diff --git a/static/api/cpp/3.2.x/classpulsar_1_1_authentication.html b/static/api/cpp/3.2.x/classpulsar_1_1_authentication.html
new file mode 100644
index 00000000000..655d73186d2
--- /dev/null
+++ b/static/api/cpp/3.2.x/classpulsar_1_1_authentication.html
@@ -0,0 +1,228 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>pulsar-client-cpp: pulsar::Authentication Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">pulsar-client-cpp
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_authentication.html">Authentication</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="#pro-attribs">Protected Attributes</a> |
+<a href="#friends">Friends</a> |
+<a href="classpulsar_1_1_authentication-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">pulsar::Authentication Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for pulsar::Authentication:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classpulsar_1_1_authentication.png" usemap="#pulsar::Authentication_map" alt=""/>
+ <map id="pulsar::Authentication_map" name="pulsar::Authentication_map">
+<area href="classpulsar_1_1_auth_athenz.html" alt="pulsar::AuthAthenz" shape="rect" coords="0,56,133,80"/>
+<area href="classpulsar_1_1_auth_basic.html" alt="pulsar::AuthBasic" shape="rect" coords="143,56,276,80"/>
+<area href="classpulsar_1_1_auth_oauth2.html" alt="pulsar::AuthOauth2" shape="rect" coords="286,56,419,80"/>
+<area href="classpulsar_1_1_auth_tls.html" alt="pulsar::AuthTls" shape="rect" coords="429,56,562,80"/>
+<area href="classpulsar_1_1_auth_token.html" alt="pulsar::AuthToken" shape="rect" coords="572,56,705,80"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aafe5c68d220ae0926a2c66953eafed57"><td class="memItemLeft" align="right" valign="top">virtual const std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#aafe5c68d220ae0926a2c66953eafed57">getAuthMethodName</a> () const =0</td></tr>
+<tr class="separator:aafe5c68d220ae0926a2c66953eafed57"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a14811c36fc300cfa7769f7ee96018688"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">getAuthData</a> (AuthenticationDataPtr &authDataContent)</td></tr>
+<tr class="separator:a14811c36fc300cfa7769f7ee96018688"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a0ff47251bd4184cd0e9155e76a5c35bb"><td class="memItemLeft" align="right" valign="top">static ParamMap </td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a> (const std::string &authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:abac33d5c492826fb8a4bea05512c9f7c"><td class="memItemLeft" align="right" valign="top"><a id="abac33d5c492826fb8a4bea05512c9f7c"></a>
+AuthenticationDataPtr </td><td class="memItemRight" valign="bottom"><b>authData_</b></td></tr>
+<tr class="separator:abac33d5c492826fb8a4bea05512c9f7c"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
+Friends</h2></td></tr>
+<tr class="memitem:abea2ee50c7ded8ed569f7cedfbecd6f5"><td class="memItemLeft" align="right" valign="top"><a id="abea2ee50c7ded8ed569f7cedfbecd6f5"></a>
+class </td><td class="memItemRight" valign="bottom"><b>ClientConfiguration</b></td></tr>
+<tr class="separator:abea2ee50c7ded8ed569f7cedfbecd6f5"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a14811c36fc300cfa7769f7ee96018688"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a14811c36fc300cfa7769f7ee96018688">◆ </a></span>getAuthData()</h2>
+
+<div class="memitem">
... 41728 lines suppressed ...