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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_AUTHENTICATION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_AUTHENTICATION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="namespacepulsar.html">   31</a></span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<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>&#160;<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>&#160; </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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDataForTls();</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="keyword">virtual</span> std::string getTlsCertificates();</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keyword">virtual</span> std::string getTlsPrivateKey();</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDataForHttp();</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keyword">virtual</span> std::string getHttpAuthType();</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keyword">virtual</span> std::string getHttpHeaders();</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160; </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDataFromCommand();</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keyword">virtual</span> std::string getCommandData();</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;   <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <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>&#160;};</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="keyword">typedef</span> std::shared_ptr&lt;AuthenticationDataProvider&gt; AuthenticationDataPtr;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="keyword">typedef</span> std::shared_ptr&lt;Authentication&gt; AuthenticationPtr;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="keyword">typedef</span> std::map&lt;std::string, std::string&gt; ParamMap;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication.html">   88</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">  104</a></span>&#160;    <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&amp; authDataContent) {</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        authDataContent = authData_;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <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>&#160;    }</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keyword">static</span> ParamMap parseDefaultFormatAuthParams(<span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;   <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <a class="code" href="classpulsar_1_1_authentication.html">Authentication</a>();</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    AuthenticationDataPtr authData_;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <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>&#160;};</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_factory.html">  136</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="keyword">static</span> AuthenticationPtr Disabled();</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string&amp; pluginNameOrDynamicLibPath);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string&amp; pluginNameOrDynamicLibPath,</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                                    <span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160; </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string&amp; pluginNameOrDynamicLibPath, ParamMap&amp; params);</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;   <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> isShutdownHookRegistered_;</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keyword">static</span> std::vector&lt;void*&gt; loadedLibrariesHandles_;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <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>&#160;};</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
+<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_tls.html">  183</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <a class="code" href="classpulsar_1_1_auth_tls.html">AuthTls</a>(AuthenticationDataPtr&amp;);</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    ~<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>&#160; </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(ParamMap&amp; params);</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160; </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160; </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string&amp; certificatePath, <span class="keyword">const</span> std::string&amp; privateKeyPath);</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160; </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getAuthData(AuthenticationDataPtr&amp; authDataTls);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160; </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    AuthenticationDataPtr authDataTls_;</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;};</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160; </div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="keyword">typedef</span> std::function&lt;std::string()&gt; TokenSupplier;</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
+<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_token.html">  234</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <a class="code" href="classpulsar_1_1_auth_token.html">AuthToken</a>(AuthenticationDataPtr&amp;);</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    ~<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>&#160; </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(ParamMap&amp; params);</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160; </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160; </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <span class="keyword">static</span> AuthenticationPtr createWithToken(<span class="keyword">const</span> std::string&amp; token);</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160; </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> TokenSupplier&amp; tokenSupplier);</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160; </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getAuthData(AuthenticationDataPtr&amp; authDataToken);</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    AuthenticationDataPtr authDataToken_;</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;};</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160; </div>
+<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_basic.html">  300</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_auth_basic.html">AuthBasic</a>(AuthenticationDataPtr&amp;);</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    ~<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>&#160; </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(ParamMap&amp; params);</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160; </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string&amp; username, <span class="keyword">const</span> std::string&amp; password);</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160; </div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string&amp; username, <span class="keyword">const</span> std::string&amp; password,</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;                                    <span class="keyword">const</span> std::string&amp; method);</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160; </div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;    <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getAuthData(AuthenticationDataPtr&amp; authDataBasic) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160; </div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    AuthenticationDataPtr authDataBasic_;</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;};</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160; </div>
+<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_athenz.html">  352</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    <a class="code" href="classpulsar_1_1_auth_athenz.html">AuthAthenz</a>(AuthenticationDataPtr&amp;);</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    ~<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>&#160; </div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(ParamMap&amp; params);</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160; </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160; </div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getAuthData(AuthenticationDataPtr&amp; authDataAthenz);</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160; </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    AuthenticationDataPtr authDataAthenz_;</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;};</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160; </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="comment">// OAuth 2.0 token and associated information.</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <span class="keyword">enum</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    {</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        undefined_expiration = -1</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    };</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160; </div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    <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>&#160;    ~<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>&#160; </div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <a class="code" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a>&amp; <a class="code" href="classpulsar_1_1_oauth2_token_result.html#ab8714dfd4aa25c2032efaa1f39d418fb">setAccessToken</a>(<span class="keyword">const</span> std::string&amp; accessToken);</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160; </div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    <a class="code" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a>&amp; <a class="code" href="classpulsar_1_1_oauth2_token_result.html#a645d769212d85e7f0d9dd68eb72fefd6">setIdToken</a>(<span class="keyword">const</span> std::string&amp; idToken);</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160; </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    <a class="code" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a>&amp; <a class="code" href="classpulsar_1_1_oauth2_token_result.html#af4c586178ec5c1accd15245ca12c66c3">setRefreshToken</a>(<span class="keyword">const</span> std::string&amp; refreshToken);</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160; </div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    <a class="code" href="classpulsar_1_1_oauth2_token_result.html">Oauth2TokenResult</a>&amp; <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>&#160; </div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    <span class="keyword">const</span> std::string&amp; <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>&#160; </div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    <span class="keyword">const</span> std::string&amp; <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>&#160; </div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    <span class="keyword">const</span> std::string&amp; <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>&#160; </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    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>&#160; </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    <span class="comment">// map to json &quot;access_token&quot;</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    std::string accessToken_;</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;    <span class="comment">// map to json &quot;id_token&quot;</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    std::string idToken_;</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    <span class="comment">// map to json &quot;refresh_token&quot;</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    std::string refreshToken_;</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    <span class="comment">// map to json &quot;expires_in&quot;</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    int64_t expiresIn_;</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;};</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160; </div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;<span class="keyword">typedef</span> std::shared_ptr&lt;Oauth2TokenResult&gt; Oauth2TokenResultPtr;</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160; </div>
+<div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="classpulsar_1_1_oauth2_flow.html">  468</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;   <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    <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>&#160;};</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160; </div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="keyword">typedef</span> std::shared_ptr&lt;Oauth2Flow&gt; FlowPtr;</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160; </div>
+<div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="classpulsar_1_1_cached_token.html">  494</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;   <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    <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>&#160;};</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160; </div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;<span class="keyword">typedef</span> std::shared_ptr&lt;CachedToken&gt; CachedTokenPtr;</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160; </div>
+<div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="classpulsar_1_1_auth_oauth2.html">  528</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;    <a class="code" href="classpulsar_1_1_auth_oauth2.html">AuthOauth2</a>(ParamMap&amp; params);</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;    ~<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>&#160; </div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(ParamMap&amp; params);</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160; </div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    <span class="keyword">static</span> AuthenticationPtr create(<span class="keyword">const</span> std::string&amp; authParamsString);</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160; </div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getAuthData(AuthenticationDataPtr&amp; authDataOauth2);</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160; </div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    FlowPtr flowPtr_;</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;    CachedTokenPtr cachedTokenPtr_;</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;};</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160; </div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160; </div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;<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 &amp; 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 &amp; 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 &amp; setRefreshToken(const std::string &amp;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 &amp; setIdToken(const std::string &amp;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 &amp;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 &amp; 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 &amp; setAccessToken(const std::string &amp;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 &amp; 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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef BATCH_RECEIVE_POLICY_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define BATCH_RECEIVE_POLICY_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">struct </span>BatchReceivePolicyImpl;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keywordtype">long</span> getTimeoutMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keywordtype">int</span> getMaxNumMessages() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keywordtype">long</span> getMaxNumBytes() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    std::shared_ptr&lt;BatchReceivePolicyImpl&gt; impl_;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;};</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_CPP_BROKERCONSUMERSTATS_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_CPP_BROKERCONSUMERSTATS_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/ConsumerType.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<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>&#160;<span class="keyword">class </span>BrokerConsumerStatsImplBase;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<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>&#160;<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>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    std::shared_ptr&lt;BrokerConsumerStatsImplBase&gt; impl_;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <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>&#160;    <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a>(std::shared_ptr&lt;BrokerConsumerStatsImplBase&gt; impl);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    std::shared_ptr&lt;BrokerConsumerStatsImplBase&gt; getImpl() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keyword">friend</span> PULSAR_PUBLIC std::ostream &amp;operator&lt;&lt;(std::ostream &amp;os, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a> &amp;obj);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;};</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="keyword">typedef</span> std::function&lt;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)&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    BrokerConsumerStatsCallback;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_CLIENTCONFIGURATION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_CLIENTCONFIGURATION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/Authentication.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/Logger.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<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>&#160;<span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <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>&#160;    ~<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>&#160;    <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>&amp;);</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp;);</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setMemoryLimit(uint64_t memoryLimitBytes);</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    uint64_t getMemoryLimit() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setAuth(<span class="keyword">const</span> AuthenticationPtr&amp; authentication);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <a class="code" href="classpulsar_1_1_authentication.html">Authentication</a>&amp; getAuth() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setOperationTimeoutSeconds(<span class="keywordtype">int</span> timeout);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="keywordtype">int</span> getOperationTimeoutSeconds() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setIOThreads(<span class="keywordtype">int</span> threads);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keywordtype">int</span> getIOThreads() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setMessageListenerThreads(<span class="keywordtype">int</span> threads);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordtype">int</span> getMessageListenerThreads() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setConcurrentLookupRequest(<span class="keywordtype">int</span> concurrentLookupRequest);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordtype">int</span> getConcurrentLookupRequest() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setMaxLookupRedirects(<span class="keywordtype">int</span> maxLookupRedirects);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">int</span> getMaxLookupRedirects() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setInitialBackoffIntervalMs(<span class="keywordtype">int</span> initialBackoffIntervalMs);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keywordtype">int</span> getInitialBackoffIntervalMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setMaxBackoffIntervalMs(<span class="keywordtype">int</span> maxBackoffIntervalMs);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordtype">int</span> getMaxBackoffIntervalMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setLogConfFilePath(<span class="keyword">const</span> std::string&amp; logConfFilePath);</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keyword">const</span> std::string&amp; getLogConfFilePath() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; 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>&#160; </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setUseTls(<span class="keywordtype">bool</span> useTls);</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160; </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keywordtype">bool</span> isUseTls() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160; </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setTlsPrivateKeyFilePath(<span class="keyword">const</span> std::string&amp; tlsKeyFilePath);</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="keyword">const</span> std::string&amp; getTlsPrivateKeyFilePath() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setTlsCertificateFilePath(<span class="keyword">const</span> std::string&amp; tlsCertificateFilePath);</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160; </div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="keyword">const</span> std::string&amp; getTlsCertificateFilePath() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160; </div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setTlsTrustCertsFilePath(<span class="keyword">const</span> std::string&amp; tlsTrustCertsFilePath);</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160; </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keyword">const</span> std::string&amp; getTlsTrustCertsFilePath() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160; </div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setTlsAllowInsecureConnection(<span class="keywordtype">bool</span> allowInsecure);</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160; </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <span class="keywordtype">bool</span> isTlsAllowInsecureConnection() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160; </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setValidateHostName(<span class="keywordtype">bool</span> validateHostName);</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160; </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    <span class="keywordtype">bool</span> isValidateHostName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160; </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setListenerName(<span class="keyword">const</span> std::string&amp; listenerName);</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160; </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    <span class="keyword">const</span> std::string&amp; getListenerName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160; </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setStatsIntervalInSeconds(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp;);</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160; </div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp; getStatsIntervalInSeconds() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160; </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; 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>&#160; </div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setConnectionTimeout(<span class="keywordtype">int</span> timeoutMs);</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160; </div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    <span class="keywordtype">int</span> getConnectionTimeout() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160; </div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>ClientImpl;</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160; </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    <span class="keyword">const</span> AuthenticationPtr&amp; getAuthPtr() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    std::shared_ptr&lt;ClientConfigurationImpl&gt; impl_;</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160; </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    <span class="comment">// By default, when the client connects to the broker, a version string like &quot;Pulsar-CPP-v&lt;x.y.z&gt;&quot; will be</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <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>&#160;    <span class="comment">//</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    <span class="comment">// This method provides a way to add more description to a specific `Client` instance. If it&#39;s configured,</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    <span class="comment">// the description will be appended to the original client version string, with &#39;-&#39; as the separator.</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    <span class="comment">//</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    <span class="comment">// For example, if the client version is 3.2.0, and the description is &quot;forked&quot;, the final client version</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    <span class="comment">// string will be &quot;Pulsar-CPP-v3.2.0-forked&quot;.</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    <span class="comment">//</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    <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>&#160;    <span class="comment">//</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    <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>&#160;    <span class="comment">//</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    <span class="comment">// ```c++</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    <span class="comment">// namespace pulsar {</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    <span class="comment">// class PulsarWrapper {</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    <span class="comment">//     static ClientConfiguration clientConfig() {</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    <span class="comment">//         ClientConfiguration conf;</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    <span class="comment">//         conf.setDescription(&quot;forked&quot;);</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;    <span class="comment">//         return conf;</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    <span class="comment">//     }</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    <span class="comment">// };</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    <span class="comment">// }</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    <span class="comment">// ```</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    <span class="comment">//</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    <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>&#160;    <span class="comment">//</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    <span class="comment">// ```c++</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    <span class="comment">// auto conf = PulsarWrapper::clientConfig();</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    <span class="comment">// // Set other attributes of `conf` here...</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    <span class="comment">// Client client{&quot;pulsar://localhost:6650&quot;, conf);</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    <span class="comment">// ```</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    <a class="code" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; setDescription(<span class="keyword">const</span> std::string&amp; description);</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160; </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    <span class="keyword">const</span> std::string&amp; getDescription() <span class="keyword">const</span> noexcept;</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;};</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160; </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_COMPRESSIONTYPE_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_COMPRESSIONTYPE_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<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>&#160;<span class="keyword">enum</span> CompressionType</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;{</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    CompressionNone = 0,</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    CompressionLZ4 = 1,</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    CompressionZLib = 2,</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    CompressionZSTD = 3,</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    CompressionSNAPPY = 4</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;};</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/Logger.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">class </span>ConsoleLoggerFactoryImpl;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    ~<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>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <a class="code" href="classpulsar_1_1_logger.html">Logger</a>* getLogger(<span class="keyword">const</span> std::string&amp; fileName) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    std::unique_ptr&lt;ConsoleLoggerFactoryImpl&gt; impl_;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;};</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;}  <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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_CONSUMERCONFIGURATION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_CONSUMERCONFIGURATION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/ConsumerCryptoFailureAction.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/ConsumerEventListener.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;pulsar/ConsumerInterceptor.h&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;pulsar/ConsumerType.h&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;pulsar/CryptoKeyReader.h&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;pulsar/InitialPosition.h&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;pulsar/KeySharedPolicy.h&gt;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;pulsar/RegexSubscriptionMode.h&gt;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;pulsar/Schema.h&gt;</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;pulsar/TypedMessage.h&gt;</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;BatchReceivePolicy.h&quot;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;DeadLetterPolicy.h&quot;</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keyword">class </span>Consumer;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<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>&#160;<span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keyword">typedef</span> std::vector&lt;Message&gt; <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>&#160;<span class="keyword">typedef</span> std::function&lt;void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result)&gt; <a class="code" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keyword">typedef</span> std::function&lt;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>&amp; msg)&gt; ReceiveCallback;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>, <span class="keyword">const</span> <a class="code" href="namespacepulsar.html#ac87806090d752fb2248e8da65727630a">Messages</a>&amp; msgs)&gt; BatchReceiveCallback;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result, <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a> messageId)&gt; GetLastMessageIdCallback;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespacepulsar.html#aa2439b1ef83202e8d35359d0134f2d56">   56</a></span>&#160;<span class="keyword">typedef</span> std::function&lt;void(<a class="code" href="classpulsar_1_1_consumer.html">Consumer</a>&amp; consumer, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>&amp; msg)&gt; <a class="code" href="namespacepulsar.html#aa2439b1ef83202e8d35359d0134f2d56">M [...]
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keyword">typedef</span> std::shared_ptr&lt;ConsumerEventListener&gt; ConsumerEventListenerPtr;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="keyword">struct </span>ConsumerConfigurationImpl;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_configuration.html">   65</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <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>&#160;    ~<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>&#160;    <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>&amp;);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp;);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setSchema(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp; schemaInfo);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp; getSchema() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setConsumerType(<a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40">ConsumerType</a> consumerType);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; 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>&#160; </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setMessageListener(<a class="code" href="namespacepulsar.html#aa2439b1ef83202e8d35359d0134f2d56">MessageListener</a> messageListener);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setTypedMessageListener(</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        std::function&lt;<span class="keywordtype">void</span>(<a class="code" href="classpulsar_1_1_consumer.html">Consumer</a>&amp;, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_typed_message.html">TypedMessage&lt;T&gt;</a>&amp;)&gt; listener,</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        <span class="keyword">typename</span> TypedMessage&lt;T&gt;::Decoder decoder) {</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <span class="keywordflow">return</span> setMessageListener([listener, decoder](<a class="code" href="classpulsar_1_1_consumer.html">Consumer</a>&amp; consumer, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>&amp; msg) {</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;            listener(consumer, <a class="code" href="classpulsar_1_1_typed_message.html">TypedMessage&lt;T&gt;</a>{msg, decoder});</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        });</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    }</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordtype">bool</span> hasMessageListener() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setConsumerEventListener(ConsumerEventListenerPtr eventListener);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    ConsumerEventListenerPtr getConsumerEventListener() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">bool</span> hasConsumerEventListener() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keywordtype">int</span> getReceiverQueueSize() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160; </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keywordtype">int</span> getMaxTotalReceiverQueueSizeAcrossPartitions() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160; </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordtype">void</span> setConsumerName(<span class="keyword">const</span> std::string&amp; consumerName);</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="keyword">const</span> std::string&amp; getConsumerName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160; </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="keywordtype">long</span> getUnAckedMessagesTimeoutMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160; </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keywordtype">long</span> getTickDurationInMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    <span class="keywordtype">long</span> getNegativeAckRedeliveryDelayMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160; </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    <span class="keywordtype">long</span> getAckGroupingTimeMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160; </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    <span class="keywordtype">long</span> getAckGroupingMaxSize() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160; </div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    <span class="keywordtype">long</span> getBrokerConsumerStatsCacheTimeInMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160; </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="keywordtype">bool</span> isEncryptionEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160; </div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setCryptoKeyReader(CryptoKeyReaderPtr cryptoKeyReader);</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160; </div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    ConsumerCryptoFailureAction getCryptoFailureAction() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160; </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setCryptoFailureAction(ConsumerCryptoFailureAction action);</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160; </div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    <span class="keywordtype">bool</span> isReadCompacted() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160; </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <span class="keywordtype">int</span> getPatternAutoDiscoveryPeriod() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160; </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setRegexSubscriptionMode(<a class="code" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbd">RegexSubscriptionMode</a> regexSubscriptionMode);</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160; </div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    <span class="keywordtype">void</span> setSubscriptionInitialPosition(InitialPosition subscriptionInitialPosition);</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160; </div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    InitialPosition getSubscriptionInitialPosition() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160; </div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <span class="keywordtype">void</span> setBatchReceivePolicy(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_batch_receive_policy.html">BatchReceivePolicy</a>&amp; batchReceivePolicy);</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160; </div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_batch_receive_policy.html">BatchReceivePolicy</a>&amp; getBatchReceivePolicy() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160; </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    <span class="keywordtype">void</span> setDeadLetterPolicy(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a>&amp; deadLetterPolicy);</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160; </div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a>&amp; getDeadLetterPolicy() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160; </div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <span class="keywordtype">bool</span> isReplicateSubscriptionStateEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160; </div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    <span class="keywordtype">bool</span> hasProperty(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160; </div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    <span class="keyword">const</span> std::string&amp; getProperty(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160; </div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    std::map&lt;std::string, std::string&gt;&amp; getProperties() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160; </div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setProperty(<span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> std::string&amp; value);</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160; </div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setProperties(<span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp; properties);</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160; </div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    std::map&lt;std::string, std::string&gt;&amp; getSubscriptionProperties() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160; </div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setSubscriptionProperties(</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;        <span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp; subscriptionProperties);</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160; </div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setPriorityLevel(<span class="keywordtype">int</span> priorityLevel);</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160; </div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;    <span class="keywordtype">int</span> getPriorityLevel() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160; </div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setMaxPendingChunkedMessage(<span class="keywordtype">size_t</span> maxPendingChunkedMessage);</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160; </div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setAutoAckOldestChunkedMessageOnQueueFull(</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;        <span class="keywordtype">bool</span> autoAckOldestChunkedMessageOnQueueFull);</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160; </div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;    <span class="keywordtype">bool</span> isAutoAckOldestChunkedMessageOnQueueFull() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160; </div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setExpireTimeOfIncompleteChunkedMessageMs(</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        <span class="keywordtype">long</span> expireTimeOfIncompleteChunkedMessageMs);</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160; </div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;    <span class="keywordtype">long</span> getExpireTimeOfIncompleteChunkedMessageMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160; </div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setStartMessageIdInclusive(<span class="keywordtype">bool</span> startMessageIdInclusive);</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160; </div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    <span class="keywordtype">bool</span> isStartMessageIdInclusive() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160; </div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setBatchIndexAckEnabled(<span class="keywordtype">bool</span> enabled);</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160; </div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    <span class="keywordtype">bool</span> isBatchIndexAckEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160; </div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; intercept(<span class="keyword">const</span> std::vector&lt;ConsumerInterceptorPtr&gt;&amp; interceptors);</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160; </div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;    <span class="keyword">const</span> std::vector&lt;ConsumerInterceptorPtr&gt;&amp; getInterceptors() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160; </div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;    <a class="code" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a>&amp; setAckReceiptEnabled(<span class="keywordtype">bool</span> ackReceiptEnabled);</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160; </div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;    <span class="keywordtype">bool</span> isAckReceiptEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160; </div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160; </div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    std::shared_ptr&lt;ConsumerConfigurationImpl&gt; impl_;</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;};</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;<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&lt; Message &gt; 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&lt; void(Consumer &amp;consumer, const Message &amp;msg)&gt; 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&lt; void(Result result)&gt; 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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef CONSUMERCRYPTOFAILUREACTION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define CONSUMERCRYPTOFAILUREACTION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">enum class</span> ConsumerCryptoFailureAction</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;{</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    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>&#160;    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>&#160;    CONSUME   <span class="comment">// Deliver the encrypted message to the application. It&#39;s the application&#39;s</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;              <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>&#160;              <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>&#160;              <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>&#160;};</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;} <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_CONSUMEREVENTLISTENER_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_CONSUMEREVENTLISTENER_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">class </span>Consumer;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <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>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <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>&#160;};</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef PULSAR_CPP_CONSUMER_INTERCEPTOR_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define PULSAR_CPP_CONSUMER_INTERCEPTOR_H</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">class </span>Consumer;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classpulsar_1_1_consumer_interceptor.html">   43</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <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>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <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>&amp; consumer, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>&amp; message) = 0;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <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>&amp; 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>&amp; [...]
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <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>&amp; consumer, <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result,</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageID) = 0;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <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>&amp; consumer, <span class="keyword">const</span> std::set&lt;MessageId&gt;&amp; messageIds) = 0;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;};</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="keyword">typedef</span> std::shared_ptr&lt;ConsumerInterceptor&gt; ConsumerInterceptorPtr;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_CPP_CONSUMERTYPE_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_CPP_CONSUMERTYPE_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<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>&#160;<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>&#160;{</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40a915cd237340dcd1d212f8d398f3d91ac">   28</a></span>&#160;    <a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40a915cd237340dcd1d212f8d398f3d91ac">ConsumerExclusive</a>,</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40ac55370821e835a03c2da742ab27e1705">   34</a></span>&#160;    <a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40ac55370821e835a03c2da742ab27e1705">ConsumerShared</a>,</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40aadffd5f0d50b1da36685230cd3f910a1">   39</a></span>&#160;    <a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40aadffd5f0d50b1da36685230cd3f910a1">ConsumerFailover</a>,</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40acb902cf3781caf307d06e37dc447d5cc">   45</a></span>&#160;    <a class="code" href="namespacepulsar.html#ac3e442abe2558a2b257fc7344af61d40acb902cf3781caf307d06e37dc447d5cc">ConsumerKeyShared</a></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;};</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;}</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef CRYPTOKEYREADER_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define CRYPTOKEYREADER_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/EncryptionKeyInfo.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<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>&#160; </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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <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>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getPublicKey(<span class="keyword">const</span> std::string&amp; keyName, std::map&lt;std::string, std::string&gt;&amp; metadata,</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                                <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>&amp; encKeyInfo) <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getPrivateKey(<span class="keyword">const</span> std::string&amp; keyName, std::map&lt;std::string, std::string&gt;&amp; metadata,</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                                 <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>&amp; encKeyInfo) <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;}; <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="keyword">typedef</span> std::shared_ptr&lt;CryptoKeyReader&gt; CryptoKeyReaderPtr;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160; </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>&#160;<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>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    std::string publicKeyPath_;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    std::string privateKeyPath_;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordtype">void</span> readFile(std::string fileName, std::string&amp; fileContents) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <a class="code" href="classpulsar_1_1_default_crypto_key_reader.html">DefaultCryptoKeyReader</a>(<span class="keyword">const</span> std::string&amp; publicKeyPath, <span class="keyword">const</span> std::string&amp; privateKeyPath);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    ~<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>&#160; </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getPublicKey(<span class="keyword">const</span> std::string&amp; keyName, std::map&lt;std::string, std::string&gt;&amp; metadata,</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                        <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>&amp; encKeyInfo) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> getPrivateKey(<span class="keyword">const</span> std::string&amp; keyName, std::map&lt;std::string, std::string&gt;&amp; metadata,</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                         <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>&amp; encKeyInfo) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keyword">static</span> CryptoKeyReaderPtr create(<span class="keyword">const</span> std::string&amp; publicKeyPath, <span class="keyword">const</span> std::string&amp; privateKeyPath);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;}; <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef DEAD_LETTER_POLICY_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define DEAD_LETTER_POLICY_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">struct </span>DeadLetterPolicyImpl;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="keyword">const</span> std::string&amp; getDeadLetterTopic() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordtype">int</span> getMaxRedeliverCount() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keyword">const</span> std::string&amp; getInitialSubscriptionName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keyword">typedef</span> std::shared_ptr&lt;DeadLetterPolicyImpl&gt; DeadLetterPolicyImplPtr;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    DeadLetterPolicyImplPtr impl_;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_dead_letter_policy.html">DeadLetterPolicy</a>(<span class="keyword">const</span> DeadLetterPolicyImplPtr&amp; impl);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;};</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef DEAD_LETTER_POLICY_BUILD_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define DEAD_LETTER_POLICY_BUILD_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/DeadLetterPolicy.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">struct </span>DeadLetterPolicyImpl;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <a class="code" href="classpulsar_1_1_dead_letter_policy_builder.html">DeadLetterPolicyBuilder</a>&amp; deadLetterTopic(<span class="keyword">const</span> std::string&amp; deadLetterTopic);</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <a class="code" href="classpulsar_1_1_dead_letter_policy_builder.html">DeadLetterPolicyBuilder</a>&amp; maxRedeliverCount(<span class="keywordtype">int</span> maxRedeliverCount);</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160; </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <a class="code" href="classpulsar_1_1_dead_letter_policy_builder.html">DeadLetterPolicyBuilder</a>&amp; initialSubscriptionName(<span class="keyword">const</span> std::string&amp; initialSubscriptionName);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    std::shared_ptr&lt;DeadLetterPolicyImpl&gt; impl_;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;};</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef DEPRECATED_EXCEPTION_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define DEPRECATED_EXCEPTION_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;stdexcept&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a>(<span class="keyword">const</span> std::string&amp; __arg);</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <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>&#160;};</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef ENCRYPTIONKEYINFO_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define ENCRYPTIONKEYINFO_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">class </span>EncryptionKeyInfoImpl;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">typedef</span> std::shared_ptr&lt;EncryptionKeyInfoImpl&gt; EncryptionKeyInfoImplPtr;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </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>&#160;<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>&#160;    <span class="comment">/*</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<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>&#160;<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>&#160;<span class="comment">     */</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keyword">typedef</span> std::map&lt;std::string, std::string&gt; StringMap;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <a class="code" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a>(std::string key, StringMap&amp; metadata);</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    std::string&amp; getKey();</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keywordtype">void</span> setKey(std::string key);</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    StringMap&amp; getMetadata(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordtype">void</span> setMetadata(StringMap&amp; metadata);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    EncryptionKeyInfoImplPtr impl_;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;};</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;} <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/Logger.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">class </span>FileLoggerFactoryImpl;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <a class="code" href="classpulsar_1_1_file_logger_factory.html">FileLoggerFactory</a>(Logger::Level level, <span class="keyword">const</span> std::string&amp; logFilePath);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    ~<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>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <a class="code" href="classpulsar_1_1_logger.html">pulsar::Logger</a>* getLogger(<span class="keyword">const</span> std::string&amp; filename) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    std::unique_ptr&lt;FileLoggerFactoryImpl&gt; impl_;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;};</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;}  <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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_CPP_INITIAL_POSITION_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_CPP_INITIAL_POSITION_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<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>&#160;<span class="keyword">enum</span> InitialPosition</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;{</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    InitialPositionLatest,</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    InitialPositionEarliest</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;};</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;}</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04">   32</a></span>&#160;<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>&#160;{</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04a1dce3e502d8e018e90f97c07b37cde1f">   38</a></span>&#160;    <a class="code" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04a1dce3e502d8e018e90f97c07b37cde1f">AUTO_SPLIT</a> = 0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04aed98d14aabee0f3bc70a0cc7723e5b16">   44</a></span>&#160;    <a class="code" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04aed98d14aabee0f3bc70a0cc7723e5b16">STICKY</a> = 1</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;};</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="keyword">struct </span>KeySharedPolicyImpl;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keyword">typedef</span> std::pair&lt;int, int&gt; StickyRange;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keyword">typedef</span> std::vector&lt;StickyRange&gt; StickyRanges;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <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>&#160;    ~<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>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <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>&amp;);</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>&amp;);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>&amp; setKeySharedMode(<a class="code" href="namespacepulsar.html#a499d1327931169d068b9b353f106dd04">KeySharedMode</a> keySharedMode);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>&amp; setAllowOutOfOrderDelivery(<span class="keywordtype">bool</span> allowOutOfOrderDelivery);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keywordtype">bool</span> isAllowOutOfOrderDelivery() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>&amp; setStickyRanges(std::initializer_list&lt;StickyRange&gt; ranges);</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <a class="code" href="classpulsar_1_1_key_shared_policy.html">KeySharedPolicy</a>&amp; setStickyRanges(<span class="keyword">const</span> StickyRanges&amp; ranges);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    StickyRanges getStickyRanges() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    std::shared_ptr&lt;KeySharedPolicyImpl&gt; impl_;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;};</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;}  <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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef KEY_VALUE_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define KEY_VALUE_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;Schema.h&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;defines.h&quot;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">class </span>KeyValueImpl;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classpulsar_1_1_key_value.html">   35</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <a class="code" href="classpulsar_1_1_key_value.html">KeyValue</a>(std::string &amp;&amp;key, std::string &amp;&amp;value);</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    std::string getKey() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    std::string getValueAsString() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keyword">typedef</span> std::shared_ptr&lt;KeyValueImpl&gt; KeyValueImplPtr;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <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>&#160;    KeyValueImplPtr impl_;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <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>&#160;    <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>&#160;};</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_logger.html">   28</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keyword">enum</span> Level</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    {</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        LEVEL_DEBUG = 0,</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        LEVEL_INFO = 1,</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        LEVEL_WARN = 2,</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        LEVEL_ERROR = 3</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    };</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <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&amp; message) = 0;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;};</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classpulsar_1_1_logger_factory.html">   58</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classpulsar_1_1_logger.html">Logger</a>* getLogger(<span class="keyword">const</span> std::string&amp; fileName) = 0;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;};</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;}  <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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef LIB_MESSAGE_BATCH_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define LIB_MESSAGE_BATCH_H</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_batch.html">   29</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <a class="code" href="classpulsar_1_1_message_batch.html">MessageBatch</a>&amp; withMessageId(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageId);</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <a class="code" href="classpulsar_1_1_message_batch.html">MessageBatch</a>&amp; parseFrom(<span class="keyword">const</span> std::string&amp; payload, uint32_t batchSize);</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <a class="code" href="classpulsar_1_1_message_batch.html">MessageBatch</a>&amp; parseFrom(<span class="keyword">const</span> SharedBuffer&amp; payload, uint32_t batchSize);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keyword">const</span> std::vector&lt;Message&gt;&amp; messages();</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keyword">typedef</span> std::shared_ptr&lt;MessageImpl&gt; MessageImplPtr;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    MessageImplPtr impl_;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    std::vector&lt;Message&gt; batch_;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;};</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef MESSAGE_BUILDER_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define MESSAGE_BUILDER_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/KeyValue.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<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>&#160;<span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_builder.html">   33</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="keyword">typedef</span> std::map&lt;std::string, std::string&gt; StringMap;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; 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>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; setContent(<span class="keyword">const</span> std::string&amp; data);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; setContent(std::string&amp;&amp; data);</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; setContent(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_key_value.html">KeyValue</a>&amp; data);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; 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>&#160; </div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; setProperty(<span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> std::string&amp; value);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; setProperties(<span class="keyword">const</span> StringMap&amp; properties);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; setPartitionKey(<span class="keyword">const</span> std::string&amp; partitionKey);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; setOrderingKey(<span class="keyword">const</span> std::string&amp; orderingKey);</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; setDeliverAfter(<span class="keyword">const</span> std::chrono::milliseconds delay);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; setDeliverAt(uint64_t deliveryTimestamp);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; setEventTimestamp(uint64_t eventTimestamp);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; setSequenceId(int64_t sequenceId);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; setReplicationClusters(<span class="keyword">const</span> std::vector&lt;std::string&gt;&amp; clusters);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; disableReplication(<span class="keywordtype">bool</span> flag);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <a class="code" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>&amp; create();</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;   <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <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>&#160;    std::size_t size() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keywordtype">void</span> checkMetadata();</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keyword">static</span> std::shared_ptr&lt;MessageImpl&gt; createMessageImpl();</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    Message::MessageImplPtr impl_;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;};</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160; </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef MESSAGE_ID_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define MESSAGE_ID_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;iosfwd&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">class </span>MessageIdImpl;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classpulsar_1_1_message_id.html">   34</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp;);</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; earliest();</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; latest();</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keywordtype">void</span> serialize(std::string&amp; result) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keyword">const</span> std::string&amp; getTopicName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keywordtype">void</span> setTopicName(<span class="keyword">const</span> std::string&amp; topicName);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <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&amp; serializedMessageId);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <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>&#160;    <span class="keywordtype">bool</span> operator&lt;(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keywordtype">bool</span> operator&lt;=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordtype">bool</span> operator&gt;(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keywordtype">bool</span> operator&gt;=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    int64_t ledgerId() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    int64_t entryId() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    int32_t batchIndex() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    int32_t partition() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    int32_t batchSize() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>ConsumerImpl;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>ReaderImpl;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <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>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>MessageImpl;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>Commands;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>PartitionedProducerImpl;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>MultiTopicsConsumerImpl;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>UnAckedMessageTrackerEnabled;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>BatchAcknowledgementTracker;</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>NegativeAcksTracker;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <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>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>ChunkMessageIdImpl;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordtype">void</span> setTopicName(<span class="keyword">const</span> std::shared_ptr&lt;std::string&gt;&amp; topic);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keyword">friend</span> PULSAR_PUBLIC std::ostream&amp; operator&lt;&lt;(std::ostream&amp; s, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageId);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keyword">typedef</span> std::shared_ptr&lt;MessageIdImpl&gt; MessageIdImplPtr;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    MessageIdImplPtr impl_;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>(<span class="keyword">const</span> MessageIdImplPtr&amp; impl);</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;};</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="keyword">typedef</span> std::vector&lt;MessageId&gt; MessageIdList;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;pulsar/MessageId.h&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">namespace </span>proto {</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">class </span>MessageIdData;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;}</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <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>&amp; messageId);</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <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&amp; messageIdData);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a>&amp; ledgerId(int64_t ledgerId);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a>&amp; entryId(int64_t entryId);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a>&amp; partition(int32_t partition);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a>&amp; batchIndex(int32_t batchIndex);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <a class="code" href="classpulsar_1_1_message_id_builder.html">MessageIdBuilder</a>&amp; batchSize(int32_t batchSize);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    std::shared_ptr&lt;MessageIdImpl&gt; impl_;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;};</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;}  <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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_MESSAGE_ROUTING_POLICY_HEADER_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_MESSAGE_ROUTING_POLICY_HEADER_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/DeprecatedException.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;pulsar/TopicMetadata.h&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<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>&#160;<span class="comment"> * partition mapping.</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<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>&#160; </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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <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>&#160; </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>&#160;    <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>&amp; msg) {</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        <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>&#160;            <span class="stringliteral">&quot;Use int getPartition(const Message&amp; msg,&quot;</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;            <span class="stringliteral">&quot; const TopicMetadata&amp; topicMetadata)&quot;</span>);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    }</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </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>&#160;    <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>&amp; msg, <spa [...]
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <span class="keywordflow">return</span> getPartition(msg);</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    }</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;};</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="keyword">typedef</span> std::shared_ptr&lt;MessageRoutingPolicy&gt; MessageRoutingPolicyPtr;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<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 &amp;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 &amp;msg, const TopicMetadata &amp;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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_PRODUCERCONFIGURATION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_PRODUCERCONFIGURATION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;pulsar/CompressionType.h&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/CryptoKeyReader.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;pulsar/MessageRoutingPolicy.h&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;pulsar/ProducerCryptoFailureAction.h&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;pulsar/ProducerInterceptor.h&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;pulsar/Schema.h&gt;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>, <span class="keyword">const</span> MessageId&amp; messageId)&gt; SendCallback;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>)&gt; CloseCallback;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">struct </span>ProducerConfigurationImpl;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_configuration.html">   45</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keyword">enum</span> PartitionsRoutingMode</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    {</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        UseSinglePartition,</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        RoundRobinDistribution,</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        CustomPartition</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    };</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keyword">enum</span> HashingScheme</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    {</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        Murmur3_32Hash,</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        BoostHash,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        JavaStringHash</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    };</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>&#160;    <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>&#160;    {</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>&#160;        <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>&#160; </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>&#160;        KeyBasedBatching</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    };</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>&#160;    <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>&#160;    {</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>&#160;        Shared = 0,</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </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>&#160;        Exclusive = 1,</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </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>&#160;        WaitForExclusive = 2,</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </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>&#160;        ExclusiveWithFencing = 3</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    };</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <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>&#160;    ~<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>&#160;    <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>&amp;);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp;);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setProducerName(<span class="keyword">const</span> std::string&amp; producerName);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keyword">const</span> std::string&amp; getProducerName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160; </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setSchema(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp; schemaInfo);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp; getSchema() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setSendTimeout(<span class="keywordtype">int</span> sendTimeoutMs);</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keywordtype">int</span> getSendTimeout() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setInitialSequenceId(int64_t initialSequenceId);</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    int64_t getInitialSequenceId() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setCompressionType(CompressionType compressionType);</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160; </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    CompressionType getCompressionType() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160; </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setMaxPendingMessages(<span class="keywordtype">int</span> maxPendingMessages);</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160; </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordtype">int</span> getMaxPendingMessages() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setMaxPendingMessagesAcrossPartitions(<span class="keywordtype">int</span> maxPendingMessagesAcrossPartitions);</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <span class="keywordtype">int</span> getMaxPendingMessagesAcrossPartitions() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160; </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setPartitionsRoutingMode(<span class="keyword">const</span> PartitionsRoutingMode&amp; mode);</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160; </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    PartitionsRoutingMode getPartitionsRoutingMode() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160; </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setMessageRouter(<span class="keyword">const</span> MessageRoutingPolicyPtr&amp; router);</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    <span class="keyword">const</span> MessageRoutingPolicyPtr&amp; getMessageRouterPtr() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160; </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setHashingScheme(<span class="keyword">const</span> HashingScheme&amp; scheme);</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160; </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    HashingScheme getHashingScheme() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160; </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setLazyStartPartitionedProducers(<span class="keywordtype">bool</span>);</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160; </div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <span class="keywordtype">bool</span> getLazyStartPartitionedProducers() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160; </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setBlockIfQueueFull(<span class="keywordtype">bool</span>);</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160; </div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <span class="keywordtype">bool</span> getBlockIfQueueFull() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160; </div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setBatchingEnabled(<span class="keyword">const</span> <span class="keywordtype">bool</span>&amp; batchingEnabled);</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160; </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">bool</span>&amp; getBatchingEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160; </div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setBatchingMaxMessages(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp; batchingMaxMessages);</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160; </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&amp; getBatchingMaxMessages() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160; </div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setBatchingMaxAllowedSizeInBytes(</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; batchingMaxAllowedSizeInBytes);</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160; </div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; getBatchingMaxAllowedSizeInBytes() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160; </div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setBatchingMaxPublishDelayMs(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; batchingMaxPublishDelayMs);</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160; </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; getBatchingMaxPublishDelayMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160; </div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setBatchingType(BatchingType batchingType);</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160; </div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    BatchingType getBatchingType() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160; </div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setCryptoKeyReader(CryptoKeyReaderPtr cryptoKeyReader);</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160; </div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    ProducerCryptoFailureAction getCryptoFailureAction() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160; </div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setCryptoFailureAction(ProducerCryptoFailureAction action);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160; </div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    <span class="keyword">const</span> std::set&lt;std::string&gt;&amp; getEncryptionKeys() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160; </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    <span class="keywordtype">bool</span> isEncryptionEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160; </div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; addEncryptionKey(std::string key);</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160; </div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    <span class="keywordtype">bool</span> hasProperty(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160; </div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    <span class="keyword">const</span> std::string&amp; getProperty(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160; </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    std::map&lt;std::string, std::string&gt;&amp; getProperties() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160; </div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setProperty(<span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> std::string&amp; value);</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160; </div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setProperties(<span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp; properties);</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160; </div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setChunkingEnabled(<span class="keywordtype">bool</span> chunkingEnabled);</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160; </div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    <span class="keywordtype">bool</span> isChunkingEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160; </div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; setAccessMode(<span class="keyword">const</span> ProducerAccessMode&amp; accessMode);</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160; </div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    ProducerAccessMode getAccessMode() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160; </div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;    <a class="code" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a>&amp; intercept(<span class="keyword">const</span> std::vector&lt;ProducerInterceptorPtr&gt;&amp; interceptors);</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160; </div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    <span class="keyword">const</span> std::vector&lt;ProducerInterceptorPtr&gt;&amp; getInterceptors() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160; </div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    std::shared_ptr&lt;ProducerConfigurationImpl&gt; impl_;</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160; </div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>ConsumerImpl;</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>ProducerImpl;</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;};</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PRODUCERCRYPTOFAILUREACTION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PRODUCERCRYPTOFAILUREACTION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">enum class</span> ProducerCryptoFailureAction</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;{</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    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>&#160;    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>&#160;};</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;} <span class="comment">/* namespace pulsar */</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef PULSAR_PRODUCER_INTERCEPTOR_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define PULSAR_PRODUCER_INTERCEPTOR_H</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">class </span>Producer;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classpulsar_1_1_producer_interceptor.html">   42</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <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>&#160; </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>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <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>&amp; producer, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>&amp; message) = 0;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <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>&amp; 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>&#160;                                       <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message_id.html">MessageId</a>&amp; messageID) = 0;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </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>&#160;    <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&amp; topicName, <span class="keywordtype">int</span> partitions [...]
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;};</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="keyword">typedef</span> std::shared_ptr&lt;ProducerInterceptor&gt; ProducerInterceptorPtr;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<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 &amp;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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;google/protobuf/descriptor.h&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/Schema.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;}  <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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_READER_CONFIGURATION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_READER_CONFIGURATION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/ConsumerCryptoFailureAction.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/CryptoKeyReader.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;pulsar/Schema.h&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">class </span>Reader;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">class </span>PulsarWrapper;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result)&gt; <a class="code" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result, MessageId messageId)&gt; GetLastMessageIdCallback;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a9bddad6880419962bbc6af877209cd49">   42</a></span>&#160;<span class="keyword">typedef</span> std::function&lt;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>&amp; msg)&gt; <a class="code" href="namespacepulsar.html#a9bddad6880419962bbc6af877209cd49">ReaderListen [...]
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keyword">struct </span>ReaderConfigurationImpl;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classpulsar_1_1_reader_configuration.html">   49</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <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>&#160;    ~<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>&#160;    <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>&amp;);</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>&amp;);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>&amp; setSchema(<span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp; schemaInfo);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a>&amp; getSchema() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>&amp; setReaderListener(<a class="code" href="namespacepulsar.html#a9bddad6880419962bbc6af877209cd49">ReaderListener</a> listener);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keywordtype">bool</span> hasReaderListener() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordtype">int</span> getReceiverQueueSize() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordtype">void</span> setReaderName(<span class="keyword">const</span> std::string&amp; readerName);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keyword">const</span> std::string&amp; getReaderName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">void</span> setSubscriptionRolePrefix(<span class="keyword">const</span> std::string&amp; subscriptionRolePrefix);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keyword">const</span> std::string&amp; getSubscriptionRolePrefix() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160; </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keywordtype">bool</span> isReadCompacted() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">void</span> setInternalSubscriptionName(std::string internalSubscriptionName);</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="keyword">const</span> std::string&amp; getInternalSubscriptionName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <span class="keywordtype">long</span> getUnAckedMessagesTimeoutMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keywordtype">long</span> getTickDurationInMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160; </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="keywordtype">long</span> getAckGroupingTimeMs() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160; </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <span class="keywordtype">long</span> getAckGroupingMaxSize() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160; </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="keywordtype">bool</span> isEncryptionEnabled() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160; </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>&amp; setCryptoKeyReader(CryptoKeyReaderPtr cryptoKeyReader);</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160; </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    ConsumerCryptoFailureAction getCryptoFailureAction() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160; </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>&amp; setCryptoFailureAction(ConsumerCryptoFailureAction action);</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160; </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <span class="keywordtype">bool</span> hasProperty(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160; </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    <span class="keyword">const</span> std::string&amp; getProperty(<span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160; </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    std::map&lt;std::string, std::string&gt;&amp; getProperties() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160; </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>&amp; setProperty(<span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> std::string&amp; value);</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160; </div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    <a class="code" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a>&amp; setProperties(<span class="keyword">const</span> std::map&lt;std::string, std::string&gt;&amp; properties);</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160; </div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    std::shared_ptr&lt;ReaderConfigurationImpl&gt; impl_;</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;};</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<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&lt; void(Reader reader, const Message &amp;msg)&gt; 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&lt; void(Result result)&gt; 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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_CPP_REGEX_SUB_MODE_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_CPP_REGEX_SUB_MODE_H</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<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>&#160;<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>&#160;{</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda68931062ae96d4dcc4778eeac5fa3de4">   28</a></span>&#160;    <a class="code" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda68931062ae96d4dcc4778eeac5fa3de4">PersistentOnly</a> = 0,</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda5af3d512f79ac90cacc326d86a230603">   33</a></span>&#160;    <a class="code" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbda5af3d512f79ac90cacc326d86a230603">NonPersistentOnly</a> = 1,</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbdaa30bab3d7d550e08f128647cbbd5b6ef">   38</a></span>&#160;    <a class="code" href="namespacepulsar.html#abd9b21e56a6fb78e04cae2664ff0dbbdaa30bab3d7d550e08f128647cbbd5b6ef">AllTopics</a> = 2</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;};</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;}</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;iosfwd&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595">   33</a></span>&#160;<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>&#160;{</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <a class="code" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595a561af55a6a824ae74125a6cf4eade06a">SEPARATED</a>,</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <a class="code" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595acfbac07c6ae3e73f0e10ca60ad916bef">INLINE</a></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;};</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">// Return string representation of result code</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305">   51</a></span>&#160;<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>&#160;{</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305af9377cb56d5b6973392d0fd2ca76009a">   56</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305af9377cb56d5b6973392d0fd2ca76009a">NONE</a> = 0,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ab936a9dad2cbb5fca28fc477ff39fb70">   61</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ab936a9dad2cbb5fca28fc477ff39fb70">STRING</a> = 1,</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a15f7910601e8d522f151f3129c753283">   66</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a15f7910601e8d522f151f3129c753283">JSON</a> = 2,</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a5054f171f6c60b73043727ddc60698a0">   71</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a5054f171f6c60b73043727ddc60698a0">PROTOBUF</a> = 3,</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ac728ff4cb4de807c1b6fa8ca33f41d47">   76</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ac728ff4cb4de807c1b6fa8ca33f41d47">AVRO</a> = 4,</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a2c52dde965d6ba972179fa14116160e9">   81</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a2c52dde965d6ba972179fa14116160e9">INT8</a> = 6,</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a9e5ed020cb2ca197a0918946352cf96e">   86</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a9e5ed020cb2ca197a0918946352cf96e">INT16</a> = 7,</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ac048e1576ab161018f9e3c6eda6307d0">   91</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ac048e1576ab161018f9e3c6eda6307d0">INT32</a> = 8,</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a11fafed4115309cf1f33eac044e704a2">   96</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a11fafed4115309cf1f33eac044e704a2">INT64</a> = 9,</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a5102395892b9d15d0a0483a27ca64777">  101</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a5102395892b9d15d0a0483a27ca64777">FLOAT</a> = 10,</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a1b1684230ae9c15941cb3fe05bf972f0">  106</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a1b1684230ae9c15941cb3fe05bf972f0">DOUBLE</a> = 11,</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ab6fbe0f5b80de2aa67b68572e7a054d3">  111</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ab6fbe0f5b80de2aa67b68572e7a054d3">KEY_VALUE</a> = 15,</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a24048f6ae2e1048989e69644edcdc8f6">  116</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a24048f6ae2e1048989e69644edcdc8f6">PROTOBUF_NATIVE</a> = 20,</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a4dcbdcae67c5f78b7c4fff2c2135cba2">  121</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a4dcbdcae67c5f78b7c4fff2c2135cba2">BYTES</a> = -1,</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a6a9078e01119bddf19aa24dc05390f99">  126</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305a6a9078e01119bddf19aa24dc05390f99">AUTO_CONSUME</a> = -3,</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ad1af93d272614c940d322497eb8e31f0">  131</a></span>&#160;    <a class="code" href="namespacepulsar.html#abab5b1f233c9cc54c10d28cb5b973305ad1af93d272614c940d322497eb8e31f0">AUTO_PUBLISH</a> = -4,</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;};</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="comment">// Return string representation of result code</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="keyword">class </span>SchemaInfoImpl;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160; </div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="keyword">typedef</span> std::map&lt;std::string, std::string&gt; StringMap;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classpulsar_1_1_schema_info.html">  146</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <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 &amp;name, <span class="keyword">const</span> std::string &amp;schema,</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;               <span class="keyword">const</span> StringMap &amp;properties = StringMap());</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <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> &amp;keySchema, <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_schema_info.html">SchemaInfo</a> &amp;valueSchema,</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;               <span class="keyword">const</span> <a class="code" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595">KeyValueEncodingType</a> &amp;keyValueEncodingType = <a class="code" href="namespacepulsar.html#a0dca31b62c0207ea87e146cde0609595acfbac07c6ae3e73f0e10ca60ad916bef">KeyValueEncodingType::INLINE</a>);</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160; </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <span class="keyword">const</span> std::string &amp;getName() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="keyword">const</span> std::string &amp;getSchema() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160; </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keyword">const</span> StringMap &amp;getProperties() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160; </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="keyword">typedef</span> std::shared_ptr&lt;SchemaInfoImpl&gt; SchemaInfoImplPtr;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    SchemaInfoImplPtr impl_;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;};</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160; </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160; </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;PULSAR_PUBLIC std::ostream &amp;operator&lt;&lt;(std::ostream &amp;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>&#160; </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;PULSAR_PUBLIC std::ostream &amp;operator&lt;&lt;(std::ostream &amp;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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef TABEL_VIEW_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define TABEL_VIEW_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/Result.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/TableViewConfiguration.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">class </span>TableViewImpl;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(<a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> result)&gt; <a class="code" href="namespacepulsar.html#ae5bf6401bfa8e3962e5c8f9fa2efbf4d">ResultCallback</a>;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(<span class="keyword">const</span> std::string&amp; key, <span class="keyword">const</span> std::string&amp; value)&gt; 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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordtype">bool</span> retrieveValue(<span class="keyword">const</span> std::string&amp; key, std::string&amp; value);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordtype">bool</span> getValue(<span class="keyword">const</span> std::string&amp; key, std::string&amp; value) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keywordtype">bool</span> containsKey(<span class="keyword">const</span> std::string&amp; key) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    std::unordered_map&lt;std::string, std::string&gt; snapshot();</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    std::size_t size() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keywordtype">void</span> forEach(TableViewAction action);</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordtype">void</span> forEachAndListen(TableViewAction action);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <a class="code" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> close();</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keyword">typedef</span> std::shared_ptr&lt;TableViewImpl&gt; TableViewImplPtr;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    TableViewImplPtr impl_;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>PulsarFriend;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span>ClientImpl;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;};</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<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&lt; void(Result result)&gt; 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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef PULSAR_TABLEVIEW_CONFIGURATION_H_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define PULSAR_TABLEVIEW_CONFIGURATION_H_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/Schema.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<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>&#160; </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>&#160;<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>&#160;    <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>&#160;    <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>&#160;    <span class="comment">// table view creation will fail if it&#39;s not compatible.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <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>&#160;    <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>&#160;    std::string subscriptionName;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;};</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef TOPIC_METADATA_HPP_</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define TOPIC_METADATA_HPP_</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <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>&#160;};</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;}  <span class="comment">// namespace pulsar</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;pulsar/Message.h&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classpulsar_1_1_typed_message.html">   28</a></span>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keyword">using</span> Decoder = std::function&lt;T(<span class="keyword">const</span> <span class="keywordtype">char</span>*, std::size_t)&gt;;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <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>&#160;        <span class="keyword">const</span> <a class="code" href="classpulsar_1_1_message.html">Message</a>&amp; 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>&#160;        : <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>&#160; </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    T getValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> decoder_(<span class="keyword">static_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</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>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <a class="code" href="classpulsar_1_1_typed_message.html">TypedMessage</a>&amp; setDecoder(Decoder decoder) {</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        decoder_ = decoder;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    }</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    Decoder decoder_;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;};</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;}  <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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;pulsar/MessageBuilder.h&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</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>&#160;<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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keyword">using</span> Encoder = std::function&lt;std::string(<span class="keyword">const</span> T&amp;)&gt;;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keyword">using</span> Validator = std::function&lt;void(<span class="keyword">const</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">size_t</span>)&gt;;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <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>&#160;        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>&#160;        : encoder_(encoder), validator_(validator) {}</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <a class="code" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder</a>&amp; setValue(<span class="keyword">const</span> T&amp; value) {</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <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>&#160;        <span class="keywordflow">if</span> (validator_) {</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;            validator_(data(), size());</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        }</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    }</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keyword">const</span> Encoder encoder_;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keyword">const</span> Validator validator_;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;};</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keyword">template</span> &lt;&gt;</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>&#160;<span class="keyword">class </span><a class="code" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder</a>&lt;std::string&gt; : <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>&#160;   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <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>&#160;    <span class="keyword">using</span> Validator = std::function&lt;void(<span class="keyword">const</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">size_t</span>)&gt;;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <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>&#160; </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <a class="code" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder</a>&amp; setValue(<span class="keyword">const</span> std::string&amp; value) {</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keywordflow">if</span> (validator_) {</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;            validator_(value.data(), value.size());</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        }</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        <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>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    }</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <a class="code" href="classpulsar_1_1_typed_message_builder.html">TypedMessageBuilder</a>&amp; setValue(std::string&amp;&amp; value) {</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keywordflow">if</span> (validator_) {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;            validator_(value.data(), value.size());</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        }</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <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>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    }</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    Validator validator_;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;};</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<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&lt;std::string&gt;</a>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;}  <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&lt; std::string &gt;</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 &amp; setContent(const void *data, size_t size)</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<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&amp;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&amp;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;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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&lt; std::string &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</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;">&#160;</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;">&#160;</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 &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;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>&#160;                                                                    <span class="keyword">const</span> <span class="keywordtype">char</span> *authParamsString);</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;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>&#160;                                                                        <span class="keyword">const</span> <span class="keywordtype">char</span> *privateKeyPath);</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;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>&#160;PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_token_create_with_supplier(</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    token_supplier tokenSupplier, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;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>&#160;                                                                          <span class="keyword">const</span> <span class="keywordtype">char</span> *password);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;}</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/client_configuration.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/consumer.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/consumer_configuration.h&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/message.h&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/message_id.h&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/producer.h&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/producer_configuration.h&gt;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/reader.h&gt;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/reader_configuration.h&gt;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/result.h&gt;</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/string_list.h&gt;</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<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>&#160;<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>&#160;<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>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<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>&#160;<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>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<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>&#160;<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>&#160;<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>&#160;                                               <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;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>&#160;                                                    <span class="keyword">const</span> pulsar_client_configuration_t *clientConfiguration);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;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>&#160;                                                          <span class="keyword">const</span> pulsar_producer_configuration_t *conf,</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                                                          pulsar_producer_t **producer);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;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>&#160;                                                       <span class="keyword">const</span> pulsar_producer_configuration_t *conf,</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                                                       pulsar_create_producer_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;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>&#160;                                                    <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                                                    <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                                                    pulsar_consumer_t **consumer);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;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>&#160;                                                 <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                                                 <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                                                 pulsar_subscribe_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;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>&#160;                                                                 <span class="keywordtype">int</span> topicsCount,</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                                                                 <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                                                                 <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                                                                 pulsar_consumer_t **consumer);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;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>&#160;                                                              <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>&#160;                                                              <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                                                              pulsar_subscribe_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;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>&#160;                                                            <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                                                            <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                                                            pulsar_consumer_t **consumer);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;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>&#160;                                                         <span class="keyword">const</span> <span class="keywordtype">char</span> *subscriptionName,</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                                                         <span class="keyword">const</span> pulsar_consumer_configuration_t *conf,</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                                                         pulsar_subscribe_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;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>&#160;                                                        <span class="keyword">const</span> pulsar_message_id_t *startMessageId,</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                                                        pulsar_reader_configuration_t *conf,</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                                                        pulsar_reader_t **reader);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;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>&#160;                                                     <span class="keyword">const</span> pulsar_message_id_t *startMessageId,</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                                                     pulsar_reader_configuration_t *conf,</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                                                     pulsar_reader_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;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>&#160;                                                               pulsar_string_list_t **partitions);</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; </div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;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>&#160;                                                            pulsar_get_partitions_callback callback,</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                                                            <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;PULSAR_PUBLIC pulsar_result pulsar_client_close(pulsar_client_t *client);</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160; </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;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>&#160;                                             <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;}</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/message.h&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/messages.h&gt;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/result.h&gt;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;PULSAR_PUBLIC pulsar_result pulsar_consumer_unsubscribe(pulsar_consumer_t *consumer);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;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>&#160;                                                     pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;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>&#160;                                                                 pulsar_message_t **msg, <span class="keywordtype">int</span> timeoutMs);</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;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>&#160;                                                 pulsar_receive_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;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>&#160;                                                          pulsar_messages_t **msgs);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;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>&#160;                                                       pulsar_batch_receive_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge(pulsar_consumer_t *consumer,</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                                                        pulsar_message_t *message);</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;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>&#160;                                                           pulsar_message_id_t *messageId);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;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>&#160;                                                     pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;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>&#160;                                                        pulsar_message_id_t *messageId,</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                                                        pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;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>&#160;                                                                   pulsar_message_t *message);</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;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>&#160;                                                                      pulsar_message_id_t *messageId);</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160; </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;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>&#160;                                                                pulsar_message_t *message,</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                                                                pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;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>&#160;                                                                   pulsar_message_id_t *messageId,</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                                                                   pulsar_result_callback callback,</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                                                                   <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;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>&#160;                                                        pulsar_message_t *message);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160; </div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;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>&#160;                                                           pulsar_message_id_t *messageId);</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160; </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;PULSAR_PUBLIC pulsar_result pulsar_consumer_close(pulsar_consumer_t *consumer);</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160; </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;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>&#160;                                               <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160; </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<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>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="comment"> * Resume receiving the messages via the messageListener.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<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>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;PULSAR_PUBLIC pulsar_result resume_message_listener(pulsar_consumer_t *consumer);</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160; </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;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>&#160;                                              pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160; </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;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>&#160;                                                           pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160; </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;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>&#160;                                                              uint64_t timestamp);</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160; </div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;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>&#160;                                                                pulsar_message_id_t *messageId);</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160; </div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;}</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;string_map.h&quot;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<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>&#160;<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>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;PULSAR_PUBLIC pulsar_message_t *pulsar_message_create();</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;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>&#160;                                               <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;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>&#160;                                                           <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;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>&#160;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>&#160; </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;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>&#160;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>&#160; </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;}</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/message.h&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/result.h&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<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>&#160;<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>&#160;<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>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;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>&#160;                                              pulsar_send_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;PULSAR_PUBLIC pulsar_result pulsar_producer_close(pulsar_producer_t *producer);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;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>&#160;                                               <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<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>&#160;PULSAR_PUBLIC pulsar_result pulsar_producer_flush(pulsar_producer_t *producer);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;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>&#160;                                               <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;}</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/message.h&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/c/result.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<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>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;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>&#160;                                                                 pulsar_message_t **msg, <span class="keywordtype">int</span> timeoutMs);</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;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>&#160;                                            pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;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>&#160;                                                         pulsar_result_callback callback, <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;PULSAR_PUBLIC pulsar_result pulsar_reader_close(pulsar_reader_t *reader);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;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>&#160;                                             <span class="keywordtype">void</span> *ctx);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;}</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<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&amp;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&amp;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>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;pulsar/defines.h&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    pulsar_result_Ok,  </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    pulsar_result_UnknownError,  </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    pulsar_result_InvalidConfiguration,  </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    pulsar_result_Timeout,       </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    pulsar_result_LookupError,   </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    pulsar_result_ConnectError,  </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    pulsar_result_ReadError,     </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    pulsar_result_AuthenticationError,             </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    pulsar_result_AuthorizationError,              </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    pulsar_result_ErrorGettingAuthenticationData,  </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    pulsar_result_BrokerMetadataError,     </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    pulsar_result_BrokerPersistenceError,  </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    pulsar_result_ChecksumError,           </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    pulsar_result_ConsumerBusy,   </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    pulsar_result_NotConnected,   </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    pulsar_result_AlreadyClosed,  </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    pulsar_result_InvalidMessage,  </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    pulsar_result_ConsumerNotInitialized,         </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    pulsar_result_ProducerNotInitialized,         </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    pulsar_result_ProducerBusy,                   </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    pulsar_result_TooManyLookupRequestException,  </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    pulsar_result_InvalidTopicName,  </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    pulsar_result_InvalidUrl,        </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    pulsar_result_ServiceUnitNotReady,  </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    pulsar_result_OperationNotSupported,</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    pulsar_result_ProducerBlockedQuotaExceededError,      </div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    pulsar_result_ProducerBlockedQuotaExceededException,  </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    pulsar_result_ProducerQueueIsFull,                    </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    pulsar_result_MessageTooBig,                          </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    pulsar_result_TopicNotFound,                          </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    pulsar_result_SubscriptionNotFound,                   </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    pulsar_result_ConsumerNotFound,                       </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    pulsar_result_UnsupportedVersionError,  </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    pulsar_result_TopicTerminated,          </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    pulsar_result_CryptoError,              </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    pulsar_result_IncompatibleSchema,   </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    pulsar_result_ConsumerAssignError,  </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    pulsar_result_CumulativeAcknowledgementNotAllowedError,  </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    pulsar_result_TransactionCoordinatorNotFoundError,  </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    pulsar_result_InvalidTxnStatusError,                </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    pulsar_result_NotAllowedError,                      </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    pulsar_result_TransactionConflict,                  </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    pulsar_result_TransactionNotFound,                  </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    pulsar_result_ProducerFenced,                       </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    pulsar_result_MemoryBufferIsFull,  </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    pulsar_result_Interrupted,         </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;} pulsar_result;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="comment">// Return string representation of result code</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;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>&#160; </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;}</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<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&amp;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&amp;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>&#160;|&#160;<a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_e">e</a>&#160;|&#160;<a class="qindex" href="#letter_f">f</a>&#160;|&#160;<a class="qindex" href="#letter_k">k</a>&#160;|&#160;<a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|& [...]
+<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">&#160;&#160;a&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;f&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_consumer.html">Consumer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_k"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;k&#160;&#160;</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">&#160;&#160;o&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_oauth2_flow.html">Oauth2Flow</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_consumer_interceptor.html">ConsumerInterceptor</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_key_value.html">KeyValue</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_table_view.html">TableView</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</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">&#160;&#160;p&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_logger.html">Logger</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_producer.html">Producer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_typed_message.html">TypedMessage</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</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">&#160;&#160;b&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_typed_message_builder_3_01std_1_1string_01_4.html">TypedMessageBuilder&lt; std::string &gt;</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="structpulsar__consumer__batch__receive__policy__t.html">pulsar_consumer_batch_receive_policy_t</a>&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classpulsar_1_1_message.html">Message</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="structpulsar__consumer__config__dead__letter__policy__t.html">pulsar_consumer_config_dead_letter_policy_t</a>&#160;&#160;&#160;</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">&#160;&#160;c&#160;&#160;</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">&#160;&#160;e&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="structpulsar__logger__t.html">pulsar_logger_t</a>&#160;&#160;&#160;</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>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_r"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;r&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</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>)&#160;&#160;&#160;</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>&#160;|&#160;<a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_e">e</a>&#160;|&#160;<a class="qindex" href="#letter_f">f</a>&#160;|&#160;<a class="qindex" href="#letter_k">k</a>&#160;|&#160;<a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|& [...]
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<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&amp;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&amp;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 &amp;) (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 &amp;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 &amp;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 &amp;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 &amp;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 &#160;<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&amp;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&amp;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> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<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 &lt;<a class="el" href="_authentication_8h_source.html">Authentication.h</a>&gt;</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>
+&#160;</td><td class="memItemRight" valign="bottom"><b>AuthAthenz</b> (AuthenticationDataPtr &amp;)</td></tr>
+<tr class="separator:ab4ed3eadbc72cabc8ff942e0ebdc053d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65405a1cfd2ec3efcaeea3ed8269fa47"><td class="memItemLeft" align="right" valign="top">const std::string&#160;</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">&#160;</td></tr>
+<tr class="memitem:a274c9e677c536166fd1d4f8af6161546"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_athenz.html#a274c9e677c536166fd1d4f8af6161546">getAuthData</a> (AuthenticationDataPtr &amp;authDataAthenz)</td></tr>
+<tr class="separator:a274c9e677c536166fd1d4f8af6161546"><td class="memSeparator" colspan="2">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_athenz.html#acde69fc41668a27d12d558023aaed0d9">create</a> (ParamMap &amp;params)</td></tr>
+<tr class="separator:acde69fc41668a27d12d558023aaed0d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd40a525e1d8d61fc97880c2c8a958fe"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_athenz.html#afd40a525e1d8d61fc97880c2c8a958fe">create</a> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:afd40a525e1d8d61fc97880c2c8a958fe"><td class="memSeparator" colspan="2">&#160;</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="-"/>&#160;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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2">&#160;</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="-"/>&#160;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&#160;</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">&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &#160;<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&amp;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&amp;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 &amp;) (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 &amp;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 &amp;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 &amp;username, const std::string &amp;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 &amp;username, const std::string &amp;password, const std::string &amp;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 &amp;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 &amp;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 &#160;<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&amp;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&amp;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> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<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 &lt;<a class="el" href="_authentication_8h_source.html">Authentication.h</a>&gt;</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>
+&#160;</td><td class="memItemRight" valign="bottom"><b>AuthBasic</b> (AuthenticationDataPtr &amp;)</td></tr>
+<tr class="separator:aa1731ccdb4171f03fe4fc0fc618a7b38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9d2d1d47a1f1d82fee3522ea5991c3b"><td class="memItemLeft" align="right" valign="top">const std::string&#160;</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">&#160;</td></tr>
+<tr class="memitem:a7b1ccda07ff0a22a705159e27149f3d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_basic.html#a7b1ccda07ff0a22a705159e27149f3d4">getAuthData</a> (AuthenticationDataPtr &amp;authDataBasic) override</td></tr>
+<tr class="separator:a7b1ccda07ff0a22a705159e27149f3d4"><td class="memSeparator" colspan="2">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_basic.html#aee17b2ca84965dfe8b3d9296dd397400">create</a> (ParamMap &amp;params)</td></tr>
+<tr class="separator:aee17b2ca84965dfe8b3d9296dd397400"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9f7f369e4559f0aa108708355dcaaec"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_basic.html#ac9f7f369e4559f0aa108708355dcaaec">create</a> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:ac9f7f369e4559f0aa108708355dcaaec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a86ce78ef0606d5642f110dc4ec8c6f67"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_basic.html#a86ce78ef0606d5642f110dc4ec8c6f67">create</a> (const std::string &amp;username, const std::string &amp;password)</td></tr>
+<tr class="separator:a86ce78ef0606d5642f110dc4ec8c6f67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac85c75b0d48375423cbb5c1421529c46"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_basic.html#ac85c75b0d48375423cbb5c1421529c46">create</a> (const std::string &amp;username, const std::string &amp;password, const std::string &amp;method)</td></tr>
+<tr class="separator:ac85c75b0d48375423cbb5c1421529c46"><td class="memSeparator" colspan="2">&#160;</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="-"/>&#160;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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2">&#160;</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="-"/>&#160;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&#160;</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">&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</td>
+          <td class="paramname"><em>username</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>password</em>&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</td>
+          <td class="paramname"><em>username</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>password</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>method</em>&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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&amp;, const std::string&amp;)</a> </dd></dl>
+
+</div>
+</div>
+<a id="a7b1ccda07ff0a22a705159e27149f3d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7b1ccda07ff0a22a705159e27149f3d4">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &#160;<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&amp;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&amp;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 &amp;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 &amp;pluginNameOrDynamicLibPath, const std::string &amp;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 &amp;pluginNameOrDynamicLibPath, ParamMap &amp;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 &#160;<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&amp;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&amp;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> &#124;
+<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
+<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
+<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 &lt;<a class="el" href="_authentication_8h_source.html">Authentication.h</a>&gt;</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&#160;</td><td class="memItemRight" valign="bottom"><b>Disabled</b> ()</td></tr>
+<tr class="separator:a430f22348c1a089dd8589d87c6accf41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a551395eda623d3454c758c3479423ce3"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_factory.html#a551395eda623d3454c758c3479423ce3">create</a> (const std::string &amp;pluginNameOrDynamicLibPath)</td></tr>
+<tr class="separator:a551395eda623d3454c758c3479423ce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af84e99a6be262145d928e599946ab82d"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_factory.html#af84e99a6be262145d928e599946ab82d">create</a> (const std::string &amp;pluginNameOrDynamicLibPath, const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:af84e99a6be262145d928e599946ab82d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a644b858e4a59482ecce5d1782bd4b452"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_factory.html#a644b858e4a59482ecce5d1782bd4b452">create</a> (const std::string &amp;pluginNameOrDynamicLibPath, ParamMap &amp;params)</td></tr>
+<tr class="separator:a644b858e4a59482ecce5d1782bd4b452"><td class="memSeparator" colspan="2">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><b>release_handles</b> ()</td></tr>
+<tr class="separator:a313049ed4f9c7e587b7529b8b667e569"><td class="memSeparator" colspan="2">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><b>isShutdownHookRegistered_</b></td></tr>
+<tr class="separator:a6a3436cb14de4c90a3b02509410753fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf8d4232884ae351e216935f1d229ee6"><td class="memItemLeft" align="right" valign="top"><a id="abf8d4232884ae351e216935f1d229ee6"></a>
+static std::vector&lt; void * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>loadedLibrariesHandles_</b></td></tr>
+<tr class="separator:abf8d4232884ae351e216935f1d229ee6"><td class="memSeparator" colspan="2">&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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&amp;, const ParamMap&amp;) </dd></dl>
+
+</div>
+</div>
+<a id="af84e99a6be262145d928e599946ab82d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af84e99a6be262145d928e599946ab82d">&#9670;&nbsp;</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 &amp;&#160;</td>
+          <td class="paramname"><em>pluginNameOrDynamicLibPath</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>authParamsString</em>&#160;</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&amp;, const ParamMap&amp;) </dd></dl>
+
+</div>
+</div>
+<a id="a644b858e4a59482ecce5d1782bd4b452"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a644b858e4a59482ecce5d1782bd4b452">&#9670;&nbsp;</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 &amp;&#160;</td>
+          <td class="paramname"><em>pluginNameOrDynamicLibPath</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ParamMap &amp;&#160;</td>
+          <td class="paramname"><em>params</em>&#160;</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 &#160;<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&amp;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&amp;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 &amp;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 &amp;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 &amp;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 &amp;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 &amp;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 &#160;<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&amp;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&amp;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> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<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 &lt;<a class="el" href="_authentication_8h_source.html">Authentication.h</a>&gt;</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>
+&#160;</td><td class="memItemRight" valign="bottom"><b>AuthOauth2</b> (ParamMap &amp;params)</td></tr>
+<tr class="separator:af35b3e1423d0efb557a2d56be3a17acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac71578130863f59cb02fe1aefa9d70f6"><td class="memItemLeft" align="right" valign="top">const std::string&#160;</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">&#160;</td></tr>
+<tr class="memitem:adcf1f8cac446270ee6aa0a0ad156842e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_oauth2.html#adcf1f8cac446270ee6aa0a0ad156842e">getAuthData</a> (AuthenticationDataPtr &amp;authDataOauth2)</td></tr>
+<tr class="separator:adcf1f8cac446270ee6aa0a0ad156842e"><td class="memSeparator" colspan="2">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_oauth2.html#a7bb0d842b22b59036587b22da2447377">create</a> (ParamMap &amp;params)</td></tr>
+<tr class="separator:a7bb0d842b22b59036587b22da2447377"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca6ec2237b43187d8001a5b79a2f11e4"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_oauth2.html#aca6ec2237b43187d8001a5b79a2f11e4">create</a> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:aca6ec2237b43187d8001a5b79a2f11e4"><td class="memSeparator" colspan="2">&#160;</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="-"/>&#160;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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2">&#160;</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="-"/>&#160;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&#160;</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">&#160;</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">&quot;type&quot;</span>: <span class="stringliteral">&quot;client_credentials&quot;</span>,</div>
+<div class="line"><span class="stringliteral">&quot;issuer_url&quot;</span>: <span class="stringliteral">&quot;https://accounts.google.com&quot;</span>,</div>
+<div class="line"><span class="stringliteral">&quot;client_id&quot;</span>: <span class="stringliteral">&quot;d9ZyX97q1ef8Cr81WHVC4hFQ64vSlDK3&quot;</span>,</div>
+<div class="line"><span class="stringliteral">&quot;client_secret&quot;</span>: <span class="stringliteral">&quot;on1uJ...k6F6R&quot;</span>,</div>
+<div class="line"><span class="stringliteral">&quot;audience&quot;</span>: <span class="stringliteral">&quot;https://broker.example.com&quot;</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">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &#160;<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&amp;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&amp;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 &amp;) (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 &amp;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 &amp;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 &amp;certificatePath, const std::string &amp;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 &amp;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 &amp;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 &#160;<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&amp;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&amp;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> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<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 &lt;<a class="el" href="_authentication_8h_source.html">Authentication.h</a>&gt;</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>
+&#160;</td><td class="memItemRight" valign="bottom"><b>AuthTls</b> (AuthenticationDataPtr &amp;)</td></tr>
+<tr class="separator:a288702412c2ed9dc55e293902d476767"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c87f86950aa979f666896e7a5f79398"><td class="memItemLeft" align="right" valign="top">const std::string&#160;</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">&#160;</td></tr>
+<tr class="memitem:ae88d06f62a47e92e7c52e74df3cacb56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_tls.html#ae88d06f62a47e92e7c52e74df3cacb56">getAuthData</a> (AuthenticationDataPtr &amp;authDataTls)</td></tr>
+<tr class="separator:ae88d06f62a47e92e7c52e74df3cacb56"><td class="memSeparator" colspan="2">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_tls.html#a3a2603a8be94cdde4845c941dc8871cc">create</a> (ParamMap &amp;params)</td></tr>
+<tr class="separator:a3a2603a8be94cdde4845c941dc8871cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19312c7b58d94aa05927ee33922731de"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_tls.html#a19312c7b58d94aa05927ee33922731de">create</a> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:a19312c7b58d94aa05927ee33922731de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac32274cb7d7095cfcd35fcebcf277d5b"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_tls.html#ac32274cb7d7095cfcd35fcebcf277d5b">create</a> (const std::string &amp;certificatePath, const std::string &amp;privateKeyPath)</td></tr>
+<tr class="separator:ac32274cb7d7095cfcd35fcebcf277d5b"><td class="memSeparator" colspan="2">&#160;</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="-"/>&#160;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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2">&#160;</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="-"/>&#160;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&#160;</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">&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</td>
+          <td class="paramname"><em>certificatePath</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>privateKeyPath</em>&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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&amp;, const std::string&amp;)</a> </dd></dl>
+
+</div>
+</div>
+<a id="ae88d06f62a47e92e7c52e74df3cacb56"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae88d06f62a47e92e7c52e74df3cacb56">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &#160;<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&amp;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&amp;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 &amp;) (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 &amp;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 &amp;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 &amp;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 &amp;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 &amp;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 &amp;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 &#160;<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&amp;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&amp;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> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<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 &lt;<a class="el" href="_authentication_8h_source.html">Authentication.h</a>&gt;</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>
+&#160;</td><td class="memItemRight" valign="bottom"><b>AuthToken</b> (AuthenticationDataPtr &amp;)</td></tr>
+<tr class="separator:aeb6fe37de94ac0898f32ca07d1a22b7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d1bf202c18b9131be315b166b4b1caa"><td class="memItemLeft" align="right" valign="top">const std::string&#160;</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">&#160;</td></tr>
+<tr class="memitem:a212a8af7680f196e4fba4e0152e6d0a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_token.html#a212a8af7680f196e4fba4e0152e6d0a5">getAuthData</a> (AuthenticationDataPtr &amp;authDataToken)</td></tr>
+<tr class="separator:a212a8af7680f196e4fba4e0152e6d0a5"><td class="memSeparator" colspan="2">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_token.html#aa4d3740c838620765a7332bf2247b5e9">create</a> (ParamMap &amp;params)</td></tr>
+<tr class="separator:aa4d3740c838620765a7332bf2247b5e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9601a01bd5b7b644531d82fc3cfa7d09"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_token.html#a9601a01bd5b7b644531d82fc3cfa7d09">create</a> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:a9601a01bd5b7b644531d82fc3cfa7d09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80911f1374df425fdb76f066dfe7ebd9"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_token.html#a80911f1374df425fdb76f066dfe7ebd9">createWithToken</a> (const std::string &amp;token)</td></tr>
+<tr class="separator:a80911f1374df425fdb76f066dfe7ebd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae9b2da50ad0c22335b298d939239602c"><td class="memItemLeft" align="right" valign="top">static AuthenticationPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_auth_token.html#ae9b2da50ad0c22335b298d939239602c">create</a> (const TokenSupplier &amp;tokenSupplier)</td></tr>
+<tr class="separator:ae9b2da50ad0c22335b298d939239602c"><td class="memSeparator" colspan="2">&#160;</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="-"/>&#160;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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb inherit pub_static_methods_classpulsar_1_1_authentication"><td class="memSeparator" colspan="2">&#160;</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="-"/>&#160;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&#160;</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">&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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&amp; authParamsString)</a> </dd></dl>
+
+</div>
+</div>
+<a id="a80911f1374df425fdb76f066dfe7ebd9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a80911f1374df425fdb76f066dfe7ebd9">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &amp;&#160;</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">&#9670;&nbsp;</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 &#160;<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&amp;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&amp;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 &amp;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 &amp;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 &#160;<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&amp;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&amp;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> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#friends">Friends</a> &#124;
+<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&#160;</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">&#160;</td></tr>
+<tr class="memitem:a14811c36fc300cfa7769f7ee96018688"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a14811c36fc300cfa7769f7ee96018688">getAuthData</a> (AuthenticationDataPtr &amp;authDataContent)</td></tr>
+<tr class="separator:a14811c36fc300cfa7769f7ee96018688"><td class="memSeparator" colspan="2">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_authentication.html#a0ff47251bd4184cd0e9155e76a5c35bb">parseDefaultFormatAuthParams</a> (const std::string &amp;authParamsString)</td></tr>
+<tr class="separator:a0ff47251bd4184cd0e9155e76a5c35bb"><td class="memSeparator" colspan="2">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><b>authData_</b></td></tr>
+<tr class="separator:abac33d5c492826fb8a4bea05512c9f7c"><td class="memSeparator" colspan="2">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><b>ClientConfiguration</b></td></tr>
+<tr class="separator:abea2ee50c7ded8ed569f7cedfbecd6f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a14811c36fc300cfa7769f7ee96018688"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a14811c36fc300cfa7769f7ee96018688">&#9670;&nbsp;</a></span>getAuthData()</h2>
+
+<div class="memitem">
... 41728 lines suppressed ...